#include <celldata.h>
CellData struct is a datacontainer that represents a single Voronoi Cell.
Private Member Functions | |
void | MarkAllUsedPoints (BaseArray< Int > &pointUseless, Int mark=NOTOK) |
void | MarkAllDoublePoints (BaseArray< Int > &pointUseless, Bool &pointRemoved, Float epsilonOverride=0.0) |
Result< Bool > | MarkAllColinearPoints (BaseArray< Int > &pointUseless, Bool &pointRemoved, Float epsilonOverride=0.0) |
Result< Bool > | MarkAllUselessPoints (BaseArray< Int > &pointUseless, Bool &pointRemoved) |
Result< Bool > | ReCreateCellWithOnlyUsefulPoints (BaseArray< Int > &pointUseless) |
Result< void > | CalcAllFaceNormals (BaseArray< Vector > &faceNormals) |
Bool | SetupReverseEdges () |
Result< void > | CleanupUnusedPoints () |
Bool | TestCurrentDataStructure (BaseArray< Char > &faceRemoved) |
Result< void > | ExpandCellByValue (const BaseArray< Vector > &planeNormals, const BaseArray< Int32 > &edgeToFaceBelonging, Float offset, BaseArray< Vector > &pointDisplacements) |
Result< Bool > | ShrinkCellByValue (const BaseArray< Vector > &planeNormals, Float offset) |
Result< Bool > | CutCellOnPlane (const Pair< Vector, Vector > &plane, Int32 planeNeighborIndex=NOTOK) |
Result< Bool > | CutFaceOnPlane (Int faceIndex, const Pair< Vector, Vector > &plane, const BaseArray< Float > &pointToCutPlaneDistance, const BaseArray< Int > &edgeIntesection, const BaseArray< Int > &pointTranslateMap, BaseArray< CellEdge > &newEdges, BaseArray< CellEdge > &newFaceEdges) |
Result< Bool > | ProcessInsideFaceAndAddToEdges (const BaseArray< CellEdge > &newFaceEdges, Int pointCount, BaseArray< CellEdge > &newEdges) |
Result< Int > | IntersectEdgeOnPlane (const Pair< Vector, Vector > &planeBaseArray, Int edgeIndex, BaseArray< Vector > &newPoints) |
Result< void > | MergePointsInCutData (BaseArray< Vector > &newPoints, BaseArray< CellEdge > &newEdges, BaseArray< Int > &newFaces, BaseArray< CellEdge > &newFaceEdges) |
Result< void > | RemoveIsolatedPoints () |
Result< void > | FusePoints (BaseArray< Int > &affectedPoints) |
Result< void > | RemoveFace (Int faceIndex, BaseArray< Int > &affectedPoints) |
Private Attributes | |
BaseArray< Int > | _verticesPreIndex |
BaseArray< Vector > | _vertices |
BaseArray< CellEdge > | _edges |
BaseArray< Int > | _faces |
BaseArray< Int32 > | _adjacentCell |
Bool | _isComplex |
Friends | |
class | Voronoi3DImpl |
|
default |
|
default |
MAXON_DISALLOW_COPY_AND_ASSIGN | ( | CellData | ) |
MAXON_OPERATOR_MOVE_ASSIGNMENT | ( | CellData | ) |
Result<void> CopyFrom | ( | const CellData & | src, |
COLLECTION_RESIZE_FLAGS | resizeFlags = COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE |
||
) |
Copies the contents of src into this object.
[in] | src | The object to copy from. |
[in] | resizeFlags | Resize flag for collections. |
void Reset | ( | ) |
Resets this cell to an empty cell.
void Flush | ( | ) |
Resets this cell to an empty cell (keeps memory).
Scales the current cell by a specific value.
[in] | scaleValue | the amout the cell will be scaled by. |
This cell checks the current cell data structure and optimizes it.
Gets the vertex list of this cell (writable).
Gets the edge list of this cell (writable).
Gets the face list of this cell (writable).
Gets the adjacent cell list of this cell (writable).
Gets the vertex list of this cell (not writable).
Gets the edge list of this cell (not writable).
Gets the face list of this cell (not writable).
Gets the adjacent cell list of this cell (not writable).
Bool IsComplex | ( | ) | const |
Returns if this cell is complex (most likely not convex)
Tests if a passed point is inside of the cell.
[in] | point | Point to test if it is inside. |
Result<void> MergeCells | ( | const BaseArray< Int > & | thisCellFaces, |
const CellData & | neighbourCell, | ||
const BaseArray< Int > & | otherCellFaces | ||
) |
Merges another cell into this one.
[in] | thisCellFaces | The faces of this cell that should be removed. |
[in] | neighbourCell | The other cell to fuse into this one. |
[in] | otherCellFaces | The faces of the other cell to remove. |
Fuses another cell into this one. The wall between the cells is removed if they are neighbors.
[in] | thisCellIndex | The external index of this cell. |
[in] | neighbourCell | The neighbor cell that should be fused. |
[in] | otherCellIndex | The external index of the neighbor cell. |
Calculates the Normal of a pointloop face of the cell.
[in] | faceIndex | The index of the cell to calculate the normal for. |
Adds the data of a different cell to this one. Indices are translated.
[in] | otherCell | The other cell whose data should be added |
Calculates and returns the Axis Aligned Bounding Box of the cell.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
friend |
|
private |