The ModellingMatrixControl class is a smart pointer that is tied to a database object. More...
#include <hps.h>
Public Member Functions | |
ModellingMatrixControl (SegmentKey const &in_seg) | |
Initializes a control tied to the segment in_seg. More... | |
ModellingMatrixControl (ReferenceKey const &in_ref) | |
Initializes a control tied to the geometry reference in_ref. More... | |
ModellingMatrixControl (ModellingMatrixControl const &in_that) | |
Initializes a control tied to the same object as in_that. More... | |
ModellingMatrixControl (ModellingMatrixControl &&in_that) | |
The move constructor creates a ModellingMatrixControl by transferring the underlying impl of the rvalue reference to this ModellingMatrixControl thereby avoiding a copy and allocation. More... | |
ModellingMatrixControl & | operator= (ModellingMatrixControl &&in_that) |
The move assignment operator transfers the underlying impl of the rvalue reference to this ModellingMatrixControl thereby avoiding a copy. More... | |
~ModellingMatrixControl () | |
Releases a reference to the database object this control is tied to. More... | |
virtual HPS::Type | Type () const |
This function returns the true type of the underlying object. More... | |
HPS::Type | ObjectType () const |
ModellingMatrixControl & | operator= (ModellingMatrixControl const &in_that) |
Share the underlying smart-pointer of the ModellingMatrixControl source. More... | |
ModellingMatrixControl & | SetElement (size_t in_row, size_t in_column, float in_value) |
Sets a single matrix element. More... | |
ModellingMatrixControl & | SetElement (size_t in_ordinal_zero_to_fifteen, float in_value) |
Sets a single matrix element, indexed as a linear array in row-major order. More... | |
ModellingMatrixControl & | SetElements (FloatArray const &in_values) |
Sets some or all elements in the matrix from an array, starting with the first element. More... | |
ModellingMatrixControl & | SetElements (size_t in_value_count, float const in_values []) |
Sets some or all elements in the matrix from an array, starting with the first element. More... | |
ModellingMatrixControl & | UnsetEverything () |
Removes all settings from this object. More... | |
bool | ShowElement (size_t in_row, size_t in_column, float &out_value) const |
Shows a single matrix element. More... | |
bool | ShowElement (size_t in_ordinal_zero_to_fifteen, float &out_value) const |
Shows a single matrix element, indexed as a linear array in row-major order. More... | |
bool | ShowElements (FloatArray &out_matrix) const |
Shows all elements of this matrix as an array. More... | |
bool | ShowDeterminant (float &out_determinant) const |
Computes the matrix determinant of this matrix. More... | |
bool | ShowInverse (MatrixKit &out_matrix) const |
Computes the matrix inverse of this matrix. More... | |
bool | ShowAdjoint (MatrixKit &out_matrix) const |
Computes the matrix adjoint of this matrix. More... | |
ModellingMatrixControl & | Rotate (float in_x, float in_y, float in_z) |
Concatenates a rotation matrix to this matrix with rotation around the primary axes. More... | |
ModellingMatrixControl & | RotateOffAxis (Vector const &in_vector, float in_theta) |
Concatenates a rotation matrix to this matrix with rotation around an arbitrary vector. More... | |
ModellingMatrixControl & | Translate (float in_x, float in_y, float in_z) |
Concatenates a translation matrix to this matrix that moves geometry. More... | |
ModellingMatrixControl & | Translate (Vector const &in_translation) |
Concatenates a translation matrix to this matrix that moves geometry. More... | |
ModellingMatrixControl & | Scale (float in_x, float in_y, float in_z) |
Concatenates a scale matrix to this matrix that represents a uniform scaling of the scene. More... | |
ModellingMatrixControl & | Concatenate (MatrixKit const &in_kit) |
Replaces this matrix with the matrix product of itself multiplied by another matrix. More... | |
ModellingMatrixControl & | Normalize () |
Divides this matrix by its determinant. More... | |
ModellingMatrixControl & | Invert () |
Replaces this matrix with it's matrix inverse. More... | |
ModellingMatrixControl & | Adjoint () |
Replaces this matrix with it's matrix adjoint. 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 | |
template<typename T > | |
static intptr_t | ClassID () |
Unique identifier for this class. More... | |
Static Public Attributes | |
static const HPS::Type | staticType = HPS::Type::ModellingMatrixControl |
Private Member Functions | |
ModellingMatrixControl () | |
Private default constructor to prevent instantiation without a segment. More... | |
The ModellingMatrixControl class is a smart pointer that is tied to a database object.
This control gives you access to a segment's modelling matrix. You can set an entire matrix or individual elements. Additionally, this class provides a small set of utility methods for all the basic transformations, as well as getting the matrix adjoint and determinant. Elements of modelling matrices are in row-major order.
|
explicit |
Initializes a control tied to the segment in_seg.
|
explicit |
Initializes a control tied to the geometry reference in_ref.
HPS::ModellingMatrixControl::ModellingMatrixControl | ( | ModellingMatrixControl const & | in_that | ) |
Initializes a control tied to the same object as in_that.
HPS::ModellingMatrixControl::ModellingMatrixControl | ( | ModellingMatrixControl && | in_that | ) |
The move constructor creates a ModellingMatrixControl by transferring the underlying impl of the rvalue reference to this ModellingMatrixControl thereby avoiding a copy and allocation.
in_that | An rvalue reference to a ModellingMatrixControl to take the impl from. |
HPS::ModellingMatrixControl::~ModellingMatrixControl | ( | ) |
Releases a reference to the database object this control is tied to.
|
private |
Private default constructor to prevent instantiation without a segment.
ModellingMatrixControl& HPS::ModellingMatrixControl::Adjoint | ( | ) |
Replaces this matrix with it's matrix adjoint.
The adjoint is similar to the inverse but is always guaranteed to exist, even for singular matrices.
|
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.
ModellingMatrixControl& HPS::ModellingMatrixControl::Concatenate | ( | MatrixKit const & | in_kit | ) |
Replaces this matrix with the matrix product of itself multiplied by another matrix.
in_kit | the right side operand of the matrix multiplication. |
|
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.
|
inherited |
Returns a unique identifier that is shared by all objects of the same class.
|
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 |
ModellingMatrixControl& HPS::ModellingMatrixControl::Invert | ( | ) |
Replaces this matrix with it's matrix inverse.
If this matrix is singular (determinant = 0), it will be unchanged.
ModellingMatrixControl& HPS::ModellingMatrixControl::Normalize | ( | ) |
Divides this matrix by its determinant.
If this matrix is singular (determinant = 0), it will be unchanged.
|
inlinevirtual |
ModellingMatrixControl& HPS::ModellingMatrixControl::operator= | ( | ModellingMatrixControl && | in_that | ) |
The move assignment operator transfers the underlying impl of the rvalue reference to this ModellingMatrixControl thereby avoiding a copy.
in_that | An rvalue reference to a ModellingMatrixControl to take the impl from. |
ModellingMatrixControl& HPS::ModellingMatrixControl::operator= | ( | ModellingMatrixControl const & | in_that | ) |
Share the underlying smart-pointer of the ModellingMatrixControl source.
in_that | The ModellingMatrixControl source of the assignment. |
|
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.
ModellingMatrixControl& HPS::ModellingMatrixControl::Rotate | ( | float | in_x, |
float | in_y, | ||
float | in_z | ||
) |
Concatenates a rotation matrix to this matrix with rotation around the primary axes.
in_x | The number of degrees to rotate around the x-axis. |
in_y | The number of degrees to rotate around the y-axis. |
in_z | The number of degrees to rotate around the z-axis. |
ModellingMatrixControl& HPS::ModellingMatrixControl::RotateOffAxis | ( | Vector const & | in_vector, |
float | in_theta | ||
) |
Concatenates a rotation matrix to this matrix with rotation around an arbitrary vector.
in_vector | The vector to rotate around. |
in_theta | the number of degrees to rotate around the specified vector |
ModellingMatrixControl& HPS::ModellingMatrixControl::Scale | ( | float | in_x, |
float | in_y, | ||
float | in_z | ||
) |
Concatenates a scale matrix to this matrix that represents a uniform scaling of the scene.
in_x | The scale multiplier along the x-axis. |
in_y | The scale multiplier along the y-axis. |
in_z | The scale multiplier along the z-axis. |
ModellingMatrixControl& HPS::ModellingMatrixControl::SetElement | ( | size_t | in_row, |
size_t | in_column, | ||
float | in_value | ||
) |
Sets a single matrix element.
in_row | The row index. Valid range is [0, 3]. |
in_column | The column index. Valid range is [0, 3]. |
in_value | The matrix element. |
ModellingMatrixControl& HPS::ModellingMatrixControl::SetElement | ( | size_t | in_ordinal_zero_to_fifteen, |
float | in_value | ||
) |
Sets a single matrix element, indexed as a linear array in row-major order.
in_ordinal_zero_to_fifteen | The offset into the matrix. Valid range is [0, 15]. |
in_value | The matrix element. |
ModellingMatrixControl& HPS::ModellingMatrixControl::SetElements | ( | FloatArray const & | in_values | ) |
Sets some or all elements in the matrix from an array, starting with the first element.
in_values | An array of float values in row-major order that should replace the values in the matrix. |
ModellingMatrixControl& HPS::ModellingMatrixControl::SetElements | ( | size_t | in_value_count, |
float const | in_values[] | ||
) |
Sets some or all elements in the matrix from an array, starting with the first element.
in_value_count | the number of elements in the input array. Valid range is [0, 16]. |
in_values | An array of float values in row-major order that should replace the values in the matrix. |
bool HPS::ModellingMatrixControl::ShowAdjoint | ( | MatrixKit & | out_matrix | ) | const |
Computes the matrix adjoint of this matrix.
The adjoint is similar to the inverse but is always guaranteed to exist, even for singular matrices.
out_matrix | The matrix adjoint of this matrix. |
bool HPS::ModellingMatrixControl::ShowDeterminant | ( | float & | out_determinant | ) | const |
Computes the matrix determinant of this matrix.
out_determinant | The matrix determinant. |
bool HPS::ModellingMatrixControl::ShowElement | ( | size_t | in_row, |
size_t | in_column, | ||
float & | out_value | ||
) | const |
Shows a single matrix element.
in_row | The row index. Valid range is [0, 3]. |
in_column | The column index. Valid range is [0, 3]. |
out_value | The matrix element. |
bool HPS::ModellingMatrixControl::ShowElement | ( | size_t | in_ordinal_zero_to_fifteen, |
float & | out_value | ||
) | const |
Shows a single matrix element, indexed as a linear array in row-major order.
in_ordinal_zero_to_fifteen | The offset into the matrix. Valid range is [0, 15]. |
out_value | The matrix element. |
bool HPS::ModellingMatrixControl::ShowElements | ( | FloatArray & | out_matrix | ) | const |
Shows all elements of this matrix as an array.
out_matrix | The contents of the matrix arranged as a linear array in row-major order. |
bool HPS::ModellingMatrixControl::ShowInverse | ( | MatrixKit & | out_matrix | ) | const |
Computes the matrix inverse of this matrix.
Fails if this matrix is singular (determinant = 0).
out_matrix | The matrix inverse of this matrix. |
ModellingMatrixControl& HPS::ModellingMatrixControl::Translate | ( | float | in_x, |
float | in_y, | ||
float | in_z | ||
) |
Concatenates a translation matrix to this matrix that moves geometry.
in_x | The number of units to translate along the x-axis. |
in_y | The number of units to translate along the y-axis. |
in_z | The number of units to translate along the z-axis. |
ModellingMatrixControl& HPS::ModellingMatrixControl::Translate | ( | Vector const & | in_translation | ) |
Concatenates a translation matrix to this matrix that moves geometry.
in_translation | A vector distance to translate by. |
|
inlinevirtual |
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 from HPS::Control.
ModellingMatrixControl& HPS::ModellingMatrixControl::UnsetEverything | ( | ) |
Removes all settings from this object.
|
static |