OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::Spline2D Class Reference

#include <Spline2D.hpp>

Classes

struct  CSpline2
 

Public Member Functions

SIV3D_NODISCARD_CXX20 Spline2D ()=default
 
SIV3D_NODISCARD_CXX20 Spline2D (const Array< Vec2 > &points, double tension=0.0)
 
SIV3D_NODISCARD_CXX20 Spline2D (const Array< Vec2 > &points, CloseRing closeRing, double tension=0.0)
 
size_t size () const noexcept
 
bool isEmpty () const noexcept
 
 operator bool () const noexcept
 
bool isRing () const noexcept
 
void clear () noexcept
 
void swap (Spline2D &other) noexcept
 
RectF fastBoundingRect (size_t i) const
 
RectF boundingRect (size_t i) const
 
double length (size_t i, double maxError=0.01) const
 
double length (size_t i, double t0, double t1, double maxError=0.01) const
 
Vec2 position (size_t i, double t) const
 
Vec2 position (SplineIndex si) const
 
Vec2 velocity (size_t i, double t) const
 
Vec2 velocity (SplineIndex si) const
 
Vec2 acceleration (size_t i, double t) const
 
Vec2 acceleration (SplineIndex si) const
 
double curvature (size_t i, double t) const
 
double curvature (SplineIndex si) const
 
SplineIndex findNearest (Vec2 pos) const
 
Array< std::pair< SplineIndex, SplineIndex > > findSelfIntersections (double tolerance=0.1) const
 
Array< std::pair< SplineIndex, SplineIndex > > findIntersections (const Spline2D &other, double tolerance=0.1) const
 
SplineIndex advance (SplineIndex si, double dl) const
 
SplineIndex advanceWrap (SplineIndex si, double dl) const
 
SplineIndex advanceMirror (SplineIndex si, double dl, int32 &direction) const
 
LineString asLineString (int32 quality=24) const
 
Polygon calculateRoundBuffer (double distance, int32 quality=24, int32 bufferQuality=24) const
 
const Spline2Ddraw (const ColorF &color=Palette::White, int32 quality=24) const
 
const Spline2Ddraw (double thickness, const ColorF &color=Palette::White, int32 quality=24) const
 
const Spline2Ddraw (double thickness, std::function< ColorF(SplineIndex)> colorFunc, int32 quality=24) const
 
const Spline2Ddraw (const LineStyle &style, double thickness, const ColorF &color=Palette::White, int32 quality=24) const
 

Constructor & Destructor Documentation

◆ Spline2D() [1/3]

SIV3D_NODISCARD_CXX20 s3d::Spline2D::Spline2D ( )
default

◆ Spline2D() [2/3]

SIV3D_NODISCARD_CXX20 s3d::Spline2D::Spline2D ( const Array< Vec2 > &  points,
double  tension = 0.0 
)
explicit

◆ Spline2D() [3/3]

SIV3D_NODISCARD_CXX20 s3d::Spline2D::Spline2D ( const Array< Vec2 > &  points,
CloseRing  closeRing,
double  tension = 0.0 
)

Member Function Documentation

◆ acceleration() [1/2]

Vec2 s3d::Spline2D::acceleration ( size_t  i,
double  t 
) const

◆ acceleration() [2/2]

Vec2 s3d::Spline2D::acceleration ( SplineIndex  si) const

◆ advance()

SplineIndex s3d::Spline2D::advance ( SplineIndex  si,
double  dl 
) const

◆ advanceMirror()

SplineIndex s3d::Spline2D::advanceMirror ( SplineIndex  si,
double  dl,
int32 direction 
) const

◆ advanceWrap()

SplineIndex s3d::Spline2D::advanceWrap ( SplineIndex  si,
double  dl 
) const

◆ asLineString()

LineString s3d::Spline2D::asLineString ( int32  quality = 24) const

◆ boundingRect()

RectF s3d::Spline2D::boundingRect ( size_t  i) const

◆ calculateRoundBuffer()

Polygon s3d::Spline2D::calculateRoundBuffer ( double  distance,
int32  quality = 24,
int32  bufferQuality = 24 
) const

◆ clear()

void s3d::Spline2D::clear ( )
noexcept

◆ curvature() [1/2]

double s3d::Spline2D::curvature ( size_t  i,
double  t 
) const

◆ curvature() [2/2]

double s3d::Spline2D::curvature ( SplineIndex  si) const

◆ draw() [1/4]

const Spline2D& s3d::Spline2D::draw ( const ColorF color = Palette::White,
int32  quality = 24 
) const

◆ draw() [2/4]

const Spline2D& s3d::Spline2D::draw ( const LineStyle style,
double  thickness,
const ColorF color = Palette::White,
int32  quality = 24 
) const

◆ draw() [3/4]

const Spline2D& s3d::Spline2D::draw ( double  thickness,
const ColorF color = Palette::White,
int32  quality = 24 
) const

◆ draw() [4/4]

const Spline2D& s3d::Spline2D::draw ( double  thickness,
std::function< ColorF(SplineIndex)>  colorFunc,
int32  quality = 24 
) const

◆ fastBoundingRect()

RectF s3d::Spline2D::fastBoundingRect ( size_t  i) const

◆ findIntersections()

Array<std::pair<SplineIndex, SplineIndex> > s3d::Spline2D::findIntersections ( const Spline2D other,
double  tolerance = 0.1 
) const

◆ findNearest()

SplineIndex s3d::Spline2D::findNearest ( Vec2  pos) const

◆ findSelfIntersections()

Array<std::pair<SplineIndex, SplineIndex> > s3d::Spline2D::findSelfIntersections ( double  tolerance = 0.1) const

◆ isEmpty()

bool s3d::Spline2D::isEmpty ( ) const
noexcept

◆ isRing()

bool s3d::Spline2D::isRing ( ) const
noexcept

◆ length() [1/2]

double s3d::Spline2D::length ( size_t  i,
double  maxError = 0.01 
) const

◆ length() [2/2]

double s3d::Spline2D::length ( size_t  i,
double  t0,
double  t1,
double  maxError = 0.01 
) const

◆ operator bool()

s3d::Spline2D::operator bool ( ) const
explicitnoexcept

◆ position() [1/2]

Vec2 s3d::Spline2D::position ( size_t  i,
double  t 
) const

◆ position() [2/2]

Vec2 s3d::Spline2D::position ( SplineIndex  si) const

◆ size()

size_t s3d::Spline2D::size ( ) const
noexcept

◆ swap()

void s3d::Spline2D::swap ( Spline2D other)
noexcept

◆ velocity() [1/2]

Vec2 s3d::Spline2D::velocity ( size_t  i,
double  t 
) const

◆ velocity() [2/2]

Vec2 s3d::Spline2D::velocity ( SplineIndex  si) const

The documentation for this class was generated from the following file: