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/a03194.html | 6732 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 6732 insertions(+) create mode 100644 docs/doxygen/nel/a03194.html (limited to 'docs/doxygen/nel/a03194.html') diff --git a/docs/doxygen/nel/a03194.html b/docs/doxygen/nel/a03194.html new file mode 100644 index 00000000..80efcce2 --- /dev/null +++ b/docs/doxygen/nel/a03194.html @@ -0,0 +1,6732 @@ + + +NeL: NL3D::CPSFanLight class Reference + + + +
+

NL3D::CPSFanLight Class Reference

#include <ps_fan_light.h> +

+

Inheritance diagram for NL3D::CPSFanLight: +

+ +NL3D::CPSParticle +NL3D::CPSColoredParticle +NL3D::CPSSizedParticle +NL3D::CPSRotated2DParticle +NL3D::CPSMaterial +NL3D::CPSTexturedParticleNoAnim +NL3D::CPSLocatedBindable +NLMISC::IStreamable +NLMISC::IClassable + +

Detailed Description

+A fan light particle +

+ +

+Definition at line 46 of file ps_fan_light.h. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

enum  TBlendingMode { add, +modulate, +alphaBlend, +alphaTest + }
 this enum summarize the useful modes for blending to the framebuffer More...


Public Member Functions

virtual void basisChanged (TPSMatrixMode systemBasis)
virtual bool completeBBox (NLMISC::CAABBox &box) const
 ====================================================================================

NLMISC::CVector computeI (void) const
NLMISC::CVector computeJ (void) const
NLMISC::CVector computeK (void) const
void disableAutoLOD (bool disable=true)
 Force the Auto-LOD to be disbaled. When set to false, the default behaviour set in the system is used.

virtual bool doesProduceBBox (void) const
void enableGlobalColorLighting (bool enabled)
void enableZTest (bool enabled)
 ===================================================================================

virtual void enumTexs (std::vector< NLMISC::CSmartPtr< ITexture > > &dest, IDriver &drv)
 ====================================================================================

void forceModulateConstantColor (bool force, const NLMISC::CRGBA &col=NLMISC::CRGBA::White)
 ===================================================================================

void forceTexturedMaterialStages (uint numStages)
 ===================================================================================

float getAngle2D (void) const
 get the constant

const CPSAttribMaker< float > * getAngle2DScheme (void) const
 get the angle 2D scheme (NULL if none) const version

CPSAttribMaker< float > * getAngle2DScheme (void)
 get the angle 2D scheme (NULL if none)

CPSMaterial::TBlendingMode getBlendingMode (void) const
 ===================================================================================

virtual std::string getClassName ()=0
NLMISC::CRGBA getColor (void) const
 Get the color.

const CPSAttribMaker< CRGBA > * getColorScheme (void) const
 get the color scheme (NULL if none) const version

CPSAttribMaker< CRGBA > * getColorScheme (void)
 get the color scheme (NULL if none)

IDrivergetDriver () const
 shortcut to get an instance of the driver

uint32 getExternID (void) const
 get the extern ID of this located bindable

const CFontGeneratorgetFontGenerator (void) const
 Shortcut to get the font generator if one was set (const version).

CFontGeneratorgetFontGenerator (void)
 Shortcut to get the font generator if one was set.

const CFontManagergetFontManager (void) const
 Shortcut to get the font manager if one was set (const version).

CFontManagergetFontManager (void)
 ***************************************************************************************

const NLMISC::CMatrixgetInvertedSysMat (void) const
 shortcut to get the inverted matrix of the system

const NLMISC::CMatrixgetInvertedViewMat (void) const
 shortcut to get the inverted view matrix

const NLMISC::CMatrixgetLocalToWorldMatrix () const
 Shortcut to get the local to world matrix.

TPSLod getLOD (void) const
 get the valid lods for that object

virtual uint32 getMaxNumFaces (void) const
 ====================================================================================

float getMoveIntensity (void) const
 get the intensity of fans movement

std::string getName (void) const
 get the located bindable name (edition purpose)

uint32 getNbFans (void) const
const CPSLocatedgetOwner (void) const
 get the located that owns this bindable (const version)

CPSLocatedgetOwner (void)
 get the located that owns this bindable

uint32 getPhaseSmoothness (void) const
 retrieve the phase smoothness

float getPhaseSpeed (void) const
 get the speed for phase

virtual uint32 getPriority (void) const
 return priority

float getSize (void) const
 get the constant size

const CPSAttribMaker< float > * getSizeScheme (void) const
 get the size scheme (NULL if none) const version

CPSAttribMaker< float > * getSizeScheme (void)
 get the size scheme (NULL if none)

const NLMISC::CMatrixgetSysMat (void) const
 ***************************************************************************************

const ITexturegetTexture (void) const
ITexturegetTexture (void)
 get the texture used

uint32 getType (void) const
 return this bindable type

virtual bool getUserMatrixUsageCount () const
const NLMISC::CMatrixgetViewMat (void) const
 shortcut to get the view matrix

virtual bool hasEmitters (void) const
 tells wether there are alive emitters

virtual bool hasLightableFaces ()
 from CPSParticle : return true if there are lightable faces in the object

virtual bool hasOpaqueFaces (void)
 ====================================================================================

virtual bool hasParticles (void) const
 return true if this located bindable derived class holds alive particles

virtual bool hasTransparentFaces (void)
 ====================================================================================

bool isActive () const
bool isAutoLODDisabled () const
 Test wether Auto-LOD is disabled.

bool isZTestEnabled () const
 ===================================================================================

virtual void motionTypeChanged (bool parametric)
 called when a located has switch between incrmental / parametric motion. The default does nothing

 NLMISC_DECLARE_CLASS (CPSFanLight)
virtual void notifyTargetRemoved (CPSLocated *ptr)
 ***************************************************************************************

virtual void releaseAllRef ()
 ***************************************************************************************

virtual void releaseRefTo (const CParticleSystemProcess *other)
void serialAngle2DScheme (NLMISC::IStream &f) throw (NLMISC::EStream)
 ===================================================================================

void serialColorScheme (NLMISC::IStream &f) throw (NLMISC::EStream)
 serialization.

void serialMaterial (NLMISC::IStream &f) throw (NLMISC::EStream)
 ===================================================================================

void serialSizeScheme (NLMISC::IStream &f) throw (NLMISC::EStream)
 serialization. We choose a different name because of multiple-inheritance

void setActive (bool active)
 Activate / Deactivate this object. When not active, the owning system won't try to call the 'step' method.

void setAngle2D (float angle)
 ===================================================================================

void setAngle2DScheme (CPSAttribMaker< float > *scheme)
 ===================================================================================

void setBlendingMode (CPSMaterial::TBlendingMode mode)
 ===================================================================================

void setColor (NLMISC::CRGBA col)
 Set a constant color for the particles. remove any previous scheme.

void setColorScheme (CPSAttribMaker< CRGBA > *col)
void setExternID (uint32 id)
 ***************************************************************************************

void setLOD (TPSLod lod)
void setMoveIntensity (float intensity)
 set the intensity of fan movement. Default is 1.5

void setName (const std::string &name)
 set the located bindable name (edition purpose)

void setNbFans (uint32 nbFans)
 ====================================================================================

void setPhaseSmoothness (uint32 smoothNess)
void setPhaseSpeed (float multiplier)
 ====================================================================================

void setSize (float size)
 Set a constant size for the particles.

void setSizeScheme (CPSAttribMaker< float > *size)
void setTexture (CSmartPtr< ITexture > tex)
 Set a texture. NULL remove it.

void setupDriverModelMatrix (void)
 shortcut to setup the model matrix (system basis or world basis)

virtual void setZBias (float value)
virtual void showTool ()
 draw the particles for edition mode. The default behaviour just draw a wireframe model

virtual void step (TPSProcessPass pass, TAnimationTime ellapsedTime, TAnimationTime realEt)
virtual bool supportGlobalColorLighting () const
virtual void systemDateChanged ()
virtual void updateMatAndVbForColor (void)
 ====================================================================================

bool usesGlobalColorLighting ()
Object
 CPSFanLight (uint32 nbFans=7)
 ====================================================================================

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

 ~CPSFanLight ()
 ====================================================================================


Static Public Member Functions

const float * getRotTable (void)
void initFanLightPrecalc (void)
 ====================================================================================

void initRotTable (void)
 ===================================================================================


Protected Member Functions

virtual void bounceOccured (uint32 index)
void computeSrcStep (uint32 &step, uint &numToProcess)
void deleteAngle2DElement (uint32 index)
void deleteColorElement (uint32 index)
void deleteElement (uint32)
 ====================================================================================

void deleteSizeElement (uint32 index)
void displayIcon2d (const NLMISC::CVector tab[], uint nbSegs, float scale)
 ***************************************************************************************

virtual CPSLocatedgetAngle2DOwner (void)
 deriver must return their owner there

virtual CPSLocatedgetColorOwner (void)
 deriver must return their owner there

virtual CPSLocatedgetSizeOwner (void)
 deriver must return their owner there

void newAngle2DElement (CPSLocated *emitterLocated, uint32 emitterIndex)
void newColorElement (CPSLocated *emitterLocated, uint32 emitterIndex)
void newElement (CPSLocated *emitterLocated, uint32 emitterIndex)
 ====================================================================================

void newSizeElement (CPSLocated *emitterLocated, uint32 emitterIndex)
void notifyOwnerMaxNumFacesChanged (void) const
virtual void resize (uint32 size)
 ====================================================================================

void resizeAngle2D (uint32 size)
void resizeColor (uint32 size)
void resizeSize (uint32 size)
virtual void setOwner (CPSLocated *psl)
 ***************************************************************************************


Protected Attributes

bool _Active
float _Angle2D
CPSAttribMaker< float > * _Angle2DScheme
CRGBA _Color
CPSAttribMaker< CRGBA > * _ColorScheme
uint32 _ExternID
TPSLod _LOD
 tells when this object must be dealt with

CMaterial _Mat
std::string _Name
CPSLocated_Owner
float _ParticleSize
CPSAttribMaker< float > * _SizeScheme

Static Protected Attributes

bool _InitializedRotTab = false
 it is true if the table has been initialized, for debug purposes

float _RotTable [4 *256]

Private Types

typedef std::hash_map< uint,
+ TIndexBuffer
TIBMap
typedef std::vector< uint32TIndexBuffer
typedef std::hash_map< uint,
+ CVertexBuffer
TVBMap

Private Member Functions

virtual void draw (bool opaque)
 ====================================================================================

uint getNumFanlightsInVB () const
 ====================================================================================

void getVBnIB (CVertexBuffer *&vb, TIndexBuffer *&ib)
 ====================================================================================

virtual void init (void)
 ====================================================================================

void setupMaterial ()
 ====================================================================================


Private Attributes

float _MoveIntensity
uint32 _NbFans
uint32 _PhaseSmoothness
float _PhaseSpeed
NLMISC::CSmartPtr< ITexture_Tex

Static Private Attributes

TVBMap _ColoredTexVBMap
TVBMap _ColoredVBMap
TIBMap _IBMap
uint8 _RandomPhaseTab [32][128]
bool _RandomPhaseTabInitialized = false
TVBMap _TexVBMap
TVBMap _VBMap

Friends

class CPSFanLightHelper
class CPSLocated
+


Member Typedef Documentation

+

+ + + + +
+ + +
typedef std::hash_map<uint, TIndexBuffer > NL3D::CPSFanLight::TIBMap [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 154 of file ps_fan_light.h.

+

+ + + + +
+ + +
typedef std::vector<uint32> NL3D::CPSFanLight::TIndexBuffer [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 153 of file ps_fan_light.h. +

+Referenced by NL3D::CPSFanLightHelper::drawFanLight(), and getVBnIB().

+

+ + + + +
+ + +
typedef std::hash_map<uint, CVertexBuffer> NL3D::CPSFanLight::TVBMap [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 152 of file ps_fan_light.h. +

+Referenced by getVBnIB().

+


Member Enumeration Documentation

+

+ + + + +
+ + +
enum NL3D::CPSMaterial::TBlendingMode [inherited] +
+
+ + + + + +
+   + + +

+this enum summarize the useful modes for blending to the framebuffer +

+

Enumeration values:
+ + + + + +
add  +
modulate  +
alphaBlend  +
alphaTest  +
+
+ +

+Definition at line 809 of file ps_particle_basic.h. +

+

+


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + + +
NL3D::CPSFanLight::CPSFanLight uint32  nbFans = 7  ) 
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Definition at line 401 of file ps_fan_light.cpp. +

+References init(), nlassert, and uint32. +

+

00401                                       : _NbFans(nbFans),
+00402                                                                                   _PhaseSmoothness(0),
+00403                                                                                   _MoveIntensity(1.5f),
+00404                                                                                   _Tex(NULL),
+00405                                                                                   _PhaseSpeed(256)
+00406 {
+00407         nlassert(nbFans >= 3);
+00408 
+00409 
+00410         init();
+00411         if (CParticleSystem::getSerializeIdentifierFlag()) _Name = std::string("FanLight");
+00412 }
+
+

+ + + + +
+ + + + + + + + + +
NL3D::CPSFanLight::~CPSFanLight  ) 
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Definition at line 416 of file ps_fan_light.cpp. +

+

00417 {
+00418 }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + +
virtual void NL3D::CPSLocatedBindable::basisChanged TPSMatrixMode  systemBasis  )  [inline, virtual, inherited]
+
+ + + + + +
+   + + +

+Called when the basis of the owner changed. the default behaviour does nothing

Parameters:
+ + +
newBasis : True if in the system basis, false for the world basis.
+
+ +

+Reimplemented in NL3D::CPSForce. +

+Definition at line 968 of file ps_located.h. +

+

00968 {}
+
+

+ + + + +
+ + + + + + + + + + +
virtual void NL3D::CPSLocatedBindable::bounceOccured uint32  index  )  [inline, protected, virtual, inherited]
+
+ + + + + +
+   + + +

+a bounce occured, so some action could be done. The default behaviour does nothing

Parameters:
+ + +
index the index of the element that bounced
+
+ +

+Reimplemented in NL3D::CPSEmitter. +

+Definition at line 1011 of file ps_located.h. +

+References index, and uint32. +

+

01011 {}
+
+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSFanLight::completeBBox NLMISC::CAABBox box  )  const [virtual]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Reimplemented from NL3D::CPSLocatedBindable. +

+Definition at line 393 of file ps_fan_light.cpp. +

+

00394 {
+00395         // TODO
+00396 
+00397         return false;
+00398 }
+
+

+ + + + +
+ + + + + + + + + + +
NLMISC::CVector NL3D::CPSLocatedBindable::computeI void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+Compute a vector that will map to (1 0 0) after view and model transform. This allow to have object that always faces the user, whatever basis they are in +

+Definition at line 931 of file ps_located.h. +

+References NL3D::CPSLocated::computeI(). +

+Referenced by NL3D::CPSLocatedBindable::displayIcon2d(), NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSFaceLookAtHelper::drawLookAt(), NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(), NL3D::CPSGravity::show(), and NL3D::CPSEmitter::showTool(). +

+

00931 { return _Owner->computeI(); }
+
+

+ + + + +
+ + + + + + + + + + +
NLMISC::CVector NL3D::CPSLocatedBindable::computeJ void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+Compute a vector that will map to (0 1 0) after view and model transform. This allow to have object that always faces the user, whatever basis they are in +

+Definition at line 936 of file ps_located.h. +

+References NL3D::CPSLocated::computeJ(). +

+Referenced by NL3D::CPSFaceLookAtHelper::drawLookAt(). +

+

00936 { return _Owner->computeJ(); }
+
+

+ + + + +
+ + + + + + + + + + +
NLMISC::CVector NL3D::CPSLocatedBindable::computeK void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+Compute a vector that will map to (0 0 1) after view and model transform. This allow to have object that always faces the user, whatever basis they are in +

+Definition at line 940 of file ps_located.h. +

+References NL3D::CPSLocated::computeK(). +

+Referenced by NL3D::CPSLocatedBindable::displayIcon2d(), NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSFaceLookAtHelper::drawLookAt(), NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(), and NL3D::CPSEmitter::showTool(). +

+

00940 { return _Owner->computeK(); }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CPSParticle::computeSrcStep uint32 step,
uint numToProcess
[protected, inherited]
+
+ + + + + +
+   + + +

+System may have hand-tuned LOD, or auto LOD. This compute the number of particles that must really be displayed, and the src step that allow to go through the whole collection. The step in the source is in a fixed point 16:16 format +

+Definition at line 82 of file ps_particle_basic.cpp. +

+References NL3D::CPSParticle::_DisableAutoLOD, NLMISC::clamp(), NL3D::CParticleSystem::getAutoLODDegradationExponent(), NL3D::CParticleSystem::getAutoLODMode(), NL3D::CParticleSystem::getAutoLODStartDistPercent(), NL3D::CParticleSystem::getOneMinusCurrentLODRatio(), NL3D::CParticleSystemProcess::getOwner(), NL3D::CPSLocated::getSize(), NL3D::CParticleSystem::isAutoLODEnabled(), NL3D::CParticleSystem::isSharingEnabled(), nlassert, r, uint, and uint32. +

+Referenced by NL3D::CPSShockWave::draw(), NL3D::CPSConstraintMesh::draw(), draw(), NL3D::CPSFaceLookAt::draw(), NL3D::CPSDot::draw(), NL3D::CPSTailDot::step(), NL3D::CPSRibbonLookAt::step(), NL3D::CPSRibbon::step(), and NL3D::CPSFace::step(). +

+

00083 {               
+00084         nlassert(_Owner && _Owner->getOwner());
+00085         const CParticleSystem &ps = *(_Owner->getOwner());
+00086         if (_DisableAutoLOD || !ps.isAutoLODEnabled() || !ps.isSharingEnabled() || _Owner->getSize() == 0) // Should Auto-LOD be used ?
+00087         {
+00088                 step = (1 << 16);
+00089                 numToProcess = _Owner->getSize();
+00090         }
+00091         else
+00092         {
+00093                 float oneMinusLODRatio = ps.getOneMinusCurrentLODRatio();
+00094                 float LODRatio = 1.f - oneMinusLODRatio;  
+00095                 if (LODRatio > ps.getAutoLODStartDistPercent())
+00096                 {
+00097                         float factor = (LODRatio - 1.f) / (ps.getAutoLODStartDistPercent() - 1.f);
+00098                         NLMISC::clamp(factor, 0.f, 1.f);
+00099                         float r = factor;
+00100                         for (uint k = 1; k < ps.getAutoLODDegradationExponent(); ++k)
+00101                         {
+00102                                 r *= factor;
+00103                         }
+00104                         numToProcess = (uint) (_Owner->getSize() * r);
+00105                         if (numToProcess < 1) { numToProcess = 1; }
+00106 
+00107                         step =   ps.getAutoLODMode() ?                             // skip or limit number, depending on the mode
+00108                                 (_Owner->getSize() << 16) / numToProcess : // skip particles
+00109                                 (1 << 16);                                                         // just display less particles
+00110                 }
+00111                 else
+00112                 {
+00113                         step = (1 << 16);
+00114                         numToProcess = _Owner->getSize();
+00115                 }
+00116         }
+00117 
+00118 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSRotated2DParticle::deleteAngle2DElement uint32  index  )  [inline, protected, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 380 of file ps_particle_basic.h. +

+References NL3D::CPSRotated2DParticle::_Angle2DScheme, NL3D::CPSAttribMaker< float >::deleteElement(), NL3D::CPSAttribMaker< float >::hasMemory(), index, and uint32. +

+Referenced by NL3D::CPSShockWave::deleteElement(), NL3D::CPSMesh::deleteElement(), deleteElement(), and NL3D::CPSFaceLookAt::deleteElement(). +

+

00381                 {
+00382                         if (_Angle2DScheme && _Angle2DScheme->hasMemory()) _Angle2DScheme->deleteElement(index);
+00383                 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSColoredParticle::deleteColorElement uint32  index  )  [inline, protected, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 237 of file ps_particle_basic.h. +

+References NL3D::CPSAttribMaker< CRGBA >::deleteElement(), NL3D::CPSAttribMaker< CRGBA >::hasMemory(), index, and uint32. +

+Referenced by NL3D::CPSTailDot::deleteElement(), NL3D::CPSShockWave::deleteElement(), NL3D::CPSRibbonLookAt::deleteElement(), NL3D::CPSRibbon::deleteElement(), NL3D::CPSQuad::deleteElement(), NL3D::CPSConstraintMesh::deleteElement(), deleteElement(), and NL3D::CPSDot::deleteElement(). +

+

00238                 {
+00239                         if (_ColorScheme && _ColorScheme->hasMemory()) _ColorScheme->deleteElement(index);
+00240                 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSFanLight::deleteElement uint32   )  [protected, virtual]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Implements NL3D::CPSParticle. +

+Definition at line 272 of file ps_fan_light.cpp. +

+References NL3D::CPSRotated2DParticle::deleteAngle2DElement(), NL3D::CPSColoredParticle::deleteColorElement(), NL3D::CPSSizedParticle::deleteSizeElement(), index, and uint32. +

+

00273 {
+00274         deleteColorElement(index);
+00275         deleteSizeElement(index);
+00276         deleteAngle2DElement(index);
+00277 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSSizedParticle::deleteSizeElement uint32  index  )  [inline, protected, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 295 of file ps_particle_basic.h. +

+References NL3D::CPSSizedParticle::_SizeScheme, NL3D::CPSAttribMaker< float >::deleteElement(), NL3D::CPSAttribMaker< float >::hasMemory(), index, and uint32. +

+Referenced by NL3D::CPSShockWave::deleteElement(), NL3D::CPSRibbonLookAt::deleteElement(), NL3D::CPSRibbon::deleteElement(), NL3D::CPSQuad::deleteElement(), NL3D::CPSConstraintMesh::deleteElement(), NL3D::CPSMesh::deleteElement(), and deleteElement(). +

+

00296                 {
+00297                         if (_SizeScheme && _SizeScheme->hasMemory()) _SizeScheme->deleteElement(index);
+00298                 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSParticle::disableAutoLOD bool  disable = true  )  [inline, inherited]
+
+ + + + + +
+   + + +

+Force the Auto-LOD to be disbaled. When set to false, the default behaviour set in the system is used. +

+ +

+Definition at line 137 of file ps_particle_basic.h. +

+References NL3D::CPSParticle::_DisableAutoLOD. +

+

00137 { _DisableAutoLOD = disable; }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CPSLocatedBindable::displayIcon2d const NLMISC::CVector  tab[],
uint  nbSegs,
float  scale
[protected, inherited]
+
+ + + + + +
+   + + +

+*************************************************************************************** +

+show an drawing to represent the object, and in red if it is selected

Parameters:
+ + + + +
tab : a table of 2 * nbSeg vector. only the x and y coordinates are used
nbSeg : the number of segment
scale : the scale to use for drawing
+
+ +

+Definition at line 2038 of file ps_located.cpp. +

+References NL3D::CPSLocatedBindable::computeI(), NL3D::CPSLocatedBindable::computeK(), NL3D::CParticleSystem::getCurrentEditedElement(), NL3D::CPSLocatedBindable::getDriver(), NL3D::CParticleSystemProcess::getOwner(), NL3D::CPSLocated::getPos(), NL3D::CPSLocated::getSize(), index, NL3D::CMaterial::setBlend(), NL3D::CMaterial::setBlendFunc(), NL3D::CMaterial::setColor(), NL3D::CMaterial::setLighting(), NL3D::CPSLocatedBindable::setupDriverModelMatrix(), NL3D::CMaterial::setZFunc(), NL3D::CMaterial::setZWrite(), size, uint, uint32, NLMISC::CLine::V0, NLMISC::CLine::V1, NLMISC::CVector::x, and NLMISC::CVector::y. +

+Referenced by NL3D::CPSSpring::show(), NL3D::CPSCentralGravity::show(), and NL3D::CPSParticle::showTool(). +

+

02039 {
+02040         uint32 size = _Owner->getSize();
+02041         if (!size) return;              
+02042         setupDriverModelMatrix();       
+02043 
+02044         const CVector I = computeI();
+02045         const CVector K = computeK();
+02046 
+02047         static std::vector<NLMISC::CLine> lines;
+02048         
+02049         lines.clear();
+02050 
+02051         // ugly slow code, but not for runtime
+02052         for (uint  k = 0; k < size; ++k)
+02053         {
+02054                 // center of the current particle
+02055                 const CVector p = _Owner->getPos()[k];
+02056                 
+02057                 
+02058 
+02059                 for (uint l = 0; l < nbSegs; ++l)
+02060                 {
+02061                         NLMISC::CLine li;
+02062                         li.V0 = p + scale * (tab[l << 1].x * I + tab[l << 1].y * K);
+02063                         li.V1 = p + scale * (tab[(l << 1) + 1].x * I + tab[(l << 1) + 1].y * K);
+02064                         lines.push_back(li);
+02065                 }
+02066         
+02067                 CMaterial mat;
+02068 
+02069                 mat.setBlendFunc(CMaterial::one, CMaterial::one);
+02070                 mat.setZWrite(false);
+02071                 mat.setLighting(false);
+02072                 mat.setBlend(true);
+02073                 mat.setZFunc(CMaterial::less);
+02074                 
+02075         
+02076 
+02077                 CPSLocated *loc;
+02078                 uint32 index;           
+02079                 CPSLocatedBindable *lb;
+02080                 _Owner->getOwner()->getCurrentEditedElement(loc, index, lb);
+02081         
+02082                 mat.setColor((lb == NULL || this == lb) && loc == _Owner && index == k  ? CRGBA::Red : CRGBA(127, 127, 127));
+02083                 
+02084 
+02085                 CDRU::drawLinesUnlit(lines, mat, *getDriver() );
+02086         }
+02087 
+02088 }
+
+

+ + + + +
+ + + + + + + + + + +
virtual bool NL3D::CPSLocatedBindable::doesProduceBBox void   )  const [inline, virtual, inherited]
+
+ + + + + +
+   + + +

+ +

+Reimplemented in NL3D::CPSForce. +

+Definition at line 888 of file ps_located.h. +

+

00888 { return true; }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSFanLight::draw bool  opaque  )  [private, virtual]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Reimplemented from NL3D::CPSParticle. +

+Definition at line 335 of file ps_fan_light.cpp. +

+References NL3D::CPSAttrib< T >::begin(), NL3D::CPSParticle::computeSrcStep(), NL3D::CPSLocated::getPos(), NL3D::CPSLocated::getSize(), NL3D::CPSLocated::getTime(), PARTICLES_CHECK_MEM, setupMaterial(), NL3D::TIteratorTimeStep1616, NL3D::TIteratorVectStep1616, uint, and uint32. +

+

00336 {
+00337         PARTICLES_CHECK_MEM;    
+00338         if (!_Owner->getSize()) return; 
+00339 
+00340         uint32 step;
+00341         uint   numToProcess;
+00342         computeSrcStep(step, numToProcess);     
+00343         if (!numToProcess) return;
+00344         
+00345         setupMaterial();        
+00346         
+00347         if (step == (1 << 16))
+00348         {
+00349                 CPSFanLightHelper::drawFanLight(_Owner->getPos().begin(),
+00350                                                                             _Owner->getTime().begin(),
+00351                                                                            *this,
+00352                                                                                 numToProcess,
+00353                                                                                 step
+00354                                                                            );
+00355         }
+00356         else
+00357         {               
+00358                 CPSFanLightHelper::drawFanLight(TIteratorVectStep1616(_Owner->getPos().begin(), 0, step),
+00359                                                                                 TIteratorTimeStep1616(_Owner->getTime().begin(), 0, step),
+00360                                                                             *this,
+00361                                                                             numToProcess,
+00362                                                                             step                                
+00363                                                                            );
+00364         }
+00365         
+00366         PARTICLES_CHECK_MEM;
+00367 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSParticle::enableGlobalColorLighting bool  enabled  )  [inline, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 105 of file ps_particle_basic.h. +

+References NL3D::CPSParticle::_UsesGlobalColorLighting. +

+

00105 { _UsesGlobalColorLighting = enabled; }         
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSMaterial::enableZTest bool  enabled  )  [inherited]
+
+ + + + + +
+   + + +

+=================================================================================== +

+ +

+Definition at line 508 of file ps_particle_basic.cpp. +

+References NL3D::CMaterial::setZFunc(). +

+

00509 {
+00510         _Mat.setZFunc(enabled ? CMaterial::less : CMaterial::always);
+00511 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CPSFanLight::enumTexs std::vector< NLMISC::CSmartPtr< ITexture > > &  dest,
IDriver drv
[virtual]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Reimplemented from NL3D::CPSLocatedBindable. +

+Definition at line 543 of file ps_fan_light.cpp. +

+

00544 {
+00545         if (_Tex) 
+00546         {       
+00547                 dest.push_back(_Tex);
+00548         }
+00549 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocatedBindable::finalize void   )  [virtual, inherited]
+
+ + + + + +
+   + + +

+*************************************************************************************** +

+this should be called before to delete any bindable inserted in a system, but this is done by the system, so you should never need calling it. This has been introduced because calls in dtor are not polymorphic to derived class (which are already destroyed anyway), and some infos are needed in some dtor. The default behaviour does nothing +

+Reimplemented in NL3D::CPSTargetLocatedBindable. +

+Definition at line 1975 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::getOwner(), NL3D::CPSLocatedBindable::getUserMatrixUsageCount(), and NL3D::CParticleSystem::releaseRefForUserSysCoordInfo(). +

+

01976 {
+01977         if (_Owner && _Owner->getOwner())
+01978         {
+01979                 _Owner->getOwner()->releaseRefForUserSysCoordInfo(getUserMatrixUsageCount());
+01980         }
+01981 }       
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CPSMaterial::forceModulateConstantColor bool  force,
const NLMISC::CRGBA col = NLMISC::CRGBA::White
[inherited]
+
+ + + + + +
+   + + +

+=================================================================================== +

+Force the material to have one texture that is modulated by diffuse, and a constant color and its diffuse color. This is not compatible with multitextureing, however.

Parameters:
+ + +
force true to force constant color modulation
+
+ +

+Definition at line 573 of file ps_particle_basic.cpp. +

+References NL3D::CPSMaterial::forceTexturedMaterialStages(), NL3D::CMaterial::getTexture(), NL3D::CMaterial::setTexture(), NL3D::CMaterial::texConstantColor(), NL3D::CMaterial::texEnvArg0Alpha(), NL3D::CMaterial::texEnvArg0RGB(), NL3D::CMaterial::texEnvArg1Alpha(), NL3D::CMaterial::texEnvArg1RGB(), NL3D::CMaterial::texEnvOpAlpha(), and NL3D::CMaterial::texEnvOpRGB(). +

+Referenced by NL3D::CPSRibbonLookAt::displayRibbons(), NL3D::CPSShockWave::draw(), and NL3D::CPSQuad::updateMatBeforeRendering(). +

+

00574 {
+00575         if (force)
+00576         {
+00578                 _Mat.texConstantColor(1, col);
+00579                 _Mat.texEnvOpRGB(1, CMaterial::Modulate);
+00580                 _Mat.texEnvOpAlpha(1, CMaterial::Modulate);
+00581                 _Mat.texEnvArg0RGB(1, CMaterial::Previous, CMaterial::SrcColor);
+00582                 _Mat.texEnvArg1RGB(1, CMaterial::Constant, CMaterial::SrcColor);
+00583                 _Mat.texEnvArg0Alpha(1, CMaterial::Previous, CMaterial::SrcAlpha);
+00584                 _Mat.texEnvArg1Alpha(1, CMaterial::Constant, CMaterial::SrcAlpha);
+00585                 forceTexturedMaterialStages(2);
+00586         }
+00587         else
+00588         {               
+00589                 if (_Mat.getTexture(1) != NULL)
+00590                 {
+00591                         _Mat.setTexture(1, NULL);
+00592                 }
+00593         }
+00594 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSMaterial::forceTexturedMaterialStages uint  numStages  )  [inherited]
+
+ + + + + +
+   + + +

+=================================================================================== +

+This setup n stage of a material with at least texture.

    +
  • If a texture was present for a given stage it still is
  • If a texture wasn't present, it create a dummy white texture there
  • Above numStages, textures are disabled. It can be used to do extra math with stages that have no textures (required by the driver)
+ +

+Definition at line 598 of file ps_particle_basic.cpp. +

+References NL3D::CMaterial::getTexture(), NL3D::IDRV_MAT_MAXTEXTURES, NL3D::CMaterial::setTexture(), and uint. +

+Referenced by NL3D::CPSDot::draw(), NL3D::CPSMaterial::forceModulateConstantColor(), and setupMaterial(). +

+

00599 {
+00600         ITexture *blankTex = NULL;
+00601         uint k;
+00602         for (k = 0; k < numStages; ++k)
+00603         {
+00604                 if (_Mat.getTexture(k) == NULL)
+00605                 {
+00606                         if (!blankTex)
+00607                         {
+00608                                 blankTex = CTextureMem::Create1x1WhiteTex();
+00609                         }
+00610                         _Mat.setTexture(k, blankTex);
+00611                 }
+00612         }
+00613         for (; k < IDRV_MAT_MAXTEXTURES; ++k)
+00614         {
+00615                 if (_Mat.getTexture(k) != NULL)
+00616                 {
+00617                         _Mat.setTexture(k, NULL);
+00618                 }               
+00619         }
+00620 }
+
+

+ + + + +
+ + + + + + + + + + +
float NL3D::CPSRotated2DParticle::getAngle2D void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+get the constant +

+ +

+Definition at line 336 of file ps_particle_basic.h. +

+References NL3D::CPSRotated2DParticle::_Angle2D. +

+

00336 { return _Angle2D; }
+
+

+ + + + +
+ + + + + + + + + + +
virtual CPSLocated* NL3D::CPSFanLight::getAngle2DOwner void   )  [inline, protected, virtual]
+
+ + + + + +
+   + + +

+deriver must return their owner there +

+ +

+Implements NL3D::CPSRotated2DParticle. +

+Definition at line 149 of file ps_fan_light.h. +

+

00149 { return _Owner; }      
+
+

+ + + + +
+ + + + + + + + + + +
const CPSAttribMaker<float>* NL3D::CPSRotated2DParticle::getAngle2DScheme void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+get the angle 2D scheme (NULL if none) const version +

+ +

+Definition at line 326 of file ps_particle_basic.h. +

+References NL3D::CPSRotated2DParticle::_Angle2DScheme. +

+

00326 { return _Angle2DScheme; }
+
+

+ + + + +
+ + + + + + + + + + +
CPSAttribMaker<float>* NL3D::CPSRotated2DParticle::getAngle2DScheme void   )  [inline, inherited]
+
+ + + + + +
+   + + +

+get the angle 2D scheme (NULL if none) +

+ +

+Definition at line 323 of file ps_particle_basic.h. +

+References NL3D::CPSRotated2DParticle::_Angle2DScheme. +

+

00323 { return _Angle2DScheme; }
+
+

+ + + + +
+ + + + + + + + + + +
CPSMaterial::TBlendingMode NL3D::CPSMaterial::getBlendingMode void   )  const [inherited]
+
+ + + + + +
+   + + +

+=================================================================================== +

+ +

+Definition at line 551 of file ps_particle_basic.cpp. +

+References NL3D::CPSMaterial::alphaBlend, NL3D::CPSMaterial::alphaTest, NL3D::CMaterial::getBlend(), NL3D::CMaterial::getDstBlend(), NL3D::CMaterial::getSrcBlend(), and nlassert. +

+Referenced by NL3D::CPSTailDot::hasTransparentFaces(), NL3D::CPSShockWave::hasTransparentFaces(), NL3D::CPSRibbonLookAt::hasTransparentFaces(), NL3D::CPSRibbon::hasTransparentFaces(), NL3D::CPSQuad::hasTransparentFaces(), hasTransparentFaces(), and NL3D::CPSDot::hasTransparentFaces(). +

+

00552 {
+00553         if (_Mat.getBlend())
+00554         {
+00555                 CMaterial::TBlend srcBlend = _Mat.getSrcBlend();        
+00556                 CMaterial::TBlend destBlend = _Mat.getDstBlend();
+00557 
+00558                 if (srcBlend == CMaterial::one && destBlend == CMaterial::one) return add;
+00559                 if (srcBlend == CMaterial::zero && destBlend == CMaterial::srccolor) return modulate;
+00560                 if (srcBlend == CMaterial::srcalpha && destBlend == CMaterial::invsrcalpha) return alphaBlend;
+00561 
+00562                 // unrecognized mode
+00563                 nlassert(0);
+00564                 return alphaTest; // to avoid a warning only ...
+00565         }
+00566         else
+00567         {
+00568                 return alphaTest;
+00569         }
+00570 }
+
+

+ + + + +
+ + + + + + + + + +
virtual std::string NLMISC::IClassable::getClassName  )  [pure virtual, inherited]
+
+ + + + + +
+   + + +

+ +

+Implemented in NLAIAGENT::CNumericIndex, NLAIC::IPointerGestion, NLAIC::CIdentType, and CAutomataDesc. +

+Referenced by NLMISC::CClassRegistry::checkObject(), and NL3D::GetTextureSize().

+

+ + + + +
+ + + + + + + + + + +
NLMISC::CRGBA NL3D::CPSColoredParticle::getColor void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+Get the color. +

+ +

+Definition at line 211 of file ps_particle_basic.h. +

+

00211 { return _Color; }
+
+

+ + + + +
+ + + + + + + + + + +
virtual CPSLocated* NL3D::CPSFanLight::getColorOwner void   )  [inline, protected, virtual]
+
+ + + + + +
+   + + +

+deriver must return their owner there +

+ +

+Implements NL3D::CPSColoredParticle. +

+Definition at line 147 of file ps_fan_light.h. +

+

00147 { return _Owner; }
+
+

+ + + + +
+ + + + + + + + + + +
const CPSAttribMaker<CRGBA>* NL3D::CPSColoredParticle::getColorScheme void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+get the color scheme (NULL if none) const version +

+ +

+Definition at line 205 of file ps_particle_basic.h. +

+

00205 { return _ColorScheme; }
+
+

+ + + + +
+ + + + + + + + + + +
CPSAttribMaker<CRGBA>* NL3D::CPSColoredParticle::getColorScheme void   )  [inline, inherited]
+
+ + + + + +
+   + + +

+get the color scheme (NULL if none) +

+ +

+Definition at line 202 of file ps_particle_basic.h. +

+

00202 { return _ColorScheme; }
+
+

+ + + + +
+ + + + + + + + + + +
IDriver* NL3D::CPSLocatedBindable::getDriver void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+shortcut to get an instance of the driver +

+ +

+Definition at line 890 of file ps_located.h. +

+References NL3D::CPSLocated::getDriver(), and nlassert. +

+Referenced by NL3D::CPSLocatedBindable::displayIcon2d(), NL3D::CPSTailDot::displayRibbons(), NL3D::CPSRibbonLookAt::displayRibbons(), NL3D::CPSRibbon::displayRibbons(), NL3D::CPSDot::draw(), NL3D::CPSFaceHelper::drawFaces(), NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSFaceLookAtHelper::drawLookAt(), NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(), NL3D::CPSConstraintMeshHelper::drawMeshs(), NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs(), NL3D::CPSZoneRectangle::show(), NL3D::CPSZoneCylinder::show(), NL3D::CPSZoneDisc::show(), NL3D::CPSZoneSphere::show(), NL3D::CPSZonePlane::show(), NL3D::CPSLight::show(), NL3D::CPSCylindricVortex::show(), NL3D::CPSGravity::show(), NL3D::CPSDirectionnalForce::show(), NL3D::CPSSphericalEmitter::showTool(), NL3D::CPSEmitterRectangle::showTool(), and NL3D::CPSEmitter::showTool(). +

+

00891          { 
+00892                  nlassert(_Owner);
+00893                  nlassert(_Owner->getDriver());
+00894                  return _Owner->getDriver();
+00895          }              
+
+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSLocatedBindable::getExternID void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+get the extern ID of this located bindable +

+ +

+Definition at line 964 of file ps_located.h. +

+References NL3D::CPSLocatedBindable::_ExternID, and uint32. +

+Referenced by NL3D::CPSLocated::bind(), and NL3D::CParticleSystem::unregisterLocatedBindableExternID(). +

+

00964 { return _ExternID; }
+
+

+ + + + +
+ + + + + + + + + + +
const CFontGenerator* NL3D::CPSLocatedBindable::getFontGenerator void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+Shortcut to get the font generator if one was set (const version). +

+ +

+Definition at line 904 of file ps_located.h. +

+References NL3D::CParticleSystemProcess::getFontGenerator(), and nlassert. +

+

00905          {
+00906                 nlassert(_Owner);
+00907                 return _Owner->getFontGenerator();
+00908          }
+
+

+ + + + +
+ + + + + + + + + + +
CFontGenerator* NL3D::CPSLocatedBindable::getFontGenerator void   )  [inline, inherited]
+
+ + + + + +
+   + + +

+Shortcut to get the font generator if one was set. +

+ +

+Definition at line 897 of file ps_located.h. +

+References NL3D::CParticleSystemProcess::getFontGenerator(), and nlassert. +

+Referenced by NL3D::CPSZoneRectangle::show(), NL3D::CPSZoneCylinder::show(), NL3D::CPSZoneDisc::show(), NL3D::CPSZonePlane::show(), NL3D::CPSCylindricVortex::show(), NL3D::CPSGravity::show(), and NL3D::CPSEmitterRectangle::showTool(). +

+

00898          {
+00899                 nlassert(_Owner);
+00900                 return _Owner->getFontGenerator();
+00901          }
+
+

+ + + + +
+ + + + + + + + + + +
const CFontManager * NL3D::CPSLocatedBindable::getFontManager void   )  const [inherited]
+
+ + + + + +
+   + + +

+Shortcut to get the font manager if one was set (const version). +

+ +

+Definition at line 2099 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::getFontManager(), and nlassert. +

+

02100 {
+02101         nlassert(_Owner);
+02102         return _Owner->getFontManager();
+02103 }
+
+

+ + + + +
+ + + + + + + + + + +
CFontManager * NL3D::CPSLocatedBindable::getFontManager void   )  [inherited]
+
+ + + + + +
+   + + +

+*************************************************************************************** +

+ +

+Definition at line 2091 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::getFontManager(), and nlassert. +

+Referenced by NL3D::CPSZoneRectangle::show(), NL3D::CPSZoneCylinder::show(), NL3D::CPSZoneDisc::show(), NL3D::CPSZonePlane::show(), NL3D::CPSCylindricVortex::show(), NL3D::CPSGravity::show(), and NL3D::CPSEmitterRectangle::showTool(). +

+

02092 {
+02093         nlassert(_Owner);
+02094         return _Owner->getFontManager();
+02095 }
+
+

+ + + + +
+ + + + + + + + + + +
const NLMISC::CMatrix & NL3D::CPSLocatedBindable::getInvertedSysMat void   )  const [inherited]
+
+ + + + + +
+   + + +

+shortcut to get the inverted matrix of the system +

+ +

+Definition at line 2116 of file ps_located.cpp. +

+References NL3D::CParticleSystem::getInvertedSysMat(), NL3D::CParticleSystemProcess::getOwner(), and nlassert. +

+

02117 {
+02118         nlassert(_Owner);
+02119                 return _Owner->getOwner()->getInvertedSysMat();
+02120 
+02121 }
+
+

+ + + + +
+ + + + + + + + + + +
const NLMISC::CMatrix & NL3D::CPSLocatedBindable::getInvertedViewMat void   )  const [inherited]
+
+ + + + + +
+   + + +

+shortcut to get the inverted view matrix +

+ +

+Definition at line 2134 of file ps_located.cpp. +

+References NL3D::CParticleSystem::getInvertedViewMat(), NL3D::CParticleSystemProcess::getOwner(), and nlassert. +

+

02135 {
+02136         nlassert(_Owner);
+02137         return _Owner->getOwner()->getInvertedViewMat();        
+02138 }       
+
+

+ + + + +
+ + + + + + + + + +
const NLMISC::CMatrix & NL3D::CPSLocatedBindable::getLocalToWorldMatrix  )  const [inline, inherited]
+
+ + + + + +
+   + + +

+Shortcut to get the local to world matrix. +

+ +

+Definition at line 1144 of file ps_located.h. +

+References NL3D::CPSLocated::getLocalToWorldMatrix(), and nlassert. +

+Referenced by NL3D::CPSRibbonLookAt::displayRibbons(), NL3D::CPSSound::newElement(), NL3D::CPSZoneRectangle::show(), NL3D::CPSZoneCylinder::show(), NL3D::CPSZoneDisc::show(), NL3D::CPSZonePlane::show(), NL3D::CPSLight::show(), NL3D::CPSGravity::show(), NL3D::CPSEmitterRectangle::showTool(), NL3D::CPSLight::step(), and NL3D::CPSMesh::updatePos(). +

+

01145 {
+01146         nlassert(_Owner);
+01147         return _Owner->getLocalToWorldMatrix();
+01148 }
+
+

+ + + + +
+ + + + + + + + + + +
TPSLod NL3D::CPSLocatedBindable::getLOD void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+get the valid lods for that object +

+ +

+Definition at line 954 of file ps_located.h. +

+References NL3D::CPSLocatedBindable::_LOD, and NL3D::TPSLod. +

+

00954 { return _LOD; }
+
+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSFanLight::getMaxNumFaces void   )  const [virtual]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Implements NL3D::CPSParticle. +

+Definition at line 245 of file ps_fan_light.cpp. +

+References _NbFans, NL3D::CPSLocated::getMaxSize(), nlassert, and uint32. +

+

00246 {
+00247         nlassert(_Owner);
+00248         return _Owner->getMaxSize() * _NbFans;
+00249 }
+
+

+ + + + +
+ + + + + + + + + + +
float NL3D::CPSFanLight::getMoveIntensity void   )  const [inline]
+
+ + + + + +
+   + + +

+get the intensity of fans movement +

+ +

+Definition at line 82 of file ps_fan_light.h. +

+References _MoveIntensity. +

+

00082 { return _MoveIntensity; }
+
+

+ + + + +
+ + + + + + + + + + +
std::string NL3D::CPSLocatedBindable::getName void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+get the located bindable name (edition purpose) +

+ +

+Definition at line 948 of file ps_located.h. +

+

00948 { return _Name; }       
+
+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSFanLight::getNbFans void   )  const [inline]
+
+ + + + + +
+   + + +

+ +

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

+References _NbFans, and uint32. +

+

00086         {
+00087                 return _NbFans;
+00088         }
+
+

+ + + + +
+ + + + + + + + + +
uint NL3D::CPSFanLight::getNumFanlightsInVB  )  const [private]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Definition at line 536 of file ps_fan_light.cpp. +

+References _NbFans, and uint. +

+Referenced by NL3D::CPSFanLightHelper::drawFanLight(), and getVBnIB(). +

+

00537 {
+00538         const uint numRib = NumVertsInBuffer / (2 + _NbFans);
+00539         return std::max(1u, numRib);
+00540 }
+
+

+ + + + +
+ + + + + + + + + + +
const CPSLocated* NL3D::CPSLocatedBindable::getOwner void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+get the located that owns this bindable (const version) +

+ +

+Definition at line 944 of file ps_located.h. +

+

00944 { return _Owner; }              
+
+

+ + + + +
+ + + + + + + + + + +
CPSLocated* NL3D::CPSLocatedBindable::getOwner void   )  [inline, inherited]
+
+ + + + + +
+   + + +

+get the located that owns this bindable +

+ +

+Definition at line 942 of file ps_located.h. +

+Referenced by NL3D::CPSLocated::deleteElement(), NL3D::CParticleSystemInstanceUser::emit(), NL3D::CPSFaceLookAt::CSecondSize::getSizeOwner(), NL3D::CPSSound::newElement(), NL3D::CPSLocated::registerIntegrableForce(), NL3D::CParticleSystem::registerLocatedBindableExternID(), NL3D::CParticleSystemInstanceUser::removeByID(), NL3D::CPSSound::resize(), NL3D::CPSLight::resize(), NL3D::CPSSound::step(), NL3D::CPSLocated::unregisterIntegrableForce(), and NL3D::CParticleSystem::unregisterLocatedBindableExternID(). +

+

00942 { return _Owner; }
+
+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSFanLight::getPhaseSmoothness void   )  const [inline]
+
+ + + + + +
+   + + +

+retrieve the phase smoothness +

+ +

+Definition at line 76 of file ps_fan_light.h. +

+References _PhaseSmoothness, and uint32. +

+

00076 { return _PhaseSmoothness;}
+
+

+ + + + +
+ + + + + + + + + + +
float NL3D::CPSFanLight::getPhaseSpeed void   )  const [inline]
+
+ + + + + +
+   + + +

+get the speed for phase +

+ +

+Definition at line 97 of file ps_fan_light.h. +

+References _PhaseSpeed. +

+

00097 { return _PhaseSpeed / 256.0f; }
+
+

+ + + + +
+ + + + + + + + + + +
virtual uint32 NL3D::CPSParticle::getPriority void   )  const [inline, virtual, inherited]
+
+ + + + + +
+   + + +

+return priority +

+ +

+Implements NL3D::CPSLocatedBindable. +

+Definition at line 66 of file ps_particle_basic.h. +

+References uint32. +

+

00066 { return 1000; }
+
+

+ + + + +
+ + + + + + + + + + +
const float* NL3D::CPSRotated2DParticle::getRotTable void   )  [inline, static, inherited]
+
+ + + + + +
+   + + +

+this return a float table used to speed up rotations of face look at and the like for each angle, there are 4 float : 2 couple of float : a1, b1, a2, b2 a1 * I + b1 * K = up left corner, a2 * I + b2 * K = up right corner, This table must have been initialized with initRotTable +

+Definition at line 354 of file ps_particle_basic.h. +

+References NL3D::CPSRotated2DParticle::_InitializedRotTab, NL3D::CPSRotated2DParticle::_RotTable, and nlassert. +

+

00355                 {
+00356                         nlassert(_InitializedRotTab); // must have called initRotTable at the start of the apply
+00357                         return _RotTable;
+00358                 }
+
+

+ + + + +
+ + + + + + + + + + +
float NL3D::CPSSizedParticle::getSize void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+get the constant size +

+ +

+Definition at line 274 of file ps_particle_basic.h. +

+References NL3D::CPSSizedParticle::_ParticleSize. +

+Referenced by NL3D::CPSFaceLookAtHelper::drawLookAt(), NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(), NL3D::CPSSizedParticle::resizeSize(), and NL3D::CPSSizedParticle::setSizeScheme(). +

+

00274 { return _ParticleSize; }
+
+

+ + + + +
+ + + + + + + + + + +
virtual CPSLocated* NL3D::CPSFanLight::getSizeOwner void   )  [inline, protected, virtual]
+
+ + + + + +
+   + + +

+deriver must return their owner there +

+ +

+Implements NL3D::CPSSizedParticle. +

+Definition at line 148 of file ps_fan_light.h. +

+

00148 { return _Owner; }
+
+

+ + + + +
+ + + + + + + + + + +
const CPSAttribMaker<float>* NL3D::CPSSizedParticle::getSizeScheme void   )  const [inline, inherited]
+
+ + + + + +
+   + + +

+get the size scheme (NULL if none) const version +

+ +

+Definition at line 268 of file ps_particle_basic.h. +

+References NL3D::CPSSizedParticle::_SizeScheme. +

+

00268 { return _SizeScheme; }
+
+

+ + + + +
+ + + + + + + + + + +
CPSAttribMaker<float>* NL3D::CPSSizedParticle::getSizeScheme void   )  [inline, inherited]
+
+ + + + + +
+   + + +

+get the size scheme (NULL if none) +

+ +

+Definition at line 265 of file ps_particle_basic.h. +

+References NL3D::CPSSizedParticle::_SizeScheme. +

+Referenced by NL3D::CPSFaceLookAtHelper::drawLookAt(), and NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(). +

+

00265 { return _SizeScheme; }
+
+

+ + + + +
+ + + + + + + + + + +
const NLMISC::CMatrix & NL3D::CPSLocatedBindable::getSysMat void   )  const [inherited]
+
+ + + + + +
+   + + +

+*************************************************************************************** +

+ +

+Definition at line 2108 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::getOwner(), NL3D::CParticleSystem::getSysMat(), and nlassert. +

+

02109 {
+02110         nlassert(_Owner);               
+02111         return _Owner->getOwner()->getSysMat();
+02112 }
+
+

+ + + + +
+ + + + + + + + + + +
const ITexture* NL3D::CPSFanLight::getTexture void   )  const [inline, virtual]
+
+ + + + + +
+   + + +

+ +

+Implements NL3D::CPSTexturedParticleNoAnim. +

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

+

00128         {
+00129                 return _Tex; 
+00130         }
+
+

+ + + + +
+ + + + + + + + + + +
ITexture* NL3D::CPSFanLight::getTexture void   )  [inline, virtual]
+
+ + + + + +
+   + + +

+get the texture used +

+ +

+Implements NL3D::CPSTexturedParticleNoAnim. +

+Definition at line 123 of file ps_fan_light.h. +

+

00124         {
+00125                 return _Tex; 
+00126         }
+
+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSParticle::getType void   )  const [inline, virtual, inherited]
+
+ + + + + +
+   + + +

+return this bindable type +

+ +

+Implements NL3D::CPSLocatedBindable. +

+Definition at line 63 of file ps_particle_basic.h. +

+References NL3D::PSParticle, and uint32. +

+

00063 { return PSParticle; }
+
+

+ + + + +
+ + + + + + + + + +
virtual bool NL3D::CPSLocatedBindable::getUserMatrixUsageCount  )  const [inline, virtual, inherited]
+
+ + + + + +
+   + + +

+ +

+Reimplemented in NL3D::CPSEmitter. +

+Definition at line 974 of file ps_located.h. +

+Referenced by NL3D::CPSLocatedBindable::finalize(), and NL3D::CPSLocatedBindable::setOwner(). +

+

00974 { return 0; }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CPSFanLight::getVBnIB CVertexBuffer *&  vb,
TIndexBuffer *&  ib
[private]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Definition at line 459 of file ps_fan_light.cpp. +

+References _ColoredTexVBMap, _ColoredVBMap, _IBMap, _NbFans, _TexVBMap, _VBMap, getNumFanlightsInVB(), nlassert, NL3D::CVertexBuffer::setColor(), NL3D::CVertexBuffer::setNumVertices(), NL3D::CVertexBuffer::setTexCoord(), NL3D::CVertexBuffer::setVertexFormat(), size, TIndexBuffer, TVBMap, uint, and uint32. +

+Referenced by NL3D::CPSFanLightHelper::drawFanLight(). +

+

00460 {
+00461         TVBMap &vbMap = _ColorScheme ? (_Tex == NULL  ? _ColoredVBMap : _ColoredTexVBMap)
+00462                                                                  : (_Tex == NULL  ? _VBMap : _TexVBMap);
+00463         TVBMap::iterator vbIt = vbMap.find(_NbFans);
+00464         if (vbIt != vbMap.end())
+00465         {
+00466                 retVb = &(vbIt->second);
+00467                 TIBMap::iterator pbIt = _IBMap.find(_NbFans);
+00468                 nlassert(pbIt != _IBMap.end());
+00469                 retIb = &(pbIt->second);
+00470         }
+00471         else // we need to create the vb
+00472         {               
+00473                 // create an entry (we setup the primitive block at the same time, this could be avoided, but doesn't make much difference)             
+00474                 CVertexBuffer &vb = vbMap[_NbFans]; // create a vb
+00475                 TIndexBuffer &ib = _IBMap[_NbFans]; // eventually create a pb
+00476                 const uint32 size = getNumFanlightsInVB();
+00477                 vb.setVertexFormat(CVertexBuffer::PositionFlag |
+00478                                                    CVertexBuffer::PrimaryColorFlag |
+00479                                                    (_Tex != NULL ?  CVertexBuffer::TexCoord0Flag : 0) 
+00480                                                   );
+00481                 vb.setNumVertices(size * (2 + _NbFans));                        
+00482                 ib.resize(size * _NbFans * 3);          
+00483                 // pointer on the current index to fill
+00484                 TIndexBuffer::iterator ptIndex = ib.begin();    
+00485                 
+00486                 // index of the first vertex of the current fanFilght
+00487                 uint currVertFan = 0;
+00488 
+00489                 uint l; // the current fan in the current fanlight
+00490                 uint k; // the current fan light
+00491 
+00492                 for (k = 0; k < size; ++k)
+00493                 {
+00494                         for (l = 0; l < _NbFans; ++l)
+00495                         {
+00496                                 *ptIndex++ = currVertFan;
+00497                                 *ptIndex++ = currVertFan + (l + 1);
+00498                                 *ptIndex++ = currVertFan + (l + 2);
+00499                         }                                       
+00500                         currVertFan += 2 + _NbFans;
+00501                 }
+00502                         
+00503                 for (k = 0; k < size; ++k)
+00504                 {                       
+00505                         if (_Tex)
+00506                         {
+00507                                 vb.setTexCoord(k * (_NbFans + 2), 0, NLMISC::CUV(0, 0));
+00508                         }
+00509                         if (!_ColorScheme)
+00510                         {
+00511                                 vb.setColor(k * (_NbFans + 2), CRGBA::White);                   
+00512                         }               
+00513                         if (!_Tex)
+00514                         {
+00515                                 for(l = 1; l <= _NbFans + 1; ++l)
+00516                                 {
+00517                                         vb.setColor(l + k * (_NbFans + 2), CRGBA(0, 0, 0));
+00518                                 }
+00519                         }
+00520                         else
+00521                         {
+00522                                 for(l = 1; l <= _NbFans + 1; ++l)
+00523                                 {
+00524                                         vb.setColor(l + k * (_NbFans + 2), CRGBA(0, 0, 0));
+00525                                         vb.setTexCoord(l + k * (_NbFans + 2), 0, NLMISC::CUV((l - 1) / (float) _NbFans, 1));
+00526                                 }
+00527                         }
+00528                 }
+00529                 
+00530                 retVb = &vb;
+00531                 retIb = &ib;
+00532         }       
+00533 }
+
+

+ + + + +
+ + + + + + + + + + +
const NLMISC::CMatrix & NL3D::CPSLocatedBindable::getViewMat void   )  const [inherited]
+
+ + + + + +
+   + + +

+shortcut to get the view matrix +

+ +

+Definition at line 2125 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::getOwner(), NL3D::CParticleSystem::getViewMat(), and nlassert. +

+Referenced by NL3D::CPSRibbonLookAt::displayRibbons(), and NL3D::CPSFaceLookAtHelper::drawLookAt(). +

+

02126 {
+02127         nlassert(_Owner);
+02128         return _Owner->getOwner()->getViewMat();        
+02129 }       
+
+

+ + + + +
+ + + + + + + + + + +
virtual bool NL3D::CPSLocatedBindable::hasEmitters void   )  const [inline, virtual, inherited]
+
+ + + + + +
+   + + +

+tells wether there are alive emitters +

+ +

+Definition at line 958 of file ps_located.h. +

+

00958 { return false; }
+
+

+ + + + +
+ + + + + + + + + +
virtual bool NL3D::CPSFanLight::hasLightableFaces  )  [inline, virtual]
+
+ + + + + +
+   + + +

+from CPSParticle : return true if there are lightable faces in the object +

+ +

+Implements NL3D::CPSParticle. +

+Definition at line 133 of file ps_fan_light.h. +

+

00133 {       return false; }
+
+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSFanLight::hasOpaqueFaces void   )  [virtual]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Implements NL3D::CPSParticle. +

+Definition at line 258 of file ps_fan_light.cpp. +

+References hasTransparentFaces(). +

+

00259 {
+00260         return !hasTransparentFaces();
+00261 }
+
+

+ + + + +
+ + + + + + + + + + +
virtual bool NL3D::CPSParticle::hasParticles void   )  const [inline, virtual, inherited]
+
+ + + + + +
+   + + +

+return true if this located bindable derived class holds alive particles +

+ +

+Reimplemented from NL3D::CPSLocatedBindable. +

+Definition at line 69 of file ps_particle_basic.h. +

+References NL3D::CPSLocated::getSize(), and nlassert. +

+

00069 { nlassert(_Owner); return _Owner->getSize() != 0; }
+
+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSFanLight::hasTransparentFaces void   )  [virtual]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Implements NL3D::CPSParticle. +

+Definition at line 252 of file ps_fan_light.cpp. +

+References NL3D::CPSMaterial::getBlendingMode(). +

+Referenced by hasOpaqueFaces(). +

+

00253 {
+00254         return getBlendingMode() != CPSMaterial::alphaTest ;
+00255 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSFanLight::init void   )  [private, virtual]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Definition at line 442 of file ps_fan_light.cpp. +

+References NL3D::CMaterial::setColor(), NL3D::CMaterial::setDoubleSided(), NL3D::CMaterial::setLighting(), NL3D::CMaterial::setZFunc(), and updateMatAndVbForColor(). +

+Referenced by CPSFanLight(). +

+

00443 {
+00444         _Mat.setLighting(false);        
+00445         _Mat.setZFunc(CMaterial::less);
+00446         _Mat.setDoubleSided(true);
+00447         _Mat.setColor(NLMISC::CRGBA::White);
+00448 
+00449         updateMatAndVbForColor();
+00450 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSFanLight::initFanLightPrecalc void   )  [static]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Definition at line 214 of file ps_fan_light.cpp. +

+References _RandomPhaseTab, _RandomPhaseTabInitialized, NL3D::BlurBytesTab(), uint, uint32, and uint8. +

+

00215 {
+00216         // build several random tab, and linearly interpolate between l values
+00217         float currPhase, nextPhase, phaseStep;
+00218         for (uint l = 0; l < 32 ; l++)
+00219         {
+00220                 nextPhase = (float) (uint8) (rand()&0xFF);
+00221                 uint32 k = 0;
+00222                 while (k < 128)
+00223                 {
+00224                         currPhase = nextPhase;
+00225                         nextPhase = (float) (uint8) (rand()&0xFF);
+00226                         phaseStep = (nextPhase - currPhase) / (l + 1);
+00227 
+00228                         for (uint32 m = 0; m <= l; ++m)
+00229                         {
+00230                                 _RandomPhaseTab[l][k] = (uint8) currPhase;
+00231                                 currPhase += phaseStep;
+00232                                 ++k;
+00233                                 if (k >= 128) break;
+00234                         }
+00235                 }
+00236                 for (uint m = 0; m < 2 * l; ++m)
+00237                         BlurBytesTab(&_RandomPhaseTab[l][0], &_RandomPhaseTab[l][0], 128);
+00238         }       
+00239         //#ifdef NL_DEBUG
+00240                 _RandomPhaseTabInitialized = true;
+00241         //#endif
+00242 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSRotated2DParticle::initRotTable void   )  [static, inherited]
+
+ + + + + +
+   + + +

+=================================================================================== +

+ +

+Definition at line 294 of file ps_particle_basic.cpp. +

+References NL3D::CPSRotated2DParticle::_InitializedRotTab, NL3D::CPSRotated2DParticle::_RotTable, and uint32. +

+

00295 {
+00296         float *ptFloat = _RotTable;
+00297         for (uint32 k = 0; k < 256; ++k)
+00298         {
+00299                 const float ca = (float) cos(k * (1.0f / 256.0f) * 2.0f * NLMISC::Pi);
+00300                 const float sa = (float) sin(k * (1.0f / 256.0f) * 2.0f * NLMISC::Pi);
+00301 
+00302                 *ptFloat++ = -ca - sa;
+00303                 *ptFloat++ = -sa + ca;
+00304 
+00305                 *ptFloat++ = ca - sa;
+00306                 *ptFloat++ = sa + ca;
+00307         }
+00308         _InitializedRotTab = true;
+00309 }
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CPSLocatedBindable::isActive  )  const [inline, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 844 of file ps_located.h. +

+References NL3D::CPSLocatedBindable::_Active. +

+Referenced by NL3D::CParticleSystem::hasActiveEmitters(). +

+

00844 { return _Active; }                             
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CPSParticle::isAutoLODDisabled  )  const [inline, inherited]
+
+ + + + + +
+   + + +

+Test wether Auto-LOD is disabled. +

+ +

+Definition at line 140 of file ps_particle_basic.h. +

+References NL3D::CPSParticle::_DisableAutoLOD. +

+

00140 { return _DisableAutoLOD; }     
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CPSMaterial::isZTestEnabled  )  const [inherited]
+
+ + + + + +
+   + + +

+=================================================================================== +

+ +

+Definition at line 514 of file ps_particle_basic.cpp. +

+References NL3D::CMaterial::getZFunc(). +

+

00515 {
+00516         return _Mat.getZFunc() != CMaterial::always;
+00517 }
+
+

+ + + + +
+ + + + + + + + + + +
virtual void NL3D::CPSLocatedBindable::motionTypeChanged bool  parametric  )  [inline, virtual, inherited]
+
+ + + + + +
+   + + +

+called when a located has switch between incrmental / parametric motion. The default does nothing +

+ +

+Reimplemented in NL3D::CPSRibbonBase. +

+Definition at line 971 of file ps_located.h. +

+Referenced by NL3D::CPSLocated::bind(). +

+

00971 {}
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CPSRotated2DParticle::newAngle2DElement CPSLocated emitterLocated,
uint32  emitterIndex
[inline, protected, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 376 of file ps_particle_basic.h. +

+References NL3D::CPSRotated2DParticle::_Angle2DScheme, NL3D::CPSAttribMaker< float >::hasMemory(), NL3D::CPSAttribMaker< float >::newElement(), and uint32. +

+Referenced by NL3D::CPSShockWave::newElement(), NL3D::CPSMesh::newElement(), newElement(), and NL3D::CPSFaceLookAt::newElement(). +

+

00377                 {
+00378                         if (_Angle2DScheme && _Angle2DScheme->hasMemory()) _Angle2DScheme->newElement(emitterLocated, emitterIndex);
+00379                 }       
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CPSColoredParticle::newColorElement CPSLocated emitterLocated,
uint32  emitterIndex
[inline, protected, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 233 of file ps_particle_basic.h. +

+References NL3D::CPSAttribMaker< CRGBA >::hasMemory(), NL3D::CPSAttribMaker< CRGBA >::newElement(), and uint32. +

+Referenced by NL3D::CPSTailDot::newElement(), NL3D::CPSShockWave::newElement(), NL3D::CPSRibbonLookAt::newElement(), NL3D::CPSRibbon::newElement(), NL3D::CPSQuad::newElement(), NL3D::CPSConstraintMesh::newElement(), newElement(), and NL3D::CPSDot::newElement(). +

+

00234                 {
+00235                         if (_ColorScheme && _ColorScheme->hasMemory()) _ColorScheme->newElement(emitterLocated, emitterIndex);
+00236                 }       
+
+

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

+==================================================================================== +

+ +

+Implements NL3D::CPSParticle. +

+Definition at line 264 of file ps_fan_light.cpp. +

+References NL3D::CPSRotated2DParticle::newAngle2DElement(), NL3D::CPSColoredParticle::newColorElement(), NL3D::CPSSizedParticle::newSizeElement(), and uint32. +

+

00265 {
+00266         newColorElement(emitterLocated, emitterIndex);
+00267         newSizeElement(emitterLocated, emitterIndex);
+00268         newAngle2DElement(emitterLocated, emitterIndex);
+00269 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CPSSizedParticle::newSizeElement CPSLocated emitterLocated,
uint32  emitterIndex
[inline, protected, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 291 of file ps_particle_basic.h. +

+References NL3D::CPSSizedParticle::_SizeScheme, NL3D::CPSAttribMaker< float >::hasMemory(), NL3D::CPSAttribMaker< float >::newElement(), and uint32. +

+Referenced by NL3D::CPSShockWave::newElement(), NL3D::CPSRibbonLookAt::newElement(), NL3D::CPSRibbon::newElement(), NL3D::CPSQuad::newElement(), NL3D::CPSConstraintMesh::newElement(), NL3D::CPSMesh::newElement(), and newElement(). +

+

00292                 {
+00293                         if (_SizeScheme && _SizeScheme->hasMemory()) _SizeScheme->newElement(emitterLocated, emitterIndex);
+00294                 }       
+
+

+ + + + +
+ + + + + + + + + + +
NL3D::CPSFanLight::NLMISC_DECLARE_CLASS CPSFanLight   ) 
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSParticle::notifyOwnerMaxNumFacesChanged void   )  const [inline, protected, inherited]
+
+ + + + + +
+   + + +

+Shortcut to notify that the max number of faces has changed This must be called when a geometric property of the particle has been modified This needn't to be called during CPSParticle::resize overrides +

+Definition at line 151 of file ps_particle_basic.h. +

+References NL3D::CPSLocated::notifyMaxNumFacesChanged(). +

+Referenced by setNbFans(), NL3D::CPSShockWave::setNbSegs(), and NL3D::CPSConstraintMesh::update(). +

+

00152         {
+00153                 if (_Owner)
+00154                 {
+00155                         _Owner->notifyMaxNumFacesChanged();
+00156                 }
+00157         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocatedBindable::notifyTargetRemoved CPSLocated ptr  )  [virtual, inherited]
+
+ + + + + +
+   + + +

+*************************************************************************************** +

+Can be used by located bindable that have located as targets (emitter, collision zone, forces) to be notified that one of their target has been removed. To do this : The object that focus the target must call registerDTorObserver on the target, with himself as a parameter When the target is removed, this target will call this method for all registered CPSLocated The default behaviour remove this object as an observer

+

See also:
CPSLocated::registerDTorObserver()
+ +

+Reimplemented in NL3D::CPSEmitter, and NL3D::CPSTargetLocatedBindable. +

+Definition at line 1996 of file ps_located.cpp. +

+References NL3D::CPSLocated::unregisterDtorObserver(). +

+Referenced by NL3D::CPSLocated::releaseRefTo(). +

+

01997 {
+01998         ptr->unregisterDtorObserver(this);
+01999 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CPSLocatedBindable::releaseAllRef  )  [virtual, inherited]
+
+ + + + + +
+   + + +

+*************************************************************************************** +

+Release any reference this obj may have to other process of the system For example, this is used when detaching a located bindable from a system. +

+Reimplemented in NL3D::CPSEmitter, NL3D::CPSLight, NL3D::CPSTargetLocatedBindable, and NL3D::CPSMesh. +

+Definition at line 2170 of file ps_located.cpp. +

+Referenced by NL3D::CPSLocatedBindable::setOwner(). +

+

02171 {
+02172 }
+
+

+ + + + +
+ + + + + + + + + + +
virtual void NL3D::CPSLocatedBindable::releaseRefTo const CParticleSystemProcess other  )  [inline, virtual, inherited]
+
+ + + + + +
+   + + +

+Release any reference this obj may have on the given process. For example, this is used when detaching a located bindable from a system. +

+Reimplemented in NL3D::CPSEmitter, and NL3D::CPSTargetLocatedBindable. +

+Definition at line 871 of file ps_located.h. +

+

00871 {}
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSFanLight::resize uint32  size  )  [protected, virtual]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Implements NL3D::CPSParticle. +

+Definition at line 432 of file ps_fan_light.cpp. +

+References nlassert, NL3D::CPSRotated2DParticle::resizeAngle2D(), NL3D::CPSColoredParticle::resizeColor(), NL3D::CPSSizedParticle::resizeSize(), size, and uint32. +

+Referenced by setNbFans(). +

+

00433 {       
+00434         nlassert(size < (1 << 16));
+00435         resizeColor(size);
+00436         resizeAngle2D(size);
+00437         resizeSize(size);
+00438         
+00439 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSRotated2DParticle::resizeAngle2D uint32  size  )  [inline, protected, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 384 of file ps_particle_basic.h. +

+References NL3D::CPSRotated2DParticle::_Angle2DScheme, NL3D::CPSRotated2DParticle::getAngle2DOwner(), NL3D::CPSAttribMaker< float >::hasMemory(), nlassert, NL3D::CPSAttribMaker< float >::resize(), size, and uint32. +

+Referenced by NL3D::CPSShockWave::resize(), NL3D::CPSMesh::resize(), resize(), and NL3D::CPSFaceLookAt::resize(). +

+

00385                 {
+00386                         nlassert(size < (1 << 16));
+00387                         if (_Angle2DScheme && _Angle2DScheme->hasMemory()) _Angle2DScheme->resize(size, getAngle2DOwner()->getSize());
+00388                 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSColoredParticle::resizeColor uint32  size  )  [inline, protected, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 241 of file ps_particle_basic.h. +

+References NL3D::CPSColoredParticle::getColorOwner(), NL3D::CPSAttribMaker< CRGBA >::hasMemory(), nlassert, NL3D::CPSAttribMaker< CRGBA >::resize(), size, and uint32. +

+Referenced by NL3D::CPSTailDot::resize(), NL3D::CPSShockWave::resize(), NL3D::CPSRibbonLookAt::resize(), NL3D::CPSRibbon::resize(), NL3D::CPSQuad::resize(), NL3D::CPSConstraintMesh::resize(), resize(), and NL3D::CPSDot::resize(). +

+

00242                 {
+00243                         nlassert(size < (1 << 16));
+00244                         if (_ColorScheme && _ColorScheme->hasMemory()) _ColorScheme->resize(size, getColorOwner()->getSize());
+00245                 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSSizedParticle::resizeSize uint32  size  )  [inline, protected, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 299 of file ps_particle_basic.h. +

+References NL3D::CPSSizedParticle::_SizeScheme, NL3D::CPSSizedParticle::getSize(), NL3D::CPSSizedParticle::getSizeOwner(), NL3D::CPSAttribMaker< float >::hasMemory(), nlassert, NL3D::CPSAttribMaker< float >::resize(), size, and uint32. +

+Referenced by NL3D::CPSShockWave::resize(), NL3D::CPSRibbonLookAt::resize(), NL3D::CPSRibbon::resize(), NL3D::CPSQuad::resize(), NL3D::CPSConstraintMesh::resize(), NL3D::CPSMesh::resize(), and resize(). +

+

00300                 {
+00301                         nlassert(size < (1 << 16));
+00302                         if (_SizeScheme && _SizeScheme->hasMemory()) _SizeScheme->resize(size, getSizeOwner()->getSize());
+00303                 }
+
+

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

+==================================================================================== +

+ +

+Reimplemented from NL3D::CPSParticle. +

+Definition at line 370 of file ps_fan_light.cpp. +

+References sint. +

+

00371 {
+00372         sint ver = f.serialVersion(2);
+00373         CPSParticle::serial(f);
+00374         CPSColoredParticle::serialColorScheme(f);       
+00375         CPSSizedParticle::serialSizeScheme(f);  
+00376         CPSRotated2DParticle::serialAngle2DScheme(f);
+00377         f.serial(_NbFans);
+00378         serialMaterial(f);
+00379         if (ver > 1)
+00380         {
+00381                 f.serial(_PhaseSmoothness, _MoveIntensity);
+00382                 ITexture *tex = _Tex;
+00383                 f.serialPolyPtr(tex);
+00384                 if (f.isReading()) _Tex = tex ;
+00385         }
+00386         if (f.isReading())
+00387         {
+00388                 init();         
+00389         }       
+00390 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSRotated2DParticle::serialAngle2DScheme NLMISC::IStream f  )  throw (NLMISC::EStream) [inherited]
+
+ + + + + +
+   + + +

+=================================================================================== +

+ +

+Definition at line 270 of file ps_particle_basic.cpp. +

+Referenced by NL3D::CPSRibbon::serial(). +

+

00271 {
+00272         f.serialVersion(1);     
+00273         if (f.isReading())
+00274         {
+00275                 if (_Angle2DScheme)
+00276                 {
+00277                         delete _Angle2DScheme;
+00278                         _Angle2DScheme = NULL;
+00279                 }
+00280         }
+00281         bool useAngle2DScheme = _Angle2DScheme != NULL;
+00282         f.serial(useAngle2DScheme);
+00283         if (useAngle2DScheme)
+00284         {
+00285                 f.serialPolyPtr(_Angle2DScheme);
+00286         }
+00287         else
+00288         {               
+00289                 f.serial(_Angle2D);
+00290         }       
+00291 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSColoredParticle::serialColorScheme NLMISC::IStream f  )  throw (NLMISC::EStream) [inherited]
+
+ + + + + +
+   + + +

+serialization. +

+ +

+Definition at line 155 of file ps_particle_basic.cpp. +

+

00156 {       
+00157         f.serialVersion(1);     
+00158         if (f.isReading())
+00159         {
+00160                 if (_ColorScheme)
+00161                 {
+00162                         delete _ColorScheme;
+00163                         _ColorScheme = NULL;
+00164                 }
+00165         }
+00166         bool useColorScheme = _ColorScheme != NULL;
+00167         f.serial(useColorScheme);
+00168         if (useColorScheme)
+00169         {
+00170                 f.serialPolyPtr(_ColorScheme);
+00171         }
+00172         else
+00173         {
+00174                 f.serial(_Color);
+00175         }
+00176 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSMaterial::serialMaterial NLMISC::IStream f  )  throw (NLMISC::EStream) [inherited]
+
+ + + + + +
+   + + +

+=================================================================================== +

+ +

+Definition at line 493 of file ps_particle_basic.cpp. +

+References sint. +

+

00494 {
+00495         sint ver = f.serialVersion(2);  
+00496         TBlendingMode m = getBlendingMode();
+00497         f.serialEnum(m);
+00498         setBlendingMode(m);     
+00499         if (ver >= 2)
+00500         {       
+00501                 bool zTest = isZTestEnabled();
+00502                 f.serial(zTest);
+00503                 enableZTest(zTest);
+00504         }
+00505 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSSizedParticle::serialSizeScheme NLMISC::IStream f  )  throw (NLMISC::EStream) [inherited]
+
+ + + + + +
+   + + +

+serialization. We choose a different name because of multiple-inheritance +

+ +

+Definition at line 211 of file ps_particle_basic.cpp. +

+

00212 {
+00213         f.serialVersion(1);     
+00214         if (f.isReading())
+00215         {
+00216                 if (_SizeScheme)
+00217                 {
+00218                         delete _SizeScheme;
+00219                         _SizeScheme = NULL;
+00220                 }
+00221         }
+00222         bool useSizeScheme = _SizeScheme != NULL;
+00223         f.serial(useSizeScheme);
+00224         if (useSizeScheme)
+00225         {               
+00226                 f.serialPolyPtr(_SizeScheme);
+00227         }
+00228         else
+00229         {
+00230                 f.serial(_ParticleSize);
+00231         }       
+00232 };
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocatedBindable::setActive bool  active  )  [inline, inherited]
+
+ + + + + +
+   + + +

+Activate / Deactivate this object. When not active, the owning system won't try to call the 'step' method. +

+ +

+Definition at line 843 of file ps_located.h. +

+References NL3D::CPSLocatedBindable::_Active. +

+Referenced by NL3D::CParticleSystem::activateEmitters(), and NL3D::CParticleSystemInstanceUser::setActive(). +

+

00843 { _Active = active; }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSRotated2DParticle::setAngle2D float  angle  )  [inherited]
+
+ + + + + +
+   + + +

+=================================================================================== +

+Set a constant angle for the particle. Angles range from 0.0f to 256.0f (2 pi) This discrad any previous scheme

See also:
setAngle2DScheme()
+ +

+Definition at line 251 of file ps_particle_basic.cpp. +

+References NL3D::CPSRotated2DParticle::_Angle2D, and NL3D::CPSRotated2DParticle::_Angle2DScheme. +

+

00252 {       
+00253         delete _Angle2DScheme;
+00254         _Angle2DScheme = NULL;  
+00255         _Angle2D = angle2DScheme;
+00256 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSRotated2DParticle::setAngle2DScheme CPSAttribMaker< float > *  scheme  )  [inherited]
+
+ + + + + +
+   + + +

+=================================================================================== +

+Set an attribute maker that produce a float It must have been allocated by new It will be deleted by this object Output angles must range from 0.0f to 256.0f +

+Definition at line 242 of file ps_particle_basic.cpp. +

+References NL3D::CPSRotated2DParticle::_Angle2DScheme, NL3D::CPSRotated2DParticle::getAngle2DOwner(), nlassert, and NL3D::CPSAttribMaker< T >::resize(). +

+

00243 {
+00244         nlassert(angle2DScheme);
+00245         delete _Angle2DScheme;  
+00246         _Angle2DScheme = angle2DScheme;
+00247         if (getAngle2DOwner() && angle2DScheme->hasMemory()) angle2DScheme->resize(getAngle2DOwner()->getMaxSize(), getAngle2DOwner()->getSize());
+00248 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSMaterial::setBlendingMode CPSMaterial::TBlendingMode  mode  )  [inherited]
+
+ + + + + +
+   + + +

+=================================================================================== +

+ +

+Definition at line 520 of file ps_particle_basic.cpp. +

+References NL3D::CPSMaterial::alphaBlend, NL3D::CPSMaterial::alphaTest, NL3D::CMaterial::setAlphaTest(), NL3D::CMaterial::setBlend(), NL3D::CMaterial::setBlendFunc(), and NL3D::CMaterial::setZWrite(). +

+

00521 {
+00522         switch (mode)
+00523         {               
+00524                 case add:
+00525                         _Mat.setBlend(true);
+00526                         _Mat.setBlendFunc(CMaterial::one, CMaterial::one);
+00527                         _Mat.setZWrite(false);
+00528                         _Mat.setAlphaTest(false);
+00529                 break;
+00530                 case modulate:
+00531                         _Mat.setBlend(true);
+00532                         _Mat.setBlendFunc(CMaterial::zero, CMaterial::srccolor);
+00533                         _Mat.setZWrite(false);
+00534                         _Mat.setAlphaTest(false);
+00535                 break;
+00536                 case alphaBlend:
+00537                         _Mat.setBlend(true);
+00538                         _Mat.setBlendFunc(CMaterial::srcalpha, CMaterial::invsrcalpha);
+00539                         _Mat.setZWrite(false);
+00540                         _Mat.setAlphaTest(false);
+00541                 break;
+00542                 case alphaTest:
+00543                         _Mat.setBlend(false);
+00544                         _Mat.setZWrite(true);
+00545                         _Mat.setAlphaTest(true);
+00546                 break;
+00547         }
+00548 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSColoredParticle::setColor NLMISC::CRGBA  col  )  [inherited]
+
+ + + + + +
+   + + +

+Set a constant color for the particles. remove any previous scheme. +

+ +

+Definition at line 135 of file ps_particle_basic.cpp. +

+References NL3D::CPSColoredParticle::updateMatAndVbForColor(). +

+

00136 {       
+00137         delete _ColorScheme;
+00138         _ColorScheme = NULL;
+00139         _Color = col;
+00140         updateMatAndVbForColor();
+00141 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSColoredParticle::setColorScheme CPSAttribMaker< CRGBA > *  col  )  [inherited]
+
+ + + + + +
+   + + +

+Set an attribute maker that produce a color It must have been allocated by new It will be deleted by this object +

+Definition at line 125 of file ps_particle_basic.cpp. +

+References NL3D::CPSColoredParticle::getColorOwner(), nlassert, NL3D::CPSAttribMaker< T >::resize(), and NL3D::CPSColoredParticle::updateMatAndVbForColor(). +

+

00126 {       
+00127         nlassert(col);
+00128         delete _ColorScheme;            
+00129         _ColorScheme = col;
+00130         if (getColorOwner() && col->hasMemory()) col->resize(getColorOwner()->getMaxSize(), getColorOwner()->getSize());
+00131         updateMatAndVbForColor();
+00132 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocatedBindable::setExternID uint32  id  )  [inherited]
+
+ + + + + +
+   + + +

+*************************************************************************************** +

+set the extern ID of this located bindable. 0 means no extern access. The map of ID-locatedBindable. Is in th particle system, so this located bindable must have been attached to a particle system, otherwise an assertion is raised +

+Definition at line 2149 of file ps_located.cpp. +

+References NL3D::CPSLocatedBindable::_ExternID, NL3D::CParticleSystemProcess::getOwner(), NL3D::CParticleSystem::registerLocatedBindableExternID(), uint32, and NL3D::CParticleSystem::unregisterLocatedBindableExternID(). +

+

02150 {
+02151         if (id == _ExternID) return;
+02152         CParticleSystem *ps = NULL;
+02153         if (_Owner && _Owner->getOwner())
+02154         {
+02155                 ps = _Owner->getOwner();
+02156         }       
+02157         if (ps) 
+02158         {
+02159                 ps->unregisterLocatedBindableExternID(this);
+02160                 _ExternID = 0;          
+02161         }
+02162         if (id != 0)
+02163         {       
+02164                 if (ps) ps->registerLocatedBindableExternID(id, this);
+02165                 _ExternID = id;
+02166         }       
+02167 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocatedBindable::setLOD TPSLod  lod  )  [inline, inherited]
+
+ + + + + +
+   + + +

+set the LODs that apply to that object (warning : it is based on the position of the system, and don't act on a per instance basis ...) To have per instance precision, you must use an attribute maker that has LOD as its input +

+Definition at line 952 of file ps_located.h. +

+References NL3D::CPSLocatedBindable::_LOD. +

+

00952 { _LOD = lod; }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSFanLight::setMoveIntensity float  intensity  )  [inline]
+
+ + + + + +
+   + + +

+set the intensity of fan movement. Default is 1.5 +

+ +

+Definition at line 79 of file ps_fan_light.h. +

+References _MoveIntensity. +

+

00079 { _MoveIntensity = intensity; }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocatedBindable::setName const std::string &  name  )  [inline, inherited]
+
+ + + + + +
+   + + +

+set the located bindable name (edition purpose) +

+ +

+Definition at line 946 of file ps_located.h. +

+

00946 { _Name = name; }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSFanLight::setNbFans uint32  nbFans  ) 
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Definition at line 422 of file ps_fan_light.cpp. +

+References _NbFans, NL3D::CPSLocated::getMaxSize(), NL3D::CPSParticle::notifyOwnerMaxNumFacesChanged(), resize(), and uint32. +

+

00423 {
+00424         _NbFans = nbFans;
+00425 
+00426         resize(_Owner->getMaxSize());
+00427 
+00428         notifyOwnerMaxNumFacesChanged();
+00429 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocatedBindable::setOwner CPSLocated psl  )  [protected, virtual, inherited]
+
+ + + + + +
+   + + +

+*************************************************************************************** +

+ +

+Reimplemented in NL3D::CPSEmitter. +

+Definition at line 1948 of file ps_located.cpp. +

+References NL3D::CParticleSystem::addRefForUserSysCoordInfo(), NL3D::CPSLocatedBindable::deleteElement(), NL3D::CParticleSystemProcess::getOwner(), NL3D::CPSLocated::getSize(), NL3D::CPSLocatedBindable::getUserMatrixUsageCount(), NL3D::CPSLocatedBindable::releaseAllRef(), NL3D::CParticleSystem::releaseRefForUserSysCoordInfo(), and uint. +

+Referenced by NL3D::CPSLocated::bind(), and NL3D::CPSLocated::unbind(). +

+

01949 { 
+01950         if (psl == _Owner) return;
+01951         if (psl == NULL)
+01952         {
+01953                 releaseAllRef();
+01954                 if (_Owner)
+01955                 {
+01956                         // empty this located bindable. Need to be empty if it must be rebound to another located.
+01957                         for (uint k = 0; k < _Owner->getSize(); ++k)
+01958                         {
+01959                                 deleteElement(0);
+01960                         }
+01961                 }                               
+01962         }       
+01963         if (_Owner && _Owner->getOwner())
+01964         {
+01965                 _Owner->getOwner()->releaseRefForUserSysCoordInfo(getUserMatrixUsageCount());
+01966         }
+01967         _Owner = psl;
+01968         if (_Owner && _Owner->getOwner())
+01969         {
+01970                 _Owner->getOwner()->addRefForUserSysCoordInfo(getUserMatrixUsageCount());
+01971         } 
+01972 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSFanLight::setPhaseSmoothness uint32  smoothNess  )  [inline]
+
+ + + + + +
+   + + +

+Set the smoothness of phases. The default is 0 which means no smoothness. n mean that the phase will be linearly interpolated between each n + 1 fans It ranges from 0 to 31 +

+Definition at line 69 of file ps_fan_light.h. +

+References _PhaseSmoothness, nlassert, and uint32. +

+

00070         { 
+00071                 nlassert(smoothNess < 32);
+00072                 _PhaseSmoothness = smoothNess; 
+00073         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSFanLight::setPhaseSpeed float  multiplier  ) 
+
+ + + + + +
+   + + +

+==================================================================================== +

+Set the speed for phase If the located holding this particle as a limited lifetime, it gives how many 0-2Pi cycle it'll do during its life Otherwise it gives how many cycle there are in a second +

+Definition at line 280 of file ps_fan_light.cpp. +

+References _PhaseSpeed. +

+

00281 {
+00282         _PhaseSpeed = 256.0f * multiplier;
+00283 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSSizedParticle::setSize float  size  )  [inherited]
+
+ + + + + +
+   + + +

+Set a constant size for the particles. +

+ +

+Definition at line 192 of file ps_particle_basic.cpp. +

+References NL3D::CPSSizedParticle::_ParticleSize, NL3D::CPSSizedParticle::_SizeScheme, and size. +

+

00193 {       
+00194         delete _SizeScheme;
+00195         _SizeScheme = NULL;     
+00196         _ParticleSize = size;
+00197 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSSizedParticle::setSizeScheme CPSAttribMaker< float > *  size  )  [inherited]
+
+ + + + + +
+   + + +

+Set an attribute maker that produce a size It must have been allocated by new It will be deleted by this object +

+Definition at line 183 of file ps_particle_basic.cpp. +

+References NL3D::CPSSizedParticle::_SizeScheme, NL3D::CPSSizedParticle::getSize(), NL3D::CPSSizedParticle::getSizeOwner(), nlassert, and size. +

+

00184 {       
+00185         nlassert(size != NULL);
+00186         delete _SizeScheme;     
+00187         _SizeScheme = size;
+00188         if (getSizeOwner() && size->hasMemory()) size->resize(getSizeOwner()->getMaxSize(), getSizeOwner()->getSize());
+00189 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSFanLight::setTexture CSmartPtr< ITexture tex  )  [inline, virtual]
+
+ + + + + +
+   + + +

+Set a texture. NULL remove it. +

+ +

+Implements NL3D::CPSTexturedParticleNoAnim. +

+Definition at line 117 of file ps_fan_light.h. +

+

00118         {
+00119                 _Tex = tex;             
+00120         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocatedBindable::setupDriverModelMatrix void   )  [inherited]
+
+ + + + + +
+   + + +

+shortcut to setup the model matrix (system basis or world basis) +

+ +

+Definition at line 2142 of file ps_located.cpp. +

+References nlassert, and NL3D::CPSLocated::setupDriverModelMatrix(). +

+Referenced by NL3D::CPSLocatedBindable::displayIcon2d(), NL3D::CPSTailDot::displayRibbons(), NL3D::CPSRibbonLookAt::displayRibbons(), NL3D::CPSRibbon::displayRibbons(), NL3D::CPSDot::draw(), NL3D::CPSFaceHelper::drawFaces(), NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSFaceLookAtHelper::drawLookAt(), NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(), NL3D::CPSConstraintMeshHelper::drawMeshs(), NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs(), NL3D::CPSZoneRectangle::show(), NL3D::CPSZoneCylinder::show(), NL3D::CPSZoneDisc::show(), NL3D::CPSZoneSphere::show(), NL3D::CPSZonePlane::show(), NL3D::CPSCylindricVortex::show(), NL3D::CPSDirectionnalForce::show(), NL3D::CPSSphericalEmitter::showTool(), NL3D::CPSEmitterRectangle::showTool(), and NL3D::CPSEmitter::showTool(). +

+

02143 {
+02144         nlassert(_Owner);
+02145         _Owner->setupDriverModelMatrix();
+02146 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CPSFanLight::setupMaterial  )  [inline, private]
+
+ + + + + +
+   + + +

+==================================================================================== +

+update material color +

+Definition at line 286 of file ps_fan_light.cpp. +

+References NL3D::CPSMaterial::forceTexturedMaterialStages(), NL3D::CParticleSystem::getColorAttenuationScheme(), NL3D::CParticleSystem::getForceGlobalColorLightingFlag(), NL3D::CParticleSystem::getGlobalColor(), NL3D::CParticleSystem::getGlobalColorLighted(), NL3D::CParticleSystemProcess::getOwner(), NL3D::CParticleSystem::isUserColorUsed(), NLMISC::CRGBA::modulateFromColor(), NL3D::CMaterial::setTexture(), NL3D::SetupModulatedStage(), NL3D::CMaterial::texConstantColor(), and NL3D::CPSParticle::usesGlobalColorLighting(). +

+Referenced by draw(). +

+

00287 {
+00288         CParticleSystem &ps = *(_Owner->getOwner());
+00290         if (_Tex == NULL)
+00291         {                               
+00292                 forceTexturedMaterialStages(1);
+00293                 SetupModulatedStage(_Mat, 0, CMaterial::Diffuse, CMaterial::Constant);
+00294         }
+00295         else
+00296         {
+00297                 _Mat.setTexture(0, _Tex);
+00298                 forceTexturedMaterialStages(2);                         
+00299                 SetupModulatedStage(_Mat, 0, CMaterial::Texture, CMaterial::Constant);
+00300                 SetupModulatedStage(_Mat, 1, CMaterial::Diffuse, CMaterial::Previous);          
+00301         }
+00302         
+00303         // always setup global colors                                   
+00304         if (_ColorScheme)
+00305         {
+00306                 if (ps.getForceGlobalColorLightingFlag() || usesGlobalColorLighting())
+00307                 {               
+00308                         _Mat.texConstantColor(0, ps.getGlobalColorLighted());
+00309                 }
+00310                 else
+00311                 {
+00312                         _Mat.texConstantColor(0, ps.getGlobalColor());
+00313                 }               
+00314         }
+00315         else
+00316         {
+00317                 NLMISC::CRGBA col;              
+00318                 if (ps.getForceGlobalColorLightingFlag() || usesGlobalColorLighting())
+00319                 {               
+00320                         col.modulateFromColor(ps.getGlobalColorLighted(), _Color);
+00321                 }
+00322                 else if (ps.getColorAttenuationScheme() != NULL || ps.isUserColorUsed())
+00323                 {
+00324                         col.modulateFromColor(ps.getGlobalColor(), _Color);                     
+00325                 }
+00326                 else
+00327                 {
+00328                         col = _Color;                   
+00329                 }
+00330                 _Mat.texConstantColor(0, col);
+00331         }       
+00332 }
+
+

+ + + + +
+ + + + + + + + + + +
virtual void NL3D::CPSFanLight::setZBias float  value  )  [inline, virtual]
+
+ + + + + +
+   + + +

+ +

+Implements NL3D::CPSParticle. +

+Definition at line 141 of file ps_fan_light.h. +

+References value. +

+

00141 { CPSMaterial::setZBias(value); }       
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CPSParticle::showTool  )  [virtual, inherited]
+
+ + + + + +
+   + + +

+draw the particles for edition mode. The default behaviour just draw a wireframe model +

+ +

+Definition at line 55 of file ps_particle_basic.cpp. +

+References NL3D::CPSLocatedBindable::displayIcon2d(), PARTICLES_CHECK_MEM, and uint. +

+Referenced by NL3D::CPSParticle::step(), NL3D::CPSConstraintMesh::step(), NL3D::CPSMesh::step(), and NL3D::CPSFace::step(). +

+

00056 {
+00057         PARTICLES_CHECK_MEM;
+00058 
+00059         CVector I = CVector::I;
+00060         CVector J = CVector::J;
+00061 
+00062         const CVector tab[] = { 2 * J, I + J
+00063                                                         , I + J, 2 * I + J
+00064                                                         , 2 * I + J, I
+00065                                                         , I,  2 * I - J
+00066                                                         , 2 * I - J, - .5f * J
+00067                                                         , - .5f * J, -2 * I - J
+00068                                                         , -2 * I - J, - I
+00069                                                         , - I, -2 * I + J
+00070                                                         , -2 * I + J, - I + J
+00071                                                         , - I + J, 2 * J
+00072                                                 };
+00073         const uint tabSize = sizeof(tab) / (2 * sizeof(CVector));
+00074 
+00075         const float sSize = 0.1f;
+00076         displayIcon2d(tab, tabSize, sSize);
+00077 
+00078         PARTICLES_CHECK_MEM;
+00079 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void NL3D::CPSParticle::step TPSProcessPass  pass,
TAnimationTime  ellapsedTime,
TAnimationTime  realEt
[inline, virtual, inherited]
+
+ + + + + +
+   + + +

+process one pass for the particles. The default behaviour shows the particles +

+Implements NL3D::CPSLocatedBindable. +

+Reimplemented in NL3D::CPSFace, NL3D::CPSMesh, NL3D::CPSConstraintMesh, NL3D::CPSRibbon, NL3D::CPSRibbonLookAt, and NL3D::CPSTailDot. +

+Definition at line 74 of file ps_particle_basic.h. +

+References NL3D::CPSParticle::draw(), NL3D::CPSParticle::hasOpaqueFaces(), NL3D::CPSParticle::hasTransparentFaces(), NL3D::PSBlendRender, NL3D::PSSolidRender, NL3D::PSToolRender, NL3D::CPSParticle::showTool(), and NL3D::TAnimationTime. +

+

00075         {
+00076                 if (
+00077                         (pass == PSBlendRender && hasTransparentFaces())
+00078                         || (pass == PSSolidRender && hasOpaqueFaces())
+00079                         )
+00080                 {
+00081                         draw(pass == PSSolidRender);
+00082                 }
+00083                 else 
+00084                 if (pass == PSToolRender) // edition mode only
+00085                 {                       
+00086                         showTool();
+00087                 }
+00088         }
+
+

+ + + + +
+ + + + + + + + + +
virtual bool NL3D::CPSFanLight::supportGlobalColorLighting  )  const [inline, virtual]
+
+ + + + + +
+   + + +

+ +

+Implements NL3D::CPSParticle. +

+Definition at line 136 of file ps_fan_light.h. +

+

00136 { return true; }
+
+

+ + + + +
+ + + + + + + + + +
virtual void NL3D::CPSLocatedBindable::systemDateChanged  )  [inline, virtual, inherited]
+
+ + + + + +
+   + + +

+PRIVATE USE : called by the system when its date has been manually changed. This his usually for object that expect time to be always increasing, so that they can reset their datas +

+Reimplemented in NL3D::CPSRibbonBase. +

+Definition at line 1038 of file ps_located.h. +

+

01038 {}
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSFanLight::updateMatAndVbForColor void   )  [virtual]
+
+ + + + + +
+   + + +

+==================================================================================== +

+ +

+Implements NL3D::CPSColoredParticle. +

+Definition at line 453 of file ps_fan_light.cpp. +

+Referenced by init(). +

+

00454 {       
+00455         //touch();
+00456 }
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CPSParticle::usesGlobalColorLighting  )  [inline, inherited]
+
+ + + + + +
+   + + +

+Returns true if the object can use global lighting color. (example : 'lookat' particle do not have normals, so they use global lighting color instead +

+Definition at line 103 of file ps_particle_basic.h. +

+References NL3D::CPSParticle::_UsesGlobalColorLighting. +

+Referenced by NL3D::CPSTailDot::displayRibbons(), NL3D::CPSRibbonLookAt::displayRibbons(), NL3D::CPSRibbon::displayRibbons(), NL3D::CPSShockWave::draw(), NL3D::CPSDot::draw(), NL3D::CPSTailDot::setupGlobalColor(), setupMaterial(), NL3D::CPSRibbon::setupTexturedGlobalColor(), NL3D::CPSRibbon::setupUntexturedGlobalColor(), NL3D::CPSTailDot::step(), NL3D::CPSRibbonLookAt::step(), NL3D::CPSRibbon::step(), NL3D::CPSQuad::updateMatBeforeRendering(), NL3D::CPSTailDot::updateMaterial(), NL3D::CPSRibbon::updateTexturedMaterial(), and NL3D::CPSRibbon::updateUntexturedMaterial(). +

+

00103 { return _UsesGlobalColorLighting; }
+
+


Friends And Related Function Documentation

+

+ + + + +
+ + +
friend class CPSFanLightHelper [friend] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 151 of file ps_fan_light.h.

+

+ + + + +
+ + +
friend class CPSLocated [friend, inherited] +
+
+ + + + + +
+   + + +

+ +

+Reimplemented in NL3D::CPSForce. +

+Definition at line 986 of file ps_located.h.

+


Field Documentation

+

+ + + + +
+ + +
bool NL3D::CPSLocatedBindable::_Active [protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1033 of file ps_located.h. +

+Referenced by NL3D::CPSLocatedBindable::isActive(), and NL3D::CPSLocatedBindable::setActive().

+

+ + + + +
+ + +
float NL3D::CPSRotated2DParticle::_Angle2D [protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 367 of file ps_particle_basic.h. +

+Referenced by NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSFaceLookAtHelper::drawLookAt(), NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(), NL3D::CPSRotated2DParticle::getAngle2D(), and NL3D::CPSRotated2DParticle::setAngle2D().

+

+ + + + +
+ + +
CPSAttribMaker<float>* NL3D::CPSRotated2DParticle::_Angle2DScheme [protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 368 of file ps_particle_basic.h. +

+Referenced by NL3D::CPSRotated2DParticle::deleteAngle2DElement(), NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSFaceLookAtHelper::drawLookAt(), NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(), NL3D::CPSRotated2DParticle::getAngle2DScheme(), NL3D::CPSRotated2DParticle::newAngle2DElement(), NL3D::CPSRotated2DParticle::resizeAngle2D(), NL3D::CPSRotated2DParticle::setAngle2D(), NL3D::CPSRotated2DParticle::setAngle2DScheme(), and NL3D::CPSRotated2DParticle::~CPSRotated2DParticle().

+

+ + + + +
+ + +
CRGBA NL3D::CPSColoredParticle::_Color [protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 226 of file ps_particle_basic.h.

+

+ + + + +
+ + +
CPSFanLight::TVBMap NL3D::CPSFanLight::_ColoredTexVBMap [static, private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 53 of file ps_fan_light.cpp. +

+Referenced by getVBnIB().

+

+ + + + +
+ + +
CPSFanLight::TVBMap NL3D::CPSFanLight::_ColoredVBMap [static, private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 52 of file ps_fan_light.cpp. +

+Referenced by getVBnIB().

+

+ + + + +
+ + +
CPSAttribMaker<CRGBA>* NL3D::CPSColoredParticle::_ColorScheme [protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 228 of file ps_particle_basic.h. +

+Referenced by NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSConstraintMeshHelper::drawMeshs(), and NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs().

+

+ + + + +
+ + +
uint32 NL3D::CPSLocatedBindable::_ExternID [protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1027 of file ps_located.h. +

+Referenced by NL3D::CPSLocatedBindable::getExternID(), NL3D::CPSLocatedBindable::setExternID(), and NL3D::CPSLocatedBindable::~CPSLocatedBindable().

+

+ + + + +
+ + +
CPSFanLight::TIBMap NL3D::CPSFanLight::_IBMap [static, private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 54 of file ps_fan_light.cpp. +

+Referenced by getVBnIB().

+

+ + + + +
+ + +
bool NL3D::CPSRotated2DParticle::_InitializedRotTab = false [static, protected, inherited] +
+
+ + + + + +
+   + + +

+it is true if the table has been initialized, for debug purposes +

+ +

+Definition at line 239 of file ps_particle_basic.cpp. +

+Referenced by NL3D::CPSRotated2DParticle::getRotTable(), and NL3D::CPSRotated2DParticle::initRotTable().

+

+ + + + +
+ + +
TPSLod NL3D::CPSLocatedBindable::_LOD [protected, inherited] +
+
+ + + + + +
+   + + +

+tells when this object must be dealt with +

+ +

+Definition at line 1029 of file ps_located.h. +

+Referenced by NL3D::CPSLocatedBindable::getLOD(), and NL3D::CPSLocatedBindable::setLOD().

+

+ + + + +
+ + +
CMaterial NL3D::CPSMaterial::_Mat [protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 844 of file ps_particle_basic.h. +

+Referenced by NL3D::CPSFaceHelper::drawFaces(), NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSFaceLookAtHelper::drawLookAt(), and NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion().

+

+ + + + +
+ + +
float NL3D::CPSFanLight::_MoveIntensity [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 158 of file ps_fan_light.h. +

+Referenced by NL3D::CPSFanLightHelper::drawFanLight(), getMoveIntensity(), and setMoveIntensity().

+

+ + + + +
+ + +
std::string NL3D::CPSLocatedBindable::_Name [protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1031 of file ps_located.h.

+

+ + + + +
+ + +
uint32 NL3D::CPSFanLight::_NbFans [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 156 of file ps_fan_light.h. +

+Referenced by NL3D::CPSFanLightHelper::drawFanLight(), getMaxNumFaces(), getNbFans(), getNumFanlightsInVB(), getVBnIB(), and setNbFans().

+

+ + + + +
+ + +
CPSLocated* NL3D::CPSLocatedBindable::_Owner [protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1026 of file ps_located.h. +

+Referenced by NL3D::CPSFaceHelper::drawFaces(), NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSFaceLookAtHelper::drawLookAt(), NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(), NL3D::CPSConstraintMeshHelper::drawMeshs(), and NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs().

+

+ + + + +
+ + +
float NL3D::CPSSizedParticle::_ParticleSize [protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 289 of file ps_particle_basic.h. +

+Referenced by NL3D::CPSFaceHelper::drawFaces(), NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSFaceLookAtHelper::drawLookAt(), NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(), NL3D::CPSConstraintMeshHelper::drawMeshs(), NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs(), NL3D::CPSSizedParticle::getSize(), and NL3D::CPSSizedParticle::setSize().

+

+ + + + +
+ + +
uint32 NL3D::CPSFanLight::_PhaseSmoothness [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 157 of file ps_fan_light.h. +

+Referenced by NL3D::CPSFanLightHelper::drawFanLight(), getPhaseSmoothness(), and setPhaseSmoothness().

+

+ + + + +
+ + +
float NL3D::CPSFanLight::_PhaseSpeed [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 160 of file ps_fan_light.h. +

+Referenced by NL3D::CPSFanLightHelper::drawFanLight(), getPhaseSpeed(), and setPhaseSpeed().

+

+ + + + +
+ + +
uint8 NL3D::CPSFanLight::_RandomPhaseTab [static, private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 47 of file ps_fan_light.cpp. +

+Referenced by NL3D::CPSFanLightHelper::drawFanLight(), and initFanLightPrecalc().

+

+ + + + +
+ + +
bool NL3D::CPSFanLight::_RandomPhaseTabInitialized = false [static, private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 48 of file ps_fan_light.cpp. +

+Referenced by NL3D::CPSFanLightHelper::drawFanLight(), and initFanLightPrecalc().

+

+ + + + +
+ + +
float NL3D::CPSRotated2DParticle::_RotTable [static, protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 238 of file ps_particle_basic.cpp. +

+Referenced by NL3D::CPSRotated2DParticle::getRotTable(), and NL3D::CPSRotated2DParticle::initRotTable().

+

+ + + + +
+ + +
CPSAttribMaker<float>* NL3D::CPSSizedParticle::_SizeScheme [protected, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 290 of file ps_particle_basic.h. +

+Referenced by NL3D::CPSSizedParticle::deleteSizeElement(), NL3D::CPSFaceHelper::drawFaces(), NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSFaceLookAtHelper::drawLookAt(), NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(), NL3D::CPSConstraintMeshHelper::drawMeshs(), NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs(), NL3D::CPSSizedParticle::getSizeScheme(), NL3D::CPSSizedParticle::newSizeElement(), NL3D::CPSSizedParticle::resizeSize(), NL3D::CPSSizedParticle::setSize(), NL3D::CPSSizedParticle::setSizeScheme(), and NL3D::CPSSizedParticle::~CPSSizedParticle().

+

+ + + + +
+ + +
NLMISC::CSmartPtr<ITexture> NL3D::CPSFanLight::_Tex [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 159 of file ps_fan_light.h.

+

+ + + + +
+ + +
CPSFanLight::TVBMap NL3D::CPSFanLight::_TexVBMap [static, private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 51 of file ps_fan_light.cpp. +

+Referenced by getVBnIB().

+

+ + + + +
+ + +
CPSFanLight::TVBMap NL3D::CPSFanLight::_VBMap [static, private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 50 of file ps_fan_light.cpp. +

+Referenced by getVBnIB().

+


The documentation for this class was generated from the following files: +
Generated on Tue Mar 16 07:13:01 2004 for NeL by + +doxygen +1.3.6
+ + -- cgit v1.2.1