# 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::CPSBrownianForce Class Reference

A Brownian motion. More...

#include <ps_force.h>

Inheritance diagram for NL3D::CPSBrownianForce:

NL3D::CPSForceIntensityHelper NL3D::CPSForce NL3D::CPSForceIntensity NL3D::CPSTargetLocatedBindable NL3D::CPSLocatedBindable NLMISC::IStreamable NLMISC::IClassable List of all members.

Public Methods

 CPSBrownianForce (float intensity=1.f)
 ==========================================================. More...

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

virtual bool isIntegrable (void) const
 ==========================================================. More...

virtual void integrate (float date, CPSLocated *src, uint32 startIndex, uint32 numObjects, NLMISC::CVector *destPos=NULL, NLMISC::CVector *destSpeed=NULL, bool accumulate=false, uint posStride=sizeof(NLMISC::CVector), uint speedStride=sizeof(NLMISC::CVector))
 ==========================================================. More...

virtual void integrateSingle (float startDate, float deltaT, uint numStep, CPSLocated *src, uint32 indexInLocated, NLMISC::CVector *destPos, bool accumulate=false, uint posStride=sizeof(NLMISC::CVector))
 ==========================================================. More...

void setIntensity (float value)
 ==========================================================. More...

void setIntensityScheme (CPSAttribMaker< float > *scheme)
 ==========================================================. More...

virtual void performDynamic (TAnimationTime ellapsedTime)
 ==========================================================. More...

void show (TAnimationTime ellapsedTime)
 Show the force (edition mode). More...

void setParametricFactor (float factor)
 When used with parametric integration, this tells factor tells how fast the force acts on particle (how fast it go through the lookup table in fact). More...

float getParametricFactor () const

Static Public Methods

void initPrecalc ()
 ==========================================================. More...


Protected Methods

virtual CPSLocatedgetForceIntensityOwner (void)
 deriver must return the located that own them here. More...

virtual void newElement (CPSLocated *emitterLocated, uint32 emitterIndex)
 Generate a new element for this bindable. More...

virtual void deleteElement (uint32 index)
 Delete an element given its index Attributes of the located that hold this bindable are still accessible for of the index given index out of range -> nl_assert. More...

virtual void resize (uint32 size)
 Resize the bindable attributes containers DERIVERS SHOULD CALL THEIR PARENT VERSION should not be called directly. More...


Protected Attributes

float _ParametricFactor

Static Protected Attributes

NLMISC::CVector PrecomputedPos []
 used to avoid to have to call rand for each particle the force applies on... More...

NLMISC::CVector PrecomputedSpeed []
NLMISC::CVector PrecomputedImpulsions []
 various impulsion for normal motion. More...


Detailed Description

A Brownian motion.

Definition at line 576 of file ps_force.h.


Constructor & Destructor Documentation

NL3D::CPSBrownianForce::CPSBrownianForce float    intensity = 1.f
 

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

Definition at line 1042 of file ps_force.cpp.

References NL3D::CPSLocatedBindable::_Name, and setIntensity.


Member Function Documentation

virtual void NL3D::CPSBrownianForce::deleteElement uint32    index [inline, protected, virtual]
 

Delete an element given its index Attributes of the located that hold this bindable are still accessible for of the index given index out of range -> nl_assert.

Reimplemented from NL3D::CPSForceIntensityHelper.

Definition at line 621 of file ps_force.h.

References NL3D::CPSForceIntensity::deleteForceIntensityElement, and index.

virtual CPSLocated* NL3D::CPSBrownianForce::getForceIntensityOwner void    [inline, protected, virtual]
 

deriver must return the located that own them here.

Reimplemented from NL3D::CPSForceIntensityHelper.

Definition at line 619 of file ps_force.h.

References NL3D::CPSLocatedBindable::_Owner, and NL3D::CPSForce::CPSLocated.

float NL3D::CPSBrownianForce::getParametricFactor   const [inline]
 

Definition at line 616 of file ps_force.h.

References _ParametricFactor.

void NL3D::CPSBrownianForce::initPrecalc   [static]
 

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

Definition at line 1239 of file ps_force.cpp.

References NL3D::BFNumPrecomputedImpulsions, NL3D::BFNumPredefinedPos, NL3D::BFPredefinedNumInterp, NLAISCRIPT::l, nlassert, NLMISC::CVector::Null, PrecomputedImpulsions, PrecomputedPos, PrecomputedSpeed, and NLMISC::CVector::set.

void NL3D::CPSBrownianForce::integrate float    date,
CPSLocated   src,
uint32    startIndex,
uint32    numObjects,
NLMISC::CVector   destPos = NULL,
NLMISC::CVector   destSpeed = NULL,
bool    accumulate = false,
uint    posStride = sizeof(NLMISC::CVector),
uint    speedStride = sizeof(NLMISC::CVector)
[virtual]
 

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

Reimplemented from NL3D::CPSForce.

Definition at line 1057 of file ps_force.cpp.

References NL3D::CPSForceIntensity::_K, _ParametricFactor, NL3D::BFNumPredefinedPos, index, PrecomputedPos, PrecomputedSpeed, NLMISC::CVector::set, src, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.

void NL3D::CPSBrownianForce::integrateSingle float    startDate,
float    deltaT,
uint    numStep,
CPSLocated   src,
uint32    indexInLocated,
NLMISC::CVector   destPos,
bool    accumulate = false,
uint    posStride = sizeof(NLMISC::CVector)
[virtual]
 

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

Reimplemented from NL3D::CPSForce.

Definition at line 1171 of file ps_force.cpp.

References NL3D::CPSForceIntensity::_K, _ParametricFactor, NL3D::BFNumPredefinedPos, NL3D::BFPredefinedNumInterp, NL3D::FillBufUsingSubdiv, index, nlassert, PrecomputedPos, NL3D::ScaleFloatGE, src, stride, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.

bool NL3D::CPSBrownianForce::isIntegrable void    const [virtual]
 

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

Reimplemented from NL3D::CPSForce.

Definition at line 1050 of file ps_force.cpp.

References NL3D::CPSForceIntensity::_IntensityScheme.

virtual void NL3D::CPSBrownianForce::newElement CPSLocated   emitterLocated,
uint32    emitterIndex
[inline, protected, virtual]
 

Generate a new element for this bindable.

They are generated according to the propertie of the class

Reimplemented from NL3D::CPSForceIntensityHelper.

Definition at line 620 of file ps_force.h.

References NL3D::CPSForce::CPSLocated, and NL3D::CPSForceIntensity::newForceIntensityElement.

void NL3D::CPSBrownianForce::performDynamic TAnimationTime    ellapsedTime [virtual]
 

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

Implements NL3D::CPSForce.

Definition at line 1324 of file ps_force.cpp.

References NL3D::CPSForceIntensity::_IntensityScheme, NL3D::CPSForceIntensity::_K, NL3D::CPSLocatedBindable::_Owner, NL3D::CPSTargetLocatedBindable::_Targets, NL3D::BFNumPrecomputedImpulsions, min, PrecomputedImpulsions, NL3D::TAnimationTime, NLMISC::CVector::x, and NLMISC::CVector::y.

virtual void NL3D::CPSBrownianForce::resize uint32    size [inline, protected, virtual]
 

Resize the bindable attributes containers DERIVERS SHOULD CALL THEIR PARENT VERSION should not be called directly.

Call CPSLOcated::resize instead

Reimplemented from NL3D::CPSForceIntensityHelper.

Definition at line 622 of file ps_force.h.

References NL3D::CPSForceIntensity::resizeForceIntensity.

void NL3D::CPSBrownianForce::serial NLMISC::IStream   f throw (NLMISC::EStream) [virtual]
 

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

Reimplemented from NL3D::CPSForceIntensityHelper.

Definition at line 1393 of file ps_force.cpp.

void NL3D::CPSBrownianForce::setIntensity float    value [virtual]
 

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

Reimplemented from NL3D::CPSForceIntensity.

Definition at line 1299 of file ps_force.cpp.

References NL3D::CPSForce::renewIntegrable, and value.

Referenced by CPSBrownianForce.

void NL3D::CPSBrownianForce::setIntensityScheme CPSAttribMaker< float > *    scheme [virtual]
 

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

Reimplemented from NL3D::CPSForceIntensity.

Definition at line 1314 of file ps_force.cpp.

References NL3D::CPSForceIntensity::_IntensityScheme, and NL3D::CPSForce::cancelIntegrable.

void NL3D::CPSBrownianForce::setParametricFactor float    factor [inline]
 

When used with parametric integration, this tells factor tells how fast the force acts on particle (how fast it go through the lookup table in fact).

Definition at line 615 of file ps_force.h.

References _ParametricFactor.

void NL3D::CPSBrownianForce::show TAnimationTime    ellapsedTime [inline, virtual]
 

Show the force (edition mode).

Implements NL3D::CPSForce.

Definition at line 609 of file ps_force.h.

References NL3D::TAnimationTime.


Member Data Documentation

float NL3D::CPSBrownianForce::_ParametricFactor [protected]
 

Definition at line 624 of file ps_force.h.

Referenced by getParametricFactor, integrate, integrateSingle, and setParametricFactor.

NLMISC::CVector NL3D::CPSBrownianForce::PrecomputedImpulsions [static, protected]
 

various impulsion for normal motion.

Definition at line 1039 of file ps_force.cpp.

Referenced by initPrecalc, and performDynamic.

NLMISC::CVector NL3D::CPSBrownianForce::PrecomputedPos [static, protected]
 

used to avoid to have to call rand for each particle the force applies on...

Definition at line 1037 of file ps_force.cpp.

Referenced by initPrecalc, integrate, and integrateSingle.

NLMISC::CVector NL3D::CPSBrownianForce::PrecomputedSpeed [static, protected]
 

Definition at line 1038 of file ps_force.cpp.

Referenced by initPrecalc, and integrate.


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