From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/classNL3D_1_1CPSForce.html | 1055 +++++++++++++++++++++++++++ 1 file changed, 1055 insertions(+) create mode 100644 docs/doxygen/nel/classNL3D_1_1CPSForce.html (limited to 'docs/doxygen/nel/classNL3D_1_1CPSForce.html') diff --git a/docs/doxygen/nel/classNL3D_1_1CPSForce.html b/docs/doxygen/nel/classNL3D_1_1CPSForce.html new file mode 100644 index 00000000..8af42c2f --- /dev/null +++ b/docs/doxygen/nel/classNL3D_1_1CPSForce.html @@ -0,0 +1,1055 @@ + + + + nevrax.org : docs + + + + + + + + + + + + + + +
# 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::CPSForce Class Reference

All forces in the system derive from this class It has a list with all located on which the force can apply. +More... +

+#include <ps_force.h> +

+

Inheritance diagram for NL3D::CPSForce: +

+ +NL3D::CPSTargetLocatedBindable +NL3D::CPSLocatedBindable +NLMISC::IStreamable +NLMISC::IClassable +NL3D::CIsotropicForceT +NL3D::CIsotropicForceT< CPSFluidFrictionFunctor > +NL3D::CIsotropicForceT< CPSTurbulForceFunc > +NL3D::CPSForceIntensityHelper +NL3D::CPSFluidFriction +NL3D::CPSTurbul +NL3D::CPSBrownianForce +NL3D::CPSCentralGravity +NL3D::CPSCylindricVortex +NL3D::CPSDirectionnalForce +NL3D::CPSGravity +NL3D::CPSSpring + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Methods

 CPSForce ()
 Constructor. More...

uint32 getType (void) const
 return this bindable type. More...

virtual uint32 getPriority (void) const
 return priority for forces. More...

virtual bool doesProduceBBox (void) const
 Override of CPSLocatedBindable::doesProduceBBox. forces usually are not part of the bbox. More...

virtual void step (TPSProcessPass pass, TAnimationTime ellapsedTime, TAnimationTime realEllapsedTime)
 process one pass for the force. More...

virtual void performDynamic (TAnimationTime ellapsedTime)=0
 Compute the force on the targets. More...

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

virtual void serial (NLMISC::IStream &f) throw (NLMISC::EStream)
 Serial the force definition. MUST be called by deriver during their serialisation. More...

virtual bool isIntegrable (void) const
 check wether this force is integrable over time. The default is false. More...

virtual void attachTarget (CPSLocated *ptr)
 inherited from CPSLocatedBindableTarget, we use that to tell wether this force is integrable or not. More...

void releaseTargetRsc (CPSLocated *target)
 inherited from CPSLocatedBindableTarget. 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))
 Integrate this force on the given located. 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))
 Compute a trajectory on several steps for a single object, rather than a step for several object. More...


Protected Methods

void registerToTargets (void)
 register integrable and non-integrable forces to the targets. More...

void cancelIntegrable (void)
 if this force is not integrable anymore, it tells that to its targets. More...

void renewIntegrable (void)
 if this force has become integrable again, this method tells it to the target. More...

virtual void basisChanged (bool systemBasis)
 inherited from CPSLocatedBindable. More...

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

virtual void deleteElement (uint32 index)=0
 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)=0
 Resize the bindable attributes containers DERIVERS SHOULD CALL THEIR PARENT VERSION should not be called directly. More...


Friends

class CPSLocated
class CPSForceIntensity
+

Detailed Description

+All forces in the system derive from this class It has a list with all located on which the force can apply. +

+Only the motion and toolRender passes are supported for a force. Not sharable accross systems.

+Author:
+Nicolas Vizerie , Nevrax France
+Date:
+2001
+

+ +

+Definition at line 51 of file ps_force.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
NL3D::CPSForce::CPSForce  
+
+ + + + + +
+   + + +

+Constructor. +

+ +

+Definition at line 46 of file ps_force.cpp.

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSForce::attachTarget CPSLocated  ptr [virtual]
+
+ + + + + +
+   + + +

+inherited from CPSLocatedBindableTarget, we use that to tell wether this force is integrable or not. +

+ +

+Reimplemented from NL3D::CPSTargetLocatedBindable. +

+Definition at line 94 of file ps_force.cpp. +

+References NL3D::CPSLocatedBindable::_Owner, isIntegrable, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSForce::basisChanged bool   systemBasis [protected, virtual]
+
+ + + + + +
+   + + +

+inherited from CPSLocatedBindable. +

+When we deal with integrable forces, they must be in the same basis than their target. If this change, we must notify the target of it. +

+Reimplemented from NL3D::CPSLocatedBindable. +

+Definition at line 123 of file ps_force.cpp. +

+References NL3D::CPSTargetLocatedBindable::_Targets, and isIntegrable.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSForce::cancelIntegrable void   [protected]
+
+ + + + + +
+   + + +

+if this force is not integrable anymore, it tells that to its targets. +

+ +

+Definition at line 133 of file ps_force.cpp. +

+References NL3D::CPSLocatedBindable::_Owner, NL3D::CPSTargetLocatedBindable::_Targets, and nlassert. +

+Referenced by NL3D::CPSBrownianForce::setIntensityScheme, and NL3D::CPSGravity::setIntensityScheme.

+

+ + + + +
+ + + + + + + + + + +
virtual void NL3D::CPSForce::deleteElement uint32   index [protected, pure 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. +

+ +

+Implements NL3D::CPSLocatedBindable. +

+Implemented in NL3D::CPSForceIntensityHelper.

+

+ + + + +
+ + + + + + + + + + +
virtual bool NL3D::CPSForce::doesProduceBBox void   const [inline, virtual]
+
+ + + + + +
+   + + +

+Override of CPSLocatedBindable::doesProduceBBox. forces usually are not part of the bbox. +

+ +

+Reimplemented from NL3D::CPSLocatedBindable. +

+Definition at line 67 of file ps_force.h.

+

+ + + + +
+ + + + + + + + + + +
virtual uint32 NL3D::CPSForce::getPriority void   const [inline, virtual]
+
+ + + + + +
+   + + +

+return priority for forces. +

+ +

+Implements NL3D::CPSLocatedBindable. +

+Definition at line 64 of file ps_force.h.

+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSForce::getType void   const [inline, virtual]
+
+ + + + + +
+   + + +

+return this bindable type. +

+ +

+Implements NL3D::CPSLocatedBindable. +

+Definition at line 59 of file ps_force.h. +

+References NL3D::PSForce.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void NL3D::CPSForce::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)
[inline, virtual]
+
+ + + + + +
+   + + +

+Integrate this force on the given located. +

+If 'accumulate' is set to true, it just add the effect of this force on position otherwise, it must also integrate from the initial speed, and add this force effect. The first call to this must be done with 'accumulate' set to false. NB : works only with integrable forces +

+Reimplemented in NL3D::CPSGravity. +

+Definition at line 99 of file ps_force.h. +

+References CPSLocated, nlassert, and src.

+

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

+Compute a trajectory on several steps for a single object, rather than a step for several object. +

+If the start date is lower than the creation date, the initial position is used NB : works only with integrable forces +

+Reimplemented in NL3D::CPSGravity. +

+Definition at line 112 of file ps_force.h. +

+References CPSLocated, nlassert, and src.

+

+ + + + +
+ + + + + + + + + + +
virtual bool NL3D::CPSForce::isIntegrable void   const [inline, virtual]
+
+ + + + + +
+   + + +

+check wether this force is integrable over time. The default is false. +

+ +

+Reimplemented in NL3D::CPSGravity. +

+Definition at line 85 of file ps_force.h. +

+Referenced by attachTarget, basisChanged, registerToTargets, and releaseTargetRsc.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
virtual void NL3D::CPSForce::newElement CPSLocated  emitterLocated,
uint32   emitterIndex
[protected, pure virtual]
+
+ + + + + +
+   + + +

+Generate a new element for this bindable. +

+They are generated according to the propertie of the class +

+Implements NL3D::CPSLocatedBindable. +

+Implemented in NL3D::CPSForceIntensityHelper.

+

+ + + + +
+ + + + + + + + + + +
virtual void NL3D::CPSForce::performDynamic TAnimationTime   ellapsedTime [pure virtual]
+
+ + + + + +
+   + + +

+Compute the force on the targets. +

+ +

+Implemented in NL3D::CIsotropicForceT. +

+Referenced by step.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSForce::registerToTargets void   [protected]
+
+ + + + + +
+   + + +

+register integrable and non-integrable forces to the targets. +

+ +

+Definition at line 62 of file ps_force.cpp. +

+References NL3D::CPSTargetLocatedBindable::_Targets, and isIntegrable. +

+Referenced by NL3D::CPSTurbul::serial, and NL3D::CPSFluidFriction::serial.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSForce::releaseTargetRsc CPSLocated  target [virtual]
+
+ + + + + +
+   + + +

+inherited from CPSLocatedBindableTarget. +

+ +

+Reimplemented from NL3D::CPSTargetLocatedBindable. +

+Definition at line 109 of file ps_force.cpp. +

+References isIntegrable.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSForce::renewIntegrable void   [protected]
+
+ + + + + +
+   + + +

+if this force has become integrable again, this method tells it to the target. +

+ +

+Definition at line 148 of file ps_force.cpp. +

+References NL3D::CPSLocatedBindable::_Owner, NL3D::CPSTargetLocatedBindable::_Targets, and nlassert. +

+Referenced by NL3D::CPSBrownianForce::setIntensity, and NL3D::CPSGravity::setIntensity.

+

+ + + + +
+ + + + + + + + + + +
virtual void NL3D::CPSForce::resize uint32   size [protected, pure virtual]
+
+ + + + + +
+   + + +

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

+Call CPSLOcated::resize instead +

+Implements NL3D::CPSLocatedBindable. +

+Implemented in NL3D::CPSForceIntensityHelper.

+

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

+Serial the force definition. MUST be called by deriver during their serialisation. +

+ +

+Reimplemented from NL3D::CPSTargetLocatedBindable. +

+Reimplemented in NL3D::CPSForceIntensityHelper. +

+Definition at line 52 of file ps_force.cpp.

+

+ + + + +
+ + + + + + + + + + +
virtual void NL3D::CPSForce::show TAnimationTime   ellapsedTime [pure virtual]
+
+ + + + + +
+   + + +

+Show the force (edition mode). +

+ +

+Implemented in NL3D::CIsotropicForceT. +

+Referenced by step.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CPSForce::step TPSProcessPass   pass,
TAnimationTime   ellapsedTime,
TAnimationTime   realEllapsedTime
[virtual]
+
+ + + + + +
+   + + +

+process one pass for the force. +

+ +

+Implements NL3D::CPSLocatedBindable. +

+Definition at line 78 of file ps_force.cpp. +

+References performDynamic, NL3D::PSMotion, NL3D::PSToolRender, show, NL3D::TAnimationTime, and NL3D::TPSProcessPass.

+


Friends And Related Function Documentation

+

+ + + + +
+ + +
friend class CPSForceIntensity [friend] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 128 of file ps_force.h.

+

+ + + + +
+ + +
friend class CPSLocated [friend] +
+
+ + + + + +
+   + + +

+ +

+Reimplemented from NL3D::CPSLocatedBindable. +

+Definition at line 127 of file ps_force.h. +

+Referenced by NL3D::CPSCylindricVortex::getForceIntensityOwner, NL3D::CPSTurbul::getForceIntensityOwner, NL3D::CPSBrownianForce::getForceIntensityOwner, NL3D::CPSFluidFriction::getForceIntensityOwner, NL3D::CPSForceIntensityHelper::getForceIntensityOwner, integrate, integrateSingle, NL3D::CPSTurbul::newElement, NL3D::CPSBrownianForce::newElement, NL3D::CPSFluidFriction::newElement, NL3D::CIsotropicForceT< CPSFluidFrictionFunctor >::newElement, NL3D::CPSForceIntensityHelper::newElement, NL3D::CPSCylindricVortex::show, and NL3D::CPSDirectionnalForce::show.

+


The documentation for this class was generated from the following files: + + + +
                                                                                                                                                                    +
+ + -- cgit v1.2.1