MeVisLab Toolbox Reference
SoCSOAngleEditor Class Reference

Extension for rendering, generating, and modifying a distance polyline CSO. More...

#include <SoCSOAngleEditor.h>

Inheritance diagram for SoCSOAngleEditor:
SoCSOCreatorEditorExtension CSOPointDensity SoCSOEditorExtension ml::CSOGeneratorBase

Public Member Functions

 SoCSOAngleEditor ()
 Standard constructor.
void initMembers () override
void createStartPressAt (const SoPointerPosition &pos) override
void createNewCSO (const SoPointerPosition &pos)
void createDragMoveTo (const SoPointerPosition &pos) override
bool createEndPress (int clickCount) override
void pointerPositionIfAllowedAt (const SoPointerPosition &pos) override
void selectAndMoveStartPressAt (const SoPointerPosition &pos) override
void selectAndMoveDragMoveTo (const SoPointerPosition &pos) override
SoPointingActionselectAndMoveEndPress (int clickCount) override
void insertSeedPointStartPressAt (const SoPointerPosition &pos) override
void insertSeedPointDragMoveTo (const SoPointerPosition &pos) override
SoPointingActioninsertSeedPointEndPress (int clickCount) override
bool deleteSeedPoint (ml::CSO *cso, ml::CSOSeedPoint *seedPoint) override
 Removes the given seed point from the given CSO and returns whether that was successful.
void draw (const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &drawSliceInfo, SoView2DCSOExtensibleEditor *editor) override
 Main routine for drawing a CSO.
void drawHalfArc (const SbVec2f &arcPos1, const SbVec2f &arcPos2, const SbVec2f &center, float radius)
void cancel () override
 Cancels an action like generating a CSO. Depends on concrete editor.
bool canAddSeedPoint ()
Public Member Functions inherited from SoCSOCreatorEditorExtension
bool canCreateCSOs () const override
 Returns whether the editor can create a CSO.
int cursorShape () const override
 Returns the cursor shape that indicates the next creation.
Public Member Functions inherited from SoCSOEditorExtension
void setExtensibleEditor (SoView2DCSOExtensibleEditor *extensibleEditor)
 Sets the pointer to the calling extensible editor.
virtual void activate (SoView2DCSOExtensibleEditor *extensibleEditor)
virtual void deactivate ()
virtual void buttonMaskChanged ()
virtual void editingOnChanged ()
virtual void startDrawing (View2DSliceList *)
 Is called before drawing.
virtual void drawingDone ()
 Is called when all drawing is done.
virtual void setVisibleCSOs (const std::vector< CSODrawCSOInfos > &drawCSOInformation, const CSODrawView2DInfos &view2DInfos, SoView2DCSOExtensibleEditor *editor)
 Sets visible CSOs that have been determined in the extensible editor.
virtual void drawSecondPass (const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &sliceInfo, SoView2DCSOExtensibleEditor *editor)
 Drawing routine that comes between 'main' and 'overlay'.
virtual void drawOverlay (const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &sliceInfo, SoView2DCSOExtensibleEditor *editor)
virtual void drawAdditionalGeometry (const CSODrawView2DInfos &view2DInfos, SoView2DCSOExtensibleEditor *editor)
 Routine for drawing additional geometry of the extension.
virtual void bulgeStartPressAt (const SoPointerPosition &)
virtual void bulgeDragMoveTo (const SoPointerPosition &)
virtual SoPointingActionbulgeEndPress (int)
virtual void pointerPosition (const SoPointerPosition &)
 Called when the mouse moves over a viewer.
virtual void pointerLeftWindow ()
 Called when mouse pointer leaves the window.
virtual bool isCreationAllowed () const
 Returns whether the editor is allowed to create a new CSO.
virtual bool isCreationAllowedAt (const SoPointerPosition &) const
 Returns whether the editor is allowed to create a new CSO at the given position, by default calls the previous method.
virtual bool isModificationAllowed () const
 Returns whether the editor is allowed to modify an existing CSO.
virtual bool shouldRenderCSOs () const
 Returns whether the editor should render.
virtual bool expectsToCreateCSO ()
SbString getCreatorExtensionId () const
void setActiveCSOList (ml::CSOList *hitCSOList)
void setSelectAndMoveInformation (ml::CSOList *hitCSOList, ml::CSO *hitCSO, ml::CSOSeedPoint *hitSeedPoint, ml::CSOPathPoints *hitPathPoints, float hitDistance)
void setCSOUnderMouse (ml::CSO *cso)
ml::CSOgetCSOUnderMouse () const
bool hasSelectedSeedPoint () const
bool hasSelectedCSO () const
virtual SbString getSubType () const
 Returns the sub type string of the derived class.
virtual bool shouldRenderSpecific (ml::CSO *cso) const
 Returns whether a given CSO should be rendered by this specific extension.
virtual bool shouldRenderGeneral (ml::CSO *) const
virtual bool isDefaultRenderer () const
 Returns whether the editor is the default editor.
virtual bool isModificationEditor () const
 Returns whether the editor is a modification editor.
virtual void resetCache ()
 Resets internal module caches, if there are any.
ml::CSOSeedPointgetPreviousSeedPoint (ml::CSOSeedPoint *seedPoint) const
virtual void mouseWheelEventReceived (SoMouseWheelEvent::Orientation, int, View2DEvent *)
virtual bool evaluateHitPoint (const ml::Vector3 &worldPosition, View2DSliceList *slicelist, ml::CSOList *csoList, const ml::CSOBoundingBox &slabBB, SoView2DCSOExtensibleEditor *editor, ml::CSO *&localHitCSO, ml::CSOSeedPoint *&localHitSeedPoint, ml::CSOPathPoints *&localHitPathPoints, float &distance)
void reset ()
ml::CSOVisualizationSettingsgetVisualizationSettings ()
bool shouldShowCSOForCurrentTimePoint (const CSODrawView2DInfos &view2DInfos, ml::CSO *cso)
void sendCSOEventsOnCancel (ml::CSO *cso)
 Sends CSO events for completing a creation or interaction when canceling it.
virtual void sendCSOEventsOnCancel (ml::CSOList *csoList)
Public Member Functions inherited from ml::CSOGeneratorBase
 CSOGeneratorBase ()
 Default constructor.
virtual ~CSOGeneratorBase ()=default
CSOgeneratorAddCSO (CSOList *csoList, bool useUndoRedo=true)
CSOgeneratorAddCSONoEvent (CSOList *csoList, bool useUndoRedo=true, bool sendEvent=false)
 See generatorAddCSO, but no CSOGroup scope event is emitted. (So this method is faster!).
CSOGroupgeneratorGetParentGroup (CSOList *csoList, bool useUndoRedo=false, bool generate=false)
 Returns the parent CSOGroup according to current CSOGroup settings.
void generatorEmptyGroupOnDemand (CSOList *csoList)
 Empties a CSOGroup on demand of the given CSOList with the set label.
Public Member Functions inherited from CSOPointDensity
 CSOPointDensity ()
float getPointDensity (const SoPointerPosition &pos) const

Static Public Member Functions

static void initClass ()
 init class in inventor runtime
Static Public Member Functions inherited from SoCSOCreatorEditorExtension
static void initClass ()
 init class in inventor runtime
Static Public Member Functions inherited from SoCSOEditorExtension
static void initClass ()
 init class in inventor runtime

Public Attributes

SoSFBool drawArc
 Draw the angle arc on line joint.
SoSFFloat arcDistance
 Distance of the angle arc from the joint in pixels.
SoSFFloat arcLineWidth
SoSFColor arcColor
SoSFFloat arcAlpha
SoSFBool drawLabel
SoSFFloat labelDistance
SoSFInt32 labelPrecision
SoSFBool labelShadow
SoSFColor labelColor
SoSFFloat labelAlpha
SoSFInt32 labelFontSize
Public Attributes inherited from SoCSOCreatorEditorExtension
SoSFInt32 moduleCreatorId
 Sets the module's creator id.
SoSFString moduleCreatorString
 Sets the module's type string.
SoSFString labelPrefixString
 Sets a label prefix string.
SoSFBool requirePointerPositionMovementToCreateCSO
 Should the mouse have to be moved a bit before creating a CSO?
SoSFInt32 pointerPositionEpsilonForCreatingCSO
 The pointer position movement epsilon distance in pixel to trigger CSO creation.
SoSFBool shouldEmptyGroupBeforeGenerating
 Should the CSO group be emptied before generating new CSOs into it?
SoSFEnum addCSOToGroupMode
 Sets whether the group's label or its id should be used for cso-into-group generation.
SoSFString addCSOToGroupLabel
 Sets the group's label for CSO generation.
SoSFInt32 addCSOToGroupId
 Sets the group's id for CSO generation.
SoSFEnum defaultPathPointStyle
 Sets the default path point style.
SoSFFloat defaultPathPointWidth
 Sets the default path point width.
SoSFColor defaultPathPointColor
 Sets the default path point color.
SoSFFloat defaultPathPointAlpha
 Sets the default path point alpha.
SoSFEnum defaultSeedPointStyle
 Sets the default seed point style.
SoSFFloat defaultSeedPointSize
 Sets the default seed point size.
SoSFColor defaultSeedPointColor
 Sets the default seed point color.
SoSFFloat defaultSeedPointAlpha
 Sets the default seed point alpha.
SoSFEnum defaultVoxelWriteMode
 Sets the default voxel write mode.
SoSFFloat defaultVoxelWriteValue
 Sets the default voxel write value.
SoSFEnum createCursor
 Cursor shapes.
SoSFEnum moveAllCursor
SoSFEnum moveSeedCursor
Public Attributes inherited from SoCSOEditorExtension
SoSFString extensionId
 ID for a editor, needs to be unique per editor extension instance.
SoSFBool allowCreation
 Shall the editor allow creation?
SoSFBool allowModification
 Shall the editor allow modification of CSOs of its type?
SoSFBool allowSeedPointInteraction
 Should the interaction with seed points be allowed?
SoSFBool shouldRender
 Shall the editor render its CSOs?
SoSFMLBase inVisualizationSettings
SoSFEnum selectionCursor
SoSFEnum interactionForbiddenCursor
SoSFInt32 csoIdUnderMouseCursor
 The ID of the CSO currently under the mouse (or -1 if no CSO is under the mouse).
Public Attributes inherited from CSOPointDensity
SoSFEnum pointDensityMode
SoSFFloat densityFactor

Protected Member Functions

ml::Vector3 getCurrentPositon (const SoPointerPosition &pos)
Protected Member Functions inherited from SoCSOCreatorEditorExtension
 SoCSOCreatorEditorExtension ()
 Hidden constructor.
void initMembers () override
ml::CSOeditorAddCSO (ml::CSOList *csoList)
int getModuleCreatorId () const override
 Returns the module's creator id.
std::string getModuleType () const override
 Returns the module's type string.
void setCreationData (const SoPointerPosition &pos, ml::CSO *newCSO) override
 Sets creation data to a newly created CSO.
int getMaxAvailableId ()
 Returns the current id for CSOs created by this editor. It is the maximum available id.
bool getShouldEmptyBeforeGeneration () const override
int getAddCSOToGroupMode () const override
 Returns the group generation mode.
std::string getAddCSOToGroupLabel () const override
 Returns the label string of a target group.
int getAddCSOToGroupId () const override
 Returns the id of a target group.
int getDefaultPathPointStyle () const override
 Returns the set default path point style for a new CSO.
float getDefaultPathPointWidth () const override
 Returns the set default path point width for a new CSO.
ml::Vector3 getDefaultPathPointColor () const override
 Returns the set default path point color for a new CSO.
float getDefaultPathPointAlpha () const override
 Returns the set default path point alpha for a new CSO.
int getDefaultSeedPointStyle () const override
 Returns the set default seed point style for a new CSO.
float getDefaultSeedPointSize () const override
 Returns the set default seed point size for a new CSO.
ml::Vector3 getDefaultSeedPointColor () const override
 Returns the set default seed point color for a new CSO.
float getDefaultSeedPointAlpha () const override
 Returns the set default seed point alpha for a new CSO.
int getDefaultVoxelWriteMode () const override
 Returns the set default voxel write mode for a new CSO.
float getDefaultVoxelWriteValue () const override
 Returns the set default voxel write value for a new CSO.
ml::CSOgetActiveCSO () const override
 Returns the currently active CSO.
bool isFartherThanEpsilon (const SoPointerPosition &pos) const
Protected Member Functions inherited from SoCSOEditorExtension
 SoCSOEditorExtension ()
 Hidden constructor.
 ~SoCSOEditorExtension () override
 Hidden destructor.
void sendCSONotificationRepaint ()
 Sends a CSO notification to repaint the CSOList.
void sendCSONotificationMove ()
 Sends a CSO notification on moving a CSO or seed point.
void sendCSONotificationFinishInteraction ()
 Sends a CSO notification on finishing an interaction with a CSO.
void sendCSONotificationResetInteractionState ()
 Sends a CSO notification on having the interaction state being reset.
void sendCSONotificationInsertSeedPoint ()
 Sends a CSO notification on inserting a seed point.
void sendCSONotificationNewCSOStarted ()
 Sends a CSO notification on having started to create a new CSO.
void setExtensionIdAsSubType ()
void extensionIdCB (SoField *)
SoCSOEditorTools::LineRenderSettings getLineRenderSettingsOnSlice ()
 Creates a LineRenderSettings struct from the editors visualization settings "onSlice" section.
SoCSOEditorTools::LineRenderSettings getLineRenderSettingsForCSO (ml::CSO *cso)
 Creates a LineRenderSettings struct from the visualization attributes of the given CSO.
void drawPathPoints (const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &drawSliceInfo, const SbVec2f &shadowOffsetDevice, SoView2DCSOExtensibleEditor *editor)
 Draws the CSO by drawing lines between the path points. Renders different types of CSOs.
void renderPathPoints (const CSOPathPointsRenderSettings &renderSettings, const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const std::vector< CSOSliceCrossing > &pathPointsLists, GLint lineMode, const SbVec2f &shadowOffsetDevice)
 Draws path points with given render settings.
void drawPathAndCrossingPoints (const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const SbVec2f &shadowOffsetDevice, const std::vector< CSOSliceCrossing > &pathAndCrossingPoints, GLint lineMode)
 Draws the path and crossing points.
void drawShape (int style, SoView2DCSOExtensibleEditor *editor, ml::CSOVisualizationSettings *visualizationSettings, float deviceX, float deviceY, float size, float lineWidth=1.f)
 Draws the shape with the given style with the given center and size.
void drawSeedPoints (const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &drawSliceInfo, SoView2DCSOExtensibleEditor *editor)
 Draws the seed points of the CSO.
void drawFixedSizeCircleAt (float deviceX, float deviceY)
 Renders a fixed size circle at the given position.
bool isCSOVisible (const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &drawSliceInfo, SoView2DCSOExtensibleEditor *editor)
 Returns whether the CSO is visible on the current slice.
void mapWorldToDevice (const SoPointerPosition &pos, const ml::Vector3 &worldPosition, float &deviceX, float &deviceY)
 Returns device coordinates for a given world position.
void mapWorldToDevice (View2DSliceList *slicelist, const ml::Vector3 &worldPosition, float &deviceX, float &deviceY)
 Returns device coordinates for a given world position.
ml::Vector3 mapDeviceToWorld (const SoPointerPosition &pos, float deviceX, float deviceY)
 Returns world coordinates for given device position.
ml::Vector3 mapWorldToVoxel (const SoPointerPosition &pos, const ml::Vector3 &worldPosition)
 Returns a voxel position for a given world position.
ml::Vector3 mapWorldToVoxel (const SoPointerPosition &pos, const SbVec3f &worldPosition)
 Returns a voxel position for a given world position.
ml::Vector3 mapVoxelToWorld (const SoPointerPosition &pos, const ml::Vector3 &voxelPosition)
 Returns a world position for a given voxel position.
SbVec2f nonShadowOffset () const
 Returns the default offset for non-shadows in pixels.
SbVec2f shadowOffset () const
 Returns the default offset for shadows in pixels.
GLint getLineMode (ml::CSO *cso)
 Returns the correct line mode for open and for closed CSOs.
void setupGLForCSO (const CSODrawCSOInfos &csoInfos)
 Sets up GL state for color, line width, and point size.
void setupGLShadow (float generalAlpha=1.0f)
 Sets up the GL state for shadow rendering (color and line width).
void glSetAlpha (float alpha)
 Sets an alpha value but retains the set color.
float getDepthAlpha (int maxSliceDistance, int currentSliceDistance) const
 Returns an alpha factor based on the max distance and the current distance.
bool doesCSOTimePointMatchCurrentTimePoint (const CSODrawView2DInfos &view2DInfos, ml::CSO *cso)
 Returns true if the CSO's time point matches the (overwritten) current time point.

Additional Inherited Members

Protected Attributes inherited from SoCSOCreatorEditorExtension
SbVec2f _startDevicePointerPosition
 The device position of the pointer at creation start.
ml::CSO_newCSO
 Created CSO.
Protected Attributes inherited from SoCSOEditorExtension
SoView2DCSOExtensibleEditor_editor
ml::CSOListPtr _hitCSOList
 Pointer to internal/interactive states.
ml::CSO_hitCSO
ml::CSOSeedPoint_hitSeedPoint
ml::CSOPathPoints_hitPathPoints
float _hitDistance
ml::CSO_csoUnderMouse
ml::CSOVisualizationSettings _visualizationSettings
 Default visual settings. Access them via the method getVisualSettings().
SbString _subType

Detailed Description

Extension for rendering, generating, and modifying a distance polyline CSO.

Extension for rendering, generating, and modifying a distance polyline CSO.

Definition at line 24 of file SoCSOAngleEditor.h.

Constructor & Destructor Documentation

◆ SoCSOAngleEditor()

SoCSOAngleEditor::SoCSOAngleEditor ( )

Standard constructor.

Member Function Documentation

◆ canAddSeedPoint()

bool SoCSOAngleEditor::canAddSeedPoint ( )

◆ cancel()

void SoCSOAngleEditor::cancel ( )
overridevirtual

Cancels an action like generating a CSO. Depends on concrete editor.

Reimplemented from SoCSOEditorExtension.

◆ createDragMoveTo()

void SoCSOAngleEditor::createDragMoveTo ( const SoPointerPosition & pos)
overridevirtual

Implements SoCSOEditorExtension.

◆ createEndPress()

bool SoCSOAngleEditor::createEndPress ( int clickCount)
overridevirtual

Implements SoCSOEditorExtension.

◆ createNewCSO()

void SoCSOAngleEditor::createNewCSO ( const SoPointerPosition & pos)

◆ createStartPressAt()

void SoCSOAngleEditor::createStartPressAt ( const SoPointerPosition & pos)
overridevirtual

Implements SoCSOEditorExtension.

◆ deleteSeedPoint()

bool SoCSOAngleEditor::deleteSeedPoint ( ml::CSO * cso,
ml::CSOSeedPoint *  )
overridevirtual

Removes the given seed point from the given CSO and returns whether that was successful.

Reimplemented from SoCSOEditorExtension.

◆ draw()

void SoCSOAngleEditor::draw ( const CSODrawCSOInfos & csoInfos,
const CSODrawView2DInfos & view2DInfos,
const CSODrawSliceInformation & sliceInfo,
SoView2DCSOExtensibleEditor * editor )
overridevirtual

Main routine for drawing a CSO.

Reimplemented from SoCSOEditorExtension.

◆ drawHalfArc()

void SoCSOAngleEditor::drawHalfArc ( const SbVec2f & arcPos1,
const SbVec2f & arcPos2,
const SbVec2f & center,
float radius )

◆ getCurrentPositon()

ml::Vector3 SoCSOAngleEditor::getCurrentPositon ( const SoPointerPosition & pos)
protected

◆ initClass()

void SoCSOAngleEditor::initClass ( )
static

init class in inventor runtime

◆ initMembers()

void SoCSOAngleEditor::initMembers ( )
overridevirtual

Reimplemented from SoCSOEditorExtension.

◆ insertSeedPointDragMoveTo()

void SoCSOAngleEditor::insertSeedPointDragMoveTo ( const SoPointerPosition & pos)
overridevirtual

Reimplemented from SoCSOEditorExtension.

◆ insertSeedPointEndPress()

SoPointingAction * SoCSOAngleEditor::insertSeedPointEndPress ( int clickCount)
overridevirtual

Reimplemented from SoCSOEditorExtension.

◆ insertSeedPointStartPressAt()

void SoCSOAngleEditor::insertSeedPointStartPressAt ( const SoPointerPosition & pos)
overridevirtual

Reimplemented from SoCSOEditorExtension.

◆ pointerPositionIfAllowedAt()

void SoCSOAngleEditor::pointerPositionIfAllowedAt ( const SoPointerPosition & pos)
overridevirtual

Sets seed points while moving the mouse – but not while dragging. Is called in isSensitiveAt only while interacting on the same slice where the interaction has started.

Implements SoCSOEditorExtension.

◆ selectAndMoveDragMoveTo()

void SoCSOAngleEditor::selectAndMoveDragMoveTo ( const SoPointerPosition & pos)
overridevirtual

Implements SoCSOEditorExtension.

◆ selectAndMoveEndPress()

SoPointingAction * SoCSOAngleEditor::selectAndMoveEndPress ( int clickCount)
overridevirtual

Implements SoCSOEditorExtension.

◆ selectAndMoveStartPressAt()

void SoCSOAngleEditor::selectAndMoveStartPressAt ( const SoPointerPosition & pos)
overridevirtual

Implements SoCSOEditorExtension.

Member Data Documentation

◆ arcAlpha

SoSFFloat SoCSOAngleEditor::arcAlpha

Definition at line 42 of file SoCSOAngleEditor.h.

◆ arcColor

SoSFColor SoCSOAngleEditor::arcColor

Definition at line 41 of file SoCSOAngleEditor.h.

◆ arcDistance

SoSFFloat SoCSOAngleEditor::arcDistance

Distance of the angle arc from the joint in pixels.

Definition at line 39 of file SoCSOAngleEditor.h.

◆ arcLineWidth

SoSFFloat SoCSOAngleEditor::arcLineWidth

Definition at line 40 of file SoCSOAngleEditor.h.

◆ drawArc

SoSFBool SoCSOAngleEditor::drawArc

Draw the angle arc on line joint.

Definition at line 37 of file SoCSOAngleEditor.h.

◆ drawLabel

SoSFBool SoCSOAngleEditor::drawLabel

Definition at line 44 of file SoCSOAngleEditor.h.

◆ labelAlpha

SoSFFloat SoCSOAngleEditor::labelAlpha

Definition at line 49 of file SoCSOAngleEditor.h.

◆ labelColor

SoSFColor SoCSOAngleEditor::labelColor

Definition at line 48 of file SoCSOAngleEditor.h.

◆ labelDistance

SoSFFloat SoCSOAngleEditor::labelDistance

Definition at line 45 of file SoCSOAngleEditor.h.

◆ labelFontSize

SoSFInt32 SoCSOAngleEditor::labelFontSize

Definition at line 50 of file SoCSOAngleEditor.h.

◆ labelPrecision

SoSFInt32 SoCSOAngleEditor::labelPrecision

Definition at line 46 of file SoCSOAngleEditor.h.

◆ labelShadow

SoSFBool SoCSOAngleEditor::labelShadow

Definition at line 47 of file SoCSOAngleEditor.h.


The documentation for this class was generated from the following file:
  • MeVisLab/Standard/Sources/Inventor/SoCSO/SoView2DCSOEditor/SoView2DCSOExtensibleEditor/extensions/SoCSOAngleEditor/SoCSOAngleEditor.h