# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NL3D::CPSFloatCurveFunctor Class Reference

this functor produce float based on a hermite curve. More...

#include <ps_float.h>

List of all members.

Public Methods

 CPSFloatCurveFunctor ()
 ctor. The default is a cst function whose value is .5. More...

void addControlPoint (const CCtrlPoint &ctrlPoint)
 =======================================================================================. More...

uint getNumCtrlPoints (void) const
 retrieve the number of control points. More...

const CCtrlPointgetControlPoint (uint index) const
 =======================================================================================. More...

void setCtrlPoint (uint index, const CCtrlPoint &ctrlPoint)
 =======================================================================================. More...

void removeCtrlPoint (uint index)
 =======================================================================================. More...

void setNumSamples (uint32 numSamples)
 =======================================================================================. More...

uint32 getNumSamples (void) const
 get the numer of samples used with this curb. More...

void enableSmoothing (bool enable=true)
 =======================================================================================. More...

bool hasSmoothing (void) const
 test wether smoothing is enabled. More...

float operator() (TAnimationTime time) const
 This return a sampled value from the hermite curb. More...

float getValue (float date) const
 =======================================================================================. More...

void serial (NLMISC::IStream &f) throw (NLMISC::EStream)
 =======================================================================================. More...


Protected Methods

float getSlope (uint index) const
 =======================================================================================. More...

void sortPoints (void)
 =======================================================================================. More...

void updateTab (void)
 =======================================================================================. More...


Protected Attributes

std::vector< CCtrlPoint_CtrlPoints
uint32 _NumSamples
std::vector< float > _Tab
bool _Smoothing


Detailed Description

this functor produce float based on a hermite curve.

Definition at line 103 of file ps_float.h.


Constructor & Destructor Documentation

NL3D::CPSFloatCurveFunctor::CPSFloatCurveFunctor  
 

ctor. The default is a cst function whose value is .5.

Definition at line 56 of file ps_float.cpp.

References _CtrlPoints, and updateTab.


Member Function Documentation

void NL3D::CPSFloatCurveFunctor::addControlPoint const CCtrlPoint   ctrlPoint
 

=======================================================================================.

There is a sorted insertion based on the date

Parameters:
index  renge from 0 to 3

Definition at line 70 of file ps_float.cpp.

References _CtrlPoints, sortPoints, and updateTab.

void NL3D::CPSFloatCurveFunctor::enableSmoothing bool    enable = true
 

=======================================================================================.

Definition at line 192 of file ps_float.cpp.

References _Smoothing, and updateTab.

const CPSFloatCurveFunctor::CCtrlPoint & NL3D::CPSFloatCurveFunctor::getControlPoint uint    index const
 

=======================================================================================.

Returns:
a <date, value> std::pair

Definition at line 78 of file ps_float.cpp.

References _CtrlPoints, and index.

uint NL3D::CPSFloatCurveFunctor::getNumCtrlPoints void    const [inline]
 

retrieve the number of control points.

Definition at line 127 of file ps_float.h.

References _CtrlPoints.

uint32 NL3D::CPSFloatCurveFunctor::getNumSamples void    const [inline]
 

get the numer of samples used with this curb.

Definition at line 144 of file ps_float.h.

References _NumSamples.

float NL3D::CPSFloatCurveFunctor::getSlope uint    index const [protected]
 

=======================================================================================.

Definition at line 167 of file ps_float.cpp.

References _CtrlPoints, and index.

Referenced by getValue.

float NL3D::CPSFloatCurveFunctor::getValue float    date const
 

=======================================================================================.

Definition at line 109 of file ps_float.cpp.

References _CtrlPoints, _Smoothing, NLMISC::clamp, getSlope, index, NLMISC::sqr, and width.

Referenced by updateTab.

bool NL3D::CPSFloatCurveFunctor::hasSmoothing void    const [inline]
 

test wether smoothing is enabled.

Definition at line 150 of file ps_float.h.

References _Smoothing.

float NL3D::CPSFloatCurveFunctor::operator() TAnimationTime    time const [inline]
 

This return a sampled value from the hermite curb.

The more steps there are, the more accurate it is You can also get an 'exact value'. This must be called between beginFastFloor() and endFastFloor() statements

See also:
getValue

Definition at line 160 of file ps_float.h.

References _NumSamples, _Tab, NL3D::OptFastFloor, and NL3D::TAnimationTime.

void NL3D::CPSFloatCurveFunctor::removeCtrlPoint uint    index
 

=======================================================================================.

Definition at line 93 of file ps_float.cpp.

References _CtrlPoints, index, nlassert, and updateTab.

void NL3D::CPSFloatCurveFunctor::serial NLMISC::IStream   f throw (NLMISC::EStream)
 

=======================================================================================.

Definition at line 155 of file ps_float.cpp.

void NL3D::CPSFloatCurveFunctor::setCtrlPoint uint    index,
const CCtrlPoint   ctrlPoint
 

=======================================================================================.

Definition at line 84 of file ps_float.cpp.

References _CtrlPoints, index, nlassert, sortPoints, and updateTab.

void NL3D::CPSFloatCurveFunctor::setNumSamples uint32    numSamples
 

=======================================================================================.

Definition at line 101 of file ps_float.cpp.

References _NumSamples, nlassert, and updateTab.

void NL3D::CPSFloatCurveFunctor::sortPoints void    [protected]
 

=======================================================================================.

Definition at line 64 of file ps_float.cpp.

References _CtrlPoints.

Referenced by addControlPoint, and setCtrlPoint.

void NL3D::CPSFloatCurveFunctor::updateTab void    [protected]
 

=======================================================================================.

Definition at line 142 of file ps_float.cpp.

References _NumSamples, _Tab, and getValue.

Referenced by addControlPoint, CPSFloatCurveFunctor, enableSmoothing, removeCtrlPoint, setCtrlPoint, and setNumSamples.


Member Data Documentation

std::vector<CCtrlPoint> NL3D::CPSFloatCurveFunctor::_CtrlPoints [protected]
 

Definition at line 178 of file ps_float.h.

Referenced by addControlPoint, CPSFloatCurveFunctor, getControlPoint, getNumCtrlPoints, getSlope, getValue, removeCtrlPoint, setCtrlPoint, and sortPoints.

uint32 NL3D::CPSFloatCurveFunctor::_NumSamples [protected]
 

Definition at line 179 of file ps_float.h.

Referenced by getNumSamples, operator(), setNumSamples, and updateTab.

bool NL3D::CPSFloatCurveFunctor::_Smoothing [protected]
 

Definition at line 181 of file ps_float.h.

Referenced by enableSmoothing, getValue, and hasSmoothing.

std::vector<float> NL3D::CPSFloatCurveFunctor::_Tab [protected]
 

Definition at line 180 of file ps_float.h.

Referenced by operator(), and updateTab.


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