AnnotationOperator

class HPS.AnnotationOperator : public HPS.Operator

The AnnotationOperator class defines an operator which allows the user to insert annotations. Annotations are text geometries with leader lines and a background. This Operator works for both mouse- and touch-driven devices.

To operate this operator on a mouse-driven device: Click on a piece of geometry and drag the mouse to position an annotation. Start typing to change the annotation text. Once an annotation has been inserted it can be repositioned, and its text can be changed after clicking on it.

To operate this operator on a touch-driven device: Tap on a piece of geometry and drag your finger to position an annotation. Start typing to change the annotation text. Once an annotation has been inserted, tap on it to edit the text. Drag a previously inserted annotation around to reposition it.

An event of type AnnotationInsertedEvent is injected when new annotations are added to the scene.

Public Functions

AnnotationOperator ()
AnnotationOperator (HPS.AnnotationOperator in_that)
AnnotationOperator (HPS.MouseButtons in_mouse_trigger)
AnnotationOperator (HPS.MouseButtons in_mouse_trigger, HPS.ModifierKeys in_modifier_trigger)
override void Dispose ()
string GetBackgroundShape ()

This function returns the name of the shape definition currently used to draw the annotation background by this operator.

Return

The name of the shape definition currently used to draw the annotation background

override string GetName ()

Returns the name of the operator.

override bool OnKeyDown (HPS.KeyboardState in_state)

This function is called whenever HPS receives a KeyboardState event that signals a button was pressed. This function is used to edit the text of annotations

Param in_state

A KeyboardState object describing the current keyboard state.

Return

true if the input event was handled, false otherwise.

override bool OnMouseDown (HPS.MouseState in_state)

This function is called whenever HPS receives a MouseEvent that signals a mouse button was pressed. If the user clicks on a piece of geometry other than an existing annotation, a new annotation will be inserted. If the user clicks on an already inserted annotation, that annotation will become editable (it can be repositioned, and its text can be changed). The user can click on the background to stop editing an annotation.

Param in_state

A MouseState object describing the current mouse state.

Return

true if the input event was handled, false otherwise.

override bool OnMouseMove (HPS.MouseState in_state)

This function is called whenever HPS receives a MouseEvent that signals the mouse moved When users are inserting or editing an annotation, they will be able to reposition it by dragging the mouse while holding down the trigger button specified in the operator constructor (defaults to Left mouse button)

Param in_state

A MouseState object describing the current mouse state.

Return

true if the input event was handled, false otherwise.

override bool OnTextInput (string in_text)
override bool OnTouchDown (HPS.TouchState in_state)

This function is called whenever HPS receives a TouchEvent that signals the device was touched. If the user taps a piece of geometry other than an existing annotation, a new annotation will be inserted. If the user taps an already inserted annotation, that annotation will become editable (it can be repositioned, and its text can be changed). The user can tap on the background to stop editing an annotation.

Param in_state

A TouchState object describing the current touch state.

Return

true if the input event was handled, false otherwise.

override bool OnTouchMove (HPS.TouchState in_state)

This function is called whenever HPS receives a TouchEvent that signals a point of contact has moved. When users are inserting or editing an annotation, they will be able to reposition it by tapping it and dragging their finger

Param in_state

A TouchState object describing the current touch state.

Return

true if the input event was handled, false otherwise.

override bool OnTouchUp (HPS.TouchState in_state)

This function is called whenever HPS receives a TouchEvent that signals a point of contact has been released.

Param in_state

A TouchState object describing the current touch state.

Return

true if the input event was handled, false otherwise.

override void OnViewAttached (HPS.View in_attached_view)

This function is called whenever a view is attached to this operator.

Param in_attached_view

The view attached to this operator.

override void OnViewDetached (HPS.View in_detached_view)

This function is called whenever a view is detached from this operator.

Param in_detached_view

The view detached from this operator.

void SetBackgroundShape (string in_shape)
class AnnotationInsertedEvent : public HPS.Event

An event injected every time a new annotation is inserted. It contains the key of the segment containing the annotation and the view currently attached to this operator. This operator places each annotation in a separate segment.

Public Functions

AnnotationInsertedEvent ()

The default constructor creates an empty AnnotationInsertedEvent object.

AnnotationInsertedEvent (HPS.AnnotationOperator.AnnotationInsertedEvent in_that)
AnnotationInsertedEvent (HPS.Event in_event)

This constructor converts an Event Object to a MarkupInsertedEvent object.

Param in_event

The Event Object to be converted.

AnnotationInsertedEvent (HPS.SegmentKey in_text_key, HPS.View in_view)
override HPS.Event Clone ()

Allocates and returns a copy of this AnnotationInsertedEvent.

Return

A copy of this MarkupIAnnotationInsertedEventnsertedEvent.

override void Dispose ()

Properties

HPS.SegmentKey text_key { get; set; }
HPS.View view { get; set; }