05ca0d3376
- aggiunto FIST 6.8 ( già modificato per integrazione nelle nostre librerie).
72 lines
2.7 KiB
C
72 lines
2.7 KiB
C
/*****************************************************************************/
|
|
/* */
|
|
/* F I S T : Fast, Industrial-Strength Triangulation */
|
|
/* */
|
|
/*****************************************************************************/
|
|
/* */
|
|
/* (C) Martin Held */
|
|
/* (C) Universitaet Salzburg, Salzburg, Austria */
|
|
/* */
|
|
/* This code is not in the public domain. All rights reserved! Please make */
|
|
/* sure to read the full copyright statement contained in api_functions.cpp. */
|
|
/* */
|
|
/*****************************************************************************/
|
|
|
|
/* */
|
|
/* obtains the interior angle associated with IND */
|
|
/* */
|
|
#define GetAngle(LIST,IND) \
|
|
(\
|
|
assert(InPolyList(LIST,IND)), \
|
|
LIST->list[IND].convex)
|
|
|
|
|
|
#define SetAngle(LIST,IND, ANGLE ) \
|
|
{\
|
|
assert(InPolyList(LIST,IND)); \
|
|
LIST->list[IND].convex = ANGLE ; \
|
|
}
|
|
|
|
|
|
/* */
|
|
/* obtains the vertex index associated with IND */
|
|
/* */
|
|
#define GetIndex(LIST,IND) \
|
|
(\
|
|
assert(InPolyList(LIST,IND)), \
|
|
LIST->list[IND].index)
|
|
|
|
|
|
/* */
|
|
/* returns pointer to the successor of IND in the circular list of nodes */
|
|
/* */
|
|
#define GetNextNode(LIST,IND) \
|
|
(\
|
|
assert(InPolyList(LIST,IND)), \
|
|
LIST->list[IND].next)
|
|
|
|
|
|
/* */
|
|
/* returns pointer to the predecessor of IND in the circular list of nodes */
|
|
/* */
|
|
#define GetPrevNode(LIST,IND) \
|
|
(\
|
|
assert(InPolyList(LIST,IND)), \
|
|
LIST->list[IND].prev)
|
|
|
|
|
|
|
|
#ifdef STAGES
|
|
#define SetStage(LIST,IND, S) \
|
|
{\
|
|
assert(InPolyList(LIST,IND)); \
|
|
LIST->list[IND].stage = S; \
|
|
}
|
|
|
|
|
|
#define GetStage(LIST,IND) \
|
|
(\
|
|
assert(InPolyList(LIST,IND)), \
|
|
LIST->list[IND].stage)
|
|
#endif
|