CrystalSpace

Public API Reference

Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

csSpline Class Reference
[Geometry utilities]

A spline superclass. More...

#include <csgeom/spline.h>

Inheritance diagram for csSpline:

csBSpline csCubicSpline csCatmullRomSpline csPath List of all members.

Public Member Functions

 csSpline (int d, int p)
 Create a spline with d dimensions and p points.
virtual ~csSpline ()
 Destroy the spline.
int GetDimensionCount () const
 Get the number of dimensions.
int GetPointCount () const
 Get the number of points.
void InsertPoint (int idx)
 Insert a point after some index.
void RemovePoint (int idx)
 Remove a point at the index.
void SetTimeValues (float const *t)
 Set the time values.
void SetTimeValue (int idx, float t)
 Set one time point.
float const * GetTimeValues () const
 Get the time values.
float GetTimeValue (int idx) const
 Get one time point.
void SetDimensionValues (int dim, float const *d)
 Set the values for some dimension.
void SetDimensionValue (int dim, int idx, float d)
 Set a value for some dimension.
float const * GetDimensionValues (int dim) const
 Get the values for some dimension.
float GetDimensionValue (int dim, int idx) const
 Get the value for some dimension.
void SetIndexValues (int idx, float const *d)
 Sets the values of the control point at index idx.
float * GetIndexValues (int idx) const
 Gets the values of the control point at index idx.
virtual void Calculate (float time)=0
 Calculate internal values for this spline given some time value.
int GetCurrentIndex () const
 Get the index of the current point we are in (valid after Calculate()).
virtual float GetInterpolatedDimension (int dim) const =0
 After calling Calculate() you can use this to fetch the value of some dimension.

Detailed Description

A spline superclass.

This spline can control several dimensions at once.

Definition at line 34 of file spline.h.


Constructor & Destructor Documentation

csSpline::csSpline int  d,
int  p
 

Create a spline with d dimensions and p points.

virtual csSpline::~csSpline  )  [virtual]
 

Destroy the spline.


Member Function Documentation

virtual void csSpline::Calculate float  time  )  [pure virtual]
 

Calculate internal values for this spline given some time value.

Implemented in csCubicSpline, and csBSpline.

int csSpline::GetCurrentIndex  )  const [inline]
 

Get the index of the current point we are in (valid after Calculate()).

Definition at line 138 of file spline.h.

Referenced by csPath::GetCurrentIndex().

int csSpline::GetDimensionCount  )  const [inline]
 

Get the number of dimensions.

Definition at line 52 of file spline.h.

float csSpline::GetDimensionValue int  dim,
int  idx
const [inline]
 

Get the value for some dimension.

Definition at line 113 of file spline.h.

Referenced by csPath::GetForwardVector(), csPath::GetPositionVector(), and csPath::GetUpVector().

float const* csSpline::GetDimensionValues int  dim  )  const [inline]
 

Get the values for some dimension.

Definition at line 107 of file spline.h.

float* csSpline::GetIndexValues int  idx  )  const
 

Gets the values of the control point at index idx.

Caller is responsible for invoking `delete[]' on returned array when no longer needed.

virtual float csSpline::GetInterpolatedDimension int  dim  )  const [pure virtual]
 

After calling Calculate() you can use this to fetch the value of some dimension.

Implemented in csCubicSpline, and csBSpline.

int csSpline::GetPointCount  )  const [inline]
 

Get the number of points.

Definition at line 55 of file spline.h.

Referenced by csPath::Length().

float csSpline::GetTimeValue int  idx  )  const [inline]
 

Get one time point.

Definition at line 89 of file spline.h.

References GetTimeValues().

Referenced by csPath::GetTime().

float const* csSpline::GetTimeValues  )  const [inline]
 

Get the time values.

Definition at line 84 of file spline.h.

Referenced by GetTimeValue().

void csSpline::InsertPoint int  idx  ) 
 

Insert a point after some index.

If index == -1 add a point before all others.

void csSpline::RemovePoint int  idx  ) 
 

Remove a point at the index.

void csSpline::SetDimensionValue int  dim,
int  idx,
float  d
 

Set a value for some dimension.

Referenced by csPath::SetForwardVector(), csPath::SetPositionVector(), and csPath::SetUpVector().

void csSpline::SetDimensionValues int  dim,
float const *  d
 

Set the values for some dimension.

'd' should point to an array containing 'num_points' values. These are the values that will be interpolated. The given array is copied.

void csSpline::SetIndexValues int  idx,
float const *  d
 

Sets the values of the control point at index idx.

void csSpline::SetTimeValue int  idx,
float  t
 

Set one time point.

Referenced by csPath::SetTime().

void csSpline::SetTimeValues float const *  t  ) 
 

Set the time values.

't' should point to an array containing 'num_points' values. These values typically start with 0 and end with 1. Other values are also possible the but the values should rise. The given array is copied.


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.3.9.1