21#include <ThirdPartyWarningsDisable.h>
22#include <boost/unordered_set.hpp>
23#include <ThirdPartyWarningsRestore.h>
111 float getSquaredDistance(
float x1,
float y1,
float x2,
float y2)
const;
115 void movePositions(
const std::vector <PositionOnPath> & source, std::vector <PositionOnPath> &
destination,
const SbVec3f&
moveDelta);
117 void fillBulgedClosedCSO();
118 void fillBulgedOpenCSO();
120 std::vector <PositionOnPath> _positionsUpInitial;
121 std::vector <PositionOnPath> _positionsDownInitial;
123 std::vector <PositionOnPath> _positionsUpInteractive;
124 std::vector <PositionOnPath> _positionsDownInteractive;
129 unsigned int _hitPathPointIndex;
130 bool _shouldShowInfluence;
135 boost::unordered_set < int > _visibleCSOIds;
#define SOCSO_EXPORT
Header file for system independent resolution.
Extension for bulging any type of CSO in an influence radius.
void bulgeStartPressAt(const SoPointerPosition &pos) override
SoSFColor previewColor
The preview color.
SoPointingAction * bulgeEndPress(int clickCount) override
void bulgeDragMoveTo(const SoPointerPosition &pos) override
void selectAndMoveStartPressAt(const SoPointerPosition &) override
SoSFFloat previewWidth
The preview width.
void setVisibleCSOs(const std::vector< CSODrawCSOInfos > &drawCSOInformation, const CSODrawView2DInfos &view2DInfos, SoView2DCSOExtensibleEditor *editor) override
Sets visible CSOs that have been determined in the extensible editor.
bool shouldRenderGeneral(ml::CSO *) const override
Returns whether a given CSO should be rendered by this general extension.
void pointerPositionIfAllowedAt(const SoPointerPosition &) override
Sets seed points while moving the mouse – but not while dragging.
SoSFEnum interactionPossibleCursor
static void initClass()
init class in inventor runtime
void selectAndMoveDragMoveTo(const SoPointerPosition &) override
SoSFInt32 pathInfluenceLength
The influence along the path in pixel.
void setBulgeInformation(ml::CSOList *csoList, ml::CSO *cso, ml::CSOPathPoints *pathPoints, unsigned int pathPointIndex, float distance)
bool isCSOWithIdVisible(int id)
bool createEndPress(int) override
SoPointingAction * selectAndMoveEndPress(int) override
SoCSOBulgeEditor()
Standard constructor.
void draw(const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &drawSliceInfo, SoView2DCSOExtensibleEditor *editor) override
Drawing routine.
void initMembers() override
void showInfluence(bool state)
bool shouldRenderSpecific(ml::CSO *) const override
Returns whether a given CSO should be rendered by this specific extension.
void createDragMoveTo(const SoPointerPosition &) override
SoSFEnum interactionPerformCursor
SoSFInt32 selectionDistance
The selection distance in pixel.
void cancel() override
Cancels an action like generating a CSO. Depends on concrete editor.
bool isModificationEditor() const override
Returns whether the editor is a modification editor.
void pointerPosition(const SoPointerPosition &) override
Is called when the mouse moves over a viewer.
void createStartPressAt(const SoPointerPosition &) override
Base class for an editor extension for the SoView2DCSOExtensibleEditor.
virtual void draw(const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &sliceInfo, SoView2DCSOExtensibleEditor *editor)
Main routine for drawing a CSO.
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
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 CSO represents a contour segmentation object.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.