Volume Cartographer 2.27.0
|
Collection of transforms. More...
#include <vc/core/types/Transforms.hpp>
Public Types | |
using | Pointer = std::shared_ptr< CompositeTransform > |
![]() | |
using | Pointer = std::shared_ptr< Transform3D > |
using | Identifier = std::string |
Public Member Functions | |
auto | type () const -> std::string_view final |
Return a string representation of the transform type. More... | |
auto | clone () const -> Transform3D::Pointer final |
Clone the transform. More... | |
void | reset () final |
Reset the transform parameters. More... | |
auto | applyPoint (const cv::Vec3d &point) const -> cv::Vec3d final |
Transform a 3D point. More... | |
auto | applyVector (const cv::Vec3d &vector) const -> cv::Vec3d final |
Transform a 3D direction vector. More... | |
void | push_front (const Transform3D::Pointer &t) |
Add a transform to the front of the composite transform stack. More... | |
void | push_back (const Transform3D::Pointer &t) |
Add a transform to the end of the composite transform stack. More... | |
auto | size () const noexcept -> std::size_t |
Get the number of transforms in the composite transform. | |
void | simplify () |
Compose all composable transforms. More... | |
auto | transforms () const -> std::vector< Transform3D::Pointer > |
Get a list of the stored transforms. | |
![]() | |
virtual | ~Transform3D ()=default |
Transform3D (Transform3D &&)=delete | |
auto | operator= (Transform3D &&other) -> Transform3D &=delete |
virtual auto | type () const -> std::string_view=0 |
Return a string representation of the transform type. More... | |
virtual auto | clone () const -> Pointer=0 |
Clone the transform. More... | |
virtual auto | invertible () const -> bool |
Return whether the underlying transform is invertible. More... | |
virtual auto | invert () const -> Pointer |
Return the inverted transform. More... | |
virtual auto | composable () const -> bool |
Return whether the underlying transform is composable. More... | |
virtual void | reset ()=0 |
Reset the transform parameters. More... | |
void | clear () |
Clears all parameters and properties of the transform. | |
void | source (const std::string &src) |
Set the identifier for the source space. More... | |
auto | source () const -> std::string |
Get the source space identifier. More... | |
void | target (const std::string &tgt) |
Set the identifier for the target space. More... | |
auto | target () const -> std::string |
Set the identifier for the target space. More... | |
virtual auto | applyPoint (const cv::Vec3d &point) const -> cv::Vec3d=0 |
Transform a 3D point. More... | |
virtual auto | applyVector (const cv::Vec3d &vector) const -> cv::Vec3d=0 |
Transform a 3D direction vector. More... | |
auto | applyUnitVector (const cv::Vec3d &vector) const -> cv::Vec3d |
Transform a 3D direction unit vector. More... | |
auto | applyPointAndNormal (const cv::Vec6d &ptN, bool normalize=true) const -> cv::Vec6d |
Transform a 3D point and surface normal stored in a cv::Vec6d. More... | |
Static Public Member Functions | |
static auto | New () -> Pointer |
Create a new CompositeTransform. | |
![]() | |
static auto | Compose (const Pointer &lhs, const Pointer &rhs) -> std::pair< Pointer, Pointer > |
Compose two transforms into a single new transform. More... | |
static void | Save (const filesystem::path &path, const Pointer &transform) |
Save a transform to a JSON file. | |
static auto | Load (const filesystem::path &path) -> Pointer |
Load a transform from a JSON file. | |
Static Public Attributes | |
static constexpr std::string_view | TYPE {"CompositeTransform"} |
Transform type string constant. More... | |
![]() | |
static constexpr std::string_view | TYPE {"Transform3D"} |
Transform type string constant. More... | |
Private Member Functions | |
CompositeTransform ()=default | |
void | to_meta_ (Metadata &meta) final |
void | from_meta_ (const Metadata &meta) final |
Private Attributes | |
std::list< Transform3D::Pointer > | tfms_ |
Additional Inherited Members | |
![]() | |
using | Metadata = nlohmann::ordered_json |
![]() | |
Transform3D ()=default | |
Transform3D (const Transform3D &)=default | |
auto | operator= (const Transform3D &other) -> Transform3D &=default |
virtual auto | compose_ (const Pointer &rhs) const -> Pointer |
virtual void | to_meta_ (Metadata &meta)=0 |
virtual void | from_meta_ (const Metadata &meta)=0 |
![]() | |
static auto | Serialize (const Pointer &transform) -> Metadata |
static auto | Deserialize (const Metadata &meta) -> Pointer |
Collection of transforms.
A convenience class which holds a list of transforms. When transforming points and vectors, each transform is applied sequentially to the input.
It can often be preferable, for both performance and numerical stability, to simplify all adjacent, composable transforms (e.g. AffineTransform, IdentityTransform) into a single transform.
Definition at line 436 of file Transforms.hpp.
using volcart::CompositeTransform::Pointer = std::shared_ptr<CompositeTransform> |
Pointer type
Definition at line 443 of file Transforms.hpp.
|
privatedefault |
Don't allow construction on the stack
|
finalvirtual |
Transform a 3D point.
Implements volcart::Transform3D.
|
finalvirtual |
Transform a 3D direction vector.
Implements volcart::Transform3D.
|
finalvirtual |
Clone the transform.
Implements volcart::Transform3D.
|
finalprivatevirtual |
Deserialize the derived class parameters
Implements volcart::Transform3D.
void volcart::CompositeTransform::push_back | ( | const Transform3D::Pointer & | t | ) |
Add a transform to the end of the composite transform stack.
The transform is cloned before being added to the transform stack. If the transform is also a CompositeTransform, its transform stack is expanded and copied to the end of this transform's stack.
void volcart::CompositeTransform::push_front | ( | const Transform3D::Pointer & | t | ) |
Add a transform to the front of the composite transform stack.
The transform is cloned before being added to the transform stack. If the transform is also a CompositeTransform, its transform stack is expanded and copied to the front of this transform's stack.
|
finalvirtual |
Reset the transform parameters.
Resets all parameters controlled by the derived transform. Does not reset base transform properties like source and target.
Implements volcart::Transform3D.
void volcart::CompositeTransform::simplify | ( | ) |
Compose all composable transforms.
Simplifies the transform by composing all adjacent, composable transforms in the composite transform list. This can lead to better runtime performance and numerical stability for the apply functions.
|
finalprivatevirtual |
Serialize the derived class parameters
Implements volcart::Transform3D.
|
finalvirtual |
Return a string representation of the transform type.
Implements volcart::Transform3D.
|
private |
Transform list
Definition at line 499 of file Transforms.hpp.
|
staticconstexpr |
Transform type string constant.
Definition at line 440 of file Transforms.hpp.