MeVisLab Toolbox Reference
ml::CSOList Class Reference

A CSOList comprises a number of CSOs and CSOGroups and is the central object for contour segmentation objects. More...

#include <CSOList.h>

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

Classes

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

Public Types

enum  NotificationType {
  NOTIFICATION_NONE = 0 , NOTIFICATION_CSO_SELECTION = 1 , NOTIFICATION_GROUP_SELECTION = 2 , NOTIFICATION_CSO_FINISHED = 4 ,
  NOTIFICATION_GROUP_FINISHED = 8 , NOTIFICATION_REPAINT = 16 , NOTIFICATION_INTERACTION_INIT = 32 , NOTIFICATION_START_NEW_CSO = 64 ,
  NOTIFICATION_CSO_MOVED = 128 , NOTIFICATION_CSO_UNDER_MOUSE_CHANGED = 256 , NOTIFICATION_UNDO_REDO_STATE_CHANGED = 512
}
 
- Public Types inherited from ml::Base
enum  PersistenceInterface { PersistenceByString , PersistenceByTreeNode , PersistenceByStream }
 This enum describes the different persistence interfaces available. More...
 

Public Member Functions

 CSOList ()
 Standard constructor.
 
 CSOList (bool shouldRegisterCSOList)
 
 CSOList (const CSOList &csoList)
 Copy constructor.
 
void clone (const CSOList &csoList, bool useUndoRedo=false)
 Clones the internal CSOs and CSOGroups of the specified CSOList to this one.
 
void merge (const CSOList &csoList, bool mergeGroupWithSameLabel, CSOIdToCSOIdMap &origToThisGroupIdMap, CSOIdToCSOIdMap &origToThisCSOIdMap, bool useUndoRedo=false)
 Merges the internal CSOs and CSOGroups of the specified CSOList to this one.
 
void merge (const CSOList &csoList, const CSOGroupMergeHandling mergeMode, CSOIdToCSOIdMap &origToThisGroupIdMap, CSOIdToCSOIdMap &origToThisCSOIdMap, bool useUndoRedo=false)
 Merges the internal CSOs and CSOGroups of the specified CSOList to this one with the specified merge mode.
 
bool saveTo (std::string &filename, bool binary, std::string &message, ModuleBackgroundTask *task=nullptr) const
 Pipes the internal structure of a this list (CSOs and CSOGroups) into the specified file.
 
bool saveTo (std::ostream &outStream, bool binary, ModuleBackgroundTask *task=nullptr) const
 Pipes the internal structure of a this list (CSOs and CSOGroups) into the specified stream.
 
bool loadFrom (std::string &filename, std::string &message, ModuleBackgroundTask *task=nullptr)
 Reads out the internal structure for this list (CSOs and CSOGroups) from the specified file.
 
bool loadFrom (std::istream &inStream, bool binary, std::string &message, ModuleBackgroundTask *task=nullptr)
 Reads out the internal structure for this list (CSOs and CSOGroups) from the specified stream.
 
void addNotificationObserver (csoNotificationCB *callback, void *userData)
 Adds a notification observer to this CSOList.
 
void removeNotificationObserver (csoNotificationCB *callback, void *userData)
 Removes a notification observer from this CSOList.
 
void notifyObservers (int notificationFlag)
 Notifies all observers.
 
void registerCSOListForNotificationObservers ()
 Registers this CSOList in the static list of CSOLists for handling observers.
 
void updateDisplays ()
 Updates all connected information/managing modules (not the renderers!).
 
CSOUndoRedoManagergetUndoRedoManager ()
 Returns a pointer to the undo/redo manager of this CSOList.
 
CSOManagergetManager ()
 Returns a pointer to the manager of this CSOList.
 
void setUndoRedoManager (CSOUndoRedoManager *undoRedoManager)
 Sets the internal undo/redo manager.
 
void setManager (CSOManager *manager)
 Sets the pointer to the internal manager and sets the CSOGroup default rules.
 
unsigned int getCurrentCSOId ()
 Returns the current last ID (incremented each call) for CSOs.
 
void updateCurrentCSOId (unsigned int newId)
 Updates the current ID if the new ID is larger than the current ID.
 
unsigned int getCurrentGroupId ()
 Returns the current last ID (incremented each call) for CSOGroups.
 
void setCurrentCSOId (unsigned int id)
 Sets the current last ID for CSOs. Do not tamper with it.
 
void setCurrentGroupId (unsigned int id)
 Sets the current last ID for CSOGroups. Do not tamper with it.
 
void updateCurrentGroupId (const unsigned int newId)
 Updates the current CSOGroup ID if the new ID is larger than the current ID.
 
bool isSelected (const CSO *cso) const
 Returns whether the specified CSO is currently selected.
 
bool isSelected (const CSOGroup *group) const
 Returns whether the specified CSOGroup is currently selected.
 
void addSelected (CSO *cso)
 Adds the specified CSO to the list of selected CSOs (no double entry).
 
void addSelected (CSOGroup *group)
 Adds the specified CSOGroup to the list of selected CSOGroups (no double entry).
 
bool setSelected (CSO *cso)
 Sets the specified CSO as being selected and deselects all other CSOs.
 
bool setSelected (CSOGroup *group)
 Set the specified CSOGroup as being selected and deselects all other CSOGroups.
 
void clearSelectedCSOs ()
 Clears all selected CSOs.
 
void clearSelectedGroups ()
 Clears all selected CSOGroups.
 
void clearSelectedSeedPoints ()
 Clears all selected seed points in all CSOs.
 
void removeFromSelection (CSO *cso)
 Removes the specified CSO from the list of selected CSOs.
 
void removeFromSelection (const std::vector< CSO * > &csos)
 Removes the specified CSOs from the list of selected CSOs.
 
void removeFromSelection (CSOGroup *group)
 Removes the specified CSOGroup from the list of selected CSOGroups.
 
void removeFromSelection (const std::vector< CSOGroup * > &groups)
 Removes the specified CSOGroups from the list of selected CSOGroups.
 
unsigned int numSelectedCSOs () const
 Returns the number of selected CSOs.
 
unsigned int numSelectedGroups () const
 Returns the number of selected CSOGroups.
 
CSOgetSelectedCSOAt (unsigned int index) const
 Returns a pointer to the selected CSO at the specified index; no checking!
 
CSOGroupgetSelectedGroupAt (unsigned int index) const
 Returns a pointer to the selected CSOGroup at the specified index; no checking!
 
CSOIdVector getSelectedCSOIds ()
 Returns a vector with IDs of the selected CSOs.
 
CSOIdVector getSelectedGroupIds ()
 Returns a vector with IDs of the selected CSOGroups.
 
Vector3 getCenterOfSelectedCSOs (bool &resultIsValid) const
 Returns the center position of all bounding boxes of all selected CSOs.
 
Vector3 getCenterOfSelectedGroups (bool &resultIsValid) const
 Returns the center position of all bounding boxes of all CSOs of all selected CSOGroups.
 
CSOgetCSOCurrentlyUnderMouse () const
 Returns the pointer to the CSO currently under the mouse cursor.
 
void setCSOCurrentlyUnderMouse (CSO *csoUnderMouse)
 Sets the pointer to the CSO currently under the mouse cursor.
 
Vector3 getCenterOfSelectedCSOs () const
 /deprecated Returns the center position of all bounding boxes of all selected CSOs.
 
Vector3 getCenterOfSelectedGroups () const
 /deprecated Returns the center position of all bounding boxes of all CSOs of all selected CSOGroups.
 
CSOaddCSO (bool useUndoRedo=true)
 Adds a new CSO to the list and returns its pointer.
 
CSOaddCSONoEvent (bool useUndoRedo=true)
 Adds a new CSO to the list and returns its pointer. (Without sending any events).
 
CSOaddCSO (const std::vector< Vector3 > &seedPositions, bool closed, bool useUndoRedo)
 Adds a new CSO to the list and returns its pointer.
 
CSOaddCSO (unsigned int numSeedPoints, bool closed, bool useUndoRedo)
 Adds a new CSO to the list and returns its pointer.
 
CSOaddCSOCopy (CSO *cso, bool useUndoRedo=true, unsigned int csoId=INVALID_CSO_ID)
 Adds a copy of the specified CSO to the list and returns a pointer to it.
 
CSOGroupaddGroup (bool useUndoRedo=true)
 Adds a new CSOGroup to the list and returns a pointer to it.
 
CSOGroupaddGroup (const std::string &label, bool useUndoRedo=true)
 Adds a new CSOGroup with specified label to the list and returns a pointer to it.
 
CSOGroupaddGroupCopy (CSOGroup *group, bool useUndoRedo=true, unsigned int groupId=INVALID_CSO_ID)
 Adds a copy of the specified CSOGroup to this list and returns a pointer to it.
 
CSOaddPoint (const Vector3 &position, const std::string &subtype="point")
 Adds a point CSO at the specified position.
 
CSOaddCircle (const Vector3 &midPoint, const Vector3 &normal, double radius, double pointDistanceInMM=1., const std::string &subtype="circle")
 Adds a circle CSO with its midPoint at the specified position and a specified radius.
 
CSOaddArrow (const Vector3 &pointAt, const Vector3 &direction, double length, double pointDistanceInMM=1., const std::string &subtype="arrow")
 Adds an arrow pointing to pointAt from direction with a length.
 
CSOaddPolygon (const std::vector< Vector3 > &points, double pointDistanceInMM=1., const std::string &subtype="polygon")
 Adds a linearly interpolated closed polygon with the specified points as seed points.
 
CSOaddPolyline (const std::vector< Vector3 > &points, double pointDistanceInMM=1., const std::string &subtype="polyline")
 Adds a linearly interpolated open polyline with the specified points as seed points.
 
CSOaddClosedSpline (const std::vector< Vector3 > &points, bool useInterpolation=true, double pointDistanceInMM=1., const std::string &subtype="spline")
 Adds a spline interpolated closed polygon with the specified points as seed points.
 
CSOaddOpenSpline (const std::vector< Vector3 > &points, bool useInterpolation=true, double pointDistanceInMM=1., const std::string &subtype="spline")
 Adds a spline interpolated open polygon with the specified points as seed points.
 
CSOaddRectangle (const Vector3 &midPoint, const Vector3 &uVector, const Vector3 &vVector, double angleInRadian=.0, double pointDistanceInMM=1., const std::string &subtype="rectangle")
 Adds a rectangle with a specified midPoint, uVector, and vVector.
 
CSOaddEllipse (const Vector3 &midPoint, const Vector3 &uVector, const Vector3 &vVector, double angleInRadian=.0, double pointDistanceInMM=1., const std::string &subtype="ellipse")
 Adds an ellipse with a specified midPoint, uVector, and vVector.
 
bool removeCSO (CSO *cso, bool useUndoRedo=true)
 Removes a specified CSO from the list and from CSOGroups it is in.
 
bool removeCSO (unsigned int id, bool useUndoRedo=true)
 Removes a CSO by its ID and removes it from all CSOGroups.
 
bool removeAllCSO (bool useUndoRedo=true)
 Removes all CSOs from the list and from all CSOGroups they are in.
 
bool removeGroup (CSOGroup *group, bool useUndoRedo=true)
 Removes the specified CSOGroup and removes the CSOGroup from all CSOs.
 
bool removeGroup (unsigned int id, bool useUndoRedo=true)
 Removes a CSOGroup by its ID and removes it from all CSOs.
 
bool removeAllGroups (bool useUndoRedo)
 Removes all CSOGroups and all CSOGroups from all CSOs.
 
bool removeGroups (const std::vector< CSOGroup * > &groupsToRemove, bool useUndoRedo=true)
 Removes all CSOGroups with specified IDs and removes them from CSOs Returns whether the operation was successful.
 
bool removeAll (bool useUndoRedo=true)
 Removes all CSOs and CSOGroups and resets all else.
 
CSOgetCSOAt (unsigned int index) const
 Returns a pointer to the CSO at the specified position in the internal list.
 
CSOgetCSOById (unsigned int id) const
 Returns a pointer to the CSO with the specified unique ID.
 
CSOgetCSOByLabel (const std::string &label) const
 Returns a pointer to the first CSO with the specified label.
 
unsigned int getCSOIndex (CSO *cso) const
 Returns the index of the specified CSO in its list.
 
unsigned int getCSOIndex (unsigned int id) const
 Returns the index of the CSO with the specified ID in its list.
 
bool hasCSO (CSO *cso) const
 Returns whether there is the specified CSO in the list.
 
CSOGroupgetGroupById (unsigned int id) const
 Returns a pointer to a CSOGroup with the specified ID.
 
CSOGroupgetGroupByLabel (const std::string &label) const
 Returns a pointer to a CSOGroup with the specified label.
 
CSOGroupgetGroupAt (unsigned int index) const
 Returns the CSOGroup at the specified index position.
 
unsigned int getGroupIndex (CSOGroup *group) const
 Returns the index of the specified CSOGroup in its list.
 
unsigned int getGroupIndex (unsigned int id) const
 Returns the index of the CSOGroup with the specified ID in its list.
 
bool hasGroup (CSOGroup *group) const
 Returns whether there is the specified CSOGroup in the list.
 
std::string getUniqueCSOLabel (std::string label, std::string format, bool addIdAlways)
 Returns a unique CSO label that includes the specified label and combines it with a unique ID using the specified format.
 
std::string getUniqueGroupLabel (std::string label, std::string format, bool addIdAlways)
 Returns a unique CSOGroup label that includes the specified label and combines it with a unique ID using the specified format.
 
void resetUniqueCSOLabelIdMap ()
 Resets the data structure that is used to determine unique IDs for getUniqueCSOLabel.
 
void resetUniqueGroupLabelIdMap ()
 Resets the data structure that is used to determine unique IDs for getUniqueCSOLabel Afterward, unique IDs are still generated.
 
bool combineCSOandGroup (CSO *cso, CSOGroup *group, bool useUndoRedo=true)
 Combines the specified CSO with the specified CSOGroup.
 
void breakCSOandGroup (CSO *cso, CSOGroup *group, bool useUndoRedo=true)
 Breaks the combination of the specified CSO and the specified CSOGroup.
 
void breakCSOfromAllGroups (CSO *cso, bool useUndoRedo=true)
 Breaks all combinations of the specified CSO and any CSOGroup.
 
void breakAllCSOsFromGroup (CSOGroup *group, bool useUndoRedo=true)
 Breaks all combinations of the specified CSOGroup and any CSO.
 
void _addGroupRelationCommand (CSO *cso, CSOGroup *group)
 Helper method to be used only inside MLCSO.
 
unsigned int numCSOs () const
 Returns the number of CSOs in the list.
 
unsigned int numGroups () const
 Returns the number of CSOGroups.
 
CSOIdVector getAllCSOIds () const
 Returns a vector with the IDs of the CSOs contained in the list.
 
CSOIdVector getAllGroupIds () const
 Returns a vector with the IDs of the CSOGroups contained in the list.
 
void undo ()
 Performs an undo of the last modification.
 
void redo ()
 Performs a redo of the last undo modification.
 
void enableUndoRedoManager ()
 Enables the undo/redo mechanism.
 
void disableUndoRedoManager ()
 Enables the undo/redo mechanism.
 
void sendOpenEventGroup ()
 Sends a CSOLIST_EVENT_GROUP_OPEN event to let listeners combine following events.
 
void sendCloseEventGroup ()
 Sends a CSOLIST_EVENT_GROUP_CLOSE event to let listeners combine preceding events..
 
void sendModuleEventGroup (CSOEvent *event)
 Sends a module CSOGroup event.
 
void sendPreEvent (CSOEvent::CSOEventType eventType)
 Sends a pre-event with the specified event type.
 
void sendPreEvent (CSOEvent::CSOEventType eventType, unsigned int csoId)
 Sends a pre-event with the specified event type and the CSO ID.
 
void sendPreEvent (CSOEvent::CSOEventType eventType, unsigned int csoId, const CSOIdVector &groupIds)
 Sends a post-event with the specified type, CSO ID, and CSOGroup IDs.
 
void sendPreEvent (CSOEvent::CSOEventType eventType, unsigned int csoId, unsigned int groupId)
 Sends a pre-event with the specified type, CSO ID, and CSOGroup ID.
 
void sendPreEvent (CSOEvent::CSOEventType eventType, const CSOIdVector &csoIds)
 Sends a pre-event with the specified event type and the CSO IDs.
 
void sendPreEvent (CSOEvent::CSOEventType eventType, const CSOIdVector &csoIds, const CSOIdVector &groupIds)
 Sends a pre-event with the specified event type, CSO IDs, and CSOGroup IDs.
 
void sendPostEvent (CSOEvent::CSOEventType eventType)
 Sends a post-event with the specified event type.
 
void sendPostEvent (CSOEvent::CSOEventType eventType, unsigned int csoId)
 Sends a post-event with the specified type and CSO ID.
 
void sendPostEvent (CSOEvent::CSOEventType eventType, unsigned int csoId, unsigned int groupId)
 Sends a post-event with the specified type, CSO ID, and CSOGroup ID.
 
void sendPostEvent (CSOEvent::CSOEventType eventType, const CSOIdVector &csoIds)
 Sends a post-event with the specified type and CSO IDs.
 
void sendPostEvent (CSOEvent::CSOEventType eventType, unsigned int csoId, const CSOIdVector &groupIds)
 Sends a post-event with the specified type, CSO ID, and CSOGroup IDs.
 
void sendPostEvent (CSOEvent::CSOEventType eventType, const CSOIdVector &csoIds, const CSOIdVector &groupIds)
 Sends a post-event with the specified type, CSO IDs, and CSOGroup IDs.
 
void muteEvents ()
 Prevents the CSOList from sending any CSOEvents until unmuteEvents is called.
 
void unmuteEvents ()
 Revokes a mute request.
 
bool isNotMutingEvents ()
 Returns whether CSOEvents are currently emitted.
 
MLuint64 getListChangeId () const
 Returns the list change ID that changes whenever a CSO is added or removed (unique accross all CSOLists).
 
MLuint64 getGeometryChangeId () const
 Returns the geometry change ID that changes on any CSO geometry change or list change (unique accross all CSOLists).
 
void listChanged ()
 Called whenever the list has changed to generate a new ID. This also changes the geometry ID.
 
void geometryChanged ()
 Called whenever the geometry of a CSO has changed.
 
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.
 
void enableStartNewCSOObserver ()
 Enables the 'start new CSO' observer mechanism.
 
void disableStartNewCSOObserver ()
 Disables the 'start new CSO' observer mechanism.
 
void enableCSOMovedObserver ()
 Enables the 'CSO moved' observer mechanism.
 
void disableCSOMovedObserver ()
 Disables the 'CSO moved' observer mechanism.
 
void enableCSOCurrentlyUnderMouseObserver ()
 Enables the 'CSO currently under mouse' observer mechanism.
 
void disableCSOCurrentlyUnderMouseObserver ()
 Disables the 'CSO currently under mouse' observer mechanism.
 
bool isUndoRedoManagerEnabled () const
 Returns 'true' if the undo/redo mechanism is enabled, 'false' otherwise.
 
void openUndoRedoGroup (const std::string &description="Contour Operation")
 Opens a undo/redo group. All undoable commands after this are grouped together.
 
void closeUndoRedoGroup ()
 Closes a undo/redo group. All undoable commands before this are grouped together.
 
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.
 
bool isStartNewCSONotificationEnabled () const
 Returns whether the 'start new CSO' notification is enabled.
 
bool isCSOMovedNotificationEnabled () const
 Returns whether the 'CSO moved' notification is enabled.
 
bool isCSOCurrentlyUnderMouseNotificationEnabled () const
 Returns whether the 'CSO currently under mouse' notification is enabled.
 
CSOListRulesgetRules ()
 Returns the rules for this CSOList.
 
void addStateToTree (TreeNode *) const override
 Attaches the object state as children of the specified parent node.
 
void readStateFromTree (TreeNode *) override
 Reads the object state from the children of the specified parent node.
 
 ML_SET_ADDSTATE_VERSION (1)
 
CSOListdeepCopy () const override
 Creates a deep copy of the CSOList.
 
- Public Member Functions inherited from ml::RefCountedBase
 RefCountedBase ()
 Constructor.
 
 RefCountedBase (const RefCountedBase &)
 Explicit copy constructor.
 
virtual void incRefCount () const
 Increases the reference count.
 
virtual void decRefCount () const
 Decreases the reference count (object will be deleted if the reference count is decremented to 0).
 
bool isRefCountedBase () const override
 Returns whether 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)
 Adds event listener callback to this Base object.
 
void removeEventListener (BaseEventCallback *cb, void *userData)
 Removes event listener callback from this Base object.
 
bool hasEventListeners () const
 Checks whether 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
 Checks whether this object's type is equal to or derived from one of the types given in the argument.
 
virtual std::string detailString () const
 Returns 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 writeTo (AbstractPersistenceOutputStream *) const
 Writes the objects state to the data stream object.
 
virtual void readFrom (AbstractPersistenceInputStream *, int)
 Reads the objects state from the data stream object.
 

Static Public Member Functions

static void removeNotificationObserverFromAllCSOLists (csoNotificationCB *callback, void *userData)
 Removes a certain notification observer from all CSOLists.
 
static void alignSeedPathLinks (CSO *cso)
 Aligns seed point positions with path point lists of a specified CSO by a squared distance-sum criterion.
 
static EnumValues< CSOPathPointsStylegetLineStyleModes ()
 
static EnumValues< CSOSeedPointStylegetSeedPointStyles ()
 
static EnumValues< CSOVoxelWriteModesgetVoxelWriteModes ()
 
- Static Public Member Functions inherited from ml::RefCountedBase
static void updateReferenceCountingIfSupported (Base *oldValue, Base *newValue, bool &isRefCountedBase)
 Helper method that handles incrementing/decrementing of the reference count if base instances support it.
 

Protected Member Functions

 ~CSOList () override
 The CSOList destructor is protected since the CSOList ownership is managed by the CSOListPtr intrusive smart pointer.
 
void setupCSOList ()
 
- 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.
 

Friends

class CSOLoad
 

Additional Inherited Members

- Protected Attributes inherited from ml::RefCountedBase
std::atomic_int_least32_t _refCount
 Reference count.
 

Detailed Description

A CSOList comprises a number of CSOs and CSOGroups and is the central object for contour segmentation objects.

The CSOList is derived from Base and can be used as a data structure in a MeVisLab network. The CSOList has also a CSOUndoRedoManager as a member. The CSOList ownership is managed via smart pointers; make sure to use a CSOListPtr to manage newly created CSOList objects.

Definition at line 60 of file CSOList.h.

Member Enumeration Documentation

◆ NotificationType

Enumerator
NOTIFICATION_NONE 

Flag for the observer mechanism, signalizing no notification at all.

NOTIFICATION_CSO_SELECTION 

Flag for the observer mechanism, should be set if a CSO selection changes.

NOTIFICATION_GROUP_SELECTION 

Flag for the observer mechanism, should be set if a CSOGroup selection changes.

NOTIFICATION_CSO_FINISHED 

Flag for the observer mechanism, should be set if a CSO action is finished.

NOTIFICATION_GROUP_FINISHED 

Flag for the observer mechanism, should be set if a CSOGroup action is finished.

NOTIFICATION_REPAINT 

Flag for the observer mechanism, should be set if a repaint should occur.

NOTIFICATION_INTERACTION_INIT 

Flag for the observer mechanism, should be set if the interaction must be initialized.

NOTIFICATION_START_NEW_CSO 

Flag for the observer mechanism, signalizing that the generation of a new CSO has been started.

NOTIFICATION_CSO_MOVED 

Flag for the observer mechanism, should be set if a CSO was moved.

NOTIFICATION_CSO_UNDER_MOUSE_CHANGED 

Flag for the observer mechanism, should be set if the CSO under the mouse cursor changes.

NOTIFICATION_UNDO_REDO_STATE_CHANGED 

Flag for the observer mechanism, should be set if the availability of undo/redo steps changes.

Definition at line 586 of file CSOList.h.

Constructor & Destructor Documentation

◆ CSOList() [1/3]

ml::CSOList::CSOList ( )

Standard constructor.

◆ CSOList() [2/3]

ml::CSOList::CSOList ( bool  shouldRegisterCSOList)

◆ CSOList() [3/3]

ml::CSOList::CSOList ( const CSOList csoList)

Copy constructor.

◆ ~CSOList()

ml::CSOList::~CSOList ( )
overrideprotected

The CSOList destructor is protected since the CSOList ownership is managed by the CSOListPtr intrusive smart pointer.

If you encounter code that tries to delete a CSOList object, you will very likely need to change the usage of a CSOList* to a CSOListPtr and replace the delete-call with a nullptr assignment.

Member Function Documentation

◆ _addGroupRelationCommand()

void ml::CSOList::_addGroupRelationCommand ( CSO cso,
CSOGroup group 
)

Helper method to be used only inside MLCSO.

◆ addArrow()

CSO * ml::CSOList::addArrow ( const Vector3 pointAt,
const Vector3 direction,
double  length,
double  pointDistanceInMM = 1.,
const std::string &  subtype = "arrow" 
)

Adds an arrow pointing to pointAt from direction with a length.

◆ addCircle()

CSO * ml::CSOList::addCircle ( const Vector3 midPoint,
const Vector3 normal,
double  radius,
double  pointDistanceInMM = 1.,
const std::string &  subtype = "circle" 
)

Adds a circle CSO with its midPoint at the specified position and a specified radius.

The specified normal defines the plane the CSO lies in.

◆ addClosedSpline()

CSO * ml::CSOList::addClosedSpline ( const std::vector< Vector3 > &  points,
bool  useInterpolation = true,
double  pointDistanceInMM = 1.,
const std::string &  subtype = "spline" 
)

Adds a spline interpolated closed polygon with the specified points as seed points.

If useInterpolation is set to 'false', spline approximation is used.

◆ addCSO() [1/3]

CSO * ml::CSOList::addCSO ( bool  useUndoRedo = true)

Adds a new CSO to the list and returns its pointer.

◆ addCSO() [2/3]

CSO * ml::CSOList::addCSO ( const std::vector< Vector3 > &  seedPositions,
bool  closed,
bool  useUndoRedo 
)

Adds a new CSO to the list and returns its pointer.

The specified positions are used as seed point positions.

◆ addCSO() [3/3]

CSO * ml::CSOList::addCSO ( unsigned int  numSeedPoints,
bool  closed,
bool  useUndoRedo 
)

Adds a new CSO to the list and returns its pointer.

The resulting CSO has as many seed points as stated.

◆ addCSOCopy()

CSO * ml::CSOList::addCSOCopy ( CSO cso,
bool  useUndoRedo = true,
unsigned int  csoId = INVALID_CSO_ID 
)

Adds a copy of the specified CSO to the list and returns a pointer to it.

◆ addCSONoEvent()

CSO * ml::CSOList::addCSONoEvent ( bool  useUndoRedo = true)

Adds a new CSO to the list and returns its pointer. (Without sending any events).

◆ addEllipse()

CSO * ml::CSOList::addEllipse ( const Vector3 midPoint,
const Vector3 uVector,
const Vector3 vVector,
double  angleInRadian = .0,
double  pointDistanceInMM = 1.,
const std::string &  subtype = "ellipse" 
)

Adds an ellipse with a specified midPoint, uVector, and vVector.

angleInRadian specifies an initial rotation around the midPoint. uVector and vVector should be perpendicular to each other. If not rotated, the resulting ellipse's horizontal diameter is 2 * length(uVector) and its vertical diameter is 2 * length(vVector). uVector and vVector must not be collinear or too short; otherwise, the method prints an error and returns nullptr.

◆ addGroup() [1/2]

CSOGroup * ml::CSOList::addGroup ( bool  useUndoRedo = true)

Adds a new CSOGroup to the list and returns a pointer to it.

◆ addGroup() [2/2]

CSOGroup * ml::CSOList::addGroup ( const std::string &  label,
bool  useUndoRedo = true 
)

Adds a new CSOGroup with specified label to the list and returns a pointer to it.

◆ addGroupCopy()

CSOGroup * ml::CSOList::addGroupCopy ( CSOGroup group,
bool  useUndoRedo = true,
unsigned int  groupId = INVALID_CSO_ID 
)

Adds a copy of the specified CSOGroup to this list and returns a pointer to it.

Note that this method does not set the 'this' pointer as a new CSOList.

◆ addNotificationObserver()

void ml::CSOList::addNotificationObserver ( csoNotificationCB callback,
void *  userData 
)

Adds a notification observer to this CSOList.

◆ addOpenSpline()

CSO * ml::CSOList::addOpenSpline ( const std::vector< Vector3 > &  points,
bool  useInterpolation = true,
double  pointDistanceInMM = 1.,
const std::string &  subtype = "spline" 
)

Adds a spline interpolated open polygon with the specified points as seed points.

If useInterpolation is set to 'false', spline approximation is used.

◆ addPoint()

CSO * ml::CSOList::addPoint ( const Vector3 position,
const std::string &  subtype = "point" 
)

Adds a point CSO at the specified position.

◆ addPolygon()

CSO * ml::CSOList::addPolygon ( const std::vector< Vector3 > &  points,
double  pointDistanceInMM = 1.,
const std::string &  subtype = "polygon" 
)

Adds a linearly interpolated closed polygon with the specified points as seed points.

◆ addPolyline()

CSO * ml::CSOList::addPolyline ( const std::vector< Vector3 > &  points,
double  pointDistanceInMM = 1.,
const std::string &  subtype = "polyline" 
)

Adds a linearly interpolated open polyline with the specified points as seed points.

◆ addRectangle()

CSO * ml::CSOList::addRectangle ( const Vector3 midPoint,
const Vector3 uVector,
const Vector3 vVector,
double  angleInRadian = .0,
double  pointDistanceInMM = 1.,
const std::string &  subtype = "rectangle" 
)

Adds a rectangle with a specified midPoint, uVector, and vVector.

angleInRadian specifies an initial rotation around the midPoint. uVector and vVector should be perpendicular to each other. If not rotated, the resulting rectangle's width is 2 * length(uVector) and its height is 2 * length(vVector). uVector and vVector must not be collinear or too short; otherwise, the method prints an error and returns nullptr.

◆ addSelected() [1/2]

void ml::CSOList::addSelected ( CSO cso)

Adds the specified CSO to the list of selected CSOs (no double entry).

◆ addSelected() [2/2]

void ml::CSOList::addSelected ( CSOGroup group)

Adds the specified CSOGroup to the list of selected CSOGroups (no double entry).

◆ addStateToTree()

void ml::CSOList::addStateToTree ( TreeNode ) const
overridevirtual

Attaches the object state as children of the specified parent node.

Reimplemented from ml::Base.

◆ alignSeedPathLinks()

static void ml::CSOList::alignSeedPathLinks ( CSO cso)
static

Aligns seed point positions with path point lists of a specified CSO by a squared distance-sum criterion.

◆ breakAllCSOsFromGroup()

void ml::CSOList::breakAllCSOsFromGroup ( CSOGroup group,
bool  useUndoRedo = true 
)

Breaks all combinations of the specified CSOGroup and any CSO.

◆ breakCSOandGroup()

void ml::CSOList::breakCSOandGroup ( CSO cso,
CSOGroup group,
bool  useUndoRedo = true 
)

Breaks the combination of the specified CSO and the specified CSOGroup.

◆ breakCSOfromAllGroups()

void ml::CSOList::breakCSOfromAllGroups ( CSO cso,
bool  useUndoRedo = true 
)

Breaks all combinations of the specified CSO and any CSOGroup.

◆ clearSelectedCSOs()

void ml::CSOList::clearSelectedCSOs ( )

Clears all selected CSOs.

◆ clearSelectedGroups()

void ml::CSOList::clearSelectedGroups ( )

Clears all selected CSOGroups.

◆ clearSelectedSeedPoints()

void ml::CSOList::clearSelectedSeedPoints ( )

Clears all selected seed points in all CSOs.

◆ clone()

void ml::CSOList::clone ( const CSOList csoList,
bool  useUndoRedo = false 
)

Clones the internal CSOs and CSOGroups of the specified CSOList to this one.

◆ closeUndoRedoGroup()

void ml::CSOList::closeUndoRedoGroup ( )

Closes a undo/redo group. All undoable commands before this are grouped together.

◆ combineCSOandGroup()

bool ml::CSOList::combineCSOandGroup ( CSO cso,
CSOGroup group,
bool  useUndoRedo = true 
)

Combines the specified CSO with the specified CSOGroup.

◆ deepCopy()

CSOList * ml::CSOList::deepCopy ( ) const
inlineoverridevirtual

Creates a deep copy of the CSOList.

Reimplemented from ml::Base.

Definition at line 627 of file CSOList.h.

◆ disableCSOCurrentlyUnderMouseObserver()

void ml::CSOList::disableCSOCurrentlyUnderMouseObserver ( )
inline

Disables the 'CSO currently under mouse' observer mechanism.

Definition at line 547 of file CSOList.h.

◆ disableCSOMovedObserver()

void ml::CSOList::disableCSOMovedObserver ( )
inline

Disables the 'CSO moved' observer mechanism.

Definition at line 542 of file CSOList.h.

◆ disableFinishedObserver()

void ml::CSOList::disableFinishedObserver ( )
inline

Disables the finished observer mechanism.

Definition at line 522 of file CSOList.h.

◆ disableInteractionObserver()

void ml::CSOList::disableInteractionObserver ( )
inline

Disables the interaction observer mechanism.

Definition at line 527 of file CSOList.h.

◆ disableRepaintObserver()

void ml::CSOList::disableRepaintObserver ( )
inline

Disables the repaint observer mechanism.

Definition at line 517 of file CSOList.h.

◆ disableSelectionObserver()

void ml::CSOList::disableSelectionObserver ( )
inline

Disables the selection observer mechanism.

Definition at line 532 of file CSOList.h.

◆ disableStartNewCSOObserver()

void ml::CSOList::disableStartNewCSOObserver ( )
inline

Disables the 'start new CSO' observer mechanism.

Definition at line 537 of file CSOList.h.

◆ disableUndoRedoManager()

void ml::CSOList::disableUndoRedoManager ( )

Enables the undo/redo mechanism.

◆ enableCSOCurrentlyUnderMouseObserver()

void ml::CSOList::enableCSOCurrentlyUnderMouseObserver ( )
inline

Enables the 'CSO currently under mouse' observer mechanism.

Definition at line 545 of file CSOList.h.

◆ enableCSOMovedObserver()

void ml::CSOList::enableCSOMovedObserver ( )
inline

Enables the 'CSO moved' observer mechanism.

Definition at line 540 of file CSOList.h.

◆ enableFinishedObserver()

void ml::CSOList::enableFinishedObserver ( )
inline

Enables the finished observer mechanism.

Definition at line 520 of file CSOList.h.

◆ enableInteractionObserver()

void ml::CSOList::enableInteractionObserver ( )
inline

Enables the interaction observer mechanism.

Definition at line 525 of file CSOList.h.

◆ enableRepaintObserver()

void ml::CSOList::enableRepaintObserver ( )
inline

Enables the repaint observer mechanism.

Definition at line 515 of file CSOList.h.

◆ enableSelectionObserver()

void ml::CSOList::enableSelectionObserver ( )
inline

Enables the selection observer mechanism.

Definition at line 530 of file CSOList.h.

◆ enableStartNewCSOObserver()

void ml::CSOList::enableStartNewCSOObserver ( )
inline

Enables the 'start new CSO' observer mechanism.

Definition at line 535 of file CSOList.h.

◆ enableUndoRedoManager()

void ml::CSOList::enableUndoRedoManager ( )
inline

Enables the undo/redo mechanism.

Definition at line 448 of file CSOList.h.

◆ geometryChanged()

void ml::CSOList::geometryChanged ( )

Called whenever the geometry of a CSO has changed.

◆ getAllCSOIds()

CSOIdVector ml::CSOList::getAllCSOIds ( ) const

Returns a vector with the IDs of the CSOs contained in the list.

◆ getAllGroupIds()

CSOIdVector ml::CSOList::getAllGroupIds ( ) const

Returns a vector with the IDs of the CSOGroups contained in the list.

◆ getCenterOfSelectedCSOs() [1/2]

Vector3 ml::CSOList::getCenterOfSelectedCSOs ( ) const
inline

/deprecated Returns the center position of all bounding boxes of all selected CSOs.

Definition at line 260 of file CSOList.h.

References CSO_DEBUG.

◆ getCenterOfSelectedCSOs() [2/2]

Vector3 ml::CSOList::getCenterOfSelectedCSOs ( bool &  resultIsValid) const

Returns the center position of all bounding boxes of all selected CSOs.

'resultIsValid' is false if there are no selected CSOs available.

◆ getCenterOfSelectedGroups() [1/2]

Vector3 ml::CSOList::getCenterOfSelectedGroups ( ) const
inline

/deprecated Returns the center position of all bounding boxes of all CSOs of all selected CSOGroups.

Definition at line 268 of file CSOList.h.

References CSO_DEBUG.

◆ getCenterOfSelectedGroups() [2/2]

Vector3 ml::CSOList::getCenterOfSelectedGroups ( bool &  resultIsValid) const

Returns the center position of all bounding boxes of all CSOs of all selected CSOGroups.

'resultIsValid' is false if there are no selected CSOGroups available.

◆ getCSOAt()

CSO * ml::CSOList::getCSOAt ( unsigned int  index) const

Returns a pointer to the CSO at the specified position in the internal list.

◆ getCSOById()

CSO * ml::CSOList::getCSOById ( unsigned int  id) const

Returns a pointer to the CSO with the specified unique ID.

Returns nullptr if no such CSO is stored in the list.

◆ getCSOByLabel()

CSO * ml::CSOList::getCSOByLabel ( const std::string &  label) const

Returns a pointer to the first CSO with the specified label.

Returns nullptr if no such CSO is stored in the list.

◆ getCSOCurrentlyUnderMouse()

CSO * ml::CSOList::getCSOCurrentlyUnderMouse ( ) const
inline

Returns the pointer to the CSO currently under the mouse cursor.

Definition at line 253 of file CSOList.h.

◆ getCSOIndex() [1/2]

unsigned int ml::CSOList::getCSOIndex ( CSO cso) const

Returns the index of the specified CSO in its list.

◆ getCSOIndex() [2/2]

unsigned int ml::CSOList::getCSOIndex ( unsigned int  id) const

Returns the index of the CSO with the specified ID in its list.

◆ getCurrentCSOId()

unsigned int ml::CSOList::getCurrentCSOId ( )

Returns the current last ID (incremented each call) for CSOs.

If there are no CSOs in the list, this ID is set back to 0.

◆ getCurrentGroupId()

unsigned int ml::CSOList::getCurrentGroupId ( )

Returns the current last ID (incremented each call) for CSOGroups.

If there are no CSOGroups in the list, this ID is set back to 0.

◆ getGeometryChangeId()

MLuint64 ml::CSOList::getGeometryChangeId ( ) const
inline

Returns the geometry change ID that changes on any CSO geometry change or list change (unique accross all CSOLists).

Definition at line 506 of file CSOList.h.

◆ getGroupAt()

CSOGroup * ml::CSOList::getGroupAt ( unsigned int  index) const

Returns the CSOGroup at the specified index position.

◆ getGroupById()

CSOGroup * ml::CSOList::getGroupById ( unsigned int  id) const

Returns a pointer to a CSOGroup with the specified ID.

◆ getGroupByLabel()

CSOGroup * ml::CSOList::getGroupByLabel ( const std::string &  label) const

Returns a pointer to a CSOGroup with the specified label.

◆ getGroupIndex() [1/2]

unsigned int ml::CSOList::getGroupIndex ( CSOGroup group) const

Returns the index of the specified CSOGroup in its list.

◆ getGroupIndex() [2/2]

unsigned int ml::CSOList::getGroupIndex ( unsigned int  id) const

Returns the index of the CSOGroup with the specified ID in its list.

◆ getLineStyleModes()

static EnumValues< CSOPathPointsStyle > ml::CSOList::getLineStyleModes ( )
static

◆ getListChangeId()

MLuint64 ml::CSOList::getListChangeId ( ) const
inline

Returns the list change ID that changes whenever a CSO is added or removed (unique accross all CSOLists).

Definition at line 504 of file CSOList.h.

◆ getManager()

CSOManager * ml::CSOList::getManager ( )
inline

Returns a pointer to the manager of this CSOList.

Definition at line 149 of file CSOList.h.

◆ getRules()

CSOListRules & ml::CSOList::getRules ( )
inline

Returns the rules for this CSOList.

Definition at line 615 of file CSOList.h.

◆ getSeedPointStyles()

static EnumValues< CSOSeedPointStyle > ml::CSOList::getSeedPointStyles ( )
static

◆ getSelectedCSOAt()

CSO * ml::CSOList::getSelectedCSOAt ( unsigned int  index) const
inline

Returns a pointer to the selected CSO at the specified index; no checking!

Definition at line 222 of file CSOList.h.

◆ getSelectedCSOIds()

CSOIdVector ml::CSOList::getSelectedCSOIds ( )

Returns a vector with IDs of the selected CSOs.

◆ getSelectedGroupAt()

CSOGroup * ml::CSOList::getSelectedGroupAt ( unsigned int  index) const
inline

Returns a pointer to the selected CSOGroup at the specified index; no checking!

Definition at line 231 of file CSOList.h.

◆ getSelectedGroupIds()

CSOIdVector ml::CSOList::getSelectedGroupIds ( )

Returns a vector with IDs of the selected CSOGroups.

◆ getUndoRedoManager()

CSOUndoRedoManager * ml::CSOList::getUndoRedoManager ( )
inline

Returns a pointer to the undo/redo manager of this CSOList.

Definition at line 147 of file CSOList.h.

◆ getUniqueCSOLabel()

std::string ml::CSOList::getUniqueCSOLabel ( std::string  label,
std::string  format,
bool  addIdAlways 
)

Returns a unique CSO label that includes the specified label and combines it with a unique ID using the specified format.

If the specified label itself is unique, an ID is only added if addIdAlways is true.

◆ getUniqueGroupLabel()

std::string ml::CSOList::getUniqueGroupLabel ( std::string  label,
std::string  format,
bool  addIdAlways 
)

Returns a unique CSOGroup label that includes the specified label and combines it with a unique ID using the specified format.

If the specified label itself is unique, an ID is only added if addIdAlways is true.

◆ getVoxelWriteModes()

static EnumValues< CSOVoxelWriteModes > ml::CSOList::getVoxelWriteModes ( )
static

◆ hasCSO()

bool ml::CSOList::hasCSO ( CSO cso) const

Returns whether there is the specified CSO in the list.

◆ hasGroup()

bool ml::CSOList::hasGroup ( CSOGroup group) const

Returns whether there is the specified CSOGroup in the list.

◆ isCSOCurrentlyUnderMouseNotificationEnabled()

bool ml::CSOList::isCSOCurrentlyUnderMouseNotificationEnabled ( ) const
inline

Returns whether the 'CSO currently under mouse' notification is enabled.

Definition at line 573 of file CSOList.h.

◆ isCSOMovedNotificationEnabled()

bool ml::CSOList::isCSOMovedNotificationEnabled ( ) const
inline

Returns whether the 'CSO moved' notification is enabled.

Definition at line 571 of file CSOList.h.

◆ isFinishedNotificationEnabled()

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

Returns whether the finished notification is enabled.

Definition at line 563 of file CSOList.h.

◆ isInteractionInitNotificationEnabled()

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

Returns whether the interaction init notification is enabled.

Definition at line 565 of file CSOList.h.

◆ isNotMutingEvents()

bool ml::CSOList::isNotMutingEvents ( )

Returns whether CSOEvents are currently emitted.

◆ isRepaintNotificationEnabled()

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

Returns whether the repaint notification is enabled.

Definition at line 561 of file CSOList.h.

◆ isSelected() [1/2]

bool ml::CSOList::isSelected ( const CSO cso) const

Returns whether the specified CSO is currently selected.

If a CSOGroup is selected, its member CSOs are also marked as being selected.

◆ isSelected() [2/2]

bool ml::CSOList::isSelected ( const CSOGroup group) const

Returns whether the specified CSOGroup is currently selected.

◆ isSelectionNotificationEnabled()

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

Returns whether the selection notification is enabled.

Definition at line 567 of file CSOList.h.

◆ isStartNewCSONotificationEnabled()

bool ml::CSOList::isStartNewCSONotificationEnabled ( ) const
inline

Returns whether the 'start new CSO' notification is enabled.

Definition at line 569 of file CSOList.h.

◆ isUndoRedoManagerEnabled()

bool ml::CSOList::isUndoRedoManagerEnabled ( ) const
inline

Returns 'true' if the undo/redo mechanism is enabled, 'false' otherwise.

Definition at line 552 of file CSOList.h.

◆ listChanged()

void ml::CSOList::listChanged ( )

Called whenever the list has changed to generate a new ID. This also changes the geometry ID.

◆ loadFrom() [1/2]

bool ml::CSOList::loadFrom ( std::istream &  inStream,
bool  binary,
std::string &  message,
ModuleBackgroundTask task = nullptr 
)

Reads out the internal structure for this list (CSOs and CSOGroups) from the specified stream.

Returns whether the operation was successful. A specified message string is filled.

◆ loadFrom() [2/2]

bool ml::CSOList::loadFrom ( std::string &  filename,
std::string &  message,
ModuleBackgroundTask task = nullptr 
)

Reads out the internal structure for this list (CSOs and CSOGroups) from the specified file.

Returns whether the operation was successful. A specified message string is filled.

◆ merge() [1/2]

void ml::CSOList::merge ( const CSOList csoList,
bool  mergeGroupWithSameLabel,
CSOIdToCSOIdMap origToThisGroupIdMap,
CSOIdToCSOIdMap origToThisCSOIdMap,
bool  useUndoRedo = false 
)

Merges the internal CSOs and CSOGroups of the specified CSOList to this one.

◆ merge() [2/2]

void ml::CSOList::merge ( const CSOList csoList,
const CSOGroupMergeHandling  mergeMode,
CSOIdToCSOIdMap origToThisGroupIdMap,
CSOIdToCSOIdMap origToThisCSOIdMap,
bool  useUndoRedo = false 
)

Merges the internal CSOs and CSOGroups of the specified CSOList to this one with the specified merge mode.

◆ ML_SET_ADDSTATE_VERSION()

ml::CSOList::ML_SET_ADDSTATE_VERSION ( )

◆ muteEvents()

void ml::CSOList::muteEvents ( )

Prevents the CSOList from sending any CSOEvents until unmuteEvents is called.

◆ notifyObservers()

void ml::CSOList::notifyObservers ( int  notificationFlag)

Notifies all observers.

◆ numCSOs()

unsigned int ml::CSOList::numCSOs ( ) const

Returns the number of CSOs in the list.

◆ numGroups()

unsigned int ml::CSOList::numGroups ( ) const

Returns the number of CSOGroups.

◆ numSelectedCSOs()

unsigned int ml::CSOList::numSelectedCSOs ( ) const
inline

Returns the number of selected CSOs.

Definition at line 217 of file CSOList.h.

◆ numSelectedGroups()

unsigned int ml::CSOList::numSelectedGroups ( ) const
inline

Returns the number of selected CSOGroups.

Definition at line 219 of file CSOList.h.

◆ openUndoRedoGroup()

void ml::CSOList::openUndoRedoGroup ( const std::string &  description = "Contour Operation")

Opens a undo/redo group. All undoable commands after this are grouped together.

◆ readStateFromTree()

void ml::CSOList::readStateFromTree ( TreeNode )
overridevirtual

Reads the object state from the children of the specified parent node.

Reimplemented from ml::Base.

◆ redo()

void ml::CSOList::redo ( )

Performs a redo of the last undo modification.

◆ registerCSOListForNotificationObservers()

void ml::CSOList::registerCSOListForNotificationObservers ( )

Registers this CSOList in the static list of CSOLists for handling observers.

◆ removeAll()

bool ml::CSOList::removeAll ( bool  useUndoRedo = true)

Removes all CSOs and CSOGroups and resets all else.

Returns whether the operation was successful.

◆ removeAllCSO()

bool ml::CSOList::removeAllCSO ( bool  useUndoRedo = true)

Removes all CSOs from the list and from all CSOGroups they are in.

Returns whether the operation was successful.

◆ removeAllGroups()

bool ml::CSOList::removeAllGroups ( bool  useUndoRedo)

Removes all CSOGroups and all CSOGroups from all CSOs.

Returns whether the operation was successful.

◆ removeCSO() [1/2]

bool ml::CSOList::removeCSO ( CSO cso,
bool  useUndoRedo = true 
)

Removes a specified CSO from the list and from CSOGroups it is in.

Returns whether a CSO has been removed.

◆ removeCSO() [2/2]

bool ml::CSOList::removeCSO ( unsigned int  id,
bool  useUndoRedo = true 
)

Removes a CSO by its ID and removes it from all CSOGroups.

Returns whether a CSO has been removed.

◆ removeFromSelection() [1/4]

void ml::CSOList::removeFromSelection ( const std::vector< CSO * > &  csos)

Removes the specified CSOs from the list of selected CSOs.

◆ removeFromSelection() [2/4]

void ml::CSOList::removeFromSelection ( const std::vector< CSOGroup * > &  groups)

Removes the specified CSOGroups from the list of selected CSOGroups.

◆ removeFromSelection() [3/4]

void ml::CSOList::removeFromSelection ( CSO cso)

Removes the specified CSO from the list of selected CSOs.

◆ removeFromSelection() [4/4]

void ml::CSOList::removeFromSelection ( CSOGroup group)

Removes the specified CSOGroup from the list of selected CSOGroups.

◆ removeGroup() [1/2]

bool ml::CSOList::removeGroup ( CSOGroup group,
bool  useUndoRedo = true 
)

Removes the specified CSOGroup and removes the CSOGroup from all CSOs.

Returns whether the CSOGroup has been removed.

◆ removeGroup() [2/2]

bool ml::CSOList::removeGroup ( unsigned int  id,
bool  useUndoRedo = true 
)

Removes a CSOGroup by its ID and removes it from all CSOs.

Returns whether the CSOGroup has been removed.

◆ removeGroups()

bool ml::CSOList::removeGroups ( const std::vector< CSOGroup * > &  groupsToRemove,
bool  useUndoRedo = true 
)

Removes all CSOGroups with specified IDs and removes them from CSOs Returns whether the operation was successful.

◆ removeNotificationObserver()

void ml::CSOList::removeNotificationObserver ( csoNotificationCB callback,
void *  userData 
)

Removes a notification observer from this CSOList.

◆ removeNotificationObserverFromAllCSOLists()

static void ml::CSOList::removeNotificationObserverFromAllCSOLists ( csoNotificationCB callback,
void *  userData 
)
static

Removes a certain notification observer from all CSOLists.

◆ resetUniqueCSOLabelIdMap()

void ml::CSOList::resetUniqueCSOLabelIdMap ( )
inline

Resets the data structure that is used to determine unique IDs for getUniqueCSOLabel.

Afterward, unique IDs are still generated. However, these IDs do not start with the highest previously assigned ID. Instead, the first unused ID is used. This behavior is identical to ID assignment after loading of a stored CSOList.

Definition at line 403 of file CSOList.h.

◆ resetUniqueGroupLabelIdMap()

void ml::CSOList::resetUniqueGroupLabelIdMap ( )
inline

Resets the data structure that is used to determine unique IDs for getUniqueCSOLabel Afterward, unique IDs are still generated.

However, these IDs do not start with the highest previously assigned ID. Instead, the first unused ID is used. This behavior is identical to ID assignment after loading of a stored CSOList.

Definition at line 409 of file CSOList.h.

◆ saveTo() [1/2]

bool ml::CSOList::saveTo ( std::ostream &  outStream,
bool  binary,
ModuleBackgroundTask task = nullptr 
) const

Pipes the internal structure of a this list (CSOs and CSOGroups) into the specified stream.

Returns whether the operation was successful.

◆ saveTo() [2/2]

bool ml::CSOList::saveTo ( std::string &  filename,
bool  binary,
std::string &  message,
ModuleBackgroundTask task = nullptr 
) const

Pipes the internal structure of a this list (CSOs and CSOGroups) into the specified file.

Returns whether the operation was successful.

◆ sendCloseEventGroup()

void ml::CSOList::sendCloseEventGroup ( )

Sends a CSOLIST_EVENT_GROUP_CLOSE event to let listeners combine preceding events..

◆ sendModuleEventGroup()

void ml::CSOList::sendModuleEventGroup ( CSOEvent event)

Sends a module CSOGroup event.

◆ sendOpenEventGroup()

void ml::CSOList::sendOpenEventGroup ( )

Sends a CSOLIST_EVENT_GROUP_OPEN event to let listeners combine following events.

◆ sendPostEvent() [1/6]

void ml::CSOList::sendPostEvent ( CSOEvent::CSOEventType  eventType)

Sends a post-event with the specified event type.

◆ sendPostEvent() [2/6]

void ml::CSOList::sendPostEvent ( CSOEvent::CSOEventType  eventType,
const CSOIdVector csoIds 
)

Sends a post-event with the specified type and CSO IDs.

◆ sendPostEvent() [3/6]

void ml::CSOList::sendPostEvent ( CSOEvent::CSOEventType  eventType,
const CSOIdVector csoIds,
const CSOIdVector groupIds 
)

Sends a post-event with the specified type, CSO IDs, and CSOGroup IDs.

◆ sendPostEvent() [4/6]

void ml::CSOList::sendPostEvent ( CSOEvent::CSOEventType  eventType,
unsigned int  csoId 
)

Sends a post-event with the specified type and CSO ID.

◆ sendPostEvent() [5/6]

void ml::CSOList::sendPostEvent ( CSOEvent::CSOEventType  eventType,
unsigned int  csoId,
const CSOIdVector groupIds 
)

Sends a post-event with the specified type, CSO ID, and CSOGroup IDs.

If the CSO ID does not matter, just set it to INVALID_CSO_ID.

◆ sendPostEvent() [6/6]

void ml::CSOList::sendPostEvent ( CSOEvent::CSOEventType  eventType,
unsigned int  csoId,
unsigned int  groupId 
)

Sends a post-event with the specified type, CSO ID, and CSOGroup ID.

If the CSO ID does not matter, just set it to INVALID_CSO_ID.

◆ sendPreEvent() [1/6]

void ml::CSOList::sendPreEvent ( CSOEvent::CSOEventType  eventType)

Sends a pre-event with the specified event type.

◆ sendPreEvent() [2/6]

void ml::CSOList::sendPreEvent ( CSOEvent::CSOEventType  eventType,
const CSOIdVector csoIds 
)

Sends a pre-event with the specified event type and the CSO IDs.

◆ sendPreEvent() [3/6]

void ml::CSOList::sendPreEvent ( CSOEvent::CSOEventType  eventType,
const CSOIdVector csoIds,
const CSOIdVector groupIds 
)

Sends a pre-event with the specified event type, CSO IDs, and CSOGroup IDs.

◆ sendPreEvent() [4/6]

void ml::CSOList::sendPreEvent ( CSOEvent::CSOEventType  eventType,
unsigned int  csoId 
)

Sends a pre-event with the specified event type and the CSO ID.

◆ sendPreEvent() [5/6]

void ml::CSOList::sendPreEvent ( CSOEvent::CSOEventType  eventType,
unsigned int  csoId,
const CSOIdVector groupIds 
)

Sends a post-event with the specified type, CSO ID, and CSOGroup IDs.

If the CSO ID does not matter, just set it to INVALID_CSO_ID.

◆ sendPreEvent() [6/6]

void ml::CSOList::sendPreEvent ( CSOEvent::CSOEventType  eventType,
unsigned int  csoId,
unsigned int  groupId 
)

Sends a pre-event with the specified type, CSO ID, and CSOGroup ID.

If the CSO ID does not matter, just set it to INVALID_CSO_ID.

◆ setCSOCurrentlyUnderMouse()

void ml::CSOList::setCSOCurrentlyUnderMouse ( CSO csoUnderMouse)

Sets the pointer to the CSO currently under the mouse cursor.

At the moment, only the SoView2DCSOExtensibleEditor sets this pointer. You might break networks if you fool around with this.

◆ setCurrentCSOId()

void ml::CSOList::setCurrentCSOId ( unsigned int  id)
inline

Sets the current last ID for CSOs. Do not tamper with it.

Definition at line 169 of file CSOList.h.

◆ setCurrentGroupId()

void ml::CSOList::setCurrentGroupId ( unsigned int  id)
inline

Sets the current last ID for CSOGroups. Do not tamper with it.

Definition at line 171 of file CSOList.h.

◆ setManager()

void ml::CSOList::setManager ( CSOManager manager)

Sets the pointer to the internal manager and sets the CSOGroup default rules.

◆ setSelected() [1/2]

bool ml::CSOList::setSelected ( CSO cso)

Sets the specified CSO as being selected and deselects all other CSOs.

This is done by first clearing the selection and then setting the specified CSO as being selected. Returns 'true' if the selection has actually been changed, 'false' otherwise.

◆ setSelected() [2/2]

bool ml::CSOList::setSelected ( CSOGroup group)

Set the specified CSOGroup as being selected and deselects all other CSOGroups.

This is done by first clearing the selection and then setting the specified CSOGroup as being selected. Returns 'true' if the selection has actually been changed, 'false' otherwise.

◆ setUndoRedoManager()

void ml::CSOList::setUndoRedoManager ( CSOUndoRedoManager undoRedoManager)
inline

Sets the internal undo/redo manager.

Definition at line 152 of file CSOList.h.

◆ setupCSOList()

void ml::CSOList::setupCSOList ( )
protected

◆ undo()

void ml::CSOList::undo ( )

Performs an undo of the last modification.

◆ unmuteEvents()

void ml::CSOList::unmuteEvents ( )

Revokes a mute request.

If muteEvents was called multiple times, unmuteEvents has to be called the same number of times before events are sent again.

◆ updateCurrentCSOId()

void ml::CSOList::updateCurrentCSOId ( unsigned int  newId)

Updates the current ID if the new ID is larger than the current ID.

◆ updateCurrentGroupId()

void ml::CSOList::updateCurrentGroupId ( const unsigned int  newId)

Updates the current CSOGroup ID if the new ID is larger than the current ID.

◆ updateDisplays()

void ml::CSOList::updateDisplays ( )

Updates all connected information/managing modules (not the renderers!).

Friends And Related Symbol Documentation

◆ CSOLoad

friend class CSOLoad
friend

Definition at line 800 of file CSOList.h.


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