![]() |
Polygon Crucher SDK - Documentation
Documentation
|
CNormalFaceList is a CFaceList that contains CNormalFace. It usually belongs to a by CPointNormalChannel, CFaceNormalChannel or CSpecNormalChannel. More...
CNormalFaceList is a CFaceList that contains CNormalFace. It usually belongs to a by CPointNormalChannel, CFaceNormalChannel or CSpecNormalChannel.
#include <NormalFaceList.h>
Public Member Functions | |
CNormalFaceList (CNormalFaceList *normalFaces=NULL) | |
Create a new face list. When normalFaces is provided, the data structure (datachunks) is inherited but the face list is created empty. | |
virtual | ~CNormalFaceList () |
Use Delete instead, unless the CNormalFaceList is created on the stack (take care that it is referenced once only in this case) | |
virtual CFace * | CreateFace () const |
use ReleaseFace(CFace *) to delete created face | |
virtual CFaceList & | operator= (const CFaceList &reffaces) |
![]() | |
CFaceList (CFaceList *srcFaces) | |
void | ReleaseFace (CFace *face) const |
Release a face created with CFaceList::CreateFace. | |
bool | GetFace (unsigned int index, CFace &face) const |
bool | GetFace (unsigned int index, CFace &face) |
int * | GetIndexes (unsigned int index, int &size) const |
int | IsFaceIndex (unsigned int faceindex, int pointindex) const |
Check if point index belong to face. Return the index position of this pointindex or POINT_NOT_BELONG_TO_FACE) const;. | |
int * | SetFaceSize (unsigned int index, int size, FACE_PROPERTIES invalidFlag=FACE_IS_INVALID) |
Set the number of indexes for the given face index. If size < 3, then invalidFlag flag is set, if size >= 3 the flag is removed. For channel flags, FACE_IS_UNUSED should be used to keep the same number of faces between 3d faces and channel faces, if the matching 3d face is not set to invalid on a clean operation. | |
unsigned int | GetFaceFlags (unsigned int index) const |
bool | IsFaceFlagSet (unsigned int index, FACE_PROPERTIES flag) const |
bool | CheckFaceFlags (unsigned int index, unsigned int flags, bool allSetOrNoneSet) const |
bool | IsFaceOneFlagSet (unsigned int index, unsigned int flags) const |
void | SetFaceFlag (unsigned int index, FACE_PROPERTIES flag, bool set) |
void | SetFaceFlags (unsigned int index, unsigned int flags, bool set) |
int | CollectIndexes (unsigned int index, CHashTable< int > &hash, bool erase=false) const |
Add the face indexes to the hash, and return the adedd count. | |
bool | CopyFace (unsigned int dstindex, unsigned int srcindex, bool inheritPropertiesOnly=false) |
Copy srcindex face to dstindex face. inheritPropertiesOnly = true means only flags and properties are copied, otherwise indexes are also copied. | |
bool | CopyFace (unsigned int dstindex, unsigned int srcindex, const CFaceList &srcfacelist, bool inheritPropertiesOnly=false) |
Copy a face from another face list. | |
bool | CopyFace (unsigned int dstindex, const CFace &srcface, bool inheritPropertiesOnly=false) |
void | CopyTo (int index, CSingleFace &face) const |
void | CopyFrom (int index, const CSingleFace &face) |
virtual void | Serialize (CXArchive &ar) |
void | RemoveAll () |
void | PreAllocate (int estimatedFaceNbr, int estimatedIndexNbr, bool constructAllElementsOnce=false) |
Preallocate the data with an estimated face nbr and total indexes count for the whole face set. The method removes any existing data. | |
void | SetSize (int size, SetSizeMode sizeMode, int defaultFaceSize=FACELIST_DEFAULT_INDEX_NBR) |
Resize the size of the number of face. If growOnly, memory is not reallocated if buffer's size decrease. | |
void | SetSize (int size, int defaultFaceSize=FACELIST_DEFAULT_INDEX_NBR, SetSizeMode sizeMode=DEFAULT, int growFaceMode=-1) |
Resize the size of the number of face. If growOnly, memory is not reallocated if buffer's size decrease. | |
void | SetSize (int size, unsigned int *initialSize, int defaultFaceSize=FACELIST_DEFAULT_INDEX_NBR, int growFaceMode=-1) |
This reset the face and initialize it again. | |
void | SetSize (const CFaceList &srcfaces, int growFaceMode=-1) |
Reset face list and get faces size from srcfaces face list. No data is copied, only size are preallocated. | |
void | ExpandSize (const CFaceList &srcfaces) |
Expand the face list with srcfaces sizes. No data is copied, only size are preallocated. The method grows the faces (if needed), so CFaceList::PreAllocate can be used. | |
void | FreeExtra () |
bool | RemoveDataChunk (DataChunkID id) |
Remove the data chunk specified by its id. | |
unsigned int | AddDataChunk (DataChunkID id, CElementMethods *methods) |
Add a data chunk defined by an id and methods which give the way to construct / destroy the data chunk data. | |
void * | GetDataChunk (DataChunkID id, unsigned int index) const |
Return the data chunk for index face. The returned data can be cast accordingly giving the data chunk id. | |
CFacePropertyData * | GetMainDataChunk (unsigned int index) const |
return the main data chunk for index. The main data chunk is a chunk like another one, but with faster access. It contains the flags, and it can be cast to C3DFacePropertyData, as it also contain the material | |
void | AppendDataChunks (CFaceList *srcFaces, bool copyEmpty=true) |
Copy the data chunks that exists in the provided srcFaces list. If copyEmpty = true, the data chunk are created empty. Otherwise they are copied from the source face list. | |
unsigned int | GetDataChunkNbr () const |
Return the number of data chunk in the face list. | |
const CDataChunk & | GetDataChunks () const |
Return the class that handles the data chunks. | |
SIZET | GetSizeOfData (DataChunkID id) const |
Return the data size of one element of the given data chunk. | |
int | GetSize () const |
Return the number of faces of the list. | |
void | SaveFacesIndex (unsigned int dataChunkID=FACE_ORIGINAL_INDEX_CHUNK) |
Save face indexes in a specific FACE_ORIGINAL_INDEX_CHUNK data chunk. Face index can be retrieve after, after a process that delete some faces or reorder them. | |
unsigned int | GetOriginalIndex (unsigned int index, unsigned int dataChunkID=FACE_ORIGINAL_INDEX_CHUNK) const |
Retrieve the original index of the face. | |
bool | AreFacesConnected (const CGeomInfo *info, CHashTable< int > &facesSet) |
void | GetEdgesOnBorder (CEdgeGraph &borderMap, CHashTable< int > &faces) |
void | FlipFaces (FACE_PROPERTIES properties=FACE_NONE, bool musthave=true) |
Reverse the indexes order. For a 3D face, a side effect is the normal inversion. | |
unsigned int | TagFaces (CGeomInfo *info, CFaceTagger &faceTagger, bool exploreByEdge) |
Create group of faces which points/edges are delimited by a given property. | |
bool | Clean (const CGeomInfo *info) |
Clean faces with FACE_IS_INVALID status defined. | |
bool | Clean (const CGeomInfo *info, bool cleanFaces, CXUIntArray *newfacesindex=NULL) |
Clean faces with FACE_IS_INVALID status defined and get an array contains the new to old index position (useful to clean external data too). | |
bool | ReorderFaces (const unsigned int *neworder, unsigned int size, bool moveToDestinationIndexes) |
Reorder faces given the order specified by neworder. If moveToDestinationIndexes is true : Face[0] goes to face[neworder[0]], otherwise Face[neworder[0]] goes to face[0]. -1 in the array means no order changes. | |
bool | UpdateIndex (const unsigned int *newpointindex, unsigned int bufsize, bool onlyValidFaces=true) |
bool | UpdateIndex (CXUIntArray *newpointindex, bool onlyValidFaces=true) |
Same method with a CXUIntArray class. | |
void | SetSizeAndFlags (int newsize, unsigned int flags) |
Set face size and flags. | |
void | SetSizeAndFlags (const CFaceList &faces, unsigned int flags) |
Set faces which size are the same than provided faces list and set flags for these faces. | |
void | ExpandSizeAndFlags (const CFaceList &faces, unsigned int flags) |
Increase face size and set flags for the new faces. | |
void | SetFlag (FACELIST_PROPERTIES flag, bool set) |
bool | IsFlagSet (FACELIST_PROPERTIES flag) const |
unsigned int | GetChangedStamp () const |
bool | IsTriangular (FACE_PROPERTIES properties=FACE_NONE, bool musthave=true) const |
bool | HasQuadrangle (FACE_PROPERTIES properties=FACE_NONE, bool musthave=true) const |
bool | HasNGons (FACE_PROPERTIES properties=FACE_NONE, bool musthave=true) const |
unsigned int | GetFaceCount (unsigned int edgenbr, FACE_PROPERTIES properties=FACE_NONE, bool musthave=true) const |
unsigned int | GetIndexesCount (FACE_PROPERTIES properties=FACE_NONE, bool musthave=true) const |
bool | InheritFlags (CFaceList &srcList, FACE_PROPERTIES srcflag, FACE_PROPERTIES dstflag, bool accumulate) |
int | GetNumberOfFaces (FACE_PROPERTIES, bool set) const |
int | GetNumberOfFaces (unsigned int property, bool set) const |
void | SetFacesFlags (unsigned int first, unsigned int last, unsigned int flags, bool set) |
void | SetFacesFlags (unsigned int flags, bool set) |
void | SetFacesSize (unsigned int facesize) |
const C3DEdgeArray * | InitEdgeArray () |
Always return an array (even if empty) containing all edge of the face list, without connection information. | |
void | DeleteEdgeArray () |
A call to DeleteEdgeArray must be balanced for each call to InitEdgeArray. | |
int | InitEdgeToFaceGraph (const CGeomInfo *info) |
Init Edge graph which is a map containing each different edge and their connections. Return the number of edges of the graph. Needed for any methods that required information about connections. | |
void | DeleteEdgeToFaceGraph () |
Release the edge graph when no longer needed. Any call to InitEdgeToFaceGraph must be followed by a call to DeleteEdgeToFaceGraph. | |
const int * | GetFacesConnectedToEdge (const C3DEdge &, int &size) |
Get faces connected to an edge. The returned array has size indexes. | |
CEdgeGraph & | GetEdgeGraph (void) |
Get the CEdgeGraph. | |
void | SetBorderFacesStatus (void) |
int | InitPointToFaceGraph (const CGeomInfo *info) |
void | DeletePointToFaceGraph () |
Release the point to face graph. Any call to InitPointToFaceGraph must be followed by a call to DeletePointToFaceGraph. | |
bool | HasPointToFaceGraph () const |
Return true if the point to face graph is computed. | |
const int * | GetFacesNeighbourg (CFaceGraphHelper &helper, int faceindex, ConnectionInfoType type, int &size) |
int | GetFacesNeighbourg (CHashTable< int > &hash, int faceindex, ConnectionInfoType type, bool clearhash) |
const int * | GetFacesConnectedToPoint (int, int &size) const |
int | GetFacesConnectedToPoints (CHashTable< int > &hash, int point1, int point2, ConnectionInfoType type, bool clearhash) const |
const int * | GetFacesConnectedToPoints (CFaceGraphHelper &helper, int point1, int point2, ConnectionInfoType type, int &size) const |
int | GetPointsConnectedToPoints (CHashTable< int > &hash, int point1, int point2, ConnectionInfoType type) |
const int * | GetPointsConnectedToPoints (CFaceGraphHelper &helper, int point1, int point2, ConnectionInfoType type, int &size) |
const int * | GetPointsConnectedToEdge (CFaceGraphHelper &helper, int point1, int point2, int &size, bool excludePt1AndPt2) |
const int * | GetPointsNeighbourg (CFaceGraphHelper &helper, int pointindex, int &size, ConnectionInfoType type) |
bool | IsPointNeighbourg (CFaceGraphHelper &helper, int index, int isNeighbourgIndex) |
bool | DoesEdgeExists (const C3DEdge &edge, int face=-1) const |
int | GetFacesByOppositeEdges (CFaceGraphHelper &helper, int point1, int point2, ConnectionInfoType type, CEdgeGraph &edgeGraph) |
bool | IsIsolatedFace (int facenbr) const |
int | GraphRemoveFaceReference (CGeomInfo *info, int faceindex, bool setAlonePointsToInvalid) |
int | GraphMergePointConnectivity (int, int) |
bool | GraphDisconnectFace (int ptindex, int faceindex) |
bool | GraphConnectFace (int ptindex, int faceindex) |
virtual unsigned int | GetChecksum (unsigned int checksumFlags=CHECKSUM_FACES|CHECKSUM_FACES_EXTRA) const |
Return a value that is a simple way to check if the geometry changed between two call to the method. | |
virtual void | Inherit (const CFaceList &reffaces) |
![]() | |
virtual bool | Delete () |
int | GetRefCount () const |
int | AddRef () const |
Additional Inherited Members | |
![]() | |
enum | SetSizeMode { DEFAULT = 0 , FREE_EXTRA , GROW_MODE } |
use ReleaseFace(CFace *) to delete created face
Implements CFaceList.
Reimplemented from CFaceList.