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. More...
#include <sprk_exchange.h>
Classes | |
class | Surface |
Public Member Functions | |
MeasurementOperator () | |
MeasurementOperator (Exchange::CADModel const &in_cad_model, MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys()) | |
virtual HPS::UTF8 | GetName () const override |
Returns the name of the operator. More... | |
virtual void | OnViewAttached () override |
This function is called whenever a view is attached to this operator. More... | |
virtual void | OnViewDetached () override |
This function is called whenever a view is detached from this operator. More... | |
virtual bool | OnMouseDown (MouseState const &in_state) override |
This function is called whenever HPS receives a MouseEvent that signals a mouse button was pressed. More... | |
virtual bool | OnMouseUp (MouseState const &in_state) override |
This function is called whenever HPS receives a MouseEvent that signals a mouse button was released. More... | |
virtual bool | OnMouseMove (MouseState const &in_state) override |
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. More... | |
virtual bool | OnTouchDown (TouchState const &in_state) override |
This function is called whenever HPS receives a TouchEvent that signals the device was touched. More... | |
virtual bool | OnTouchUp (TouchState const &in_state) override |
This function is called whenever HPS receives a TouchEvent that signals a point of contact has been released. More... | |
virtual bool | OnTouchMove (TouchState const &in_state) override |
This function is called whenever HPS receives a TouchEvent that signals a point of contact has moved. More... | |
virtual bool | OnKeyDown (KeyboardState const &in_state) override |
This function is called whenever HPS receives a KeyDownEvent that signals a key was pressed. More... | |
void | SetMeasurementType (MeasurementType in_measurement_type) |
MeasurementType | GetMeasurementType () |
Returns the type of measurement the operator is currently set up to insert. More... | |
void | SetMouseOverHighlighting (bool in_highlighting) |
void | SetMouseOverHighlighting (bool in_highlighting, HighlightOptionsKit const &in_highlight_options_kit) |
bool | GetMouseOverHighlighting () |
HighlightOptionsKit | GetHighlightOptions () |
bool | IsMeasurementActive () |
void | DeleteLastMeasurement () |
Exchange::CADModel | GetCADModel () const |
void | SetCADModel (Exchange::CADModel const &in_cad_model) |
size_t | GetPrecision () const |
Returns the precision used in the measurement (number of digits after the decimal point) More... | |
void | SetPrecision (size_t in_precision) |
Changes the precision used in the measurement (number of digits after the decimal point) Only affects future measurements. More... | |
MaterialMappingKit | GetMaterial () const |
Returns the material used for the measurements. More... | |
void | SetMaterial (MaterialMappingKit const &in_material_mapping) |
Changes the material used for the measurements. More... | |
TextAttributeKit | GetTextAttributes () const |
Returns the text attributes used for the measurements. More... | |
void | SetTextAttribute (TextAttributeKit const &in_text_attributes) |
Changes the text attributes used for the measurements. More... | |
SegmentKey | GetMeasurementSegment () const |
Returns the top measurement segment containing all measurements. More... | |
void | DeleteMeasurements () |
HPS::Type | ObjectType () const |
virtual void | Assign (Operator const &in_that) |
Assigns the parameter in_that to this operator, resulting in a clone. More... | |
virtual bool | Equals (Operator const &in_that) const |
Tests this operator for equality against the parameter in_that. More... | |
virtual bool | operator!= (Operator const &in_that) const |
Tests this operator for non-equality against the parameter in_that. More... | |
virtual bool | operator== (Operator const &in_that) const |
Tests this operator for equality against the parameter in_that. More... | |
void | DetachView () |
Detaches the Operator from the View it was previously attached to. More... | |
View | GetAttachedView () const |
Returns the View the Operator is currently attached to. More... | |
virtual bool | OnMouseWheel (MouseState const &in_state) |
This function is called whenever HPS receives a MouseEvent that signals the mouse wheel was scrolled. More... | |
virtual bool | OnMouseEnter (MouseState const &in_state) |
This function is called whenever HPS receives a MouseEvent that signals the mouse entered the window. More... | |
virtual bool | OnMouseLeave (MouseState const &in_state) |
This function is called whenever HPS receives a MouseEvent that signals the mouse left the window. More... | |
virtual bool | OnKeyUp (KeyboardState const &in_state) |
This function is called whenever HPS receives a KeyboardEvent that signals a key was released. More... | |
virtual bool | OnTextInput (HPS::UTF8 const &in_text) |
This function is called whenever HPS receives a TextInputEvent that signals text was entered. More... | |
virtual bool | OnTimerTick (HPS::TimerTickEvent const &in_event) |
This function is called whenever HPS receives a TimerTickEvent. More... | |
virtual void | OnModelAttached () |
This function is called whenever a model is attached to the view that is attached to this operator. More... | |
virtual void | OnModelDetached () |
This function is called whenever a model is detached from the view that is attached to this operator. More... | |
void | SetMouseTrigger (MouseButtons in_buttons) |
Sets the mouse trigger for this operator. More... | |
MouseButtons | GetMouseTrigger () const |
Gets the mouse trigger associated with this operator. More... | |
void | SetModifierTrigger (ModifierKeys in_modifiers) |
Sets the modifier trigger associated with this operator. More... | |
ModifierKeys | GetModifierTrigger () const |
Gets the modifier trigger associated with this operator. More... | |
virtual bool | IsMouseTriggered (MouseState const &in_state) |
Returns true if the MouseButtons and ModifierKeys are active. More... | |
virtual HPS::Type | Type () const |
This function returns the true type of the underlying object. More... | |
virtual bool | Empty () const |
Indicates whether this object has any values set on it. More... | |
virtual void | Reset () |
Resets this object to its initial, uninitialized state. More... | |
bool | HasType (HPS::Type in_mask) const |
This function indicates whether this Object has the given Type mask. More... | |
intptr_t | GetClassID () const |
Returns a unique identifier that is shared by all objects of the same class. More... | |
intptr_t | GetInstanceID () const |
Returns an identifier that can be used to identify which instance of a class an object is. More... | |
Static Public Member Functions | |
static UTF8 | GetNewMeasurementSegmentName (HPS::UTF8 const &in_prefix) |
Returns the name to be used for the new measurement segment name. More... | |
template<typename T > | |
static intptr_t | ClassID () |
Unique identifier for this class. More... | |
Static Public Attributes | |
static const HPS::Type | staticType = HPS::Type::Operator |
Protected Member Functions | |
void | Tag (HPS::Key &tag, const char *message, Tags tag_index) |
void | GetUnits () |
void | SetGlyphColor () |
void | GetCameraDirection () |
void | SetupConstructionSegment () |
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()) |
float | GetModelScale (Exchange::Component const &component) |
void | SetMaterialsOnMeasurementSegment (HPS::SegmentKey const &set_materials_here, HPS::MaterialMappingKit const &materials_to_apply) |
Static Protected Attributes | |
static size_t | length_measurement_index |
static size_t | radius_measurement_index |
static size_t | distance_measurement_index |
static size_t | angle_measurement_index |
Private Types | |
enum | EdgeType { EdgeType::Circle, EdgeType::Line, EdgeType::Generic } |
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.
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.
|
strongprivate |
|
stronginherited |
|
stronginherited |
HPS::Exchange::MeasurementOperator::MeasurementOperator | ( | ) |
HPS::Exchange::MeasurementOperator::MeasurementOperator | ( | Exchange::CADModel const & | in_cad_model, |
MouseButtons | in_mouse_trigger = MouseButtons::ButtonLeft() , |
||
ModifierKeys | in_modifier_trigger = ModifierKeys() |
||
) |
|
private |
|
virtualinherited |
Assigns the parameter in_that to this operator, resulting in a clone.
|
inlinestaticinherited |
Unique identifier for this class.
Note: this method uses construction of static objects. If used in a constructor, it should be used in the body not the initializer list.
|
private |
|
private |
void HPS::Exchange::MeasurementOperator::DeleteLastMeasurement | ( | ) |
|
inherited |
|
inherited |
|
inlinevirtualinherited |
Indicates whether this object has any values set on it.
Reimplemented in HPS::STL::ImportResultsKit, HPS::STL::ImportOptionsKit, HPS::OBJ::ImportResultsKit, HPS::OBJ::ImportOptionsKit, HPS::Hardcopy::File::ExportOptionsKit, HPS::Stream::ExportOptionsKit, HPS::Stream::ImportResultsKit, HPS::Stream::ImportOptionsKit, HPS::PointCloud::ImportOptionsKit, HPS::PointCloud::ImportResultsKit, HPS::UpdateOptionsKit, HPS::HighlightSearchOptionsKit, HPS::HighlightOptionsKit, HPS::SelectionOptionsKit, HPS::SearchOptionsKit, HPS::CutGeometryGatheringOptionsKit, HPS::ShapeKit, HPS::ShaderKit, HPS::Shader::ImportOptionsKit, HPS::ImageKit, HPS::Image::ImportOptionsKit, HPS::Image::ExportOptionsKit, HPS::TextureOptionsKit, HPS::LinePatternKit, HPS::LinePatternParallelKit, HPS::LinePatternOptionsKit, HPS::GlyphKit, HPS::ApplicationWindowOptionsKit, HPS::OffScreenWindowOptionsKit, HPS::StandAloneWindowOptionsKit, HPS::GridKit, HPS::PolygonKit, HPS::MeshKit, HPS::ShellKit, HPS::ShellRelationResultsKit, HPS::ShellRelationOptionsKit, HPS::ShellOptimizationOptionsKit, HPS::TextKit, HPS::EllipticalArcKit, HPS::EllipseKit, HPS::TrimKit, HPS::NURBSSurfaceKit, HPS::NURBSCurveKit, HPS::SpotlightKit, HPS::InfiniteLineKit, HPS::CuttingSectionKit, HPS::CircularWedgeKit, HPS::CircularArcKit, HPS::CircleKit, HPS::SphereKit, HPS::CylinderKit, HPS::DistantLightKit, HPS::MarkerKit, HPS::LineKit, HPS::AttributeLockKit, HPS::FontInfoState, HPS::WindowInfoKit, HPS::DebuggingKit, HPS::SubwindowKit, HPS::ContourLineKit, HPS::VisualEffectsKit, HPS::TransformMaskKit, HPS::PostProcessEffectsKit, HPS::DrawingAttributeKit, HPS::HiddenLineAttributeKit, HPS::PerformanceKit, HPS::NURBSSurfaceAttributeKit, HPS::MaterialKit, HPS::MaterialMappingKit, HPS::MatrixKit, HPS::CurveAttributeKit, HPS::EdgeAttributeKit, HPS::LineAttributeKit, HPS::TextAttributeKit, HPS::CuttingSectionAttributeKit, HPS::CylinderAttributeKit, HPS::LightingAttributeKit, HPS::SphereAttributeKit, HPS::MarkerAttributeKit, HPS::CullingKit, HPS::ColorInterpolationKit, HPS::TransparencyKit, HPS::SelectabilityKit, HPS::CameraKit, HPS::VisibilityKit, HPS::BoundingKit, HPS::SegmentOptimizationOptionsKit, HPS::Publish::ExportOptionsKit, HPS::Publish::TextFieldKit, HPS::Publish::SignatureFieldKit, HPS::Publish::DropDownListKit, HPS::Exchange::TessellationOptionsKit, HPS::Publish::ListBoxKit, HPS::Exchange::ExportSTEPOptionsKit, HPS::Exchange::ExportParasolidOptionsKit, HPS::Publish::RadioButtonKit, HPS::Exchange::ExportIGESOptionsKit, HPS::Exchange::ExportXMLOptionsKit, HPS::Publish::CheckBoxKit, HPS::Exchange::ExportU3DOptionsKit, HPS::Exchange::ExportSTLOptionsKit, HPS::Publish::ButtonKit, HPS::Exchange::ExportPRCOptionsKit, HPS::Publish::LinkKit, HPS::Exchange::ExportJTOptionsKit, HPS::Publish::SlideTableKit, HPS::Exchange::ExportACISOptionsKit, HPS::Publish::TableKit, HPS::Exchange::Export3MFOptionsKit, HPS::Publish::ImageKit, HPS::Publish::TextKit, HPS::Exchange::ModelFileImportOptionsKit, HPS::Publish::ViewKit, HPS::Exchange::TranslationOptionsKit, HPS::Publish::ArtworkKit, HPS::Publish::AnnotationKit, HPS::ComponentPath, HPS::Exchange::ImportOptionsKit, HPS::Parasolid::ExportOptionsKit, HPS::Exchange::NURBSConversionOptionsKit, HPS::Parasolid::LineTessellationKit, HPS::Exchange::Configuration, HPS::Publish::PageKit, HPS::Parasolid::FacetTessellationKit, HPS::Publish::DocumentKit, HPS::Parasolid::ImportOptionsKit, HPS::DWG::ImportOptionsKit, HPS::OOC::ImportOptionsKit, HPS::Sketchup::ImportOptionsKit, and HPS::Sketchup::ImportResultsKit.
|
virtualinherited |
Tests this operator for equality against the parameter in_that.
Same as Operator::operator==
|
inherited |
|
inherited |
|
protectedinherited |
|
inherited |
Returns a unique identifier that is shared by all objects of the same class.
|
private |
HighlightOptionsKit HPS::Exchange::MeasurementOperator::GetHighlightOptions | ( | ) |
|
inherited |
Returns an identifier that can be used to identify which instance of a class an object is.
Different keys and controls will return the same value if they are backed by the same database resource.
|
inherited |
Returns the material used for the measurements.
|
inherited |
Returns the top measurement segment containing all measurements.
MeasurementType HPS::Exchange::MeasurementOperator::GetMeasurementType | ( | ) |
Returns the type of measurement the operator is currently set up to insert.
|
protectedinherited |
|
inlineinherited |
Gets the modifier trigger associated with this operator.
bool HPS::Exchange::MeasurementOperator::GetMouseOverHighlighting | ( | ) |
|
inlineinherited |
Gets the mouse trigger associated with this operator.
|
inlineoverridevirtual |
Returns the name of the operator.
Reimplemented from HPS::Exchange::CommonMeasurementOperator.
|
staticinherited |
Returns the name to be used for the new measurement segment name.
|
private |
|
inherited |
Returns the precision used in the measurement (number of digits after the decimal point)
|
private |
|
inherited |
Returns the text attributes used for the measurements.
|
protectedinherited |
|
inherited |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
bool HPS::Exchange::MeasurementOperator::IsMeasurementActive | ( | ) |
|
inlinevirtualinherited |
Returns true if the MouseButtons and ModifierKeys are active.
Reimplemented in HPS::SimpleWalkOperator.
|
private |
|
private |
|
private |
|
inlinevirtualinherited |
|
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.
Reimplemented from HPS::Operator.
|
inlinevirtualinherited |
This function is called whenever HPS receives a KeyboardEvent that signals a key was released.
in_state | A KeyboardState object describing the current keyboard state. |
Reimplemented in HPS::SimpleWalkOperator, and HPS::FlyOperator.
|
inlinevirtualinherited |
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 in HPS::NavigationCubeOperator, HPS::CuttingSectionOperator, HPS::SimpleWalkOperator, HPS::WalkOperator, HPS::FlyOperator, and HPS::MouseWheelOperator.
|
inlinevirtualinherited |
This function is called whenever a model is detached from the view that is attached to this operator.
If no view is attached to this operator, this function will not be called.
|
overridevirtual |
This function is called whenever HPS receives a MouseEvent that signals a mouse button was pressed.
This function inserts the measuring points.
in_state | A MouseState object describing the current mouse state. |
Reimplemented from HPS::Operator.
|
inlinevirtualinherited |
This function is called whenever HPS receives a MouseEvent that signals the mouse entered the window.
in_state | A MouseState object describing the current mouse state. |
Reimplemented in HPS::SimpleWalkOperator.
|
inlinevirtualinherited |
This function is called whenever HPS receives a MouseEvent that signals the mouse left the window.
in_state | A MouseState object describing the current mouse state. |
Reimplemented in HPS::SimpleWalkOperator.
|
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.
in_state | A MouseState object describing the current mouse state. |
Reimplemented from HPS::Operator.
|
overridevirtual |
This function is called whenever HPS receives a MouseEvent that signals a mouse button was released.
in_state | A MouseState object describing the current mouse state. |
Reimplemented from HPS::Operator.
|
inlinevirtualinherited |
This function is called whenever HPS receives a MouseEvent that signals the mouse wheel was scrolled.
in_state | A MouseState object describing the current mouse state. |
Reimplemented in HPS::SimpleWalkOperator, HPS::FlyOperator, HPS::TurntableOperator, and HPS::MouseWheelOperator.
|
inlinevirtualinherited |
This function is called whenever HPS receives a TextInputEvent that signals text was entered.
in_text | The text entered. |
Reimplemented in HPS::AnnotationOperator, and HPS::MarkupOperator.
|
inlinevirtualinherited |
This function is called whenever HPS receives a TimerTickEvent.
in_event | A TimerTickEvent object describing the current event state. |
Reimplemented in HPS::CuttingSectionOperator, HPS::SimpleWalkOperator, HPS::WalkOperator, and HPS::FlyOperator.
|
overridevirtual |
This function is called whenever HPS receives a TouchEvent that signals the device was touched.
This function inserts the measuring points.
in_state | A TouchState object describing the current touch state. |
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
in_state | A TouchState object describing the current touch state. |
Reimplemented from HPS::Operator.
|
overridevirtual |
This function is called whenever HPS receives a TouchEvent that signals a point of contact has been released.
in_state | A TouchState object describing the current touch state. |
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.
|
virtualinherited |
Tests this operator for non-equality against the parameter in_that.
|
virtualinherited |
Tests this operator for equality against the parameter in_that.
Same as Operator::Equals.
|
private |
|
private |
|
protectedinherited |
|
virtualinherited |
Resets this object to its initial, uninitialized state.
Reimplemented in HPS::EventHandler, HPS::EventDispatcher, HPS::World, HPS::HighlightSearchResults, HPS::HighlightSearchResultsIterator, HPS::SelectionResults, HPS::SelectionResultsIterator, HPS::FontSearchResults, HPS::FontSearchResultsIterator, HPS::SearchResults, and HPS::SearchResultsIterator.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inherited |
|
protectedinherited |
|
inherited |
Changes the material used for the measurements.
Affects all measurements, even those already inserted.
|
protectedinherited |
void HPS::Exchange::MeasurementOperator::SetMeasurementType | ( | MeasurementType | in_measurement_type | ) |
|
inlineinherited |
Sets the modifier trigger associated with this operator.
in_modifiers | The modifier keys that are used to trigger this operator. |
void HPS::Exchange::MeasurementOperator::SetMouseOverHighlighting | ( | bool | in_highlighting | ) |
void HPS::Exchange::MeasurementOperator::SetMouseOverHighlighting | ( | bool | in_highlighting, |
HighlightOptionsKit const & | in_highlight_options_kit | ||
) |
|
inlineinherited |
Sets the mouse trigger for this operator.
|
inherited |
Changes the precision used in the measurement (number of digits after the decimal point) Only affects future measurements.
|
inherited |
Changes the text attributes used for the measurements.
Affects all measurements, even those already inserted.
|
protectedinherited |
|
protectedinherited |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
virtualinherited |
This function returns the true type of the underlying object.
This function is useful for finding the type of smart pointer objects that have been cast to more generic types.
Reimplemented in HPS::UpdateOptionsControl, HPS::HighlightControl, HPS::SelectionOptionsControl, HPS::OffScreenWindowOptionsControl, HPS::ApplicationWindowOptionsControl, HPS::StandAloneWindowOptionsControl, HPS::AttributeLockControl, HPS::WindowInfoControl, HPS::DebuggingControl, HPS::SubwindowControl, HPS::ContourLineControl, HPS::VisualEffectsControl, HPS::TransformMaskControl, HPS::PostProcessEffectsControl, HPS::DrawingAttributeControl, HPS::HiddenLineAttributeControl, HPS::PerformanceControl, HPS::NURBSSurfaceAttributeControl, HPS::ConditionControl, HPS::StyleControl, HPS::PortfolioControl, HPS::MaterialMappingControl, HPS::TextureMatrixControl, HPS::ModellingMatrixControl, HPS::CurveAttributeControl, HPS::EdgeAttributeControl, HPS::LineAttributeControl, HPS::TextAttributeControl, HPS::CuttingSectionAttributeControl, HPS::CylinderAttributeControl, HPS::LightingAttributeControl, HPS::SphereAttributeControl, HPS::MarkerAttributeControl, HPS::CullingControl, HPS::ColorInterpolationControl, HPS::TransparencyControl, HPS::SelectabilityControl, HPS::CameraControl, HPS::VisibilityControl, HPS::BoundingControl, HPS::Kit, and HPS::Control.
|
private |
|
private |
|
private |
|
private |
|
staticprotectedinherited |
|
private |
|
protectedinherited |
|
protectedinherited |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
staticprotectedinherited |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
protectedinherited |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
protectedinherited |
|
staticprotectedinherited |
|
private |
|
private |
|
protectedinherited |
|
protectedinherited |
|
private |
|
private |
|
private |
|
protectedinherited |
|
protectedinherited |
|
private |
|
private |
|
protectedinherited |
|
private |
|
protectedinherited |
|
private |
|
private |
|
protectedinherited |
|
private |
|
staticprotectedinherited |
|
protectedinherited |
|
private |
|
private |
|
protectedinherited |
|
staticinherited |
|
protectedinherited |
|
private |
|
private |
|
private |
|
private |
|
protectedinherited |
|
private |
|
private |
|
protectedinherited |
|
private |