MeVisLab Toolbox Reference
SoCSOTransformEditor Class Reference

Extension for transforming existing CSOs. More...

#include <SoCSOTransformEditor.h>

Inheritance diagram for SoCSOTransformEditor:
SoCSOEditorExtension

Public Member Functions

 SoCSOTransformEditor ()
 Standard constructor.
 
 ~SoCSOTransformEditor () override
 Destructor.
 
void draw (const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &drawSliceInfo, SoView2DCSOExtensibleEditor *editor) override
 Drawing routine.
 
virtual bool evaluateHitPoint (const ml::Vector3 &worldPosition, View2DSliceList *slicelist, ml::CSOList *csoList, ml::CSO *&cso, SoView2DCSOExtensibleEditor *editor)
 
bool evaluateHitPoint (const ml::Vector3 &, View2DSliceList *, ml::CSOList *, const ml::CSOBoundingBox &, SoView2DCSOExtensibleEditor *, ml::CSO *&, ml::CSOSeedPoint *&, ml::CSOPathPoints *&, float &) override
 Overload the method and always return false so no CSO can be picked.
 
bool isModificationEditor () const override
 Returns whether the editor is a modification editor.
 
void cancel () override
 Cancels an action like generating a CSO. Depends on concrete editor.
 
bool isEligibleForTransforming (ml::CSO *cso, View2DSliceList *slicelist, SoView2DCSOExtensibleEditor *editor)
 Returns whether the given CSO is eligible for transforming by this editor.
 
void transformStartPressAt (const SoPointerPosition &pos)
 
void transformDragMoveTo (const SoPointerPosition &pos)
 
SoPointingActiontransformEndPress (int clickCount)
 
void createStartPressAt (const SoPointerPosition &) override
 
void createDragMoveTo (const SoPointerPosition &) override
 
bool createEndPress (int) override
 
void pointerPositionIfAllowedAt (const SoPointerPosition &) override
 Sets seed points while moving the mouse – but not while dragging.
 
void selectAndMoveStartPressAt (const SoPointerPosition &) override
 
void selectAndMoveDragMoveTo (const SoPointerPosition &) override
 
SoPointingActionselectAndMoveEndPress (int) override
 
int cursorShape () const override
 Returns the cursor shape that indicates the next creation.
 
bool shouldRenderSpecific (ml::CSO *) const override
 Returns whether a given CSO should be rendered by this specific extension.
 
bool shouldRenderGeneral (ml::CSO *) const override
 Returns whether a given CSO should be rendered by this general extension.
 
- Public Member Functions inherited from SoCSOEditorExtension
void setExtensibleEditor (SoView2DCSOExtensibleEditor *extensibleEditor)
 Sets the pointer to the calling extensible editor.
 
virtual void activate (SoView2DCSOExtensibleEditor *extensibleEditor)
 Is called when an extension is activated by the SoView2DExtensibleEditor.
 
virtual void deactivate ()
 Is called when an extension is deactivated by the SoView2DExtensibleEditor.
 
virtual void buttonMaskChanged ()
 Is called when the button mask of the SoView2DExtensibleEditor has changed.
 
virtual void editingOnChanged ()
 Is called when the editingOn field of the SoView2DExtensibleEditor has changed.
 
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)
 Routine for drawing after the main routine has drawn.
 
virtual void drawAdditionalGeometry (const CSODrawView2DInfos &view2DInfos, SoView2DCSOExtensibleEditor *editor)
 Routine for drawing additional geometry of the extension.
 
virtual void insertSeedPointStartPressAt (const SoPointerPosition &)
 
virtual void insertSeedPointDragMoveTo (const SoPointerPosition &)
 
virtual SoPointingActioninsertSeedPointEndPress (int)
 
virtual void bulgeStartPressAt (const SoPointerPosition &)
 
virtual void bulgeDragMoveTo (const SoPointerPosition &)
 
virtual SoPointingActionbulgeEndPress (int)
 
virtual void pointerPosition (const SoPointerPosition &)
 Is called when the mouse moves over a viewer.
 
virtual void pointerLeftWindow ()
 Is 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 canCreateCSOs () const
 Returns whether the editor can create a CSO.
 
virtual ml::CSOgetActiveCSO () const
 Returns the currently active CSO.
 
virtual bool expectsToCreateCSO ()
 Returns whether an editor is awaiting to create a new CSO, depending on the requireMousemovement flag.
 
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 isDefaultRenderer () const
 Returns whether the editor is the default editor.
 
virtual void resetCache ()
 Resets internal module caches, if there are any.
 
virtual bool deleteSeedPoint (ml::CSO *cso, ml::CSOSeedPoint *)
 Removes the given seed point from the given CSO and returns whether that was successful.
 
ml::CSOSeedPointgetPreviousSeedPoint (ml::CSOSeedPoint *seedPoint) const
 Returns the previous seed point of the given seed point for setting it as the next selected seed point.
 
virtual void mouseWheelEventReceived (SoMouseWheelEvent::Orientation, int, View2DEvent *)
 Method is called when the extensible editor received a mouse wheel event.
 
void reset ()
 
ml::CSOVisualizationSettingsgetVisualizationSettings ()
 Returns a pointer to the visual settings that are either the default ones or the ones set to the extensible editor (if present).
 
bool shouldShowCSOForCurrentTimePoint (const CSODrawView2DInfos &view2DInfos, ml::CSO *cso)
 Returns whether the given CSO should be rendered for the current time point.
 
void sendCSOEventsOnCancel (ml::CSO *cso)
 Sends CSO events for completing a creation or interaction when canceling it.
 
virtual void sendCSOEventsOnCancel (ml::CSOList *csoList)
 

Static Public Member Functions

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 hideHandlesWhileInteracting
 
SoSFBool allowScale
 
SoSFBool allowTranslation
 
SoSFBool allowRotation
 
SoSFFloat scaleHandleMargin
 
SoSFFloat translateHandleAreaSize
 
SoSFBool isotropicScaling
 
SoSFEnum defaultCursor
 
SoSFEnum moveAllCursor
 
SoSFEnum scaleNCursor
 
SoSFEnum scaleNWCursor
 
SoSFEnum scaleWCursor
 
SoSFEnum scaleSWCursor
 
SoSFEnum scaleSCursor
 
SoSFEnum scaleSECursor
 
SoSFEnum scaleECursor
 
SoSFEnum scaleNECursor
 
SoSFEnum rotateCursor
 
- 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
 Optionally attached visualization settings, overrides the vis.
 
SoSFEnum selectionCursor
 
SoSFEnum interactionForbiddenCursor
 
SoSFInt32 csoIdUnderMouseCursor
 The id of the CSO currently under the mouse (or -1 if no CSO is under the mouse).
 

Protected Member Functions

void drawInteractionHandleAsSeedPointAt (ml::CSO *cso, float deviceX, float deviceY)
 
void initMembers () override
 
- 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 ()
 Sets the subtype member to the value of the extension id string.
 
virtual void setCreationData (const SoPointerPosition &pos, ml::CSO *newCSO)
 Sets creation data to a newly created CSO.
 
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.
 
ml::Vector3 getTransformedPosition (const CSODrawView2DInfos &view2DInfos, const ml::Vector3 &position)
 If a SoCSOTransform exists, this method returns the transformed position.
 
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 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
 Member for subtype of generated CSOs.
 

Detailed Description

Extension for transforming existing CSOs.

Definition at line 29 of file SoCSOTransformEditor.h.

Constructor & Destructor Documentation

◆ SoCSOTransformEditor()

SoCSOTransformEditor::SoCSOTransformEditor ( )

Standard constructor.

◆ ~SoCSOTransformEditor()

SoCSOTransformEditor::~SoCSOTransformEditor ( )
override

Destructor.

Member Function Documentation

◆ cancel()

void SoCSOTransformEditor::cancel ( )
overridevirtual

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

Reimplemented from SoCSOEditorExtension.

◆ createDragMoveTo()

void SoCSOTransformEditor::createDragMoveTo ( const SoPointerPosition & )
inlineoverridevirtual

Implements SoCSOEditorExtension.

Definition at line 70 of file SoCSOTransformEditor.h.

◆ createEndPress()

bool SoCSOTransformEditor::createEndPress ( int )
inlineoverridevirtual

Implements SoCSOEditorExtension.

Definition at line 71 of file SoCSOTransformEditor.h.

◆ createStartPressAt()

void SoCSOTransformEditor::createStartPressAt ( const SoPointerPosition & )
inlineoverridevirtual

Implements SoCSOEditorExtension.

Definition at line 69 of file SoCSOTransformEditor.h.

◆ cursorShape()

int SoCSOTransformEditor::cursorShape ( ) const
inlineoverridevirtual

Returns the cursor shape that indicates the next creation.

Reimplemented from SoCSOEditorExtension.

Definition at line 78 of file SoCSOTransformEditor.h.

◆ draw()

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

Drawing routine.

Reimplemented from SoCSOEditorExtension.

◆ drawInteractionHandleAsSeedPointAt()

void SoCSOTransformEditor::drawInteractionHandleAsSeedPointAt ( ml::CSO * cso,
float deviceX,
float deviceY )
protected

◆ evaluateHitPoint() [1/2]

bool SoCSOTransformEditor::evaluateHitPoint ( const ml::Vector3 & ,
View2DSliceList * ,
ml::CSOList * ,
const ml::CSOBoundingBox & ,
SoView2DCSOExtensibleEditor * ,
ml::CSO *& ,
ml::CSOSeedPoint *& ,
ml::CSOPathPoints *& ,
float &  )
inlineoverridevirtual

Overload the method and always return false so no CSO can be picked.

Selecting a CSO needs to be done by a default renderer.

Reimplemented from SoCSOEditorExtension.

Definition at line 50 of file SoCSOTransformEditor.h.

◆ evaluateHitPoint() [2/2]

virtual bool SoCSOTransformEditor::evaluateHitPoint ( const ml::Vector3 & worldPosition,
View2DSliceList * slicelist,
ml::CSOList * csoList,
ml::CSO *& cso,
SoView2DCSOExtensibleEditor * editor )
virtual

◆ initClass()

static void SoCSOTransformEditor::initClass ( )
static

init class in inventor runtime

◆ initMembers()

void SoCSOTransformEditor::initMembers ( )
overrideprotectedvirtual

Reimplemented from SoCSOEditorExtension.

◆ isEligibleForTransforming()

bool SoCSOTransformEditor::isEligibleForTransforming ( ml::CSO * cso,
View2DSliceList * slicelist,
SoView2DCSOExtensibleEditor * editor )

Returns whether the given CSO is eligible for transforming by this editor.

◆ isModificationEditor()

bool SoCSOTransformEditor::isModificationEditor ( ) const
inlineoverridevirtual

Returns whether the editor is a modification editor.

Reimplemented from SoCSOEditorExtension.

Definition at line 58 of file SoCSOTransformEditor.h.

◆ pointerPositionIfAllowedAt()

void SoCSOTransformEditor::pointerPositionIfAllowedAt ( const SoPointerPosition & pos)
inlineoverridevirtual

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.

Definition at line 72 of file SoCSOTransformEditor.h.

◆ selectAndMoveDragMoveTo()

void SoCSOTransformEditor::selectAndMoveDragMoveTo ( const SoPointerPosition & )
inlineoverridevirtual

Implements SoCSOEditorExtension.

Definition at line 75 of file SoCSOTransformEditor.h.

◆ selectAndMoveEndPress()

SoPointingAction * SoCSOTransformEditor::selectAndMoveEndPress ( int )
inlineoverridevirtual

Implements SoCSOEditorExtension.

Definition at line 76 of file SoCSOTransformEditor.h.

◆ selectAndMoveStartPressAt()

void SoCSOTransformEditor::selectAndMoveStartPressAt ( const SoPointerPosition & )
inlineoverridevirtual

Implements SoCSOEditorExtension.

Definition at line 74 of file SoCSOTransformEditor.h.

◆ shouldRenderGeneral()

bool SoCSOTransformEditor::shouldRenderGeneral ( ml::CSO * ) const
inlineoverridevirtual

Returns whether a given CSO should be rendered by this general extension.

Overwrite this in general renderers.

Reimplemented from SoCSOEditorExtension.

Definition at line 81 of file SoCSOTransformEditor.h.

◆ shouldRenderSpecific()

bool SoCSOTransformEditor::shouldRenderSpecific ( ml::CSO * cso) const
inlineoverridevirtual

Returns whether a given CSO should be rendered by this specific extension.

Reimplemented from SoCSOEditorExtension.

Definition at line 80 of file SoCSOTransformEditor.h.

◆ transformDragMoveTo()

void SoCSOTransformEditor::transformDragMoveTo ( const SoPointerPosition & pos)

◆ transformEndPress()

SoPointingAction * SoCSOTransformEditor::transformEndPress ( int clickCount)

◆ transformStartPressAt()

void SoCSOTransformEditor::transformStartPressAt ( const SoPointerPosition & pos)

Member Data Documentation

◆ allowRotation

SoSFBool SoCSOTransformEditor::allowRotation

Definition at line 87 of file SoCSOTransformEditor.h.

◆ allowScale

SoSFBool SoCSOTransformEditor::allowScale

Definition at line 85 of file SoCSOTransformEditor.h.

◆ allowTranslation

SoSFBool SoCSOTransformEditor::allowTranslation

Definition at line 86 of file SoCSOTransformEditor.h.

◆ defaultCursor

SoSFEnum SoCSOTransformEditor::defaultCursor

Definition at line 94 of file SoCSOTransformEditor.h.

◆ hideHandlesWhileInteracting

SoSFBool SoCSOTransformEditor::hideHandlesWhileInteracting

Definition at line 83 of file SoCSOTransformEditor.h.

◆ isotropicScaling

SoSFBool SoCSOTransformEditor::isotropicScaling

Definition at line 92 of file SoCSOTransformEditor.h.

◆ moveAllCursor

SoSFEnum SoCSOTransformEditor::moveAllCursor

Definition at line 95 of file SoCSOTransformEditor.h.

◆ rotateCursor

SoSFEnum SoCSOTransformEditor::rotateCursor

Definition at line 106 of file SoCSOTransformEditor.h.

◆ scaleECursor

SoSFEnum SoCSOTransformEditor::scaleECursor

Definition at line 103 of file SoCSOTransformEditor.h.

◆ scaleHandleMargin

SoSFFloat SoCSOTransformEditor::scaleHandleMargin

Definition at line 89 of file SoCSOTransformEditor.h.

◆ scaleNCursor

SoSFEnum SoCSOTransformEditor::scaleNCursor

Definition at line 97 of file SoCSOTransformEditor.h.

◆ scaleNECursor

SoSFEnum SoCSOTransformEditor::scaleNECursor

Definition at line 104 of file SoCSOTransformEditor.h.

◆ scaleNWCursor

SoSFEnum SoCSOTransformEditor::scaleNWCursor

Definition at line 98 of file SoCSOTransformEditor.h.

◆ scaleSCursor

SoSFEnum SoCSOTransformEditor::scaleSCursor

Definition at line 101 of file SoCSOTransformEditor.h.

◆ scaleSECursor

SoSFEnum SoCSOTransformEditor::scaleSECursor

Definition at line 102 of file SoCSOTransformEditor.h.

◆ scaleSWCursor

SoSFEnum SoCSOTransformEditor::scaleSWCursor

Definition at line 100 of file SoCSOTransformEditor.h.

◆ scaleWCursor

SoSFEnum SoCSOTransformEditor::scaleWCursor

Definition at line 99 of file SoCSOTransformEditor.h.

◆ translateHandleAreaSize

SoSFFloat SoCSOTransformEditor::translateHandleAreaSize

Definition at line 90 of file SoCSOTransformEditor.h.


The documentation for this class was generated from the following file: