# 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)

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Visualize 3DF in your own language, or choose a sample question below to start a conversation:

What is HOOPS Visualize 3DF?
What are the latest release notes for HOOPS Visualize 3DF?
How do I start evaluating HOOPS Visualize 3DF?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...