75  int cursorShape()
 const override { 
return defaultCursor.getValue(); }
 
   99  bool isEligibleForModification(
ml::CSO* cso);
 
  102  void fillPreCandidatesList(std::vector < ml::CSO* >& candidates);
 
  105  void fillCandidatesOnSameSlice(
const std::vector < ml::CSO* >& candidates, std::vector < ml::CSO* >& candidatesOnSameSlice);
 
  108  void fillCandidatesCrossedVoxelBoundingBox(
const std::vector < ml::CSO* >& candidatesOnSameSlice, std::vector < ml::CSO* >& candidatesCrossedBoundingBox);
 
  111  void fillCandidatesPointInsideTrailBoundingBox(
const std::vector < ml::CSO* >&candidatesCrossedBoundingBox, std::vector < ml::CSO* >& candidatesPointInsideTrailBoundingBox);
 
  114  void fillCandidatesCrossedByTrail(
const std::vector < ml::CSO* >& candidatesPointInsideTrailBoundingBox, std::vector < ml::CSO* >& candidatesCrossingTrail);
 
  117  void modifyCandidate(
ml::CSO* candidate);
 
  120  void reverseOrder(std::vector < ml::Vector3 >& positions );
 
  124  void fillUpTrail(
const std::vector < ml::Vector3 >& inputPositions, std::vector < ml::Vector3 >& filledOutputPositions);
 
  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 that are interpolated by a certain interpolation sch...
 
The CSOSeedPoint can be interactively set and modified, and is the framework for contours.
 
The CSO represents a contour segmentation object.