75 int cursorShape()
const override {
return defaultCursor.getValue(); }
99 bool isEligibleForModification(
ml::CSO* cso);
102 void fillPreCandidatesList(std::vector < ml::CSO* >&
candidates);
120 void reverseOrder(std::vector < ml::Vector3 >& positions );
126 void setupGLForTrail();
127 void setBackGLForTrail();
134 bool _isUNIONModification;
138 std::string viewerName;
140 std::map < ml::CSO* , std::vector < ml::Vector3> > _csoPathPointsVoxelSpace;
143 bool contains(
const std::vector< ml::CSO* >&
csoVector,
ml::CSO* cso)
const;
#define SOCSO_EXPORT
Header file for system independent resolution.
Base class for an editor extension for the SoView2DCSOExtensibleEditor.
Extension for modifying an existing CSO.
bool shouldRenderSpecific(ml::CSO *) const override
Does not render specific CSOs but only its own temporary trail.
bool isModificationEditor() const override
Returns whether the editor is a modification editor.
void selectAndMoveStartPressAt(const SoPointerPosition &) override
SoSFBool shouldCheckCSOForSelfIntersection
If checked, the module tests a candidate CSO whether it is self-intersection before attempting to mod...
static void initClass()
init class in inventor runtime
SoCSOModifyEditor()
Standard constructor.
SoSFTrigger notifyTrailIsSelfIntersecting
Button is triggered from the inside if the modification trail is intersecting itself.
void drawAdditionalGeometry(const CSODrawView2DInfos &view2DInfos, SoView2DCSOExtensibleEditor *editor) override
Routine for drawing additional geometry of the extension.
void createStartPressAt(const SoPointerPosition &pos) override
SoPointingAction * selectAndMoveEndPress(int) override
bool createEndPress(int clickCount) override
void createDragMoveTo(const SoPointerPosition &pos) override
void selectAndMoveDragMoveTo(const SoPointerPosition &) override
bool shouldRenderGeneral(ml::CSO *) const override
Returns true so we can use the general render code.
void cancel() override
Cancels an action like generating a CSO. Depends on concrete editor.
SoSFTrigger notifyRejectModification
Button is triggered from the inside if the modification has been rejected because it would have cause...
void initMembers() override
SoSFColor selfIntersectionColor
Color for the trail in case it intersects itself.
bool evaluateHitPoint(const ml::Vector3 &, View2DSliceList *, ml::CSOList *, const ml::CSOBoundingBox &, SoView2DCSOExtensibleEditor *, ml::CSO *&, ml::CSOSeedPoint *&, ml::CSOPathPoints *&, float &) override
a modification interaction can start anywhere, so overload this and always return 'false'.
int cursorShape() const override
Returns the cursor shape that indicates the next creation.
bool isCreationAllowed() const override
Returns whether the editor is allowed to create a new CSO.
SoSFBool shouldSetModifiedCSOSelected
If checked, the modified CSO gets selected, otherwise the selection remains unchanged.
bool canCreateCSOs() const override
Returns whether the editor can create a CSO.
void pointerPositionIfAllowedAt(const SoPointerPosition &) override
Sets seed points while moving the mouse – but not while dragging.
SoPointerPosition manages the current position of the mouse cursor.
SoPointingAction is the base class for any mouse based interaction.
a list that holds all View2DSlice objects (lazily created) of a SoView2D
The CSOBoundingBox defines an axis parallel bounding box with double precision.
A CSOList comprises a number of CSOs and CSOGroups and is the central object for contour segmentation...
The CSOPathPoints is a list of world coordinates which are interpolated by a certain interpolation sc...
The CSOSeedPoint can be interactively set and modified and is the framework for contours.
The CSO represents a contour segmentation object.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.