Functions

IChannelContainer.h

Functions

virtual Class_ID  GetClassID ()=0
  Returns the unique ID for the particle container class.
virtual int  NumChannels () const =0
  Returns number of channels in the container.
virtual IObject *&  GetChannel (int i)=0
  Returns i-th channel in the container.
virtual IObject GetChannel (Interface_ID id, Object *privateOwner=NULL, INode *creatorAction=NULL)=0
  Returns a channel with the given interface id.
IObject GetPublicChannel (int id_PartA, int id_PartB)
  FnPub alternative for the method virtual IObject* GetChannel.
IObject GetPrivateChannel (int id_PartA, int id_PartB, Object *privateOwner, INode *creatorAction)
  FnPub alternative for method virtual IObject* GetChannel.
virtual bool  AddChannel (IObject *channel)=0
  Returns true if the channel has been added.
virtual IObject EnsureChannel (Interface_ID &iChanID, Class_ID &channelClassID, bool isWrapper, Interface_ID &wrappingReadID, Interface_ID &wrappingWriteID, bool isTransferable=TRUE, INode *creatorAction=NULL, Object *privateOwner=NULL, bool *initChannel=NULL)=0
  Returns a channel object if a channel with the given interface id is in the container.
virtual BaseInterface EnsureInterface (Interface_ID &iChanID, Class_ID &channelClassID, bool isWrapper, Interface_ID &wrappingReadID, Interface_ID &wrappingWriteID, bool isTransferable=TRUE, INode *creatorAction=NULL, Object *privateOwner=NULL, bool *initChannel=NULL)=0
  Returns an interface if the interface with the given interface id is in the container.
virtual BaseInterface GetPrivateInterface (Interface_ID id, Object *privateOwner)=0
  Returns an interface of a channel with the given interface id and private owner.
virtual int  RemoveNonTransferableChannels (INode *nextParticleGroup=NULL)=0
  Returns an interface of a channel with the given interface id and private owner parameters:
iChanID: interface id of channel to be present in the container
privateOwner: the parameter is used to identify a private owner of the channel.
virtual IObject Clone ()=0
  Makes a clone copy of the whole container (all channels), returns new container.
virtual bool  Copy (IObject *container)=0
  Makes a copy from the other container, returns true if successful.
virtual IOResult  Save (ISave *isave) const =0
  Saves content of the channel to file.
virtual IOResult  Load (ILoad *iload)=0
  Loads content of the channel from file.
virtual int  MemoryUsed () const =0
  Returns amount of memory used (in bytes) by the channel container to store the information.
FPInterfaceDesc GetDesc ()
virtual bool  SetUVVert (int particleIndex, const UVVert &value)=0
  sets all vertices of the particle have the same UVVert value.
virtual bool  SetUVVert (int particleIndex, const TabUVVert *tab)=0
  copies UVVert data to be texture mapping for the particle.
virtual bool  SetUVVert (Tab< int > &particleIndices, const UVVert &value)=0
  copies UVVert data to be a shared value with indices in "particleIndeces"
virtual bool  SetUVVert (Tab< int > &particleIndices, const TabUVVert *tab)=0
  copies UVVert data to be a shared value with indices in "particleIndeces"
virtual bool  SetUVVert (const UVVert &value)=0
  copies UVVert data to a global value for all particles
virtual bool  SetUVVert (const TabUVVert *tab)=0
  copies UVVert data to a global value for all particles
virtual bool  CopyUVVert (int fromParticle, int toParticle)=0
  copy UVVert data from fromParticle to toParticle
virtual bool  CopyUVVert (int fromParticle, Tab< int > &toParticles)=0
  copy UVVert data from fromParticle to toParticles
virtual bool  CopyUVVert (int fromParticle)=0
  copy UVVert data from fromParticle to all particles
virtual bool  SetTVFace (int particleIndex, const TabTVFace *tab)=0
  copies TVFace data to be texture facing for the particle.
virtual bool  SetTVFace (Tab< int > &particleIndices, const TabTVFace *tab)=0
  copies TVFace data to be a shared value with indices in "particleIndeces"
virtual bool  SetTVFace (const TabTVFace *tab)=0
  copies TVFace data to a global value for all particles
virtual bool  CopyTVFace (int fromParticle, int toParticle)=0
  copy TVFace data from fromParticle to toParticle
virtual bool  CopyTVFace (int fromParticle, Tab< int > &toParticles)=0
  copy TVFace data from fromParticle to toParticles
virtual bool  CopyTVFace (int fromParticle)=0
  copy TVFace data from fromParticle to all particles
virtual IObject GetUVVertChannel () const =0
  returns an object of TabUVVert channel
virtual IObject GetTVFaceChannel () const =0
  returns an object of TabTVFace channel
bool  SetMap (int particleIndex, const UVVert &value)
  sets all vertices of the particle have the same map value.
bool  SetMap (int particleIndex, const TabUVVert *tabUVVert, const TabTVFace *tabTVFace=NULL)
  copies map data to be texture mapping for the particle.
bool  SetMap (Tab< int > &particleIndices, const UVVert &value)
  copies map data to be a shared value with indices in "particleIndeces"
bool  SetMap (Tab< int > &particleIndices, const TabUVVert *tabUVVert, const TabTVFace *tabTVFace=NULL)
  copies map data to be a shared value with indices in "particleIndeces"
bool  SetMap (const UVVert &value)
  copies map data to a global value for all particles
bool  SetMap (const TabUVVert *tabUVVert, const TabTVFace *tabTVFace=NULL)
  copies map data to a global value for all particles
bool  CopyMap (int fromParticle, int toParticle)
  copy map data from fromParticle to toParticle
bool  CopyMap (int fromParticle, Tab< int > &toParticles)
  copy map data from fromParticle to toParticles
bool  CopyMap (int fromParticle)
  copy map data from fromParticle to all particles
FPInterfaceDesc GetDesc ()

Function Documentation

Class_ID GetClassID ( ) [pure virtual, inherited]

Returns the unique ID for the particle container class.

ID is used for constructing the container when loading since the particle container class is not inherited from class Animatable

int NumChannels ( ) const [pure virtual, inherited]

Returns number of channels in the container.

IObject *& GetChannel ( int  i ) [pure virtual, inherited]

Returns i-th channel in the container.

IObject * GetChannel ( Interface_ID  id,
Object privateOwner = NULL,
INode creatorAction = NULL 
) [pure virtual, inherited]

Returns a channel with the given interface id.

If privateOwner is NULL, then the channel is public. If privateOwner is specified, then the channel is private with the given private owner.

IObject * GetPublicChannel ( int  id_PartA,
int  id_PartB 
) [inline, inherited]

FnPub alternative for the method virtual IObject* GetChannel.

Essentially takes in the two (2) components that make up the full Interface_ID CHANNELCONTAINER_INTERFACE

Parameters:
id_PartA,: Corresponds to 0x74f93c00. Look at #define CHANNELCONTAINER_INTERFACE Interface_ID(0x74f93c00, 0x1eb34600)
id_partB,: Corresponds to 0x1eb34600. Look at #define CHANNELCONTAINER_INTERFACE Interface_ID(0x74f93c00, 0x1eb34600)
    { return GetChannel( Interface_ID(id_PartA, id_PartB), NULL); }
IObject * GetPrivateChannel ( int  id_PartA,
int  id_PartB,
Object privateOwner,
INode creatorAction 
) [inline, inherited]

FnPub alternative for method virtual IObject* GetChannel.

    { return GetChannel( Interface_ID(id_PartA, id_PartB), privateOwner, creatorAction); }
bool AddChannel ( IObject channel ) [pure virtual, inherited]

Returns true if the channel has been added.

The channel may be rejected if there are duplicate interfaces in the added channel and in the container. The ParticleChannelReadWrite and ParticleChannelAmount interfaces don't count since every channel has them.

IObject * EnsureChannel ( Interface_ID iChanID,
Class_ID channelClassID,
bool  isWrapper,
Interface_ID wrappingReadID,
Interface_ID wrappingWriteID,
bool  isTransferable = TRUE,
INode creatorAction = NULL,
Object privateOwner = NULL,
bool *  initChannel = NULL 
) [pure virtual, inherited]

Returns a channel object if a channel with the given interface id is in the container.

If such channel doesn't exist, that container makes an attempt to create and add a channel for the interface according to the specifications. The method is not for FnPub intentionally.

Parameters:
iChanID,: interface id of channel to be present in the container
channelClassID,: if interface is not present then create particle channel with the classID
isWrapper,: if true then the created particle channel is wrapper
wrappingReadID & wrappingWriteID: read & write ID for wrapping the particle channel
isTransferable,: if true then the channel is transferable (contrary to temporary)
creatorAction,: the parameter is used to record an action that created the channel
this record can be used later on to identify if the action needs to initialize the channel values for new particles
privateOwner,: the parameter is used to set a private owner of the channel. Only the action with the same object pointer may access this channel
initChannel,: if the channel was created by the same action node then it's responsibility of the action to initialize values
BaseInterface * EnsureInterface ( Interface_ID iChanID,
Class_ID channelClassID,
bool  isWrapper,
Interface_ID wrappingReadID,
Interface_ID wrappingWriteID,
bool  isTransferable = TRUE,
INode creatorAction = NULL,
Object privateOwner = NULL,
bool *  initChannel = NULL 
) [pure virtual, inherited]

Returns an interface if the interface with the given interface id is in the container.

If such interface doesn't exist, that container makes an attempt to create and add a channel for the interface according to the specifications. The method is not for FnPub intentionally.

Parameters:
iChanID,: interface id of channel to be present in the container
channelClassID,: if interface is not present then create particle channel with the classID
isWrapper,: if true then the created particle channel is wrapper
wrappingReadID & wrappingWriteID: read & write ID for wrapping the particle channel
isTransferable,: if true then the channel is transferable (contrary to temporary)
creatorAction,: the parameter is used to record an action that created the channel
this record can be used later on to identify if the action needs to initialize the channel values for new particles
privateOwner,: the parameter is used to set a private owner of the channel. Only the action with the same object pointer may access this channel
initChannel,: if the channel was created by the same action node then it's responsibility of the action to initialize values
BaseInterface * GetPrivateInterface ( Interface_ID  id,
Object privateOwner 
) [pure virtual, inherited]

Returns an interface of a channel with the given interface id and private owner.

Parameters:
iChanID,: interface id of channel to be present in the container.
privateOwner,: the parameter is used to identify a private owner of the channel.
int RemoveNonTransferableChannels ( INode nextParticleGroup = NULL ) [pure virtual, inherited]

Returns an interface of a channel with the given interface id and private owner parameters:
iChanID: interface id of channel to be present in the container
privateOwner: the parameter is used to identify a private owner of the channel.

IObject * Clone ( ) [pure virtual, inherited]

Makes a clone copy of the whole container (all channels), returns new container.

bool Copy ( IObject container ) [pure virtual, inherited]

Makes a copy from the other container, returns true if successful.

IOResult Save ( ISave isave ) const [pure virtual, inherited]

Saves content of the channel to file.

IOResult Load ( ILoad iload ) [pure virtual, inherited]

Loads content of the channel from file.

int MemoryUsed ( ) const [pure virtual, inherited]

Returns amount of memory used (in bytes) by the channel container to store the information.

This is a total sum of the memory used by all channels and the data from the container itself.

FPInterfaceDesc * GetDesc ( ) [inline, virtual, inherited]
Remarks:
Returns a pointer to the class which contains the interface metadata.

Implements FPInterface.

{ return GetDescByID(CHANNELCONTAINER_INTERFACE); }
bool SetUVVert ( int  particleIndex,
const UVVert value 
) [pure virtual, inherited]

sets all vertices of the particle have the same UVVert value.

returns true if successful.

bool SetUVVert ( int  particleIndex,
const TabUVVert *  tab 
) [pure virtual, inherited]

copies UVVert data to be texture mapping for the particle.

returns true if successful.

bool SetUVVert ( Tab< int > &  particleIndices,
const UVVert value 
) [pure virtual, inherited]

copies UVVert data to be a shared value with indices in "particleIndeces"

bool SetUVVert ( Tab< int > &  particleIndices,
const TabUVVert *  tab 
) [pure virtual, inherited]

copies UVVert data to be a shared value with indices in "particleIndeces"

bool SetUVVert ( const UVVert value ) [pure virtual, inherited]

copies UVVert data to a global value for all particles

bool SetUVVert ( const TabUVVert *  tab ) [pure virtual, inherited]

copies UVVert data to a global value for all particles

bool CopyUVVert ( int  fromParticle,
int  toParticle 
) [pure virtual, inherited]

copy UVVert data from fromParticle to toParticle

bool CopyUVVert ( int  fromParticle,
Tab< int > &  toParticles 
) [pure virtual, inherited]

copy UVVert data from fromParticle to toParticles

bool CopyUVVert ( int  fromParticle ) [pure virtual, inherited]

copy UVVert data from fromParticle to all particles

bool SetTVFace ( int  particleIndex,
const TabTVFace *  tab 
) [pure virtual, inherited]

copies TVFace data to be texture facing for the particle.

returns true if successful.

bool SetTVFace ( Tab< int > &  particleIndices,
const TabTVFace *  tab 
) [pure virtual, inherited]

copies TVFace data to be a shared value with indices in "particleIndeces"

bool SetTVFace ( const TabTVFace *  tab ) [pure virtual, inherited]

copies TVFace data to a global value for all particles

bool CopyTVFace ( int  fromParticle,
int  toParticle 
) [pure virtual, inherited]

copy TVFace data from fromParticle to toParticle

bool CopyTVFace ( int  fromParticle,
Tab< int > &  toParticles 
) [pure virtual, inherited]

copy TVFace data from fromParticle to toParticles

bool CopyTVFace ( int  fromParticle ) [pure virtual, inherited]

copy TVFace data from fromParticle to all particles

IObject * GetUVVertChannel ( ) const [pure virtual, inherited]

returns an object of TabUVVert channel

IObject * GetTVFaceChannel ( ) const [pure virtual, inherited]

returns an object of TabTVFace channel

bool SetMap ( int  particleIndex,
const UVVert value 
) [inline, inherited]

sets all vertices of the particle have the same map value.

returns true if successful.

    { return (SetUVVert(particleIndex, value) && SetTVFace(NULL)); }
bool SetMap ( int  particleIndex,
const TabUVVert *  tabUVVert,
const TabTVFace *  tabTVFace = NULL 
) [inline, inherited]

copies map data to be texture mapping for the particle.

returns true if successful.

    { return (SetUVVert(particleIndex, tabUVVert) && SetTVFace(particleIndex, tabTVFace)); }
bool SetMap ( Tab< int > &  particleIndices,
const UVVert value 
) [inline, inherited]

copies map data to be a shared value with indices in "particleIndeces"

    { return (SetUVVert(particleIndices, value) && SetTVFace(particleIndices, NULL)); }
bool SetMap ( Tab< int > &  particleIndices,
const TabUVVert *  tabUVVert,
const TabTVFace *  tabTVFace = NULL 
) [inline, inherited]

copies map data to be a shared value with indices in "particleIndeces"

    { return (SetUVVert(particleIndices, tabUVVert) && SetTVFace(particleIndices, tabTVFace)); }
bool SetMap ( const UVVert value ) [inline, inherited]

copies map data to a global value for all particles

    { return (SetUVVert(value) && SetTVFace(NULL)); }
bool SetMap ( const TabUVVert *  tabUVVert,
const TabTVFace *  tabTVFace = NULL 
) [inline, inherited]

copies map data to a global value for all particles

    { return (SetUVVert(tabUVVert) && SetTVFace(tabTVFace)); }
bool CopyMap ( int  fromParticle,
int  toParticle 
) [inline, inherited]

copy map data from fromParticle to toParticle

    { return (CopyUVVert(fromParticle, toParticle) && CopyTVFace(fromParticle, toParticle)); }
bool CopyMap ( int  fromParticle,
Tab< int > &  toParticles 
) [inline, inherited]

copy map data from fromParticle to toParticles

    { return (CopyUVVert(fromParticle, toParticles) && CopyTVFace(fromParticle, toParticles)); }
bool CopyMap ( int  fromParticle ) [inline, inherited]

copy map data from fromParticle to all particles

    { return (CopyUVVert(fromParticle) && CopyTVFace(fromParticle)); }
FPInterfaceDesc * GetDesc ( ) [inline, virtual, inherited]
Remarks:
Returns a pointer to the class which contains the interface metadata.

Implements FPInterface.

{ return GetDescByID(PARTICLECHANNELMAPW_INTERFACE); }