|
Open 3D Engine AzCore API Reference
2205.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
|
#include <Spline.h>
Inherited by AZ::BezierSpline, AZ::CatmullRomSpline, and AZ::LinearSpline.
Public Member Functions | |
| Spline (const Spline &spline) | |
| virtual RaySplineQueryResult | GetNearestAddressRay (const Vector3 &localRaySrc, const Vector3 &localRayDir) const =0 |
| virtual PositionSplineQueryResult | GetNearestAddressPosition (const Vector3 &localPos) const =0 |
| virtual SplineAddress | GetAddressByDistance (float distance) const =0 |
| virtual SplineAddress | GetAddressByFraction (float fraction) const =0 |
| virtual Vector3 | GetPosition (const SplineAddress &splineAddress) const =0 |
| virtual Vector3 | GetNormal (const SplineAddress &splineAddress) const =0 |
| virtual Vector3 | GetTangent (const SplineAddress &splineAddress) const =0 |
| virtual float | GetLength (const SplineAddress &splineAddress) const =0 |
| virtual float | GetSplineLength () const =0 |
| virtual float | GetSegmentLength (size_t index) const =0 |
| virtual size_t | GetSegmentCount () const =0 |
| virtual u16 | GetSegmentGranularity () const =0 |
| virtual void | GetAabb (Aabb &aabb, const Transform &transform=Transform::CreateIdentity()) const =0 |
| void | SetClosed (bool closed) |
| bool | IsClosed () const |
| size_t | GetVertexCount () const |
| const AZStd::vector< Vector3 > & | GetVertices () const |
| const Vector3 & | GetVertex (size_t index) const |
| void | SetCallbacks (const VoidFunction &onChangeElement, const VoidFunction &onChangeContainer, const BoolFunction &onOpenClose) |
| void | SetCallbacks (const IndexFunction &onAddVertex, const IndexFunction &onRemoveVertex, const IndexFunction &onUpdateVertex, const VoidFunction &onSetVertices, const VoidFunction &onClearVertices, const BoolFunction &onOpenClose) |
| virtual void | OnSplineChanged () |
Static Public Member Functions | |
| static void | Reflect (SerializeContext &context) |
Public Attributes | |
| VertexContainer< Vector3 > | m_vertexContainer |
| Vertices representing the spline. | |
Protected Member Functions | |
| virtual void | OnVertexAdded (size_t index) |
| Internal function to be overridden by derived spline spline to handle custom logic when a vertex is added. | |
| virtual void | OnVerticesSet () |
| Internal function to be overridden by derived spline spline to handle custom logic when all vertices are set. | |
| virtual void | OnVertexRemoved (size_t index) |
| Internal function to be overridden by derived spline to handle custom logic when a vertex is removed. | |
| virtual void | OnVerticesCleared () |
| Internal function to be overridden by derived spline to handle custom logic when spline is reset (vertices are cleared). | |
Protected Attributes | |
| bool | m_closed = false |
| Is the spline closed - default is not. | |
Static Protected Attributes | |
| static const float | s_splineEpsilon |
| Epsilon value for splines to use to check approximate results. | |
Generic base spline class.
|
pure virtual |
Gets the Aabb of the vertices in the spline.
| aabb | out param of filled aabb. |
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Return address at distance value - range [0, splineLength].
| distance | Distance along the spline. |
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Return address at fractional value - range [0, 1].
| fraction | fraction/proportion/percentage along the spline. |
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Returns spline length from the beginning to the specific point.
| splineAddress | Address of the point to get the distance to. |
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Return nearest address on spline from position (local space).
| localPos | Position in local space of spline (must be transformed prior to being passed). |
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Return nearest address on spline from ray (local space).
| localRaySrc | Position of ray in local space of spline (must be transformed prior to being passed). |
| localRayDir | Direction of ray in local space of spline (must be transformed prior to being passed). |
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Return normal at SplineAddress (local space).
| splineAddress | Address representing a point on the spline. |
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Return position at SplineAddress (local space).
| splineAddress | Address representing a point on the spline. |
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Return number of Segments along spline. Explicitly returns the number of valid/real segments in the spline Some splines technically have invalid segments (example: that lie in the range [0 - 1] and [vertexCount - 2, vertexCount -1] - these will be ignored in the segment count calculation).
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Return the number of parts (lines) that make up a segment (higher granularity - smoother curve).
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Returns length the segment between vertices - [index, index + 1].
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Returns total length of spline.
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
pure virtual |
Return tangent at SplineAddress (local space).
| splineAddress | Address representing a point on the spline. |
Implemented in AZ::CatmullRomSpline, AZ::BezierSpline, and AZ::LinearSpline.
|
inline |
Return immutable position of vertex at index (local space).
|
inline |
Return number of vertices composing the spline.
|
inline |
Return immutable stored vertices (local space).
|
inline |
Return if the spline is closed (looping) or not
|
virtual |
Notification that spline has changed
Reimplemented in AZ::BezierSpline.
| void AZ::Spline::SetCallbacks | ( | const IndexFunction & | onAddVertex, |
| const IndexFunction & | onRemoveVertex, | ||
| const IndexFunction & | onUpdateVertex, | ||
| const VoidFunction & | onSetVertices, | ||
| const VoidFunction & | onClearVertices, | ||
| const BoolFunction & | onOpenClose | ||
| ) |
Override callbacks to be used when spline changes/is modified (specific). (use if you need more fine grained control over modifications to the container)
| void AZ::Spline::SetCallbacks | ( | const VoidFunction & | onChangeElement, |
| const VoidFunction & | onChangeContainer, | ||
| const BoolFunction & | onOpenClose | ||
| ) |
Override callbacks to be used when spline changes/is modified (general).
| void AZ::Spline::SetClosed | ( | bool | closed | ) |
Set whether the spline is closed or not - should its last vertex connect to the first
1.8.17