MeVisLab Toolbox Reference
|
Base class for triangle and quad patches. More...
#include <WEMPatch.h>
Public Member Functions | |
WEMPatch (unsigned int bs=8192) | |
Standard constructor. | |
WEMPatch (WEM *wem, unsigned int bs=8192) | |
Constructor which takes a pointer to the WEM this WEM is in. | |
WEMPatch (const WEMPatch &wemPatch) | |
Copy constructor. | |
WEMPatch (WEMPatch &&other) noexcept | |
Move c'tor. | |
WEMPatch & | operator= (WEMPatch &&other) noexcept |
Move assignment operator. | |
virtual | ~WEMPatch () |
Standard destructor. | |
virtual WEMPatch * | copy ()=0 |
Create a (deep) copy of the patch. | |
void | dispose () |
Disposes of internal data structures. | |
void | addPatch (WEMPatch *wemPatch) |
Adds the primitives of the given patch to this patch. | |
unsigned int | getBlocksize () const |
Returns the block size for the patch. | |
virtual PatchTypes | getPatchType () const =0 |
Returns the mesh type of this patch. | |
virtual unsigned int | getNumFaces () const |
Returns the number of faces in the patch. | |
bool | isTrianglePatch () const |
Helper method to check if the patch is a triangle patch. | |
bool | isQuadPatch () const |
Helper method to check if the patch is a quad patch. | |
unsigned int | getNumNodes () const |
Returns the number of nodes in the patch. | |
WEMIndexVector< WEMNode > * | getNodes () |
Returns the pointer to the internal nodes structure. | |
const WEMIndexVector< WEMNode > * | getNodes () const |
Returns the pointer to internal nodes structure. | |
WEMNode * | getNodeAt (unsigned int index) |
Returns the node at the given index. | |
const WEMNode * | getNodeAt (unsigned int index) const |
Returns the node at the given index. | |
WEMNode * | addNode () |
Instantiates a new WEMNode and adds it to the internal nodes vector. | |
WEMNode * | addNodeNoUpdatePrimitiveValueLists () |
Creates and returns a new node without changing the nodes PVL. | |
void | delNode (WEMNode *node) |
Deletes the given node and erases it from the internal nodes vector. | |
void | addNodeValues (WEMNode *target, WEMNode *source, double modifier) |
Adds node values from node source to given target node. | |
void | averageNodeValues (WEMNode *target, WEMNode *source1, WEMNode *source2) |
Averages the given source node values and stores values in the given target node. | |
void | extendNodeValueLists (unsigned int number, double value) |
Extends all node value lists with the given value. | |
unsigned int | getNumEdges () const |
Returns the number of edges in the patch. | |
WEMIndexVector< WEMEdge > * | getEdges () |
Returns the pointer to the internal edges structure. | |
const WEMIndexVector< WEMEdge > * | getEdges () const |
Returns the pointer to the internal edges structure. | |
WEMEdge * | getEdgeAt (unsigned int index) |
Returns the edge at the given index. | |
const WEMEdge * | getEdgeAt (unsigned int index) const |
Returns the edge at the given index. | |
WEMEdge * | addEdge () |
Instantiates a new WEMEdge and adds it to the internal edges vector. | |
void | delEdge (WEMEdge *edge) |
Deletes an edge and erases it from the internal edges vector. | |
bool | hasEdges () const |
Returns whether this patch has any edges. | |
void | addEdgeValues (WEMEdge *target, WEMEdge *source, double modifier) |
Adds the edge values from edge source to given target edge. | |
void | extendEdgeValueLists (unsigned int number, double value) |
Extends all edge value lists with given value. | |
virtual WEMFace * | getFaceAt (unsigned int index)=0 |
Returns the face at the given index. | |
virtual const WEMFace * | getFaceAt (unsigned int index) const =0 |
Returns the face at the given index. | |
virtual WEMFace * | addFace ()=0 |
Instantiates a new face and adds it to the internal faces vector. | |
void | addFaceValues (WEMFace *target, WEMFace *source, double modifier) |
Adds the face values from face source to given target face. | |
void | extendFaceValueLists (unsigned int number, double value) |
Extends all face value lists with the given value. | |
void | setNodeTraversalState (bool state) |
Sets the specified traversal state to all nodes. | |
void | setEdgeTraversalState (bool state) |
Sets the specified traversal state to all edges. | |
void | setFaceTraversalState (bool state) |
Sets the specified traversal state to all faces. | |
void | computeNormals () |
Computes all normals. | |
void | flipNormals () |
Flip all normals. | |
void | applyMatrix (const Matrix4 &transformationMatrix) |
Applies the given matrix on all nodes, applies the inverse transposed matrix on all node normals, and invalidates all face bounding boxes. | |
double | getArea () const |
Returns the area of this patch in square mm. | |
double | getVolume () const |
Returns the volume of this patch in cubic mm. | |
bool | pointsOutwards () const |
Checks and returns whether this patch has most normals pointing outwards. | |
WEMBoundingBox * | getBoundingBox () |
Returns the bounding box. | |
const WEMBoundingBox * | getBoundingBox () const |
Returns the bounding box. | |
void | computeBoundingBox () |
Computes the bounding box. | |
void | centerByBoundingBox () |
Centers the patch by its bounding box. | |
void | translate (const Vector3 &offset) |
Translate all nodes by the given offset. | |
double | getLUTMin () const |
Returns the minimum value of the LUT PVL for range determination. | |
double | getLUTMax () const |
Returns the maximum value of the LUT PVL for range determination. | |
void | setType (std::string type) |
Sets the type of the WEMPatch. | |
std::string | getType () const |
Returns the type of the WEMPatch. | |
void | setCreatorId (int id) |
Sets the creator ID of the WEMPatch. | |
int | getCreatorId () const |
Returns the creator ID of the WEMPatch. | |
void | setWEM (WEM *wem) |
Sets the internal pointer to the embracing WEM. | |
WEM * | getWEM () |
Returns the internal pointer to the embracing WEM. | |
const WEM * | getWEM () const |
Returns the internal pointer to the embracing WEM. | |
void | setLabel (std::string label) |
Sets the 'label' attribute of this WEMPatch. | |
std::string | getLabel () const |
Returns the 'label' attribute of this WEMPatch. | |
void | setDescription (std::string desc) |
Sets the 'description' attribute of this WEMPatch. | |
std::string | getDescription () const |
Returns the 'description' attribute of this WEMPatch. | |
unsigned int | getId () const |
Returns the unique ID of this WEMPatch. | |
void | setId (unsigned int newId) |
Sets the unique ID of this WEMPatch. Beware: do not set this ID unless you really know what you do! | |
void | deleteOrphanNodes () |
Deletes orphan nodes (number of edges == number of faces == 0). | |
void | triangulate (WEMTrianglePatch *wemPatch, TriangulationModes triangulationMode) |
Triangulates the patch and adds triangles to the given triangle patch. | |
void | mirror () |
Mirrors the faces in this patch. | |
virtual void | sortFacesByZPosition ()=0 |
Sorts the faces by the z-position of their centroids. | |
WEMPatch * | makeCompatible (WEMRequirements *requirements, TriangulationModes triangulationMode) |
Makes WEMPatch compatible with the given requirements. | |
virtual void | buildEdgeConnectivity () |
Builds edge connectivity for the whole WEM. | |
void | buildLocalEdgeConnectivity (WEMFace *face) |
Builds local edge connectivity, only provided face is rebuild. | |
void | removeAllEdges () |
Removes all edges. | |
void | saveTo (OutStreamWrapper &ostreamWrapper, const WEMPersistenceParameters &writeParameters, WEMProgressUpdater &progressUpdater) |
Saves this patch to given output stream. | |
unsigned int | loadFrom (FileMapWrapper &mapper, const WEMPersistenceParameters &persistenceParameters, const WEMReadParameters ¶meters, WEMProgressUpdater &progressUpdater) |
Loads this patch from given memory map. | |
WEMPrimitiveValueList * | createOrGetPrimitiveValueList (const std::string &name) |
Creates a PVL under the given name and returns a pointer to it. | |
WEMPrimitiveValueList * | getPrimitiveValueList (const std::string &name) |
Returns a pointer to the PVL with the given name. | |
const WEMPrimitiveValueList * | getPrimitiveValueList (const std::string &name) const |
Returns a pointer to the PVL with the given name. | |
std::vector< std::string > | getRegisteredPrimitiveValueLists () const |
Returns all available primitive value lists as a vector filled with the registered names of the PVLs. | |
const std::vector< WEMPrimitiveValueList * > & | getPrimitiveValueLists () const |
Returns an array of the primitive value lists. | |
bool | removePrimitiveValueList (const std::string &name) |
Removes the PVL with the given name. Returns whether the operation was successful. | |
bool | hasSingleColoredPVL () |
Returns whether the patch has a PVL set for single colored faces. | |
bool | hasAllFacesSingleColored () |
Returns whether all faces are single colored. | |
unsigned int | getNumSingleColoredFaces () |
Return the number of single-colored faces. | |
bool | isSingleColored (WEMFace *face) |
Returns whether the given face is single colored. | |
bool | isSingleColored (WEMEdge *edge) |
Returns whether an adjacent face to the given edge is single colored. | |
bool | isSingleColored (WEMNode *node) |
Returns whether an adjacent face to the given node is single colored. | |
Protected Member Functions | |
virtual void | _addFaceUpdatePrimitiveValueLists () |
Updates primitive value lists on addFace. | |
virtual void | _delFaceUpdatePrimitiveValueLists (WEMFace *face) |
Updates primitive value lists on delFace. | |
void | _getReorderedIndicesForFaces (std::vector< unsigned int > &reorderedIndices) |
Protected Attributes | |
unsigned int | _blocksize |
Initial blocksize for the WEMVector, WEMObjectVector variables used. | |
WEMIndexVector< WEMNode > | _nodes |
The vector that holds all the nodes of the wem. | |
WEMIndexVector< WEMEdge > | _edges |
The vector that holds all the edges of the wem. | |
WEM * | _wem {} |
A pointer to the WEM this WEMPart is in. | |
unsigned int | _uniqueId {} |
Unique ID of this WEM. | |
std::string | _type |
Type of this WEMPatch. | |
int | _creatorId |
ID of the creator of this WEMPatch. | |
WEMAttributes | _attributes |
The attributes of this WEMPatch. | |
WEMBoundingBox | _boundingBox |
The bounding box of this WEMPatch. | |
std::vector< WEMPrimitiveValueList * > | _primitiveValueLists |
The registered primitive value lists vector. | |
Friends | |
class | WEMPatchPersistence |
Base class for triangle and quad patches.
Definition at line 47 of file WEMPatch.h.
|
noexcept |
Move c'tor.
|
virtual |
Standard destructor.
Updates primitive value lists on addFace.
Updates primitive value lists on delFace.
|
protected |
|
inline |
Instantiates a new WEMEdge and adds it to the internal edges vector.
Returns a pointer to this newly added edge.
Definition at line 125 of file WEMPatch.h.
Adds the edge values from edge source to given target edge.
Multiplies by given modifier. Used in constructing new edges out of N edges by averaging.
Instantiates a new face and adds it to the internal faces vector.
Returns a pointer to this newly added face.
Implemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
Adds the face values from face source to given target face.
Multiplies by given modifier. Used in constructing new faces out of N faces by averaging.
WEMNode * ml::WEMPatch::addNode | ( | ) |
Instantiates a new WEMNode and adds it to the internal nodes vector.
Returns a pointer to this newly added node. Also updates all node value lists with a new default value.
WEMNode * ml::WEMPatch::addNodeNoUpdatePrimitiveValueLists | ( | ) |
Creates and returns a new node without changing the nodes PVL.
Adds node values from node source to given target node.
Multiplies by given modifier. Used in constructing new nodes out of N nodes by averaging.
Adds the primitives of the given patch to this patch.
Applies the given matrix on all nodes, applies the inverse transposed matrix on all node normals, and invalidates all face bounding boxes.
Averages the given source node values and stores values in the given target node.
Builds edge connectivity for the whole WEM.
Only nodes and faces have to be set and known to each other.
Builds local edge connectivity, only provided face is rebuild.
Only nodes and faces have to be set and known to each other.
void ml::WEMPatch::centerByBoundingBox | ( | ) |
Centers the patch by its bounding box.
void ml::WEMPatch::computeBoundingBox | ( | ) |
Computes the bounding box.
void ml::WEMPatch::computeNormals | ( | ) |
Computes all normals.
Create a (deep) copy of the patch.
Implemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
WEMPrimitiveValueList * ml::WEMPatch::createOrGetPrimitiveValueList | ( | const std::string & | name | ) |
Creates a PVL under the given name and returns a pointer to it.
If the PVL already exists, a pointer to the existing PVL is returned.
Deletes an edge and erases it from the internal edges vector.
Definition at line 127 of file WEMPatch.h.
void ml::WEMPatch::deleteOrphanNodes | ( | ) |
Deletes orphan nodes (number of edges == number of faces == 0).
Deletes the given node and erases it from the internal nodes vector.
Also updates all node value lists by deleting the corresponding value.
void ml::WEMPatch::dispose | ( | ) |
Disposes of internal data structures.
Extends all edge value lists with given value.
Extends all face value lists with the given value.
Extends all node value lists with the given value.
void ml::WEMPatch::flipNormals | ( | ) |
Flip all normals.
double ml::WEMPatch::getArea | ( | ) | const |
Returns the area of this patch in square mm.
Returns the block size for the patch.
Definition at line 71 of file WEMPatch.h.
|
inline |
Returns the bounding box.
Definition at line 180 of file WEMPatch.h.
|
inline |
Returns the bounding box.
Definition at line 182 of file WEMPatch.h.
References getBoundingBox().
Referenced by getBoundingBox().
|
inline |
Returns the creator ID of the WEMPatch.
Definition at line 219 of file WEMPatch.h.
|
inline |
Returns the 'description' attribute of this WEMPatch.
Definition at line 240 of file WEMPatch.h.
Returns the edge at the given index.
Definition at line 120 of file WEMPatch.h.
Returns the edge at the given index.
Definition at line 122 of file WEMPatch.h.
References getEdgeAt().
Referenced by getEdgeAt().
|
inline |
Returns the pointer to the internal edges structure.
Definition at line 116 of file WEMPatch.h.
|
inline |
Returns the pointer to the internal edges structure.
Definition at line 118 of file WEMPatch.h.
References getEdges().
Referenced by getEdges().
Returns the face at the given index.
Implemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
Returns the face at the given index.
Implemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
Returns the unique ID of this WEMPatch.
Definition at line 245 of file WEMPatch.h.
|
inline |
Returns the 'label' attribute of this WEMPatch.
Definition at line 235 of file WEMPatch.h.
|
inline |
Returns the maximum value of the LUT PVL for range determination.
Returns 0 if no LUT PVL has been registered.
Definition at line 203 of file WEMPatch.h.
References mlrange_cast().
|
inline |
Returns the minimum value of the LUT PVL for range determination.
Returns 0 if no LUT PVL has been registered.
Definition at line 195 of file WEMPatch.h.
References mlrange_cast().
Returns the node at the given index.
Definition at line 91 of file WEMPatch.h.
Returns the node at the given index.
Definition at line 93 of file WEMPatch.h.
References getNodeAt().
Referenced by getNodeAt().
|
inline |
Returns the pointer to the internal nodes structure.
Definition at line 87 of file WEMPatch.h.
|
inline |
Returns the pointer to internal nodes structure.
Definition at line 89 of file WEMPatch.h.
References getNodes().
Referenced by getNodes().
Returns the number of edges in the patch.
Definition at line 114 of file WEMPatch.h.
Returns the number of faces in the patch.
Reimplemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
Definition at line 75 of file WEMPatch.h.
Returns the number of nodes in the patch.
Definition at line 85 of file WEMPatch.h.
|
pure virtual |
Returns the mesh type of this patch.
Implemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
WEMPrimitiveValueList * ml::WEMPatch::getPrimitiveValueList | ( | const std::string & | name | ) |
Returns a pointer to the PVL with the given name.
If such a PVL is not existing, NULL is returned.
const WEMPrimitiveValueList * ml::WEMPatch::getPrimitiveValueList | ( | const std::string & | name | ) | const |
Returns a pointer to the PVL with the given name.
If such a PVL is not existing, NULL is returned.
|
inline |
Returns an array of the primitive value lists.
Definition at line 309 of file WEMPatch.h.
std::vector< std::string > ml::WEMPatch::getRegisteredPrimitiveValueLists | ( | ) | const |
Returns all available primitive value lists as a vector filled with the registered names of the PVLs.
|
inline |
Returns the type of the WEMPatch.
Definition at line 215 of file WEMPatch.h.
double ml::WEMPatch::getVolume | ( | ) | const |
Returns the volume of this patch in cubic mm.
|
inline |
Returns the internal pointer to the embracing WEM.
Definition at line 226 of file WEMPatch.h.
Returns the internal pointer to the embracing WEM.
Definition at line 228 of file WEMPatch.h.
References getWEM().
Referenced by getWEM().
bool ml::WEMPatch::hasAllFacesSingleColored | ( | ) |
Returns whether all faces are single colored.
|
inline |
Returns whether this patch has any edges.
Definition at line 129 of file WEMPatch.h.
bool ml::WEMPatch::hasSingleColoredPVL | ( | ) |
Returns whether the patch has a PVL set for single colored faces.
|
inline |
Helper method to check if the patch is a quad patch.
Definition at line 80 of file WEMPatch.h.
References ml::WEM_PATCH_QUADS.
Returns whether an adjacent face to the given edge is single colored.
Returns whether the given face is single colored.
Returns whether an adjacent face to the given node is single colored.
|
inline |
Helper method to check if the patch is a triangle patch.
Definition at line 78 of file WEMPatch.h.
References ml::WEM_PATCH_TRIANGLES.
unsigned int ml::WEMPatch::loadFrom | ( | FileMapWrapper & | mapper, |
const WEMPersistenceParameters & | persistenceParameters, | ||
const WEMReadParameters & | parameters, | ||
WEMProgressUpdater & | progressUpdater ) |
Loads this patch from given memory map.
WEMPatch * ml::WEMPatch::makeCompatible | ( | WEMRequirements * | requirements, |
TriangulationModes | triangulationMode ) |
Makes WEMPatch compatible with the given requirements.
void ml::WEMPatch::mirror | ( | ) |
Mirrors the faces in this patch.
bool ml::WEMPatch::pointsOutwards | ( | ) | const |
Checks and returns whether this patch has most normals pointing outwards.
void ml::WEMPatch::removeAllEdges | ( | ) |
Removes all edges.
Removes the PVL with the given name. Returns whether the operation was successful.
void ml::WEMPatch::saveTo | ( | OutStreamWrapper & | ostreamWrapper, |
const WEMPersistenceParameters & | writeParameters, | ||
WEMProgressUpdater & | progressUpdater ) |
Saves this patch to given output stream.
Sets the creator ID of the WEMPatch.
Definition at line 217 of file WEMPatch.h.
|
inline |
Sets the 'description' attribute of this WEMPatch.
Definition at line 238 of file WEMPatch.h.
References mlrange_cast().
Sets the specified traversal state
to all edges.
Sets the specified traversal state
to all faces.
Sets the unique ID of this WEMPatch. Beware: do not set this ID unless you really know what you do!
Definition at line 248 of file WEMPatch.h.
|
inline |
Sets the 'label' attribute of this WEMPatch.
Definition at line 233 of file WEMPatch.h.
Sets the specified traversal state
to all nodes.
|
inline |
Sets the type of the WEMPatch.
Definition at line 213 of file WEMPatch.h.
Sets the internal pointer to the embracing WEM.
Definition at line 224 of file WEMPatch.h.
References mlrange_cast().
Sorts the faces by the z-position of their centroids.
Implemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
void ml::WEMPatch::triangulate | ( | WEMTrianglePatch * | wemPatch, |
TriangulationModes | triangulationMode ) |
Triangulates the patch and adds triangles to the given triangle patch.
|
friend |
Definition at line 366 of file WEMPatch.h.
|
protected |
The attributes of this WEMPatch.
Definition at line 353 of file WEMPatch.h.
Initial blocksize for the WEMVector, WEMObjectVector variables used.
Definition at line 338 of file WEMPatch.h.
|
protected |
The bounding box of this WEMPatch.
Definition at line 355 of file WEMPatch.h.
|
protected |
ID of the creator of this WEMPatch.
Definition at line 350 of file WEMPatch.h.
|
protected |
The vector that holds all the edges of the wem.
Definition at line 342 of file WEMPatch.h.
|
protected |
The vector that holds all the nodes of the wem.
Definition at line 340 of file WEMPatch.h.
|
protected |
The registered primitive value lists vector.
Definition at line 358 of file WEMPatch.h.
|
protected |
Type of this WEMPatch.
Definition at line 348 of file WEMPatch.h.
Unique ID of this WEM.
Definition at line 346 of file WEMPatch.h.
|
protected |
A pointer to the WEM this WEMPart is in.
Definition at line 344 of file WEMPatch.h.