MeVisLabToolboxReference
|
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. | |
virtual | ~WEMPatch () |
Standard destructor. | |
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. | |
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. | |
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. | |
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. | |
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 programmatically 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. | |
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. | |
virtual void | saveTo (std::ostream &outstream, ProgressField *progress=NULL, float ratio=1.0f, float offset=0.0f) |
Saves this patch to given output stream. | |
virtual unsigned int | loadFrom (std::istream &instream, short version, bool swapBytes, ProgressField *progressFld=NULL, float ratio=1.0f, float offset=0.0f) |
Loads this patch from given input stream. | |
virtual unsigned int | loadFrom (char *map, short version, bool swapBytes, ProgressField *progressFld=NULL, float ratio=1.0f, float offset=0.0f) |
Loads this patch from given memory map. | |
WEMPrimitiveValueList * | createOrGetPrimitiveValueList (std::string name) |
Creates a PVL under the given name and returns a pointer to it. | |
WEMPrimitiveValueList * | getPrimitiveValueList (std::string name) |
Returns a pointer to the PVL with the given name. | |
const WEMPrimitiveValueList * | getPrimitiveValueList (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. | |
Protected Member Functions | |
virtual void | _addFaceUpdatePrimitiveValueLists () |
Updates primitive value lists on addFace. | |
virtual void | _delFaceUpdatePrimitiveValueLists (WEMFace *face) |
Updates primitive value lists on delFace. | |
virtual void | _initMembers (unsigned int bs) |
Initializes member variables, used by the constructors. | |
Protected Attributes | |
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. | |
unsigned int | _blocksize |
Initial blocksize for the WEMVector, WEMObjectVector variables used. | |
unsigned int | _uniqueId |
Unique ID of this WEM. | |
WEM * | _wem |
A pointer to the WEM this WEMPart is in. | |
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. |
Base class for triangle and quad patches.
Definition at line 31 of file WEMPatch.h.
ml::WEMPatch::WEMPatch | ( | unsigned int | bs = 8192 | ) |
Standard constructor.
ml::WEMPatch::WEMPatch | ( | WEM * | wem, |
unsigned int | bs = 8192 |
||
) |
ml::WEMPatch::WEMPatch | ( | const WEMPatch & | wemPatch | ) |
Copy constructor.
virtual ml::WEMPatch::~WEMPatch | ( | ) | [virtual] |
Standard destructor.
virtual void ml::WEMPatch::_addFaceUpdatePrimitiveValueLists | ( | ) | [protected, virtual] |
Updates primitive value lists on addFace.
virtual void ml::WEMPatch::_delFaceUpdatePrimitiveValueLists | ( | WEMFace * | face | ) | [protected, virtual] |
Updates primitive value lists on delFace.
virtual void ml::WEMPatch::_initMembers | ( | unsigned int | bs | ) | [protected, virtual] |
Initializes member variables, used by the constructors.
WEMEdge* ml::WEMPatch::addEdge | ( | ) | [inline] |
Instantiates a new WEMEdge and adds it to the internal edges vector.
Returns a pointer to this newly added edge.
Definition at line 96 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.
virtual WEMFace* ml::WEMPatch::addFace | ( | ) | [pure virtual] |
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.
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.
void ml::WEMPatch::addPatch | ( | WEMPatch * | wemPatch | ) |
Adds the primitives of the given patch to this patch.
Averages the given source node values and stores values in the given target node.
virtual void ml::WEMPatch::buildEdgeConnectivity | ( | ) | [virtual] |
Builds edge connectivity for the whole WEM.
Only nodes and faces have to be set and known to each other.
void ml::WEMPatch::buildLocalEdgeConnectivity | ( | WEMFace * | face | ) |
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.
WEMPrimitiveValueList* ml::WEMPatch::createOrGetPrimitiveValueList | ( | 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.
void ml::WEMPatch::delEdge | ( | WEMEdge * | edge | ) | [inline] |
Deletes an edge and erases it from the internal edges vector.
Definition at line 98 of file WEMPatch.h.
void ml::WEMPatch::deleteOrphanNodes | ( | ) |
Deletes orphan nodes (number of edges == number of faces == 0).
void ml::WEMPatch::delNode | ( | WEMNode * | node | ) |
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.
Reimplemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
void ml::WEMPatch::extendEdgeValueLists | ( | unsigned int | number, |
double | value | ||
) |
Extends all edge value lists with given value.
void ml::WEMPatch::extendFaceValueLists | ( | unsigned int | number, |
double | value | ||
) |
Extends all face value lists with the given value.
void ml::WEMPatch::extendNodeValueLists | ( | unsigned int | number, |
double | value | ||
) |
Extends all node value lists with the given value.
double ml::WEMPatch::getArea | ( | ) | const |
Returns the area of this patch in square mm.
unsigned int ml::WEMPatch::getBlocksize | ( | ) | const [inline] |
Returns the block size for the patch.
Definition at line 49 of file WEMPatch.h.
WEMBoundingBox* ml::WEMPatch::getBoundingBox | ( | ) | [inline] |
Returns the bounding box.
Definition at line 146 of file WEMPatch.h.
const WEMBoundingBox* ml::WEMPatch::getBoundingBox | ( | ) | const [inline] |
Returns the bounding box.
Definition at line 148 of file WEMPatch.h.
References getBoundingBox().
Referenced by getBoundingBox().
int ml::WEMPatch::getCreatorId | ( | ) | const [inline] |
Returns the creator ID of the WEMPatch.
Definition at line 182 of file WEMPatch.h.
std::string ml::WEMPatch::getDescription | ( | ) | const [inline] |
Returns the 'description' attribute of this WEMPatch.
Definition at line 203 of file WEMPatch.h.
WEMEdge* ml::WEMPatch::getEdgeAt | ( | unsigned int | index | ) | [inline] |
Returns the edge at the given index.
Definition at line 91 of file WEMPatch.h.
const WEMEdge* ml::WEMPatch::getEdgeAt | ( | unsigned int | index | ) | const [inline] |
Returns the edge at the given index.
Definition at line 93 of file WEMPatch.h.
References getEdgeAt().
Referenced by getEdgeAt().
const WEMIndexVector<WEMEdge>* ml::WEMPatch::getEdges | ( | ) | const [inline] |
Returns the pointer to the internal edges structure.
Definition at line 89 of file WEMPatch.h.
References getEdges().
Referenced by getEdges().
WEMIndexVector<WEMEdge>* ml::WEMPatch::getEdges | ( | ) | [inline] |
Returns the pointer to the internal edges structure.
Definition at line 87 of file WEMPatch.h.
virtual WEMFace* ml::WEMPatch::getFaceAt | ( | unsigned int | index | ) | [pure virtual] |
Returns the face at the given index.
Implemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
virtual const WEMFace* ml::WEMPatch::getFaceAt | ( | unsigned int | index | ) | const [pure virtual] |
Returns the face at the given index.
Implemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
unsigned int ml::WEMPatch::getId | ( | void | ) | const [inline] |
Returns the unique ID of this WEMPatch.
Definition at line 208 of file WEMPatch.h.
std::string ml::WEMPatch::getLabel | ( | ) | const [inline] |
Returns the 'label' attribute of this WEMPatch.
Definition at line 198 of file WEMPatch.h.
double ml::WEMPatch::getLUTMax | ( | ) | const [inline] |
Returns the maximum value of the LUT PVL for range determination.
Returns 0 if no LUT PVL has been registered.
Definition at line 166 of file WEMPatch.h.
References ml::WEMPrimitiveValueList::getMaxValue().
double ml::WEMPatch::getLUTMin | ( | ) | const [inline] |
Returns the minimum value of the LUT PVL for range determination.
Returns 0 if no LUT PVL has been registered.
Definition at line 158 of file WEMPatch.h.
References ml::WEMPrimitiveValueList::getMinValue().
WEMNode* ml::WEMPatch::getNodeAt | ( | unsigned int | index | ) | [inline] |
Returns the node at the given index.
Definition at line 64 of file WEMPatch.h.
const WEMNode* ml::WEMPatch::getNodeAt | ( | unsigned int | index | ) | const [inline] |
Returns the node at the given index.
Definition at line 66 of file WEMPatch.h.
References getNodeAt().
Referenced by getNodeAt().
const WEMIndexVector<WEMNode>* ml::WEMPatch::getNodes | ( | ) | const [inline] |
Returns the pointer to internal nodes structure.
Definition at line 62 of file WEMPatch.h.
References getNodes().
Referenced by getNodes().
WEMIndexVector<WEMNode>* ml::WEMPatch::getNodes | ( | ) | [inline] |
Returns the pointer to the internal nodes structure.
Definition at line 60 of file WEMPatch.h.
unsigned int ml::WEMPatch::getNumEdges | ( | ) | const [inline] |
Returns the number of edges in the patch.
Definition at line 85 of file WEMPatch.h.
virtual unsigned int ml::WEMPatch::getNumFaces | ( | ) | const [inline, virtual] |
Returns the number of faces in the patch.
Reimplemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
Definition at line 53 of file WEMPatch.h.
unsigned int ml::WEMPatch::getNumNodes | ( | ) | const [inline] |
Returns the number of nodes in the patch.
Definition at line 58 of file WEMPatch.h.
virtual PatchTypes ml::WEMPatch::getPatchType | ( | ) | const [pure virtual] |
Returns the mesh type of this patch.
Implemented in ml::WEMPolygonPatch, ml::WEMQuadPatch, and ml::WEMTrianglePatch.
WEMPrimitiveValueList* ml::WEMPatch::getPrimitiveValueList | ( | 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 | ( | std::string | name | ) | const |
Returns a pointer to the PVL with the given name.
If such a PVL is not existing, NULL is returned.
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.
std::string ml::WEMPatch::getType | ( | ) | const [inline] |
Returns the type of the WEMPatch.
Definition at line 178 of file WEMPatch.h.
double ml::WEMPatch::getVolume | ( | ) | const |
Returns the volume of this patch in cubic mm.
WEM* ml::WEMPatch::getWEM | ( | ) | [inline] |
Returns the internal pointer to the embracing WEM.
Definition at line 189 of file WEMPatch.h.
const WEM* ml::WEMPatch::getWEM | ( | ) | const [inline] |
Returns the internal pointer to the embracing WEM.
Definition at line 191 of file WEMPatch.h.
References getWEM().
Referenced by getWEM().
bool ml::WEMPatch::hasEdges | ( | ) | const [inline] |
Returns whether this patch has any edges.
Definition at line 100 of file WEMPatch.h.
virtual unsigned int ml::WEMPatch::loadFrom | ( | std::istream & | instream, |
short | version, | ||
bool | swapBytes, | ||
ProgressField * | progressFld = NULL , |
||
float | ratio = 1.0f , |
||
float | offset = 0.0f |
||
) | [virtual] |
Loads this patch from given input stream.
virtual unsigned int ml::WEMPatch::loadFrom | ( | char * | map, |
short | version, | ||
bool | swapBytes, | ||
ProgressField * | progressFld = NULL , |
||
float | ratio = 1.0f , |
||
float | offset = 0.0f |
||
) | [virtual] |
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.
virtual void ml::WEMPatch::saveTo | ( | std::ostream & | outstream, |
ProgressField * | progress = NULL , |
||
float | ratio = 1.0f , |
||
float | offset = 0.0f |
||
) | [virtual] |
Saves this patch to given output stream.
void ml::WEMPatch::setCreatorId | ( | int | id | ) | [inline] |
Sets the creator ID of the WEMPatch.
Definition at line 180 of file WEMPatch.h.
void ml::WEMPatch::setDescription | ( | std::string | desc | ) | [inline] |
Sets the 'description' attribute of this WEMPatch.
Definition at line 201 of file WEMPatch.h.
void ml::WEMPatch::setEdgeTraversalState | ( | bool | state | ) |
Sets the specified traversal state
to all edges.
void ml::WEMPatch::setFaceTraversalState | ( | bool | state | ) |
Sets the specified traversal state
to all faces.
void ml::WEMPatch::setId | ( | unsigned int | newId | ) | [inline] |
Sets the unique ID of this WEMPatch. Beware: do not set this ID programmatically unless you really know what you do!
Definition at line 211 of file WEMPatch.h.
void ml::WEMPatch::setLabel | ( | std::string | label | ) | [inline] |
Sets the 'label' attribute of this WEMPatch.
Definition at line 196 of file WEMPatch.h.
void ml::WEMPatch::setNodeTraversalState | ( | bool | state | ) |
Sets the specified traversal state
to all nodes.
void ml::WEMPatch::setType | ( | std::string | type | ) | [inline] |
Sets the type of the WEMPatch.
Definition at line 176 of file WEMPatch.h.
void ml::WEMPatch::setWEM | ( | WEM * | wem | ) | [inline] |
Sets the internal pointer to the embracing WEM.
Definition at line 187 of file WEMPatch.h.
void ml::WEMPatch::triangulate | ( | WEMTrianglePatch * | wemPatch, |
TriangulationModes | triangulationMode | ||
) |
Triangulates the patch and adds triangles to the given triangle patch.
WEMAttributes ml::WEMPatch::_attributes [protected] |
The attributes of this WEMPatch.
Definition at line 294 of file WEMPatch.h.
unsigned int ml::WEMPatch::_blocksize [protected] |
Initial blocksize for the WEMVector, WEMObjectVector variables used.
Definition at line 282 of file WEMPatch.h.
WEMBoundingBox* ml::WEMPatch::_boundingBox [protected] |
The bounding box of this WEMPatch.
Definition at line 296 of file WEMPatch.h.
int ml::WEMPatch::_creatorId [protected] |
ID of the creator of this WEMPatch.
Definition at line 291 of file WEMPatch.h.
WEMIndexVector<WEMEdge>* ml::WEMPatch::_edges [protected] |
The vector that holds all the edges of the wem.
Definition at line 280 of file WEMPatch.h.
WEMIndexVector<WEMNode>* ml::WEMPatch::_nodes [protected] |
The vector that holds all the nodes of the wem.
Definition at line 278 of file WEMPatch.h.
std::vector<WEMPrimitiveValueList*> ml::WEMPatch::_primitiveValueLists [protected] |
The registered primitive value lists vector.
Definition at line 299 of file WEMPatch.h.
std::string ml::WEMPatch::_type [protected] |
Type of this WEMPatch.
Definition at line 289 of file WEMPatch.h.
unsigned int ml::WEMPatch::_uniqueId [protected] |
Unique ID of this WEM.
Definition at line 285 of file WEMPatch.h.
WEM* ml::WEMPatch::_wem [protected] |
A pointer to the WEM this WEMPart is in.
Definition at line 287 of file WEMPatch.h.