Public Member Functions | List of all members
HPS::CuttingSectionOperator Class Reference

#include <sprk_ops.h>

Inheritance diagram for HPS::CuttingSectionOperator:
HPS::SelectOperator HPS::Operator HPS::Sprocket HPS::Object

Public Member Functions

 CuttingSectionOperator (MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys())
 
virtual HPS::UTF8 GetName () const
 
virtual void OnModelAttached ()
 
virtual void OnViewAttached ()
 
virtual void OnViewDetached ()
 
void SetPlanes (PlaneArray const &in_planes)
 
PlaneArray GetPlanes ()
 
virtual bool OnMouseDown (MouseState const &in_state)
 
virtual bool OnMouseUp (MouseState const &in_state)
 
virtual bool OnMouseMove (MouseState const &in_state)
 
virtual bool OnTouchDown (TouchState const &in_state)
 
virtual bool OnTouchUp (TouchState const &in_state)
 
virtual bool OnTouchMove (TouchState const &in_state)
 
virtual bool OnTimerTick (TimerTickEvent const &in_event)
 
float GetIndicatorScale () const
 
void SetIndicatorScale (float in_scale)
 
MaterialMappingKit GetPlaneMaterial () const
 
void SetPlaneMaterial (MaterialMappingKit const &in_plane_material)
 
HighlightOptionsKit GetPlaneHighlightOptions () const
 
void SetPlaneHighlightOptions (HighlightOptionsKit const &in_highlight_options)
 
bool GetMouseOverHighlighting () const
 
void SetMouseOverHighlighting (bool in_enable_mouse_over_highlighting)
 
void SetSectioning (bool in_sectioning)
 
bool GetSectioning ()
 
void SetIndicatorVisibility (bool in_use_indicator)
 
bool GetIndicatorVisibility ()
 
void SetPlaneVisibility (bool in_visibility)
 
bool GetPlaneVisibility ()
 
- Public Member Functions inherited from HPS::SelectOperator
 SelectOperator (MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys())
 
HPS::SelectionResults GetActiveSelection () const
 
void SetSelectionOptions (HPS::SelectionOptionsKit const &in_options)
 
HPS::SelectionOptionsKit GetSelectionOptions () const
 
- Public Member Functions inherited from HPS::Operator
 Operator (MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys())
 
 Operator (Operator const &in_that)
 
HPS::Type ObjectType () const
 
virtual Operatoroperator= (Operator const &in_that)
 
virtual void Assign (Operator const &in_that)
 
virtual bool Equals (Operator const &in_that) const
 
virtual bool operator!= (Operator const &in_that) const
 
virtual bool operator== (Operator const &in_that) const
 
void DetachView ()
 
View GetAttachedView () const
 
virtual bool OnMouseWheel (MouseState const &in_state)
 
virtual bool OnMouseEnter (MouseState const &in_state)
 
virtual bool OnMouseLeave (MouseState const &in_state)
 
virtual bool OnKeyDown (KeyboardState const &in_state)
 
virtual bool OnKeyUp (KeyboardState const &in_state)
 
virtual void OnModelDetached ()
 
void SetMouseTrigger (MouseButtons in_buttons)
 
MouseButtons GetMouseTrigger () const
 
void SetModifierTrigger (ModifierKeys in_modifiers)
 
ModifierKeys GetModifierTrigger () const
 
virtual bool IsMouseTriggered (MouseState const &in_state)
 
- Public Member Functions inherited from HPS::Sprocket
 Sprocket (HPS::Sprocket const &in_that)=default
 
 Sprocket (Sprocket &&in_that)
 
- Public Member Functions inherited from HPS::Object
 Object (Object const &that)
 
Objectoperator= (Object const &other_object)
 
 Object (Object &&in_that)
 
Objectoperator= (Object &&in_that)
 
HPS::Type Type () const
 
virtual bool Empty () const
 
virtual void Reset ()
 
bool HasType (HPS::Type in_mask) const
 
intptr_t GetClassID () const
 
intptr_t GetInstanceID () const
 

Additional Inherited Members

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

Detailed Description

The CuttingSectionOperator class defines an operator which allows the user to insert and interact with cutting sections. This Operator works for both mouse- and touch-driven devices. Each instance of the operator supports inserting and interacting with a single cutting plane. Multiple instances of the operator can be pushed to the View’s operator stack when the user wants to add an additional cutting plane to the scene. The cutting plane associated with an instance of the operator will be removed when the operator is popped from the View’s operator stack.

Mouse-driven devices:

Action Result
Mouse move When the operator is first activated, moving the mouse over the model will display a indicator representing the normal of the face the user is currently hovering over. Once a cutting section has been inserted, it will be highlighted when the user hovers over it. The highlight options can also be customized, or this behavior can be disabled entirely.
Left click When the operator is first activated, a left click will insert a cutting section at this position.
Double left click Flips the cutting section the user double clicked on.
Left mouse down and move Translates the cutting section the user clicked on along its normal.

Touch-driven devices:

Action Result
Touch down Inserts a cutting section at the position of the touch.
Double tap Flips the cutting section the user double tapped.
Touch down and drag Translates the cutting section the user tapped along its normal.

Member Function Documentation

float HPS::CuttingSectionOperator::GetIndicatorScale ( ) const
inline

Returns the scale used for the normal indicator displayed while mousing over the model when the operator is first started.

Returns
The scale of the normal indicator.
bool HPS::CuttingSectionOperator::GetIndicatorVisibility ( )
inline

Whether the plane normal indicator is visible

Returns
true if the plane normal indicator is visible, false otherwise.
bool HPS::CuttingSectionOperator::GetMouseOverHighlighting ( ) const
inline

Whether mouse-over highlighting is enabled

Returns
true if mouse-over highlighting is enabled, false otherwise.
virtual HPS::UTF8 HPS::CuttingSectionOperator::GetName ( ) const
inlinevirtual

Returns the name of the operator.

Reimplemented from HPS::SelectOperator.

HighlightOptionsKit HPS::CuttingSectionOperator::GetPlaneHighlightOptions ( ) const
inline

Returns the highlight options kit used when hovering over geometry, when mouse-over highlighting is enabled.

Returns
the highlight options kit used when hovering over geometry, when mouse-over highlighting is enabled.
MaterialMappingKit HPS::CuttingSectionOperator::GetPlaneMaterial ( ) const
inline

Returns the material mapping kit applied to the cutting plane geometry.

Returns
The material mapping kit applied to the cutting plane geometry.
bool HPS::CuttingSectionOperator::GetPlaneVisibility ( )

Whether the cutting sections plane representations are visible

Returns
true if the cutting sections plane representations are visible, false otherwise.
bool HPS::CuttingSectionOperator::GetSectioning ( )
inline

Whether sectioning is enabled

Returns
true if sectioning is enabled, false otherwise.
virtual void HPS::CuttingSectionOperator::OnModelAttached ( )
virtual

This function is called whenever a model is attached to the view that is attached to this operator. If no view is attached to this operator, this function will not be called.

Reimplemented from HPS::Operator.

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

This function is called whenever HPS receives a MouseEvent that signals a mouse button was pressed. This function starts the operator and computes the position of the starting point. When the operator is first started, this function inserts a cutting section.

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

Reimplemented from HPS::SelectOperator.

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

This function is called whenever HPS receives a MouseEvent that signals the mouse moved When the operator is first started this function displays a normal indicator when the user mouses over geometry. After a cutting section has been inserted this function allows the user to translate a cutting section along its normal

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::CuttingSectionOperator::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::CuttingSectionOperator::OnTimerTick ( TimerTickEvent const &  in_event)
virtual

This function is called whenever HPS receives a TimerTickEvent This function moves the camera

Parameters
in_stateA TimerTickEvent object describing the current timer tick.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

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

This function is called whenever HPS receives a TouchEvent that signals the device was touched. This function starts the operator and computes the position of the starting point. When the operator is first started, this function inserts a cutting section.

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

Reimplemented from HPS::SelectOperator.

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

This function is called whenever HPS receives a TouchEvent that signals a point of contact has moved. After a cutting section has been inserted this function allows the user to translate a cutting section along its normal

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::CuttingSectionOperator::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::CuttingSectionOperator::OnViewAttached ( )
virtual

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

Reimplemented from HPS::Operator.

virtual void HPS::CuttingSectionOperator::OnViewDetached ( )
virtual

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

Reimplemented from HPS::Operator.

void HPS::CuttingSectionOperator::SetIndicatorScale ( float  in_scale)
inline

Sets the scale of the normal indicator displayed while mousing over the model when the operator is first started.

Parameters
in_scaleThe scale of the normal indicator
void HPS::CuttingSectionOperator::SetIndicatorVisibility ( bool  in_use_indicator)

This function allows the user to pick a cutting sections through the aid of a normal indicator when moving the mouse By default this mode is active when the operator is fist attached to a View

Parameters
in_use_indicatorWhether to insert cutting sections through a normal indicator.
void HPS::CuttingSectionOperator::SetMouseOverHighlighting ( bool  in_enable_mouse_over_highlighting)
inline

Sets the mouse-over highlighting behavior

Parameters
in_enable_mouse_over_highlightingWhether to enable mouse-over highlighting.
void HPS::CuttingSectionOperator::SetPlaneHighlightOptions ( HighlightOptionsKit const &  in_highlight_options)
inline

Sets the highlight options kit used when hovering over geometry, when mouse-over highlighting is enabled.

Parameters
in_highlight_optionsThe highlight options kit used when hovering over geometry, when mouse-over highlighting is enabled.
void HPS::CuttingSectionOperator::SetPlaneMaterial ( MaterialMappingKit const &  in_plane_material)

Sets the material mapping kit applied to the cutting plane geometry.

Parameters
in_plane_materialThe material mapping kit applied to the cutting plane geometry.
void HPS::CuttingSectionOperator::SetPlaneVisibility ( bool  in_visibility)

Sets the visibility of cutting sections plane representation The cutting sections plane representation visibility is on by default.

Parameters
in_visibilityWhether to enable the visibility of the cutting sections plane representation.
void HPS::CuttingSectionOperator::SetSectioning ( bool  in_sectioning)

Sets the sectioning behavior When sectioning is turned on the cutting planes are grouped together into a section

Parameters
in_sectioningWhether to enable sectioning.

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