HPS::HandlesOperator Class Reference

#include <sprk_ops.h>

Inheritance diagram for HPS::HandlesOperator:
HPS::Operator HPS::Sprocket HPS::Object

Classes

class  GeometryTransformedEvent
 

Public Member Functions

void GetHandlesAppearance (float &out_length, float &out_radius, float &out_offset, float &out_angle, size_t &out_handles_points, float &out_tip_size) const
 
MaterialKitArray GetHandlesColors () const
 
RGBAColor GetHighlightColor () const
 
virtual HPS::UTF8 GetName () const OVERRIDE
 
bool GetTrailingGeometry () const
 
 HandlesOperator (MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys())
 
virtual bool OnMouseDown (MouseState const &in_state) OVERRIDE
 
virtual bool OnMouseMove (MouseState const &in_state) OVERRIDE
 
virtual bool OnMouseUp (MouseState const &in_state) OVERRIDE
 
virtual bool OnTouchDown (TouchState const &in_state) OVERRIDE
 
virtual bool OnTouchMove (TouchState const &in_state) OVERRIDE
 
virtual bool OnTouchUp (TouchState const &in_state) OVERRIDE
 
virtual void OnViewAttached () OVERRIDE
 
virtual void OnViewDetached () OVERRIDE
 
void SetHandlesAppearance (float in_length=0.2f, float in_radius=0.005f, float in_offset=0.2f, float in_angle=25.0f, size_t in_handles_points=30, float in_tip_size=0.15f)
 
void SetHandlesColors (MaterialKitArray const &in_colors)
 
void SetHighlightColor (RGBAColor const &in_highlight_color)
 
void SetTrailingGeometry (bool in_state)
 
- Public Member Functions inherited from HPS::Operator
virtual void Assign (Operator const &in_that)
 
void DetachView ()
 
virtual bool Equals (Operator const &in_that) const
 
View GetAttachedView () const
 
ModifierKeys GetModifierTrigger () const
 
MouseButtons GetMouseTrigger () const
 
virtual bool IsMouseTriggered (MouseState const &in_state)
 
HPS::Type ObjectType () const
 
virtual bool OnKeyDown (KeyboardState const &in_state)
 
virtual bool OnKeyUp (KeyboardState const &in_state)
 
virtual void OnModelAttached ()
 
virtual void OnModelDetached ()
 
virtual bool OnMouseEnter (MouseState const &in_state)
 
virtual bool OnMouseLeave (MouseState const &in_state)
 
virtual bool OnMouseWheel (MouseState const &in_state)
 
virtual bool OnTextInput (HPS::UTF8 const &in_text)
 
virtual bool OnTimerTick (HPS::TimerTickEvent const &in_event)
 
 Operator (MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys())
 
 Operator (Operator const &in_that)
 
virtual bool operator!= (Operator const &in_that) const
 
virtual Operatoroperator= (Operator const &in_that)
 
virtual bool operator== (Operator const &in_that) const
 
void SetModifierTrigger (ModifierKeys in_modifiers)
 
void SetMouseTrigger (MouseButtons in_buttons)
 
- Public Member Functions inherited from HPS::Sprocket
 Sprocket (Sprocket &&in_that)
 
- Public Member Functions inherited from HPS::Object
virtual bool Empty () const
 
intptr_t GetClassID () const
 
intptr_t GetInstanceID () const
 
bool HasType (HPS::Type in_mask) const
 
 Object (Object const &that)
 
 Object (Object &&in_that)
 
Objectoperator= (Object const &other_object)
 
Objectoperator= (Object &&in_that)
 
virtual void Reset ()
 
HPS::Type Type () const
 

Additional Inherited Members

- Public Types inherited from HPS::Operator
enum  Priority { Low, Default, High }
 
- Static Public Member Functions inherited from HPS::Object
template<typename T >
static intptr_t ClassID ()
 
- Protected Attributes inherited from HPS::Operator
HPS::ModifierKeys modifier_trigger
 
HPS::MouseButtons mouse_trigger
 

Detailed Description

The HandlesOperator class defines an operator which allows the user to move geometry. This Operator works for both mouse- and touch-driven devices.

To operate this operator on a mouse-driven device: Double click on a piece of geometry to activate the handles Click and drag the handles to move the selected geometry Click on the background to dismiss the handles

To operate this operator on a touch-driven device: Double tap on a piece of geometry to activate the handles Tap and drag the handles to move the selected geometry Tap on the background to dismiss the handles

This operator works on the segment containing the geometry selected. An event of type GeometryTransformedEvent in injected after the handles are dismissed, containing the information on which segment was affected and what transform was applied to it.

Member Function Documentation

virtual HPS::UTF8 HPS::HandlesOperator::GetName ( ) const
inlinevirtual

Returns the name of the operator.

Reimplemented from HPS::Operator.

virtual bool HPS::HandlesOperator::OnMouseDown ( MouseState const &  in_state)
virtual

This function is called whenever HPS receives a MouseEvent that signals a mouse button was pressed. If the user double clicks on a piece of geometry, handles will be inserted there. If the user clicks on a handle, the segment containing that handle will be translated or rotated appropriately. The user can click on the background to remove the handles.

Parameters
in_stateA MouseState object describing the current mouse state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

virtual bool HPS::HandlesOperator::OnMouseMove ( MouseState const &  in_state)
virtual

This function is called whenever HPS receives a MouseEvent that signals the mouse moved When users click and drag a handle, the associated geometry will be translated or rotated as appropriate.

Parameters
in_stateA MouseState object describing the current mouse state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

virtual bool HPS::HandlesOperator::OnMouseUp ( MouseState const &  in_state)
virtual

This function is called whenever HPS receives a MouseEvent that signals a mouse button was released

Parameters
in_stateA MouseState object describing the current mouse state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

virtual bool HPS::HandlesOperator::OnTouchDown ( TouchState const &  in_state)
virtual

This function is called whenever HPS receives a TouchEvent that signals the device was touched. If the user double taps a piece of geometry, handles will be inserted there. If the user taps on a handle, the segment containing that handle will be translated or rotated appropriately. The user can tap on the background to remove the handles.

Parameters
in_stateA TouchState object describing the current touch state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

virtual bool HPS::HandlesOperator::OnTouchMove ( TouchState const &  in_state)
virtual

This function is called whenever HPS receives a TouchEvent that signals a point of contact has moved. When users click and drag a handle, the associated geometry will be translated or rotated as appropriate.

Parameters
in_stateA TouchState object describing the current touch state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

virtual bool HPS::HandlesOperator::OnTouchUp ( TouchState const &  in_state)
virtual

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

Parameters
in_stateA TouchState object describing the current touch state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

virtual void HPS::HandlesOperator::OnViewAttached ( )
virtual

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

Reimplemented from HPS::Operator.

virtual void HPS::HandlesOperator::OnViewDetached ( )
virtual

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

Reimplemented from HPS::Operator.

void HPS::HandlesOperator::SetHandlesColors ( MaterialKitArray const &  in_colors)
inline

This function is used to provide a set of colors which will be applied to the handles. The changes will take effect the next time the handles are inserted. The materials need to contain a diffuse color, and will be applied as follows: Entry 0 - translation handle in the x direction Entry 1 - translation handle in the y direction Entry 2 - translation handle in the z direction Entry 3 - rotation handle in the x direction Entry 4 - rotation handle in the y direction Entry 5 - rotation handle in the z direction

Parameters
in_colorsAn array of materials to be applied to the handles.

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