added everything
This commit is contained in:
132
lib/maxsdk70/include/ParticleFlow/IParticleChannelID.h
Executable file
132
lib/maxsdk70/include/ParticleFlow/IParticleChannelID.h
Executable file
@@ -0,0 +1,132 @@
|
||||
/*! \file IParticleChannelID.h
|
||||
\brief Channel-specific interfaces for ParticleChannelID. The channel is used to identify particles.
|
||||
Particle ID consists of two integers: particleIndex and
|
||||
particleBorn. ParticleIndex gives relative correspondense
|
||||
to the whole amount of particles. If PF ParticleAmountMultiplier
|
||||
is set to 100% then the given particleIndex are successive
|
||||
ordinal numbers. If it's set to 50% then the given particle indeces
|
||||
are 0, 2, 4, 6 etc. If it is a Birth by Total Number then the
|
||||
last particle born has an index of the total number whatever
|
||||
multiplier is. ParticleBorn number always are successive
|
||||
ordinal numbers when particles were born: 0, 1, 2, 3 etc.
|
||||
If ParticleAmountMultiplier equals 100% then for a
|
||||
particular particle particleIndex and particleBorn are the
|
||||
same number. If ParticleAmountMultiplier is greater then
|
||||
100% then you may have several particles with the same
|
||||
particleIndex. It is recommended to link non-random properties to
|
||||
particleIndex and random properties to particleBorn.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
*<
|
||||
CREATED BY: Oleg Bayborodin
|
||||
|
||||
HISTORY: created 10-04-01
|
||||
|
||||
*> Copyright (c) 2001, All Rights Reserved.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef _IPARTICLECHANNELID_H_
|
||||
#define _IPARTICLECHANNELID_H_
|
||||
|
||||
|
||||
// standard particle channel "particleID"
|
||||
// interface ID
|
||||
#define PARTICLECHANNELIDR_INTERFACE Interface_ID(0x74f93b02, 0x1eb34500)
|
||||
#define PARTICLECHANNELIDW_INTERFACE Interface_ID(0x74f93b02, 0x1eb34501)
|
||||
|
||||
#define GetParticleChannelIDRInterface(obj) ((IParticleChannelIDR*)obj->GetInterface(PARTICLECHANNELIDR_INTERFACE))
|
||||
#define GetParticleChannelIDWInterface(obj) ((IParticleChannelIDW*)obj->GetInterface(PARTICLECHANNELIDW_INTERFACE))
|
||||
|
||||
// function IDs Read
|
||||
enum { particleChannelID_getID,
|
||||
particleChannelID_getParticleIndex,
|
||||
particleChannelID_getParticleBorn
|
||||
};
|
||||
|
||||
// function IDs Write
|
||||
enum { particleChannelID_setID
|
||||
};
|
||||
|
||||
struct ParticleID {
|
||||
int index;
|
||||
int born;
|
||||
};
|
||||
|
||||
class IParticleChannelIDR : public FPMixinInterface
|
||||
{
|
||||
|
||||
BEGIN_FUNCTION_MAP
|
||||
|
||||
VFN_3(particleChannelID_getID, GetID, TYPE_INT, TYPE_INT_BR, TYPE_INT_BR);
|
||||
FN_1(particleChannelID_getParticleIndex, TYPE_INT, GetParticleIndex, TYPE_INT);
|
||||
FN_1(particleChannelID_getParticleBorn, TYPE_INT, GetParticleBorn, TYPE_INT);
|
||||
|
||||
END_FUNCTION_MAP
|
||||
|
||||
public:
|
||||
|
||||
/** @defgroup IParticleChannelID IParticleChannelID.h
|
||||
* @{
|
||||
*/
|
||||
|
||||
/*! \fn virtual void GetID(int index, int& particleIndex, int& particleBorn) const = 0;
|
||||
* \brief
|
||||
*/
|
||||
virtual void GetID(int index, int& particleIndex, int& particleBorn) const = 0;
|
||||
|
||||
/*! \fn virtual int GetParticleIndex(int index) const = 0;
|
||||
* \brief Returns particleIndex
|
||||
*/
|
||||
virtual int GetParticleIndex(int index) const = 0; // returns particleIndex
|
||||
|
||||
/*! \fn virtual int GetParticleBorn(int index) const = 0;
|
||||
* \brief Returns particleBorn
|
||||
*/
|
||||
virtual int GetParticleBorn(int index) const = 0; // returns particleBorn
|
||||
|
||||
/*! \fn virtual const ParticleID& GetID(int index) const = 0;
|
||||
* \brief Methods not in the mapped interface
|
||||
*/
|
||||
virtual const ParticleID& GetID(int index) const = 0;
|
||||
|
||||
/*! \fn FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELIDR_INTERFACE); }
|
||||
* \brief
|
||||
*/
|
||||
FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELIDR_INTERFACE); }
|
||||
};
|
||||
|
||||
class IParticleChannelIDW : public FPMixinInterface
|
||||
{
|
||||
|
||||
BEGIN_FUNCTION_MAP
|
||||
|
||||
VFN_3(particleChannelID_setID, SetID, TYPE_INT, TYPE_INT, TYPE_INT);
|
||||
|
||||
END_FUNCTION_MAP
|
||||
|
||||
public:
|
||||
|
||||
/** @defgroup IParticleChannelID IParticleChannelID.h
|
||||
* @{
|
||||
*/
|
||||
|
||||
/*! \fn virtual void SetID(int index, int particleIndex, int particleBorn) = 0;
|
||||
* \brief Set particle property
|
||||
*/
|
||||
virtual void SetID(int index, int particleIndex, int particleBorn) = 0;
|
||||
|
||||
/*! \fn virtual void SetID(int index, const ParticleID& id) = 0;
|
||||
* \brief Methods not in the mapped interface
|
||||
*/
|
||||
virtual void SetID(int index, const ParticleID& id) = 0;
|
||||
|
||||
/*! \fn FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELIDW_INTERFACE); }
|
||||
* \brief
|
||||
*/
|
||||
FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELIDW_INTERFACE); }
|
||||
};
|
||||
|
||||
/*@}*/
|
||||
|
||||
#endif // _IPARTICLECHANNELID_H_
|
||||
Reference in New Issue
Block a user