HandlesOperator
- class HPS.HandlesOperator : public HPS.Operator
The HandlesOperator class defines an operator which allows the user to translate geometry in the view plane or along an axis. This operator works for both mouse- and touch-driven devices.
To use this operator on a mouse-driven device: <orderedlist><listitem>
Activate the operator
</listitem><listitem>
Double click on a piece of geometry to activate the handles
</listitem><listitem>
Click and drag the handles to transform the selected geometry
</listitem><listitem>
Click on the background to dismiss the handles
</listitem></orderedlist>
To use this operator on a touch-driven device: <orderedlist><listitem>
Activate the operator
</listitem><listitem>
Double tap on a piece of geometry to activate the handles
</listitem><listitem>
Tap and drag the handles to move the selected geometry
</listitem><listitem>
Tap on the background to dismiss the handles
</listitem></orderedlist>
This operator works on the segment containing the geometry selected. An event of type GeometryTransformedEvent is dispatched after the handles are dismissed, containing the information on which segment was affected and what transform was applied to it.
This operator does not work on Exchange models which have a Drawing structure. This includes CATDrawing models and 2D DWG models loaded through Exchange. Any attempt to use this operator on such a model will produce a warning.
Public Types
- enum HandleType
Values:
- Rotation
Represents three all rotation handles.
- RotationX
Represents handle for rotation around the X axis.
- RotationY
Represents handle for rotation around the Y axis.
- RotationZ
Represents handle for rotation around the Z axis.
- AxisTranslation
Represents three all axis translation handles.
- AxisTranslationX
Represents handle for translation along the X axis.
- AxisTranslationY
Represents handle for translation along the Y axis.
- AxisTranslationZ
Represents handle for translation along the Z axis.
- PlaneTranslation
Represents three all plane translation handles.
- PlaneTranslationXY
Represents handle for translation along the XY plane.
- PlaneTranslationYZ
Represents handle for translation along the YZ plane.
- PlaneTranslationZX
Represents handle for translation along the ZX plane.
- CenterPoint
Represents handle for translation along the view plane.
Public Functions
- void AddHandles (HPS.HandlesOperator.HandleType handle_type)
Add a type of handle to those displayed by this operator. Changes take place the next time handles are inserted, by either double clicking or double tapping on geometry.
- Param handle_type
The type of handle to be added to those displayed.
- void DismissHandles ()
- override void Dispose ()
- HPS.CADModel GetCADModel ()
Returns the CADModel associated with this operator. If no CADModel was associated with this operator, the returned object will be invalid and have type HPS.Type.None.
- Return
The CADModel associated with this operator.
- void GetHandlesAppearance (out float out_length, out float out_radius, out ulong out_handles_points)
Returns the parameters used to decide the appearance of the handles.
- Param out_length
The length of the handles, specified as a percentage of the view containing it.
- Param out_radius
The radius of the handles, specified as a percentage of the view containing it.
- Param out_handles_points
The number of points used to draw the handles. A higher number will yield a smoother appearance.
- HPS.MaterialKit[] GetHandlesColors ()
This function returns the materials used to color the handles. Only the diffuse color field of the materials is guaranteed to have a value. The materials are used 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 Entry 6 - xz plane translation Entry 7 - xy plane translation Entry 8 - yz plane translation Entry 9 - center-sphere
- Return
An array of materials associated with the handles
- HPS.RGBAColor GetHighlightColor ()
Returns the color used to highlight the handles then the user mouses over them.
- Return
the color used to highlight the handles then the user mouses over them.
- override string GetName ()
Returns the name of the operator.
- void GetPlaneTranslationAppearance (out float out_plane_offset, out float out_plane_length, out float out_center_radius)
Returns the parameters used to decide the appearance of the rotation handles.
- Param out_plane_offset
The distance between the axis translation handle and the start of the plane translation handle, specified as a percentage of handle length.
- Param out_plane_length
The size of plane translation handles, specified as a percentage of handle length.
- Param out_center_radius
The radius of the sphere at the center of the handles, specified as a percentage of handle length.
- void GetRotationHandleAppearance (out float out_offset, out float out_angle, out float out_tip_size)
Returns the parameters used to decide the appearance of the rotation handles.
- Param out_offset
The distance between the end of a translation handle and the rotation handle associated with it, specified as a percentage of handle length.
- Param out_angle
The angle formed by the rotation handles, specified in degrees.
- Param out_tip_size
The size of the tip at the end of the handles, specified as a percentage of handle length.
- bool GetTrailingGeometry ()
Whether trailing geometry will be drawn when using the handles. Trailing geometry is geometry which shows you the path of the last movement operation you performed through the handles.
- Return
true if trailing geometry will be drawn, false otherwise.
- HandlesOperator ()
- HandlesOperator (HPS.HandlesOperator in_that)
- HandlesOperator (HPS.MouseButtons in_mouse_trigger)
- HandlesOperator (HPS.MouseButtons in_mouse_trigger, HPS.ModifierKeys in_modifier_trigger)
- 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 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.
- 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 click and drag a handle, the associated geometry will be translated or rotated as appropriate.
- Param in_state
A MouseState object describing the current mouse state.
- Return
true if the input event was handled, false otherwise.
- override bool OnMouseUp (HPS.MouseState in_state)
This function is called whenever HPS receives a MouseEvent that signals a mouse button was released
- Param in_state
A MouseState object describing the current mouse state.
- Return
true if the input event was handled, false otherwise.
- 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 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.
- 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 click and drag a handle, the associated geometry will be translated or rotated as appropriate.
- 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 RemoveHandles (HPS.HandlesOperator.HandleType handle_type)
Remove a type of handle from those displayed by this operator. Changes take place the next time handles are inserted, by either double clicking or double tapping on geometry.
- Param handle_type
The type of handle to be removed from those displayed.
- void SetCADModel (HPS.CADModel in_cad_model)
Sets the CADModel associated with this operator. If a CADModel is set, the underlying PRC or Parasolid data associated with any Components moved by the user with the handles operator will be changed to reflect how the CADModel appears on the user’s screen. This function needs to be called before the user starts transforming geometry through the handles operator.
- Param in_cad_model
The CADModel associated with this operator.
- void SetHandlesAppearance ()
This function can be used to modify the appearance of handles. Changes will take effect the next time handles are inserted.
- void SetHandlesAppearance (float in_length)
This function can be used to modify the appearance of handles. Changes will take effect the next time handles are inserted.
- Param in_length
The length of the handles, specified as a percentage of the view containing it. Valid range is (0, 1].
- void SetHandlesAppearance (float in_length, float in_radius)
This function can be used to modify the appearance of handles. Changes will take effect the next time handles are inserted.
- Param in_length
The length of the handles, specified as a percentage of the view containing it. Valid range is (0, 1].
- Param in_radius
The radius of the handles, specified as a percentage of the view containing it. Valid range is (0, 1].
- void SetHandlesAppearance (float in_length, float in_radius, ulong in_handles_points)
This function can be used to modify the appearance of handles. Changes will take effect the next time handles are inserted.
- Param in_length
The length of the handles, specified as a percentage of the view containing it. Valid range is (0, 1].
- Param in_radius
The radius of the handles, specified as a percentage of the view containing it. Valid range is (0, 1].
- Param in_handles_points
The number of points used to draw the handles. A higher number will yield a smoother appearance. Valid range is > 0.
- void SetHandlesColors (HPS.MaterialKit[] in_colors)
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 Entry 6 - xz plane translation Entry 7 - xy plane translation Entry 8 - yz plane translation Entry 9 - center-sphere
- Param in_colors
An array of materials to be applied to the handles.
- void SetHighlightColor (HPS.RGBAColor in_highlight_color)
Sets the highlight color used when the user mouses over the handles. The default value for the highlight color is RGBAColor(1.0f, 0.55f, 0.0f)
- Param in_highlight_color
The color used to highlight handles when the user mouses over them.
- void SetPlaneTranslationAppearance ()
This function can be used to modify the appearance of the handles used to perform plane-translation. Changes will take effect the next time handles are inserted.
- void SetPlaneTranslationAppearance (float in_plane_offset)
This function can be used to modify the appearance of the handles used to perform plane-translation. Changes will take effect the next time handles are inserted.
- Param in_plane_offset
The distance between the axis translation handle and the start of the plane translation handle, specified as a percentage of handle length.
- void SetPlaneTranslationAppearance (float in_plane_offset, float in_plane_length)
This function can be used to modify the appearance of the handles used to perform plane-translation. Changes will take effect the next time handles are inserted.
- Param in_plane_offset
The distance between the axis translation handle and the start of the plane translation handle, specified as a percentage of handle length.
- Param in_plane_length
The size of plane translation handles, specified as a percentage of handle length.
- void SetPlaneTranslationAppearance (float in_plane_offset, float in_plane_length, float in_center_radius)
This function can be used to modify the appearance of the handles used to perform plane-translation. Changes will take effect the next time handles are inserted.
- Param in_plane_offset
The distance between the axis translation handle and the start of the plane translation handle, specified as a percentage of handle length.
- Param in_plane_length
The size of plane translation handles, specified as a percentage of handle length.
- Param in_center_radius
The radius of the sphere at the center of the handles, specified as a percentage of handle length.
- void SetRotationHandleAppearance ()
This function can be used to modify the appearance of handles used to perform rotations. Changes will take effect the next time handles are inserted.
- void SetRotationHandleAppearance (float in_offset)
This function can be used to modify the appearance of handles used to perform rotations. Changes will take effect the next time handles are inserted.
- Param in_offset
The distance between the end of a translation handle and the start of then rotation handle associated with it, specified as a percentage of handle length. Valid range is (0, 1].
- void SetRotationHandleAppearance (float in_offset, float in_angle)
This function can be used to modify the appearance of handles used to perform rotations. Changes will take effect the next time handles are inserted.
- Param in_offset
The distance between the end of a translation handle and the start of then rotation handle associated with it, specified as a percentage of handle length. Valid range is (0, 1].
- Param in_angle
The angle formed by the rotation handles, specified in degrees. Valid range is > 0
- void SetRotationHandleAppearance (float in_offset, float in_angle, float in_tip_size)
This function can be used to modify the appearance of handles used to perform rotations. Changes will take effect the next time handles are inserted.
- Param in_offset
The distance between the end of a translation handle and the start of then rotation handle associated with it, specified as a percentage of handle length. Valid range is (0, 1].
- Param in_angle
The angle formed by the rotation handles, specified in degrees. Valid range is > 0
- Param in_tip_size
The size of the tip at the end of the handles, specified as a percentage of the handle length. Valid range is [0, 1].
- void SetTrailingGeometry (bool in_state)
Whether to draw trailing geometry when using the handles. Trailing geometry is geometry which shows you the path of the last movement operation you performed through the handles.
- Param in_state
Whether to draw trailing geometry when using the handles.
- class GeometryTransformedEvent : public HPS.Event
Public Functions
- override HPS.Event Clone ()
Allocates and returns a copy of this GeometryTransformedEvent.
- Return
A copy of this GeometryTransformedEvent.
- override void Dispose ()
- GeometryTransformedEvent ()
The default constructor creates an empty GeometryTransformedEvent object.
- GeometryTransformedEvent (HPS.Event in_event)
This constructor converts an Event Object to a GeometryTransformedEvent object.
- GeometryTransformedEvent (HPS.HandlesOperator.GeometryTransformedEvent in_that)
- GeometryTransformedEvent (HPS.View in_view, HPS.SegmentKey in_segment_key, HPS.MatrixKit in_transform)