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.
SoCSOEditorExtension()
Hidden constructor.
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
static void initClass()
init class in inventor runtime
SoCSOModifyEditor()
Standard constructor.
SoSFTrigger notifyTrailIsSelfIntersecting
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
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
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
bool canCreateCSOs() const override
Returns whether the editor can create a CSO.
void pointerPositionIfAllowedAt(const SoPointerPosition &) override
SoPointerPosition manages the current position of the mouse cursor.
a list that holds all View2DSlice objects (lazily created) of a SoView2D
The CSOBoundingBox defines an axis-parallel bounding box with double precision.
Tmat4< MLdouble > Matrix4
The standard 4x4 matrix of type double.
Tvec3< MLdouble > Vector3
A vector with three components of type double.