3#include <Infinity/api.h>
4#include <Infinity/Types/Core/Data.hpp>
5#include <Infinity/Types/Core/Value.hpp>
6#include <Infinity/Types/Containers/Array.hpp>
7#include <Infinity/Types/Math/Vector2.hpp>
8#include <Infinity/Types/Math/Vector3.hpp>
9#include <Infinity/Types/Math/Vector4.hpp>
159 std::unique_ptr<Core::Base>
clone()
const override;
227 std::unique_ptr<SplineImplBase<Vec>> _impl;
323 std::unique_ptr<Core::Base>
clone()
const override;
377 std::unique_ptr<SplineImplBase<Vec>> _impl;
509 std::unique_ptr<SplineImplBase<Vec>> _impl;
Dynamic contiguous container for homogeneous elements in the Infinity type system.
Definition Array.hpp:77
Base class for complex data types with memory wrapping and property support.
Definition Data.hpp:49
Two-dimensional spline curve for procedural path and shape generation.
Definition Spline.hpp:114
Spline2D(const Spline2D &other)
Copy constructor.
Spline2D()
Default constructor.
Containers::Array< Vec > points
Control points defining the spline curve.
Definition Spline.hpp:129
Spline2D(SplineKind kind)
Constructs a spline with specified interpolation type.
virtual ~Spline2D()
Destructor.
SplineKind type() const
Gets the current spline interpolation type.
const Infinity::Types::TypeID & typeId() const override
Gets the TypeID for Spline2D.
Vec evaluate(float t) const
Evaluates the spline position at parameter t.
void setCurveKind(SplineKind kind)
Changes the spline interpolation type.
Vec tangent(float t) const
Computes the tangent vector at parameter t.
std::unique_ptr< Core::Base > clone() const override
Spline2D & operator=(const Spline2D &other)
Copy assignment operator.
Three-dimensional spline curve for procedural 3D path generation.
Definition Spline.hpp:283
Containers::Array< Vec > points
Control points defining the spline curve.
Definition Spline.hpp:293
Spline3D & operator=(const Spline3D &other)
Copy assignment operator.
Spline3D(SplineKind kind)
Constructs a spline with specified interpolation type.
Spline3D()
Default constructor.
const Infinity::Types::TypeID & typeId() const override
Gets the TypeID for Spline3D.
virtual ~Spline3D()
Destructor.
Vec evaluate(float t) const
Evaluates the spline position at parameter t.
SplineKind type() const
Gets the current spline interpolation type.
Spline3D(const Spline3D &other)
Copy constructor.
void setCurveKind(SplineKind kind)
Changes the spline interpolation type.
Vec tangent(float t) const
Computes the tangent vector at parameter t.
std::unique_ptr< Core::Base > clone() const override
Four-dimensional spline curve for extended parameter space interpolation.
Definition Spline.hpp:417
void setCurveKind(SplineKind kind)
Changes the spline interpolation type.
Spline4D & operator=(const Spline4D &other)
Copy assignment operator.
Spline4D(const Spline4D &other)
Copy constructor.
const Infinity::Types::TypeID & typeId() const override
Gets the TypeID for Spline4D.
Containers::Array< Vec > points
Control points defining the spline curve.
Definition Spline.hpp:427
Spline4D(SplineKind kind)
Constructs a spline with specified interpolation type.
Spline4D()
Default constructor.
SplineKind type() const
Gets the current spline interpolation type.
Vec evaluate(float t) const
Evaluates the spline position at parameter t.
Vec tangent(float t) const
Computes the tangent vector at parameter t.
enum INFINITY_API_TEMPLATE SplineKind
Definition Spline.hpp:21
enum INFINITY_API_TEMPLATE Linear
Linear interpolation.
Definition Spline.hpp:60
enum INFINITY_API_TEMPLATE CatmullRom
Catmull-Rom spline interpolation.
Definition Spline.hpp:41
enum INFINITY_API_TEMPLATE BSpline
B-Spline (Basis spline) interpolation.
Definition Spline.hpp:51
Template structure representing a 2-component vector.
Definition Vector2.hpp:75
Template structure representing a 3-component vector.
Definition Vector3.hpp:82
Template structure representing a 4-component vector.
Definition Vector4.hpp:85
Runtime type identifier for the Infinity type system.
Definition TypeID.hpp:71