MeVisLab Toolbox Reference
ml::WEM Class Reference

A WEM comprises a number of WEMPatches. More...

#include <WEM.h>

Inheritance diagram for ml::WEM:
ml::RefCountedBase ml::EventSource ml::Base

Classes

struct  WEMNotificationCBData
 This struct combines a function pointer, a user data pointer and a flag for the notification observer mechanism. More...
 

Public Member Functions

 WEM ()
 Standard constructor.
 
 WEM (const WEM &wem)
 Copy constructor.
 
void clone (const WEM &wem)
 Clones the internal WEMs of the given WEM to this one.
 
WEMdeepCopy () const override
 Returns a deep copy of this WEM.
 
bool isValid () const
 Returns whether this WEM is valid.
 
void addNotificationObserver (wemNotificationCB *callback, void *userData)
 Adds a notification observer to this WEM.
 
void removeNotificationObserver (wemNotificationCB *callback, void *userData)
 Removes a notification observer from this WEM.
 
void notifyObservers (std::vector< WEMEventContainer > ecList)
 Notifies all observers with the events stored in the event container list.
 
void notifyObservers (const ml::WEMNotificationType &notificationType)
 Notifies all observers with the given event.
 
unsigned int getCurrentWEMPatchId ()
 Returns the current last id (incremented each call) for WEMPatches.
 
void setCurrentWEMPatchId (unsigned int id)
 Sets the current last id for WEMPatches. Do not mess with it.
 
void addWEMPatch (WEMPatch *wemPatch, bool mergeAllPatches=false)
 Adds the given WEMPatch as a pointer to the list.
 
WEMTrianglePatchaddWEMPatchCopy (WEMTrianglePatch *wemPatch, bool assignNewId=false)
 Adds a copy of the given WEMPatch (WEMTrianglePatch) to the list. Assigns optionally a new id to the patch.
 
WEMQuadPatchaddWEMPatchCopy (WEMQuadPatch *wemPatch, bool assignNewId=false)
 Adds a copy of the given WEMPatch (WEMQuadPatch) to the list. Assigns optionally a new id to the patch.
 
WEMPolygonPatchaddWEMPatchCopy (WEMPolygonPatch *wemPatch, bool assignNewId=false)
 Adds a copy of the given WEMPatch (WEMPolygonPatch) to the list. Assigns optionally a new id to the patch.
 
bool removeWEMPatch (WEMPatch *wemPatch)
 Removes a given WEMPatch from the list.
 
bool removeWEMPatch (unsigned int id)
 Removes a WEMPatch by its id .
 
bool removeAll ()
 Removes all WEMPatches from the list.
 
void removeAllNoDelete ()
 Clear internal vector (DOES NOT DELETE WEMPatches!!!)
 
WEMPatchgetWEMPatchAt (unsigned int index)
 Returns a pointer to the WEMPatch at the given position in the internal list.
 
const WEMPatchgetWEMPatchAt (unsigned int index) const
 Returns a pointer to the WEMPatch at the given position in the internal list.
 
WEMPatchgetWEMPatchById (unsigned int id)
 Returns a pointer to the WEMPatch with the given unique id.
 
const WEMPatchgetWEMPatchById (unsigned int id) const
 Returns a pointer to the WEMPatch with the given unique id.
 
unsigned int getWEMPatchIndex (WEMPatch *wemPatch) const
 Returns the index of the given WEMPatch in its list.
 
unsigned int getWEMPatchIndex (unsigned int id) const
 Returns the index of the WEMPatch with the given id in its list.
 
bool hasWEMPatch (WEMPatch *wemPatch) const
 Returns whether there is the given WEMPatch in the list.
 
unsigned int getNumWEMPatches () const
 Returns the number of WEMs in the list.
 
void enableRepaintObserver ()
 Enables the repaint observer mechanism.
 
void disableRepaintObserver ()
 Disables the repaint observer mechanism.
 
void enableFinishedObserver ()
 Enables the finished observer mechanism.
 
void disableFinishedObserver ()
 Disables the finished observer mechanism.
 
void enableInteractionObserver ()
 Enables the interaction observer mechanism.
 
void disableInteractionObserver ()
 Disables the interaction observer mechanism.
 
void enableSelectionObserver ()
 Enables the selection observer mechanism.
 
void disableSelectionObserver ()
 Disables the selection observer mechanism.
 
bool isRepaintNotificationEnabled () const
 Returns whether the repaint notification is enabled.
 
bool isFinishedNotificationEnabled () const
 Returns whether the finished notification is enabled.
 
bool isInteractionInitNotificationEnabled () const
 Returns whether the interaction init notification is enabled.
 
bool isSelectionNotificationEnabled () const
 Returns whether the selection notification is enabled.
 
int getId () const
 Returns the id of the WEM.
 
std::string getName () const
 Returns name of the WEM.
 
void setName (std::string name)
 Sets name of the WEM to the given string.
 
void saveWEMSurface (const std::string &filename, const WEMPersistenceParameters &persistenceParameters, ProgressField *progressFld=nullptr)
 Saves the geometry to the given file name.
 
void saveWEMSurface (std::ostream &outstream, const WEMPersistenceParameters &persistenceParameters, ProgressField *progressFld=nullptr)
 Saves the geometry to a given stream.
 
bool loadWEMSurface (const std::string &filename, bool generateEdges=true, ProgressField *progressFld=nullptr)
 Loads the geometry from a file given by its file name.
 
bool loadWEMSurface (const std::string &filename, MLuint64 filesize, bool generateEdges=true, ProgressField *progressFld=nullptr)
 Loads the geometry from a file given by its file name.
 
bool hasPrimitiveValueListForAllPatches (std::string description) const
 Returns whether all patches have a PVL with the given description.
 
std::vector< std::string > getRegisteredPrimitiveValueLists () const
 Returns unique list of registered primitive value lists for all patches as a vector.
 
void flatten (WEMTrianglePatch *triPatch, WEMRequirements *requirements, TriangulationModes triangulationMode)
 Flatten: joins and converts all patches to triangle patches with same normal orientation.
 
void mergeAllPatchesIntoSinglePatch ()
 Merges all internal WEMPatches into a single WEMPatch.
 
- Public Member Functions inherited from ml::RefCountedBase
 RefCountedBase ()
 Constructor.
 
 RefCountedBase (const RefCountedBase &)
 Explicit copy constructor.
 
virtual void incRefCount () const
 Increase reference count.
 
virtual void decRefCount () const
 Decrease ref count (object will be deleted if ref count is decremented to 0)
 
bool isRefCountedBase () const override
 Returns if the instance is derived from RefCountedBase.
 
- Public Member Functions inherited from ml::EventSource
 EventSource ()
 
 EventSource (const EventSource &evSource)
 
 ~EventSource () override
 
void addEventListener (BaseEventCallback *cb, void *userData)
 add event listener callback to this Base object - the userData will be the first argument when the callback is called
 
void removeEventListener (BaseEventCallback *cb, void *userData)
 remove event listener callback from this Base object - arguments must be the same as for the addEventListener call
 
bool hasEventListeners () const
 check if any event listeners have been added to this Base object; this can be used to skip the sendEvent call (and the potentially expensive building of the event object) altogether
 
- Public Member Functions inherited from ml::Base
 Base ()
 Constructor.
 
virtual ~Base ()
 Destructor.
 
bool isOfAllowedType (const std::vector< const RuntimeType * > &types) const
 Check if this object's type is equal to or derived from one of the types given in the argument.
 
virtual std::string detailString () const
 Return a string describing this object.
 
virtual bool implementsPersistence (PersistenceInterface) const
 Override this method to declare which persistence interfaces are implemented by your derived class.
 
virtual std::string persistentState () const
 Returns a string describing the object's internal state.
 
virtual void setPersistentState (const std::string &state)
 Restores the object's internal state from a string that had been previously generated using persistentState().
 
virtual void addStateToTree (TreeNode *) const
 Attaches the object state as children of the given parent node.
 
virtual void readStateFromTree (TreeNode *)
 Reads the object state from the children of the given parent node.
 
virtual void writeTo (AbstractPersistenceOutputStream *) const
 Write the objects state to the data stream object.
 
virtual void readFrom (AbstractPersistenceInputStream *, int)
 Read the objects state from the data stream object.
 

Static Public Member Functions

static void removeNotificationObserverFromAllWEMs (wemNotificationCB *callback, void *userData)
 Removes a certain notification observer from all WEM.
 
- Static Public Member Functions inherited from ml::RefCountedBase
static void updateReferenceCountingIfSupported (Base *oldValue, Base *newValue, bool &isRefCountedBase)
 Helper method that handles inc/dec of ref count if base instances support it.
 

Protected Member Functions

 ~WEM () override
 The WEM destructor is protected since the WEM ownership is managed by the WEMPtr intrusive smart pointer.
 
- Protected Member Functions inherited from ml::RefCountedBase
 ~RefCountedBase () override
 Macro for the declaration of the runtime type system methods, defined in mlRuntimeSubClass.h.
 
- Protected Member Functions inherited from ml::EventSource
void sendEvent (BaseEvent *event, void *skipListener=nullptr)
 Macro for the declaration of the runtime type system methods, defined in mlRuntimeSubClass.h.
 

Additional Inherited Members

- Public Types inherited from ml::Base
enum  PersistenceInterface { PersistenceByString , PersistenceByTreeNode , PersistenceByStream }
 This enum describes the different persistence interfaces available. More...
 
- Protected Attributes inherited from ml::RefCountedBase
MLint32 _refCount
 Reference count.
 

Detailed Description

A WEM comprises a number of WEMPatches.

The WEM is derived from Base and can be used as a data structure in a MeVisLab network. The WEM ownership is managed via smart pointers, make sure to use a WEMPtr to manage newly created WEM objects.

Definition at line 87 of file WEM.h.

Constructor & Destructor Documentation

◆ WEM() [1/2]

ml::WEM::WEM ( )

Standard constructor.

◆ WEM() [2/2]

ml::WEM::WEM ( const WEM & wem)

Copy constructor.

◆ ~WEM()

ml::WEM::~WEM ( )
overrideprotected

The WEM destructor is protected since the WEM ownership is managed by the WEMPtr intrusive smart pointer.

If you encounter code that tries to delete a WEM object, you will very likely need to change the usage of a WEM* to a WEMPtr and replace the delete call with a NULL assignment.

Member Function Documentation

◆ addNotificationObserver()

void ml::WEM::addNotificationObserver ( wemNotificationCB * callback,
void * userData )

Adds a notification observer to this WEM.

◆ addWEMPatch()

void ml::WEM::addWEMPatch ( WEMPatch * wemPatch,
bool mergeAllPatches = false )

Adds the given WEMPatch as a pointer to the list.

Be very very careful of deleting this WEMPatch from the list afterwards. If mergeAllPatches is true, all incoming patches are merge to a single patch, otherwise, all incoming patches are just added in parallel.

◆ addWEMPatchCopy() [1/3]

WEMPolygonPatch * ml::WEM::addWEMPatchCopy ( WEMPolygonPatch * wemPatch,
bool assignNewId = false )

Adds a copy of the given WEMPatch (WEMPolygonPatch) to the list. Assigns optionally a new id to the patch.

◆ addWEMPatchCopy() [2/3]

WEMQuadPatch * ml::WEM::addWEMPatchCopy ( WEMQuadPatch * wemPatch,
bool assignNewId = false )

Adds a copy of the given WEMPatch (WEMQuadPatch) to the list. Assigns optionally a new id to the patch.

◆ addWEMPatchCopy() [3/3]

WEMTrianglePatch * ml::WEM::addWEMPatchCopy ( WEMTrianglePatch * wemPatch,
bool assignNewId = false )

Adds a copy of the given WEMPatch (WEMTrianglePatch) to the list. Assigns optionally a new id to the patch.

◆ clone()

void ml::WEM::clone ( const WEM & wem)

Clones the internal WEMs of the given WEM to this one.

◆ deepCopy()

WEM * ml::WEM::deepCopy ( ) const
overridevirtual

Returns a deep copy of this WEM.

Reimplemented from ml::Base.

◆ disableFinishedObserver()

void ml::WEM::disableFinishedObserver ( )
inline

Disables the finished observer mechanism.

Definition at line 212 of file WEM.h.

◆ disableInteractionObserver()

void ml::WEM::disableInteractionObserver ( )
inline

Disables the interaction observer mechanism.

Definition at line 217 of file WEM.h.

◆ disableRepaintObserver()

void ml::WEM::disableRepaintObserver ( )
inline

Disables the repaint observer mechanism.

Definition at line 207 of file WEM.h.

◆ disableSelectionObserver()

void ml::WEM::disableSelectionObserver ( )
inline

Disables the selection observer mechanism.

Definition at line 222 of file WEM.h.

◆ enableFinishedObserver()

void ml::WEM::enableFinishedObserver ( )
inline

Enables the finished observer mechanism.

Definition at line 210 of file WEM.h.

◆ enableInteractionObserver()

void ml::WEM::enableInteractionObserver ( )
inline

Enables the interaction observer mechanism.

Definition at line 215 of file WEM.h.

◆ enableRepaintObserver()

void ml::WEM::enableRepaintObserver ( )
inline

Enables the repaint observer mechanism.

Definition at line 205 of file WEM.h.

◆ enableSelectionObserver()

void ml::WEM::enableSelectionObserver ( )
inline

Enables the selection observer mechanism.

Definition at line 220 of file WEM.h.

◆ flatten()

void ml::WEM::flatten ( WEMTrianglePatch * triPatch,
WEMRequirements * requirements,
TriangulationModes triangulationMode )

Flatten: joins and converts all patches to triangle patches with same normal orientation.

◆ getCurrentWEMPatchId()

unsigned int ml::WEM::getCurrentWEMPatchId ( )

Returns the current last id (incremented each call) for WEMPatches.

If there are no WEMPatches in the list, this id is set back to 0. Can not be const, because if changes the object's state.

◆ getId()

int ml::WEM::getId ( ) const
inline

Returns the id of the WEM.

Definition at line 238 of file WEM.h.

◆ getName()

std::string ml::WEM::getName ( ) const
inline

Returns name of the WEM.

Definition at line 240 of file WEM.h.

◆ getNumWEMPatches()

unsigned int ml::WEM::getNumWEMPatches ( ) const
inline

Returns the number of WEMs in the list.

Definition at line 200 of file WEM.h.

◆ getRegisteredPrimitiveValueLists()

std::vector< std::string > ml::WEM::getRegisteredPrimitiveValueLists ( ) const

Returns unique list of registered primitive value lists for all patches as a vector.

◆ getWEMPatchAt() [1/2]

WEMPatch * ml::WEM::getWEMPatchAt ( unsigned int index)

Returns a pointer to the WEMPatch at the given position in the internal list.

◆ getWEMPatchAt() [2/2]

const WEMPatch * ml::WEM::getWEMPatchAt ( unsigned int index) const
inline

Returns a pointer to the WEMPatch at the given position in the internal list.

Definition at line 183 of file WEM.h.

References getWEMPatchAt().

Referenced by getWEMPatchAt().

◆ getWEMPatchById() [1/2]

WEMPatch * ml::WEM::getWEMPatchById ( unsigned int id)

Returns a pointer to the WEMPatch with the given unique id.

Returns NULL if no such WEMPatch is stored in the list.

◆ getWEMPatchById() [2/2]

const WEMPatch * ml::WEM::getWEMPatchById ( unsigned int id) const
inline

Returns a pointer to the WEMPatch with the given unique id.

Returns NULL if no such WEMPatch is stored in the list.

Definition at line 189 of file WEM.h.

References getWEMPatchById().

Referenced by getWEMPatchById().

◆ getWEMPatchIndex() [1/2]

unsigned int ml::WEM::getWEMPatchIndex ( unsigned int id) const

Returns the index of the WEMPatch with the given id in its list.

◆ getWEMPatchIndex() [2/2]

unsigned int ml::WEM::getWEMPatchIndex ( WEMPatch * wemPatch) const

Returns the index of the given WEMPatch in its list.

◆ hasPrimitiveValueListForAllPatches()

bool ml::WEM::hasPrimitiveValueListForAllPatches ( std::string description) const

Returns whether all patches have a PVL with the given description.

◆ hasWEMPatch()

bool ml::WEM::hasWEMPatch ( WEMPatch * wemPatch) const

Returns whether there is the given WEMPatch in the list.

◆ isFinishedNotificationEnabled()

bool ml::WEM::isFinishedNotificationEnabled ( ) const
inline

Returns whether the finished notification is enabled.

Definition at line 229 of file WEM.h.

◆ isInteractionInitNotificationEnabled()

bool ml::WEM::isInteractionInitNotificationEnabled ( ) const
inline

Returns whether the interaction init notification is enabled.

Definition at line 231 of file WEM.h.

◆ isRepaintNotificationEnabled()

bool ml::WEM::isRepaintNotificationEnabled ( ) const
inline

Returns whether the repaint notification is enabled.

Definition at line 227 of file WEM.h.

◆ isSelectionNotificationEnabled()

bool ml::WEM::isSelectionNotificationEnabled ( ) const
inline

Returns whether the selection notification is enabled.

Definition at line 233 of file WEM.h.

◆ isValid()

bool ml::WEM::isValid ( ) const

Returns whether this WEM is valid.

The WEM is valid if at least one WEMPatch has numFaces > 0 and numNodes > 0.

◆ loadWEMSurface() [1/2]

bool ml::WEM::loadWEMSurface ( const std::string & filename,
bool generateEdges = true,
ProgressField * progressFld = nullptr )

Loads the geometry from a file given by its file name.

Returns whether the operation was successful.

◆ loadWEMSurface() [2/2]

bool ml::WEM::loadWEMSurface ( const std::string & filename,
MLuint64 filesize,
bool generateEdges = true,
ProgressField * progressFld = nullptr )

Loads the geometry from a file given by its file name.

Returns whether the operation was successful.

◆ mergeAllPatchesIntoSinglePatch()

void ml::WEM::mergeAllPatchesIntoSinglePatch ( )

Merges all internal WEMPatches into a single WEMPatch.

This method does not use spatial information at all, so no nodes at the same position will be merged.

◆ notifyObservers() [1/2]

void ml::WEM::notifyObservers ( const ml::WEMNotificationType & notificationType)

Notifies all observers with the given event.

◆ notifyObservers() [2/2]

void ml::WEM::notifyObservers ( std::vector< WEMEventContainer > ecList)

Notifies all observers with the events stored in the event container list.

◆ removeAll()

bool ml::WEM::removeAll ( )

Removes all WEMPatches from the list.

Returns whether there was something to remove.

◆ removeAllNoDelete()

void ml::WEM::removeAllNoDelete ( )

Clear internal vector (DOES NOT DELETE WEMPatches!!!)

◆ removeNotificationObserver()

void ml::WEM::removeNotificationObserver ( wemNotificationCB * callback,
void * userData )

Removes a notification observer from this WEM.

◆ removeNotificationObserverFromAllWEMs()

static void ml::WEM::removeNotificationObserverFromAllWEMs ( wemNotificationCB * callback,
void * userData )
static

Removes a certain notification observer from all WEM.

◆ removeWEMPatch() [1/2]

bool ml::WEM::removeWEMPatch ( unsigned int id)

Removes a WEMPatch by its id .

Returns whether there was something to remove.

◆ removeWEMPatch() [2/2]

bool ml::WEM::removeWEMPatch ( WEMPatch * wemPatch)

Removes a given WEMPatch from the list.

Returns whether there was something to remove.

◆ saveWEMSurface() [1/2]

void ml::WEM::saveWEMSurface ( const std::string & filename,
const WEMPersistenceParameters & persistenceParameters,
ProgressField * progressFld = nullptr )

Saves the geometry to the given file name.

◆ saveWEMSurface() [2/2]

void ml::WEM::saveWEMSurface ( std::ostream & outstream,
const WEMPersistenceParameters & persistenceParameters,
ProgressField * progressFld = nullptr )

Saves the geometry to a given stream.

◆ setCurrentWEMPatchId()

void ml::WEM::setCurrentWEMPatchId ( unsigned int id)
inline

Sets the current last id for WEMPatches. Do not mess with it.

Definition at line 150 of file WEM.h.

◆ setName()

void ml::WEM::setName ( std::string name)
inline

Sets name of the WEM to the given string.

Definition at line 242 of file WEM.h.


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