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

NL3D::CPSAttribMakerMemory Class Template Reference

This class is an attribute maker that has memory, all what is does is to duplicate its mem when 'make' is called It own an attribute maker that tells how to produce the attribute from its emiter date, speed and so on ... More...

#include <ps_attrib_maker_helper.h>

Inheritance diagram for NL3D::CPSAttribMakerMemory:

NL3D::CPSAttribMaker NL3D::CPSAttribMakerBase NLMISC::IStreamable NLMISC::IClassable List of all members.

Public Methods

 CPSAttribMakerMemory ()
 \TODO : create a base class for CPSAttribMaker, that don't have the attributes not needed for this class ctor (note : we don't use the nbCycle field ...). More...

void setDefaultValue (T defaultValue)
 set a default value for initialisation, otherwise it will be garbage. More...

getDefaultValue (void) const
 get the default value :. More...

void setScheme (CPSAttribMaker< T > *scheme)
 set the scheme used to store attribute. More...

CPSAttribMaker< T > * getScheme (void)
 get the scheme used. More...

const CPSAttribMaker< T > * getScheme (void) const
 get the scheme used (const version). More...

 CPSAttribMakerMemory (const CPSAttribMakerMemory &src)
 ~CPSAttribMakerMemory ()
 dtor. More...

virtual T get (CPSLocated *loc, uint32 index)
 inherited from CPSAttribMaker. More...

virtual void * make (CPSLocated *loc, uint32 startIndex, void *output, uint32 stride, uint32 numAttrib, bool allowNoCopy=false, uint32 srcStep=(1<< 16)) const
 inherited from CPSAttribMaker. More...

virtual void make4 (CPSLocated *loc, uint32 startIndex, void *tab, uint32 stride, uint32 numAttrib, uint32 srcStep=(1<< 16)) const
 inherited from CPSAttribMaker. More...

virtual void makeN (CPSLocated *loc, uint32 startIndex, void *tab, uint32 stride, uint32 numAttrib, uint32 nbReplicate, uint32 srcStep=(1<< 16)) const
 inherited from CPSAttribMaker. More...

virtual void serial (NLMISC::IStream &f) throw (NLMISC::EStream)
 serialisation of the object. Derivers MUST call this, (if they use the attribute of this class at least). More...

virtual void deleteElement (uint32 index)
 inherited from CPSAttribMaker. More...

virtual void newElement (CPSLocated *emitterLocated, uint32 emitterIndex)
 inherited from CPSAttribMaker. More...

virtual void resize (uint32 capacity, uint32 nbPresentElements)
 well a value may be returned without having to know the emitter (random, user param ...) but this case is really useless anyway ... More...


Protected Attributes

CPSAttrib< T > _T
_DefaultValue
CPSAttribMaker< T > * _Scheme
 this attribute maker tells us how to produce arguments from an emitter. More...


Detailed Description

template<typename T>
class NL3D::CPSAttribMakerMemory< T >

This class is an attribute maker that has memory, all what is does is to duplicate its mem when 'make' is called It own an attribute maker that tells how to produce the attribute from its emiter date, speed and so on ...

Definition at line 1324 of file ps_attrib_maker_helper.h.


Constructor & Destructor Documentation

template<typename T>
NL3D::CPSAttribMakerMemory< T >::CPSAttribMakerMemory   [inline]
 

\TODO : create a base class for CPSAttribMaker, that don't have the attributes not needed for this class ctor (note : we don't use the nbCycle field ...).

Definition at line 1330 of file ps_attrib_maker_helper.h.

Referenced by NL3D::CPSAttribMakerMemory< sint32 >::CPSAttribMakerMemory.

template<typename T>
NL3D::CPSAttribMakerMemory< T >::CPSAttribMakerMemory const CPSAttribMakerMemory< T > &    src [inline]
 

Definition at line 1381 of file ps_attrib_maker_helper.h.

template<typename T>
NL3D::CPSAttribMakerMemory< T >::~CPSAttribMakerMemory   [inline]
 

dtor.

Definition at line 1390 of file ps_attrib_maker_helper.h.


Member Function Documentation

template<typename T>
virtual void NL3D::CPSAttribMakerMemory< T >::deleteElement uint32    index [inline, virtual]
 

inherited from CPSAttribMaker.

Reimplemented from NL3D::CPSAttribMaker.

Definition at line 1558 of file ps_attrib_maker_helper.h.

template<typename T>
virtual T NL3D::CPSAttribMakerMemory< T >::get CPSLocated   loc,
uint32    index
[inline, virtual]
 

inherited from CPSAttribMaker.

Implements NL3D::CPSAttribMaker.

Definition at line 1399 of file ps_attrib_maker_helper.h.

template<typename T>
T NL3D::CPSAttribMakerMemory< T >::getDefaultValue void    const [inline]
 

get the default value :.

Definition at line 1356 of file ps_attrib_maker_helper.h.

template<typename T>
const CPSAttribMaker<T>* NL3D::CPSAttribMakerMemory< T >::getScheme void    const [inline]
 

get the scheme used (const version).

Definition at line 1377 of file ps_attrib_maker_helper.h.

template<typename T>
CPSAttribMaker<T>* NL3D::CPSAttribMakerMemory< T >::getScheme void    [inline]
 

get the scheme used.

Definition at line 1375 of file ps_attrib_maker_helper.h.

template<typename T>
virtual void* NL3D::CPSAttribMakerMemory< T >::make CPSLocated   loc,
uint32    startIndex,
void *    output,
uint32    stride,
uint32    numAttrib,
bool    allowNoCopy = false,
uint32    srcStep = (1 << 16)
const [inline, virtual]
 

inherited from CPSAttribMaker.

Implements NL3D::CPSAttribMaker.

Definition at line 1406 of file ps_attrib_maker_helper.h.

template<typename T>
virtual void NL3D::CPSAttribMakerMemory< T >::make4 CPSLocated   loc,
uint32    startIndex,
void *    tab,
uint32    stride,
uint32    numAttrib,
uint32    srcStep = (1 << 16)
const [inline, virtual]
 

inherited from CPSAttribMaker.

Implements NL3D::CPSAttribMaker.

Definition at line 1452 of file ps_attrib_maker_helper.h.

template<typename T>
virtual void NL3D::CPSAttribMakerMemory< T >::makeN CPSLocated   loc,
uint32    startIndex,
void *    tab,
uint32    stride,
uint32    numAttrib,
uint32    nbReplicate,
uint32    srcStep = (1 << 16)
const [inline, virtual]
 

inherited from CPSAttribMaker.

Implements NL3D::CPSAttribMaker.

Definition at line 1497 of file ps_attrib_maker_helper.h.

template<typename T>
virtual void NL3D::CPSAttribMakerMemory< T >::newElement CPSLocated   emitterLocated,
uint32    emitterIndex
[inline, virtual]
 

inherited from CPSAttribMaker.

Reimplemented from NL3D::CPSAttribMaker.

Definition at line 1568 of file ps_attrib_maker_helper.h.

template<typename T>
virtual void NL3D::CPSAttribMakerMemory< T >::resize uint32    capacity,
uint32    nbPresentElements
[inline, virtual]
 

well a value may be returned without having to know the emitter (random, user param ...) but this case is really useless anyway ...

Reimplemented from NL3D::CPSAttribMaker.

Definition at line 1591 of file ps_attrib_maker_helper.h.

template<typename T>
virtual void NL3D::CPSAttribMakerMemory< T >::serial NLMISC::IStream   f throw (NLMISC::EStream) [inline, virtual]
 

serialisation of the object. Derivers MUST call this, (if they use the attribute of this class at least).

Reimplemented from NL3D::CPSAttribMaker.

Definition at line 1543 of file ps_attrib_maker_helper.h.

template<typename T>
void NL3D::CPSAttribMakerMemory< T >::setDefaultValue   defaultValue [inline]
 

set a default value for initialisation, otherwise it will be garbage.

This is needed when new element are generated, but not from an emitter for example, when you set this scheme to a LocatedBindable that does have a least one instance in it

example : CPSDot *d = new CPSDot; CPSAttribMakerMemory<RGBA> *genAttribMaker = new CPSAttribMakerMemory<RGBA>; genAttribMaker->setScheme(CPSColorBlender(CRGBA::White, CRGBA::Black) Now, if an emitter emit these particle, it'll start to emit white ones, and then black ones d->setColorScheme( genAttribMaker); now, suppose that there were several dot instanciated before the setScheme is performed : d->newElement(); no color has been memorized for this element, so when setScheme is performed, it has to generate one There are no emitter that provides it, so its taken from the default value Note : this should only be useful in an editor, that allow the user to change the scheme with a running system ...

Definition at line 1353 of file ps_attrib_maker_helper.h.

template<typename T>
void NL3D::CPSAttribMakerMemory< T >::setScheme CPSAttribMaker< T > *    scheme [inline]
 

set the scheme used to store attribute.

this MUST be called, otherwise an assertion will be thrown later It must have been allocated by new, and it will be deleted by this object

Definition at line 1363 of file ps_attrib_maker_helper.h.


Member Data Documentation

template<typename T>
T NL3D::CPSAttribMakerMemory::_DefaultValue [protected]
 

Definition at line 1624 of file ps_attrib_maker_helper.h.

Referenced by NL3D::CPSAttribMakerMemory< sint32 >::CPSAttribMakerMemory, NL3D::CPSAttribMakerMemory< sint32 >::get, NL3D::CPSAttribMakerMemory< sint32 >::getDefaultValue, NL3D::CPSAttribMakerMemory< sint32 >::newElement, NL3D::CPSAttribMakerMemory< sint32 >::resize, NL3D::CPSAttribMakerMemory< sint32 >::serial, and NL3D::CPSAttribMakerMemory< sint32 >::setDefaultValue.

template<typename T>
CPSAttribMaker<T>* NL3D::CPSAttribMakerMemory::_Scheme [protected]
 

this attribute maker tells us how to produce arguments from an emitter.

as an example, we may want to have a gradient of color : the emitter emit green then blue particles, following a gradient. the color is produced by _Scheme and _T stores it

Definition at line 1630 of file ps_attrib_maker_helper.h.

Referenced by NL3D::CPSAttribMakerMemory< sint32 >::CPSAttribMakerMemory, NL3D::CPSAttribMakerMemory< sint32 >::deleteElement, NL3D::CPSAttribMakerMemory< sint32 >::getScheme, NL3D::CPSAttribMakerMemory< sint32 >::newElement, NL3D::CPSAttribMakerMemory< sint32 >::resize, NL3D::CPSAttribMakerMemory< sint32 >::serial, NL3D::CPSAttribMakerMemory< sint32 >::setScheme, and NL3D::CPSAttribMakerMemory< sint32 >::~CPSAttribMakerMemory.

template<typename T>
CPSAttrib<T> NL3D::CPSAttribMakerMemory::_T [protected]
 

Definition at line 1621 of file ps_attrib_maker_helper.h.

Referenced by NL3D::CPSAttribMakerMemory< sint32 >::CPSAttribMakerMemory, NL3D::CPSAttribMakerMemory< sint32 >::deleteElement, NL3D::CPSAttribMakerMemory< sint32 >::get, NL3D::CPSAttribMakerMemory< sint32 >::make, NL3D::CPSAttribMakerMemory< sint32 >::make4, NL3D::CPSAttribMakerMemory< sint32 >::makeN, NL3D::CPSAttribMakerMemory< sint32 >::newElement, NL3D::CPSAttribMakerMemory< sint32 >::resize, NL3D::CPSAttribMakerMemory< sint32 >::serial, and NL3D::CPSAttribMakerMemory< sint32 >::setScheme.


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