|
|
QisBool
Miscellaneous Functions |
|
|
|
|
|
Objective |
To return
a string containing the QisBool library version. |
Prototype |
const char*
QisBool_Version(); |
Input Arguments |
- |
Output Arguments |
- |
Return Value |
a.
A c-string containing the QisBool library version. |
Pre-Conditions |
- |
Post-Conditions |
a.
The pointer returned by this function points to an
internal buffer and therefore it should be used as read-only and should be
release/deleted. |
C++ Equivalent |
static const
char* IQisBool::Version (); |
|
|
Objective |
To
release the memory allocated by the Boolean operations to store output
polygons. |
Prototype |
void
QisBool_Release(int*** ioXY, int** ioNV, int* ioN); |
Input Arguments |
a.
int*** ioXY: Address of the integer double pointer
that points to the X,Y co-ordinates of the output polygons. b.
int** ioNV: Address of the integer pointer that points
to the list of number of vertices for each output polygon. c.
int* ioN: Address of the integer that stores the
number of output polygons. |
Output Arguments |
a.
All three pointers (ioXY, ioNV, ioN) are set to NULL
when this function returns. |
Return Value |
- |
Pre-Conditions |
a.
*ioN must specify the number of output polygons as a
result of successful execution of QisBool_Booleanize, QisBool_UnionMT or QisBool_BinaryMT. b.
*ioNV must be a non-NULL pointer representing a list
of vertex numbers obtained as a result of successful execution of QisBool_Booleanize, QisBool_UnionMT or QisBool_BinaryMT. c.
*ioXY must be a non-NULL integer double pointer
representing a list of x,y co-ordinates obtained as a result of successful
execution of QisBool_Booleanize, QisBool_UnionMT or QisBool_BinaryMT. |
Operation |
a.
This function releases the memory allocated by the
Boolean operations to store output polygons. b.
Every successful call to QisBool_Booleanize, QisBool_UnionMT or QisBool_BinaryMT must be
eventually matched by a call to this function or a memory leak will occur. |
Post-Conditions |
- |
C++ Equivalent |
static void
IQisBool::Release(int**& ioXY, int*& ioNV, int& ioN); |
See Also |
|
|
Objective |
To
get all the x,y co-ordinates where QisBool_Booleanize encountered
illegal polygon(s). |
Prototype |
int
QisBool_GetIllegalPolygonIndices( � int** oListOfIndices, int* oNIndices, void*
iBoolHandle ); |
Input Arguments |
a.
void* iBoolHandle: Handle to a QisBool object obtained
using QisBool_Create. |
Output Arguments |
a.
int** oListOfIndices: Address of an integer pointer
that will point to a list of x,y co-ordinates pairs, each representing the
location where QisBool_Booleanize
encountered an illegal polygon. b.
int* oNIndices: Address of an integer variable that
will store the number of x,y pairs. |
Return Value |
- |
Pre-Conditions |
a.
iBoolHandle , oListOfIndices and oNIndices must be
non-NULL. |
Operation |
a.
When this function returns, oNIndices stores the
number of locations (x,y pairs) where an illegal polygon was found.
oListOfIndices stores the address of an integer array containing a list of
those locations. |
Post-Conditions |
a.
The memory allocated for storing the list of x,y pairs
(*oListOfIndices) must be released using QisBool_ReleaseArray. |
C++ Equivalent |
virtual int
IQisBool::GetIllegalPolygonIndices( ��� int** oListOfIndices, int* oNIndices ) = 0; |
See Also |
|
|
|
Objective |
|
To
get a list of cutlines if the specified
polygon has any. |
|
Prototype |
|
int
QisBool_GetCutLines( � int* iXY, int iNV, int** oXY, int* oN,
void* iBooleanHandle ); |
|
Input Arguments |
|
a.
int* iXY: A list of x,y co-ordinates of the polygon to
be tested (iNV*2 integers) b.
int iNV: Number of vertices in the polygon. c.
void* iBooleanHandle: Handle to a QisBool object
obtained using QisBool_Create. |
|
Output Arguments |
|
a.
int** oXY: Address of an integer pointer which will
point to a list of cutlines. b.
int* oN: Address of an integer which will store the
number of cutlines. |
|
Return Value |
|
a.
success: 0 b.
failure: < 0. Call QisBool_ErrorMsg to get more
details. c.
No cutlines found: 1 |
|
Pre-Conditions |
|
- |
|
Operation |
|
a.
This function analyses the polygon and returns a list
of cutlines if present. b.
If N is the number of cutlines (*oN), there are 4*N
integers in the list (*oXY). c.
In cases where two edges of a polygon coincide, each
of those edges will be returned as a separate cutline. |
|
|
|
Post-Conditions |
|
a.
The memory allocated to store the cutlines (*oXY) must
be released using QisBool_ReleaseArray. |
|
C++ Equivalent |
|
virtual int
IQisBool::GetCutLines( � int* iXY, int iNV, int** oXY, int* oN ) = 0; |
|
See Also |
|
|
|
Objective |
To
get a list of butting edges when the
Leonov output mode for Boolean operations is set to eLEONOV_OUT_BUTTING� |
Prototype |
int
QisBool_GetSliceEdges(int** oXY, int* oN, void* iBooleanHandle); |
Input Arguments |
a.
void* iBooleanHandle: Handle to a QisBool object
obtained using QisBool_Create. |
Output Arguments |
a.
int** oXY: Address of an integer pointer which will
point to a list of edges allocated inside this function. b.
int* oN: Address of an integer which will store the
number of edges. |
Return Value |
a.
success: 0 b.
failure: < 0. Call QisBool_ErrorMsg for details. |
Pre-Conditions |
a.
The Boolean operations must be setup so that QisBoolOptions_SetLeonovOutput is set to
eLEONOV_OUT_BUTTING. b.
This function can be called only after the Boolean
operations (QisBool_Booleanize, QisBool_UnionMT or QisBool_BinaryMT) run
successfully. |
Operation |
a.
This function returns all those edges that join the
butting polygons. Each edge is represented by four integers or two x,y
co-ordinates. b.
If there are N edges (*oN), number of integers in the
list (*oXY) is 4*N. |
Post-Conditions |
a.
The memory allocated to store the edges (*oXY) must be
released using QisBool_ReleaseArray. |
C++ Equivalent |
virtual int
IQisBool::GetSliceEdges(int** oXY, int* oN) = 0; |
See Also |
|
|
Objective |
To
release the memory allocated inside QisBool to store a list of integers. |
Prototype |
void
QisBool_ReleaseArray(int** ioXY); |
Input Arguments |
a.
int** ioXY: Address of the integer array to be
released, allocated by a QisBool function. |
Output Arguments |
a.
The pointer to the integer array (*ioXY) is set to
NULL. |
Return Value |
- |
Pre-Conditions |
a.
The integer array to be release must have been
allocated inside a QisBool function that ran successfully. |
Operation |
a.
This function releases the allocated memory and sets
the pointer to NULL to prevent reference. |
Post-Conditions |
- |
C++ Equivalent |
static void
IQisBool::Release(int*& ioXY); |
See Also |
- |
|
|
|
� 2012 Artwork Conversion
Software Inc. |
|
417 Ingalls St. Santa Cruz CA
95060 |
|
[T] +1 831-426-6163 [F] +1
831-[E] info@artwork.com |