MeVisLabToolboxReference
ml::WEMPatch Class Reference

Base class for triangle and quad patches. More...

#include <WEMPatch.h>

Inheritance diagram for ml::WEMPatch:
ml::WEMPolygonPatch ml::WEMQuadPatch ml::WEMTrianglePatch

List of all members.

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.
WEMNodegetNodeAt (unsigned int index)
 Returns the node at the given index.
const WEMNodegetNodeAt (unsigned int index) const
 Returns the node at the given index.
WEMNodeaddNode ()
 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.
WEMEdgegetEdgeAt (unsigned int index)
 Returns the edge at the given index.
const WEMEdgegetEdgeAt (unsigned int index) const
 Returns the edge at the given index.
WEMEdgeaddEdge ()
 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 WEMFacegetFaceAt (unsigned int index)=0
 Returns the face at the given index.
virtual const WEMFacegetFaceAt (unsigned int index) const =0
 Returns the face at the given index.
virtual WEMFaceaddFace ()=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.
WEMBoundingBoxgetBoundingBox ()
 Returns the bounding box.
const WEMBoundingBoxgetBoundingBox () 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.
WEMgetWEM ()
 Returns the internal pointer to the embracing WEM.
const WEMgetWEM () 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.
WEMPatchmakeCompatible (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.
WEMPrimitiveValueListcreateOrGetPrimitiveValueList (std::string name)
 Creates a PVL under the given name and returns a pointer to it.
WEMPrimitiveValueListgetPrimitiveValueList (std::string name)
 Returns a pointer to the PVL with the given name.
const WEMPrimitiveValueListgetPrimitiveValueList (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.

Detailed Description

Base class for triangle and quad patches.

Definition at line 31 of file WEMPatch.h.


Constructor & Destructor Documentation

ml::WEMPatch::WEMPatch ( unsigned int  bs = 8192)

Standard constructor.

ml::WEMPatch::WEMPatch ( WEM wem,
unsigned int  bs = 8192 
)

Constructor which takes a pointer to the WEM this WEM is in.

In this method, the unique id is set.

ml::WEMPatch::WEMPatch ( const WEMPatch wemPatch)

Copy constructor.

virtual ml::WEMPatch::~WEMPatch ( ) [virtual]

Standard destructor.


Member Function Documentation

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.

void ml::WEMPatch::addEdgeValues ( WEMEdge target,
WEMEdge source,
double  modifier 
)

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.

void ml::WEMPatch::addFaceValues ( WEMFace target,
WEMFace source,
double  modifier 
)

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.

void ml::WEMPatch::addNodeValues ( WEMNode target,
WEMNode source,
double  modifier 
)

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.

void ml::WEMPatch::averageNodeValues ( WEMNode target,
WEMNode source1,
WEMNode source2 
)

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.


Member Data Documentation

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.

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.

The vector that holds all the edges of the wem.

Definition at line 280 of file WEMPatch.h.

The vector that holds all the nodes of the wem.

Definition at line 278 of file WEMPatch.h.

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.


The documentation for this class was generated from the following file: