#include <sprk_exchange.h>

Public Types | |
enum | MeasurementType { PointToPoint, EdgeAndRadius, FeatureToFeature, FaceAngle } |
![]() | |
enum | Tags { Name = 0, MeasurementType, Radius, Inverted, VectorX, VectorY, VectorZ } |
![]() | |
enum | Priority { Low, Default, High } |
Public Member Functions | |
void | DeleteLastMeasurement () |
HighlightOptionsKit | GetHighlightOptions () |
MeasurementType | GetMeasurementType () |
bool | GetMouseOverHighlighting () |
virtual HPS::UTF8 | GetName () const override |
bool | IsMeasurementActive () |
MeasurementOperator (Exchange::CADModel const &in_cad_model, MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys()) | |
virtual bool | OnKeyDown (KeyboardState const &in_state) override |
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 | SetMeasurementType (MeasurementType in_measurement_type) |
void | SetMouseOverHighlighting (bool in_highlighting) |
void | SetMouseOverHighlighting (bool in_highlighting, HighlightOptionsKit const &in_highlight_options_kit) |
![]() | |
CommonMeasurementOperator (Exchange::CADModel const &in_cad_model, MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys()) | |
void | DeleteMeasurements () |
Exchange::CADModel | GetCADModel () const |
MaterialMappingKit | GetMaterial () const |
SegmentKey | GetMeasurementSegment () const |
size_t | GetPrecision () const |
TextAttributeKit | GetTextAttributes () const |
void | SetCADModel (Exchange::CADModel const &in_cad_model) |
void | SetMaterial (MaterialMappingKit const &in_material_mapping) |
void | SetPrecision (size_t in_precision) |
void | SetTextAttribute (TextAttributeKit const &in_text_attributes) |
![]() | |
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 | 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 Operator & | operator= (Operator const &in_that) |
virtual bool | operator== (Operator const &in_that) const |
void | SetModifierTrigger (ModifierKeys in_modifiers) |
void | SetMouseTrigger (MouseButtons in_buttons) |
![]() | |
Sprocket (Sprocket &&in_that) | |
![]() | |
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) | |
Object & | operator= (Object const &other_object) |
Object & | operator= (Object &&in_that) |
virtual void | Reset () |
virtual HPS::Type | Type () const |
Additional Inherited Members | |
![]() | |
static UTF8 | GetNewMeasurementSegmentName (HPS::UTF8 const &in_prefix) |
![]() | |
template<typename T > | |
static intptr_t | ClassID () |
![]() | |
static const HPS::Type | staticType = HPS::Type::Operator |
![]() | |
static const HPS::Type | staticType = HPS::Type::None |
![]() | |
void | GetCameraDirection () |
float | GetModelScale (Exchange::Component const &component) |
void | GetUnits () |
void | PositionLinearMeasurementGeometry (WindowPoint const &window_cursor_location, KeyPath const &event_path, LineKey &leader_line_one, LineKey &leader_line_two, LineKey &measurement_line, LineKey &line_to_cursor, Point &original_point_one, Point &original_point_two, TextKey &text, UTF8 const &text_string, Point &distance_point_one, Point &distance_point_two, SegmentKey ¤t_measurement_segment, Plane const &measurement_plane=Plane(), Vector const &explicit_direction=Vector()) |
void | SetGlyphColor () |
void | SetMaterialsOnMeasurementSegment (HPS::SegmentKey const &set_materials_here, HPS::MaterialMappingKit const &materials_to_apply) |
void | SetupConstructionSegment () |
void | Tag (HPS::Key &tag, const char *message, Tags tag_index) |
![]() | |
Exchange::CADModel | cad_model |
Vector | camera_direction |
HighlightOptionsKit | highlight_options |
GlyphDefinition | left_arrow |
bool | manipulate_measurement |
MaterialMappingKit | materials |
size_t | measurement_precision |
SegmentKey | measurement_segment |
PortfolioKey | portfolio |
GlyphDefinition | right_arrow |
SelectionOptionsKit | selection_options |
SegmentKey | style_segment |
TextAttributeKit | text_attributes |
UTF8 | units |
![]() | |
HPS::ModifierKeys | modifier_trigger |
HPS::MouseButtons | mouse_trigger |
![]() | |
static size_t | angle_measurement_index |
static size_t | distance_measurement_index |
static size_t | length_measurement_index |
static size_t | radius_measurement_index |
Detailed Description
The MeasurementOperator class defines an operator which allows the user to insert measurements into the scene This operator requires the model be loaded using the Exchange bridge, and the model must contain B-rep.
The behavior of the operator, and its usage, vary based on the type of measurement the user wishes to insert.
- Point to Point measurement: The Point to Point measurement mode allows the user to measure the distance between two arbitrary points. Usage:
- Click or tap where you want to insert the first measurement point.
- Click or tap where you want to insert the second measurement point
- Move the mouse or drag your finger to move the measurement geometry around.
- Click or lift your finger to position the measurement.
- Edge and Radius measurement: The Edge and Radius measurement mode allows the user to measure the length of an edge, or the radius of a circle, based on whether the edge clicked on is a line or a circle. Usage:
- Click or tap on the edge you want to measure
- Move the mouse or drag your finger to move the measurement geometry around.
- Click again or lift your finger to position the measurement.
- If the edge you selected is part of a circle, the circle radius will be measured, otherwise the edge length will be measured.
- Feature to Feature measurement: The Feature to Feature measurement mode allows the user to measure the shortest distance between two features. Usage:
- Click or tap on a face
- Click or tap on a different face
- Move the mouse or drag your finger to move the measurement geometry around.
- Click again or lift your finger to position the measurement.
- If both faces are planar, the shortest distance between them is measured
- If one face is planar and the other is id conical or cylindrical, the shortest distance between the center line and the face is measured
- If both faces are conical or cylindrical, the shortest distance between the two center lines is measured
- Face Angle measurement: The Face Angle measurement mode allows the user to measure the angle between two planar, non-parallel faces. Usage:
- Click or tap on a face
- Click or tap on a different face, which is not parallel to the first face
- Move the mouse or drag your finger to move the measurement geometry around.
- Click again or lift your finger to position the measurement.
Once a measurement has been inserted, its position can be modified by clicking on it, moving the mouse, and clicking once more once it is in the desired position. On touch-enabled devices measurements can be repositioned by dragging them into a new position. Pressing Escape will delete the measurement currently being inserted.
The operator will inject an Event of type MeasurementInsertedEvent every time a new measurement is inserted. The user can handle this event to obtain the segment key associated with every inserted measurement.
A valid CADModel needs to be passed to the constructor of this class.
Member Function Documentation
MeasurementType HPS::Exchange::MeasurementOperator::GetMeasurementType | ( | ) |
Returns the type of measurement the operator is currently set up to insert.
- Returns
- The type of measurement the operator is currently set up to insert.
|
inlineoverridevirtual |
Returns the name of the operator.
Reimplemented from HPS::Exchange::CommonMeasurementOperator.
|
overridevirtual |
This function is called whenever HPS receives a KeyDownEvent that signals a key was pressed. Pressing Escape while in the process of inserting a measurement deletes that measurement.
- Returns
- true if the input event was handled, false otherwise.
Reimplemented from HPS::Operator.
|
overridevirtual |
This function is called whenever HPS receives a MouseEvent that signals a mouse button was pressed. This function inserts the measuring points.
- Parameters
-
in_state A MouseState object describing the current mouse state.
- Returns
- true if the input event was handled, false otherwise.
Reimplemented from HPS::Operator.
|
overridevirtual |
This function is called whenever HPS receives a MouseEvent that signals the mouse moved When the user has just inserted the second measurement point, this function allows the user to move the measurement If the user has selected an already existing measurement, this function allows the user to reposition the measurement
- Parameters
-
in_state A MouseState object describing the current mouse state.
- Returns
- true if the input event was handled, false otherwise.
Reimplemented from HPS::Operator.
|
overridevirtual |
This function is called whenever HPS receives a MouseEvent that signals a mouse button was released.
- Parameters
-
in_state A MouseState object describing the current mouse state.
- Returns
- true if the input event was handled, false otherwise.
Reimplemented from HPS::Operator.
|
overridevirtual |
This function is called whenever HPS receives a TouchEvent that signals the device was touched. This function inserts the measuring points.
- Parameters
-
in_state A TouchState object describing the current touch state.
- Returns
- true if the input event was handled, false otherwise.
Reimplemented from HPS::Operator.
|
overridevirtual |
This function is called whenever HPS receives a TouchEvent that signals a point of contact has moved. When the user has just inserted the second measurement point, this function allows the user to move the measurement If the user has selected an already existing measurement, this function allows the user to reposition the measurement
- Parameters
-
in_state A TouchState object describing the current touch state.
- Returns
- true if the input event was handled, false otherwise.
Reimplemented from HPS::Operator.
|
overridevirtual |
This function is called whenever HPS receives a TouchEvent that signals a point of contact has been released.
- Parameters
-
in_state A TouchState object describing the current touch state.
- Returns
- true if the input event was handled, false otherwise.
Reimplemented from HPS::Operator.
|
overridevirtual |
This function is called whenever a view is attached to this operator.
Reimplemented from HPS::Exchange::CommonMeasurementOperator.
|
overridevirtual |
This function is called whenever a view is detached from this operator.
Reimplemented from HPS::Exchange::CommonMeasurementOperator.
The documentation for this class was generated from the following file:
- include/sprk_exchange.h