13 #ifndef CSOMODIFY_PROCESSOR_H
14 #define CSOMODIFY_PROCESSOR_H
104 CSO* _mainModificatorCSO;
106 CSO* _helperModificatorCSO;
108 bool _isCurrentlyEditing;
110 std::vector<unsigned int> _selectedIDs;
112 bool _interactOnlyOnSelectedCSOs;
116 typedef std::vector<Vector3> PosVector;
119 struct CSOAndPositions {
121 PosVector* posVector;
124 struct CrossingIndices {
130 struct EntryExitSegment {
131 EntryExitSegment() { entryIndex = exitIndex = -1; }
143 void _collectSegments(
const std::vector<Vector3>& clipee,
144 const std::vector<Vector3>& clipper,
145 bool insideOutsideValue,
146 std::vector<PosVector>& positionSegments,
147 std::vector<EntryExitSegment>& eeSegments);
153 void _parseSelection();
155 bool _isEditable(CSO* cso);
#define SOCSO_EXPORT
Header file for system independent resolution.
SoView2D is a 2D viewer for image data.
a list that holds all View2DSlice objects (lazily created) of a SoView2D
A CSOList comprises a number of CSOs and CSOGroups and is the central object for contour segmentation...
Module which allows for a modification of CSOs of all types.
bool isCurrentlyGenerating() override
Returns whether the processor is currently generating a new contour.
CSOModifyProcessor()
Standard constructor.
~CSOModifyProcessor() override
Standard destructor.
bool isCurrentlyEditing() override
Returns whether the processor is currently editing an existing contour.
void activateAttachments() override
Initialize module after loading.
bool couldCloseCSO() override
Returns whether the processor could close an open CSO by the processor's rules.
bool process(CSOEvalEventView2DInfos view2DInfos, CSOEvalEventCSOInfos csoInfos) override
Processes the interaction events and interpolates the contours accordingly.
void triggerSetMouseCursor(SoView2D *view2d, bool shouldSetMouseCursor) override
Triggers the setting of the processors default mouse cursor.
bool needsMemoryImage() override
Returns whether the processor need the current memory image for interpolation.
void resetInteractionState() override
Sets back internal interaction state.
void handleNotification(Field *field) override
Called when input changes.
Base class for processor modules; those provide mechanisms for an interactive generation of seed poin...
The CSO represents a contour segmentation object.
Base class for all fields used in the ML.
Field to encapsulate a float value.
Field to encapsulate a string value.
#define ML_MODULE_CLASS_HEADER(className)
Like ML_CLASS_HEADER for the usage of derived classes from Module.
ModProcLimitUnits
Enumeration of limiting units.
@ ModProcLimitSMM
Limit unit: square millimeter.
@ ModProcLimitSCM
Limit unit: square centimeter.
@ ModProcLimitSM
Limit unit: square meter.
@ ModProcLimitNumPoints
Limit unit: number of points.
Tvec3< MLdouble > Vector3
A vector with 3 components of type double.