23class CSOLabelRenderer;
 
  211    DeviceOffset() { xOffset = yOffset = 0; }
 
  217  std::map < int, std::string > _csoLabelStrings;
 
  219  std::map < int, std::string > _csoLabelNames;
 
  221  std::map < int, std::string > _csoLabelCaptions;
 
  223  std::map < int, DeviceOffset > _csoDeviceOffsets;
 
  225  std::map < int, bool > _shouldRenderLabel;
 
  228  std::multimap < std::string, CSOLabelRenderInformation > _viewerLabelRenderInformation;
 
  230  void filterCSOLabelsForLayout(
const std::vector<CSODrawCSOInfos>& 
drawCSOInfos,
 
  235  void clearInternalStructures();
 
  237  void buildAllLabelStringsThatNeedUpdate(
ml::CSOList* csoList);
 
  247  void removeLabelRenderInformation(
const std::string& viewerId, 
ml::CSO* cso);
 
  249  void removeAllLabelRenderInformationForCSOId(
int id, 
bool removeAll=
false);
 
  265  void buildLabelString(
ml::CSO* cso);
 
  269  void drawResizeHandlers(
const SbVec2f& upperLeft, 
const SbVec2f& size);
 
  281  bool isMouseOverLabelOrCSOForInteraction(
ml::CSO* cso);
 
  283  bool isMouseOverLabelOrCSOForHighlighting(
ml::CSO* cso);
 
  301  void setLabelRelative(
const std::string& viewerId, 
ml::CSO* cso, 
const SbVec2f relativePosition);
 
  303  SbVec2f getRelativePositionOfCSOInViewer(
const std::string& viewerId, 
ml::CSO* cso);
 
  312  float distance(
float x0, 
float y0, 
float x1, 
float y1) 
const;
 
  319  void getLabelSize(
float fontSize, 
const std::string& labelString, 
int& 
labelWidth, 
int& 
labelHeight);
 
  354  bool needsUpdate(
ml::CSO* cso);
 
  362  bool shouldRenderLabelString(
unsigned int csoId, 
const std::string& viewerId);
 
  369  std::set<int> _needsUpdateCSOIds;
 
  372  SbVec2f _startDragDevicePosition;
 
  374  SbVec2f _startDragOffsetToCenter;
 
  376  SbVec2f _currentFrameUpperLeft;
 
  378  SbVec2f _currentFrameLowerRight;
 
  380  SbVec2f _relativeLabelPosition;
 
  382  ml::CSO* _csoLabelUnderMouseForInteraction;
 
  384  ml::CSO* _csoLabelUnderMouseForHighlighting;
 
  387  float _minimumFontSize;
 
  389  float _maximumFontSize;
 
 
ResizeHotSpot
Enumeration of hot spots for resizing the label.
 
#define SOCSO_EXPORT
Header file for system independent resolution.
 
Base class for an editor extension for the SoView2DCSOExtensibleEditor.
 
Extension for rendering labels for CSOs.
 
int cursorShape() const override
Returns the cursor shape that indicates the next creation.
 
void setVisibleCSOs(const std::vector< CSODrawCSOInfos > &drawCSOInformation, const CSODrawView2DInfos &view2DInfos, SoView2DCSOExtensibleEditor *editor) override
Set information about all the CSOs that are to be rendered.
 
void labelResizeStartPressAt(ml::CSO *cso, const SoPointerPosition &pos)
 
SoSFEnum viewerBorderHandling
Handling of labels that move over the viewer's border.
 
SoSFString outputInfoLabelCaption
Output of the label's caption.
 
void drawOverlay(const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &drawSliceInfo, SoView2DCSOExtensibleEditor *editor) override
Routine for drawing after the main routine has drawn.
 
void selectAndMoveStartPressAt(const SoPointerPosition &) override
 
void labelMoveStartPressAt(ml::CSO *cso, const SoPointerPosition &pos)
 
SoSFBool shouldDrawResizeHandlers
Shall resize handlers be drawn?
 
void createStartPressAt(const SoPointerPosition &) override
 
SoSFBool outputInfoIsValid
Flag to indicate whether the output info is valid.
 
SoSFInt32 labelBorderMarginY
Sets the inner margin of the label border in y-direction.
 
bool createEndPress(int) override
 
void setLabelUnderMouseForHighlighting(ml::CSO *cso)
Sets the label for the given CSO as being under the mouse for highlighting.
 
void labelMoveDragMoveTo(ml::CSO *cso, const SoPointerPosition &pos)
 
void pointerPosition(const SoPointerPosition &pos) override
Called when the mouse moves over a viewer.
 
~SoCSOLabelRenderer() override
Destructor.
 
bool isModificationEditor() const override
Returns whether the editor is a modification editor.
 
SoSFTrigger repaintTrigger
Just a dummy field to trigger a repaint.
 
ml::CSO * getLabelCSO(const std::string ¤tViewerId, const SoPointerPosition &pos)
Returns the pointer to a CSO whose label is on the given viewer under the given position.
 
SoSFInt32 labelBorderMarginX
Sets the inner margin of the label border in x-direction.
 
void drawSecondPass(const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &drawSliceInfo, SoView2DCSOExtensibleEditor *editor) override
Drawing routine that comes between 'main' and 'overlay'.
 
static void initClass()
init class in inventor runtime
 
SoSFEnum detachedLabelPlacement
Positioning strategy for detached (manually moved) labels.
 
SoSFEnum movePossibleCursor
 
SoSFEnum movePerformCursor
 
void createDragMoveTo(const SoPointerPosition &) override
 
void computeOutputInformation()
Fills output information fields for a CSO on a viewer.
 
SoSFInt32 minConnectingLineLength
The minimum length of a connecting line to get drawn (in pixel).
 
ml::CSO * getHitResizeHandler(const std::string ¤tViewerId, const SoPointerPosition &pos, int &resizeHandlerCode)
Returns the pointer to a CSO whose label is on the given viewer under the given position....
 
SoSFVec2f outputInfoLabelBoundingBoxStart
Output of the upper left corner of the label's bounding box.
 
void labelResizeDragMoveTo(ml::CSO *cso, const SoPointerPosition &pos, int resizeHandlerCode)
 
SoSFMLBase inLabelPlacement
Option input of label placement.
 
SoSFBool shouldRenderLabelName
Shall the label name be rendered at the CSO when the label has been moved away?
 
SoSFVec2f outputInfoLabelBoundingBoxEnd
Output of the lower right corner of the label's bounding box.
 
SoSFBool shouldDrawConnectingLine
Shall a connecting line between the label and the CSO be drawn?
 
SoCSOLabelRenderer()
Standard constructor.
 
void pointerLeftWindow() override
Called when mouse pointer leaves the window.
 
SoSFFloat connectingLineAlpha
Global alpha factor that is multiplied to the local alpha factor of connecting lines.
 
SoSFBool shouldShowLabelStringOfOutputInfoLabel
Should the label string be hidden for the label.
 
SoSFBool allowLabelResize
Shall the user be allowed to resize a label?
 
SoSFInt32 fontSize
Sets the font size of the text.
 
SoPointingAction * selectAndMoveEndPress(int) override
 
void setOuterModule(ml::CSOLabelRenderer *labelRendererModule)
Sets a pointer to the 'outer' module.
 
SoPointingAction * labelResizeEndPress(ml::CSO *cso, int clickCount)
 
SoSFInt32 outputInfoLabelCaptionWidth
Output of the x-offset value of the label's string.
 
SoSFBool tryToPlaceLabelsWithoutOverlap
Should the renderer attempt to place a label without overlapping other labels?
 
SoSFBool drawLabelBorderForSelectedCSO
Shall a border be drawn around the label of a selected CSO?
 
void selectAndMoveDragMoveTo(const SoPointerPosition &) override
 
void resetCache() override
Resets the internal label string cache.
 
SoSFString inputInfoViewerId
Input of the viewer id string.
 
void pointerPositionIfAllowedAt(const SoPointerPosition &) override
Sets seed points while moving the mouse – but not while dragging.
 
SoPointingAction * labelMoveEndPress(ml::CSO *cso, int clickCount)
 
void updateStringsInCache()
Updates all label strings in the cache.
 
SoSFBool drawConnectingLineToCenterOfCSO
Shall the connecting line be drawn to th center of a CSO? Or to the nearest point on the CSO?
 
void setLabelUnderMouseForInteraction(ml::CSO *cso)
Sets the label for the given CSO as being under the mouse for interaction (select,...
 
void startDrawing(View2DSliceList *slicelist) override
Is called before drawing.
 
SoSFBool shouldHighlightBorderOnMouseOver
Shall the label's border be highlighted on mouse over?
 
void draw(const CSODrawCSOInfos &csoInfos, const CSODrawView2DInfos &view2DInfos, const CSODrawSliceInformation &drawSliceInfo, SoView2DCSOExtensibleEditor *editor) override
Drawing routine.
 
bool shouldRenderGeneral(ml::CSO *) const override
Returns whether a given CSO should be rendered by this general extension.
 
SoSFInt32 inputInfoCSOId
Trade interface for retrieving the device position (and other information) of a label on a certain vi...
 
SoSFString outputInfoLabelString
Output of the label's string.
 
SoPointerPosition manages the current position of the mouse cursor.
 
SoPointingAction is the base class for any mouse based interaction.
 
The SoSFMLBase field is the interface used by Inventor nodes to output ML Base objects to the outside...
 
SoView2D is a 2D viewer for image data.
 
a list that holds all View2DSlice objects (lazily created) of a SoView2D
 
a single slice that is stored in a View2DSliceList, typically created by a View2DSliceList
 
BaseEvent is the base class for all events emitted from EventSourceBase.
 
Base module for providing custom label placement strategies.
 
Module encapsulation the SoView2D extension for rendering labels for CSOs.
 
A CSOList comprises a number of CSOs and CSOGroups and is the central object for contour segmentation...
 
The CSO represents a contour segmentation object.
 
Target mlrange_cast(Source arg)
Generic version of checked ML casts.