|
Lagrange
|
Abstract base class for sweep path. More...
#include <lagrange/primitive/legacy/SweepPath.h>
Public Types | |
| using | Scalar = _Scalar |
| using | TransformType = Eigen::Transform<Scalar, 3, Eigen::AffineCompact> |
| using | PointType = Eigen::Matrix<Scalar, 1, 3> |
Public Member Functions | |
| virtual std::unique_ptr< SweepPath< Scalar > > | clone () const =0 |
| Create a deep copy of itself. | |
| virtual void | initialize ()=0 |
| Generate transformation matrices based on the setting provided. | |
| virtual bool | is_closed () const =0 |
| Whether the sweep path is closed. | |
| size_t | get_num_samples () const |
| The number of samples used to sample along the sweeping path. | |
| void | set_num_samples (size_t n) |
| Set the number of samples for uniform sampling of the sweeping path. | |
| const std::vector< Scalar > & | get_samples () const |
| Samples are always in ascending order going from 0 to 1. | |
| void | set_samples (std::vector< Scalar > samples) |
| Set the sample points. | |
| void | add_samples (const std::vector< Scalar > &samples) |
| Add samples to the existing samples. | |
| const std::vector< TransformType > & | get_transforms () const |
Retrieve the transforms generated using initialize(). | |
| std::vector< TransformType > & | get_transforms () |
| std::vector< Scalar > | get_offsets () const |
| Retrieve the sampled normal offsets. | |
| Scalar | get_depth_begin () const |
| Start sweeping at certain depth along the path. | |
| void | set_depth_begin (Scalar depth) |
| Scalar | get_depth_end () const |
| Stop sweeping at certain depth along the path. | |
| void | set_depth_end (Scalar depth) |
| Scalar | get_twist_begin () const |
| Twisting angle at the beginning of the sweep path. | |
| void | set_twist_begin (Scalar twist) |
| Scalar | get_twist_end () const |
| Twisting angle at the end of the sweep path. | |
| void | set_twist_end (Scalar twist) |
| Scalar | get_taper_begin () const |
| Scaling factor at the beginning of the sweep path. | |
| void | set_taper_begin (Scalar taper) |
| Scalar | get_taper_end () const |
| Scaling factor at the beginning of the sweep path. | |
| void | set_taper_end (Scalar taper) |
| const PointType & | get_pivot () const |
| Twisting and tapering are all with respect to a pivot point. | |
| void | set_pivot (const PointType &p) |
| void | set_offset_fn (std::function< Scalar(Scalar)> fn) |
| Offset function provides a mapping from the relative depth (from 0 to 1) to a normal offset amount (measured in 3D Euclidean distance). | |
| bool | has_offsets () const |
| void | set_normalization_transform (const TransformType &transform) |
| Sometimes one may want to sweep a normalized profile curve, and update normalization from time to time. | |
| const TransformType & | get_normalization_transform () const |
| virtual bool | operator== (const SweepPath< Scalar > &other) const |
| Check if two sweep paths are the same. | |
Protected Member Functions | |
| void | clone_settings (SweepPath< Scalar > &other) const |
Abstract base class for sweep path.
Usage:
where transforms are used to transform profile curves to cross section curves in a swept surface.
|
pure virtual |
Create a deep copy of itself.
Implemented in CircularArcSweepPath< _Scalar >, LinearSweepPath< _Scalar >, and PolylineSweepPath< _VertexArray >.
|
pure virtual |
Generate transformation matrices based on the setting provided.
The generated transforms can be retrieved using get_transforms() method.
Implemented in CircularArcSweepPath< _Scalar >, LinearSweepPath< _Scalar >, and PolylineSweepPath< _VertexArray >.
|
pure virtual |
Whether the sweep path is closed.
Implemented in CircularArcSweepPath< _Scalar >, LinearSweepPath< _Scalar >, and PolylineSweepPath< _VertexArray >.
|
inline |
The number of samples used to sample along the sweeping path.
Each sample corresponds to a new cross section profile curve on the swept surface.
|
inline |
Set the sample points.
| [in] | samples | Where to sample along the sweep path. Must be in the range [0, 1], and must be sorted in ascending order. |
|
inline |
Add samples to the existing samples.
I.e. union samples and m_samples together while keeping the ascending sorted order.
| [in] | samples | Additional sampling points along the sweep path. Must be sorted in ascending order. |
|
inline |
Start sweeping at certain depth along the path.
Measured in distance unit. Default is 0.
|
inline |
Stop sweeping at certain depth along the path.
Measured in distance unit. Default is 1.
|
inline |
Twisting angle at the beginning of the sweep path.
Unit: radian, default: 0.
|
inline |
Twisting angle at the end of the sweep path.
Unit: radian, default: 0.
|
inline |
Scaling factor at the beginning of the sweep path.
Default: 1.
|
inline |
Scaling factor at the beginning of the sweep path.
Default: 1.
|
inline |
Twisting and tapering are all with respect to a pivot point.
This method sets the pivot point. The default pivot point is the origin.
|
inline |
Sometimes one may want to sweep a normalized profile curve, and update normalization from time to time.
This method sets the normalization transform. By default, normalization transform is identity.
|
inlinevirtual |
Check if two sweep paths are the same.
Reimplemented in CircularArcSweepPath< _Scalar >, LinearSweepPath< _Scalar >, and PolylineSweepPath< _VertexArray >.