HOpMarkupFreehand

Fields

HC_KEY

m_lPolyline

Functions

HOpMarkupFreehand

HBaseOperator *

Clone

char const *

GetName

int

OnLButtonDownAndMove

int

OnLButtonDown

int

OnLButtonUp

void

CreateMarkupFreehand

void

CreateMarkupFreehand

Detailed Description

class HOpMarkupFreehand : public HBaseOperator

The HOpMarkupFreehand inserts a 2D freehand polyline into a markup layer. If a layer is already active, then the operator will use that layer. Otherwise, the operator will create a new unnamed layer.

HOpMarkupFreehand implements three of the mouse event handlers defined on the base class and maps the event information to logic which inserts a polyline into the scene to serve as a ‘MarkupFreehand’.

  1. Left Button Down: operation initiated, markup begins

  2. Left Button Down and Drag: MarkupFreehand is incrementally built and inserted into the construction segment

  3. Left Button Up: depending on existence of an active markup layer it either opens the existing or creates a new markup layer and inserts freehand markup into it

More Detailed Description: see event methods

Public Functions

HOpMarkupFreehand(HBaseView *view, int DoRepeat = 0, int DoCapture = 1)

Constructs an HOpMarkupFreehand object.

Parameters
  • view – A pointer to an HBaseView object

  • DoRepeat – An integer denoting whether this is a repeatable operator. This parameter has been deprecated.

  • DoCapture – An integer denoting whether the mouse state should be captured, which means that all mouse events should be received after a mousedown, even if it leaves the window. This parameter has been deprecated.

virtual HBaseOperator *Clone()

Creates a new operator which is associated with the same view as the current operator. The user is responsible for deleting the newly created operator.

Returns

A pointer to an HBaseOperator object

virtual char const *GetName()

returns a pointer to a copy of the operator

Returns

A pointer to a character string denoting the name of the operator, which is ‘HOpMarkupFreehand’.

virtual int OnLButtonDownAndMove(HEventInfo &hevent)

OnLButtonDownAndMove computes the line segment to be incrementally added to the existing polyline.

Parameters

hevent – An HEventInfo object containing information about the current event.

Returns

An HOperatorReturn indicating the status of the event.

virtual int OnLButtonDown(HEventInfo &hevent)

OnLButtonDown records the first pointer position and initializes the redlining mechanism by creating a polyline which will be incrementally built.

Parameters

hevent – An HEventInfo object containing information about the current event.

Returns

An HOperatorReturn indicating the status of the event.

virtual int OnLButtonUp(HEventInfo &hevent)

OnLButtonUp cleans up the construction segments used during the redling and inserts the polyline representing the ‘MarkupFreehand’ into the scene.

Parameters

hevent – An HEventInfo object containing information about the current event.

Returns

An HOperatorReturn indicating the status of the event.

Public Members

HC_KEY m_lPolyline

key for HOOPS polyline

Public Static Functions

static void CreateMarkupFreehand(HBaseView *pView, char const *segment, unsigned int PolyLineLength, HPoint *pPolyline, bool emit_message)

CreateMarkupFreehand inserts the polyline representing the freehand drawing into the active markup layer. If there is no active markup layer, then it creates a new unnamed layer.

Parameters
  • pView – A pointer to the HBaseView object where the markup data should be inserted.

  • segment – The name of segment within markup layer that the freehand data should be inserted into.

  • PolyLineLength – Integer value indicating number of points in the freehand polyline.

  • pPolyline – An array of triplets, each one defining the x, y and z coordinate of a point of the freehand markup respectively.

  • emit_message – Determines if polyline creation is broadcasted to other HNet clients

static void CreateMarkupFreehand(HBaseView *pView, char const *segment, unsigned int PolyLineLength, double *pPolyline, bool emit_message)