MeVisLab Toolbox Reference
SoCSOAnnotationDeviceCoordinates Class Reference

Extension computing the device coordinates for annotation on a viewer for visible CSOs. More...

#include <SoCSOAnnotationDeviceCoordinates.h>

Inheritance diagram for SoCSOAnnotationDeviceCoordinates:
SoCSOEditorExtension

Public Member Functions

 SoCSOAnnotationDeviceCoordinates ()
void startDrawing (View2DSliceList *) override
 Is called before drawing.
void drawingDone () override
 Is called when all drawing is done.
void setVisibleCSOs (const std::vector< CSODrawCSOInfos > &drawCSOInformation, const CSODrawView2DInfos &view2DInfos, SoView2DCSOExtensibleEditor *editor) override
 Sets visible CSOs that have been determined in the extensible editor.
void draw (const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &drawSliceInfo, SoView2DCSOExtensibleEditor *editor) override
 Main routine for drawing a CSO.
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 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 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 &)
 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 canCreateCSOs () const
 Returns whether the editor can create a CSO.
virtual ml::CSOgetActiveCSO () const
 Returns the currently active CSO.
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 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.
virtual void cancel ()
 Cancels an action like generating a CSO. Depends on concrete editor.
virtual int cursorShape () const
 Returns the cursor shape that indicates the next creation.
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
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)

Static Public Member Functions

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

Public Attributes

SoSFMLBase inLabelPlacement
SoSFString visibleCSOIds
SoSFString annotationDeviceCoordinates
SoSFBool updateSelectedCSOsOnly
SoSFVec2f annotationSize
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).

Protected Member Functions

 ~SoCSOAnnotationDeviceCoordinates () override
void createStartPressAt (const SoPointerPosition &) override
void createDragMoveTo (const SoPointerPosition &) override
bool createEndPress (int) override
void pointerPositionIfAllowedAt (const SoPointerPosition &) override
void selectAndMoveStartPressAt (const SoPointerPosition &) override
void selectAndMoveDragMoveTo (const SoPointerPosition &) override
SoPointingActionselectAndMoveEndPress (int) override
bool shouldRenderSpecific (ml::CSO *) const override
 Returns whether a given CSO should be rendered by this specific extension.
bool shouldRenderGeneral (ml::CSO *) const override
void computeLabelBoxes (const std::vector< CSODrawCSOInfos > &drawCSOInformation, const CSODrawView2DInfos &view2DInfos, std::map< int, SbVec2f > &labelBoxes)
Protected Member Functions inherited from SoCSOEditorExtension
 SoCSOEditorExtension ()
 Hidden constructor.
 ~SoCSOEditorExtension () override
 Hidden destructor.
virtual void initMembers ()
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 ()
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.
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

Detailed Description

Extension computing the device coordinates for annotation on a viewer for visible CSOs.

Definition at line 23 of file SoCSOAnnotationDeviceCoordinates.h.

Constructor & Destructor Documentation

◆ SoCSOAnnotationDeviceCoordinates()

SoCSOAnnotationDeviceCoordinates::SoCSOAnnotationDeviceCoordinates ( )

◆ ~SoCSOAnnotationDeviceCoordinates()

SoCSOAnnotationDeviceCoordinates::~SoCSOAnnotationDeviceCoordinates ( )
overrideprotected

Member Function Documentation

◆ computeLabelBoxes()

void SoCSOAnnotationDeviceCoordinates::computeLabelBoxes ( const std::vector< CSODrawCSOInfos > & drawCSOInformation,
const CSODrawView2DInfos & view2DInfos,
std::map< int, SbVec2f > & labelBoxes )
protected

◆ createDragMoveTo()

void SoCSOAnnotationDeviceCoordinates::createDragMoveTo ( const SoPointerPosition & )
inlineoverrideprotectedvirtual

Implements SoCSOEditorExtension.

Definition at line 56 of file SoCSOAnnotationDeviceCoordinates.h.

◆ createEndPress()

bool SoCSOAnnotationDeviceCoordinates::createEndPress ( int )
inlineoverrideprotectedvirtual

Implements SoCSOEditorExtension.

Definition at line 57 of file SoCSOAnnotationDeviceCoordinates.h.

◆ createStartPressAt()

void SoCSOAnnotationDeviceCoordinates::createStartPressAt ( const SoPointerPosition & )
inlineoverrideprotectedvirtual

Implements SoCSOEditorExtension.

Definition at line 55 of file SoCSOAnnotationDeviceCoordinates.h.

◆ draw()

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

Main routine for drawing a CSO.

Reimplemented from SoCSOEditorExtension.

◆ drawingDone()

void SoCSOAnnotationDeviceCoordinates::drawingDone ( )
overridevirtual

Is called when all drawing is done.

Reimplemented from SoCSOEditorExtension.

◆ initClass()

void SoCSOAnnotationDeviceCoordinates::initClass ( )
static

◆ pointerPositionIfAllowedAt()

void SoCSOAnnotationDeviceCoordinates::pointerPositionIfAllowedAt ( const SoPointerPosition & pos)
inlineoverrideprotectedvirtual

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 58 of file SoCSOAnnotationDeviceCoordinates.h.

◆ selectAndMoveDragMoveTo()

void SoCSOAnnotationDeviceCoordinates::selectAndMoveDragMoveTo ( const SoPointerPosition & )
inlineoverrideprotectedvirtual

Implements SoCSOEditorExtension.

Definition at line 61 of file SoCSOAnnotationDeviceCoordinates.h.

◆ selectAndMoveEndPress()

SoPointingAction * SoCSOAnnotationDeviceCoordinates::selectAndMoveEndPress ( int )
inlineoverrideprotectedvirtual

Implements SoCSOEditorExtension.

Definition at line 62 of file SoCSOAnnotationDeviceCoordinates.h.

◆ selectAndMoveStartPressAt()

void SoCSOAnnotationDeviceCoordinates::selectAndMoveStartPressAt ( const SoPointerPosition & )
inlineoverrideprotectedvirtual

Implements SoCSOEditorExtension.

Definition at line 60 of file SoCSOAnnotationDeviceCoordinates.h.

◆ setVisibleCSOs()

void SoCSOAnnotationDeviceCoordinates::setVisibleCSOs ( const std::vector< CSODrawCSOInfos > & drawCSOInformation,
const CSODrawView2DInfos & view2DInfos,
SoView2DCSOExtensibleEditor * editor )
overridevirtual

Sets visible CSOs that have been determined in the extensible editor.

Reimplemented from SoCSOEditorExtension.

◆ shouldRenderGeneral()

bool SoCSOAnnotationDeviceCoordinates::shouldRenderGeneral ( ml::CSO * ) const
inlineoverrideprotectedvirtual

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

Reimplemented from SoCSOEditorExtension.

Definition at line 65 of file SoCSOAnnotationDeviceCoordinates.h.

◆ shouldRenderSpecific()

bool SoCSOAnnotationDeviceCoordinates::shouldRenderSpecific ( ml::CSO * cso) const
inlineoverrideprotectedvirtual

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

Reimplemented from SoCSOEditorExtension.

Definition at line 64 of file SoCSOAnnotationDeviceCoordinates.h.

◆ startDrawing()

void SoCSOAnnotationDeviceCoordinates::startDrawing ( View2DSliceList * )
overridevirtual

Is called before drawing.

Reimplemented from SoCSOEditorExtension.

Member Data Documentation

◆ annotationDeviceCoordinates

SoSFString SoCSOAnnotationDeviceCoordinates::annotationDeviceCoordinates

Definition at line 34 of file SoCSOAnnotationDeviceCoordinates.h.

◆ annotationSize

SoSFVec2f SoCSOAnnotationDeviceCoordinates::annotationSize

Definition at line 38 of file SoCSOAnnotationDeviceCoordinates.h.

◆ inLabelPlacement

SoSFMLBase SoCSOAnnotationDeviceCoordinates::inLabelPlacement

Definition at line 31 of file SoCSOAnnotationDeviceCoordinates.h.

◆ updateSelectedCSOsOnly

SoSFBool SoCSOAnnotationDeviceCoordinates::updateSelectedCSOsOnly

Definition at line 36 of file SoCSOAnnotationDeviceCoordinates.h.

◆ visibleCSOIds

SoSFString SoCSOAnnotationDeviceCoordinates::visibleCSOIds

Definition at line 33 of file SoCSOAnnotationDeviceCoordinates.h.


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