COVISE Core
Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
covise::Triangulator Class Reference

#include <Triangulator.h>

Collaboration diagram for covise::Triangulator:
Collaboration graph
[legend]

Public Member Functions

 Triangulator (int size)
 
 ~Triangulator ()
 
int triangulate_polygon (int ncontours, int cntr[], double(*vertices)[2], int(*triangles)[3])
 

Static Public Member Functions

static int getTriangles (int numVert, float *x, float *y, int(*triangles)[3])
 

Public Attributes

bool _gotError
 

Private Member Functions

int newnode ()
 
int newtrap ()
 
int init_query_structure (int segnum)
 
int getSegSize ()
 
int getQSize ()
 
int getTRSize ()
 
bool is_left_of (int segnum, point_t &v)
 
bool inserted (int segnum, int whichpt)
 
int locate_endpoint (point_t &v, point_t &vo, int r)
 
int merge_trapezoids (int segnum, int tfirst, int tlast, int side)
 
int add_segment (int segnum)
 
int find_new_roots (int segnum)
 
int construct_trapezoids (int nseg)
 
int inside_polygon (trap_t &t)
 
int newmon ()
 
int new_chain_element ()
 
double get_angle (const point_t &vp0, const point_t &vpnext, const point_t &vp1)
 
int get_vertex_positions (int v0, int v1, int &ip, int &iq)
 
int make_new_monotone_poly (int mcur, int v0, int v1)
 
int monotonate_trapezoids (int n)
 
int traverse_polygon (int mcur, int trnum, int from, int dir)
 
int triangulate_monotone_polygons (int nvert, int nmonpoly, int op[][3])
 
int triangulate_single_polygon (int nvert, int posmax, int side, int op[][3])
 
int choose_segment ()
 
void initialize (int n)
 
void generate_random_ordering (int n)
 
bool isCCW (int size, double(*vertices)[2])
 
void revert (int size, double(*vertices)[2])
 
void makeCCW (int size, double(*vertices)[2])
 
void makeCW (int size, double(*vertices)[2])
 

Private Attributes

node_tqs
 
trap_ttr
 
segment_tseg
 
monchain_tmchain
 
vertexchain_tvert
 
int * mon
 
int * visited
 
int choose_idx
 
int * permute
 
int chain_idx
 
int op_idx
 
int mon_idx
 
int q_idx
 
int tr_idx
 
int _segsize
 

Constructor & Destructor Documentation

◆ Triangulator()

Triangulator::Triangulator ( int  size)

◆ ~Triangulator()

Triangulator::~Triangulator ( )

Member Function Documentation

◆ add_segment()

int Triangulator::add_segment ( int  segnum)
private

◆ choose_segment()

int Triangulator::choose_segment ( )
private

◆ construct_trapezoids()

int Triangulator::construct_trapezoids ( int  nseg)
private

◆ find_new_roots()

int Triangulator::find_new_roots ( int  segnum)
private

◆ generate_random_ordering()

void Triangulator::generate_random_ordering ( int  n)
private

◆ get_angle()

double Triangulator::get_angle ( const point_t vp0,
const point_t vpnext,
const point_t vp1 
)
private

◆ get_vertex_positions()

int Triangulator::get_vertex_positions ( int  v0,
int  v1,
int &  ip,
int &  iq 
)
private

◆ getQSize()

int covise::Triangulator::getQSize ( )
inlineprivate

◆ getSegSize()

int covise::Triangulator::getSegSize ( )
inlineprivate

◆ getTriangles()

int Triangulator::getTriangles ( int  numVert,
float *  x,
float *  y,
int(*)  triangles[3] 
)
static

◆ getTRSize()

int covise::Triangulator::getTRSize ( )
inlineprivate

◆ init_query_structure()

int Triangulator::init_query_structure ( int  segnum)
private

◆ initialize()

void Triangulator::initialize ( int  n)
private

◆ inserted()

bool Triangulator::inserted ( int  segnum,
int  whichpt 
)
private

◆ inside_polygon()

int Triangulator::inside_polygon ( trap_t t)
private

◆ is_left_of()

bool Triangulator::is_left_of ( int  segnum,
point_t v 
)
private

◆ isCCW()

bool Triangulator::isCCW ( int  size,
double(*)  vertices[2] 
)
private

◆ locate_endpoint()

int Triangulator::locate_endpoint ( point_t v,
point_t vo,
int  r 
)
private

◆ make_new_monotone_poly()

int Triangulator::make_new_monotone_poly ( int  mcur,
int  v0,
int  v1 
)
private

◆ makeCCW()

void Triangulator::makeCCW ( int  size,
double(*)  vertices[2] 
)
private

◆ makeCW()

void Triangulator::makeCW ( int  size,
double(*)  vertices[2] 
)
private

◆ merge_trapezoids()

int Triangulator::merge_trapezoids ( int  segnum,
int  tfirst,
int  tlast,
int  side 
)
private

◆ monotonate_trapezoids()

int Triangulator::monotonate_trapezoids ( int  n)
private

◆ new_chain_element()

int Triangulator::new_chain_element ( )
private

◆ newmon()

int Triangulator::newmon ( )
private

◆ newnode()

int Triangulator::newnode ( )
private

◆ newtrap()

int Triangulator::newtrap ( )
private

◆ revert()

void Triangulator::revert ( int  size,
double(*)  vertices[2] 
)
private

◆ traverse_polygon()

int Triangulator::traverse_polygon ( int  mcur,
int  trnum,
int  from,
int  dir 
)
private

◆ triangulate_monotone_polygons()

int Triangulator::triangulate_monotone_polygons ( int  nvert,
int  nmonpoly,
int  op[][3] 
)
private

◆ triangulate_polygon()

int Triangulator::triangulate_polygon ( int  ncontours,
int  cntr[],
double(*)  vertices[2],
int(*)  triangles[3] 
)

◆ triangulate_single_polygon()

int Triangulator::triangulate_single_polygon ( int  nvert,
int  posmax,
int  side,
int  op[][3] 
)
private

Member Data Documentation

◆ _gotError

bool covise::Triangulator::_gotError

◆ _segsize

int covise::Triangulator::_segsize
private

◆ chain_idx

int covise::Triangulator::chain_idx
private

◆ choose_idx

int covise::Triangulator::choose_idx
private

◆ mchain

monchain_t* covise::Triangulator::mchain
private

◆ mon

int* covise::Triangulator::mon
private

◆ mon_idx

int covise::Triangulator::mon_idx
private

◆ op_idx

int covise::Triangulator::op_idx
private

◆ permute

int* covise::Triangulator::permute
private

◆ q_idx

int covise::Triangulator::q_idx
private

◆ qs

node_t* covise::Triangulator::qs
private

◆ seg

segment_t* covise::Triangulator::seg
private

◆ tr

trap_t* covise::Triangulator::tr
private

◆ tr_idx

int covise::Triangulator::tr_idx
private

◆ vert

vertexchain_t* covise::Triangulator::vert
private

◆ visited

int* covise::Triangulator::visited
private

The documentation for this class was generated from the following files: