#include
Inherits IRenderNode, and CMultiThreadRefCount.
Public Member Functions | |
virtual int | GetVersion () const =0 |
virtual bool | IsAlive () const =0 |
Returns whether emitter still alive in engine. | |
virtual void | Activate (bool bActive)=0 |
virtual void | Kill ()=0 |
Removes emitter and all particles instantly. | |
virtual void | Restart ()=0 |
virtual void | SetEffect (const IParticleEffect *pEffect)=0 |
virtual const IParticleEffect * | GetEffect () const =0 |
Returns particle effect assigned on this emitter. | |
virtual void | SetEmitGeom (const GeomRef &geom)=0 |
Sets attachment geometry for spawning. | |
virtual void | SetSpawnParams (const SpawnParams &spawnParams)=0 |
Specifies how particles are emitted from source. | |
void | SetSpawnParams (const SpawnParams &spawnParams, const GeomRef &geom) |
virtual void | GetSpawnParams (SpawnParams &sp) const =0 |
Retrieves current SpawnParams. | |
SpawnParams | GetSpawnParams () const |
virtual void | SetEntity (IEntity *pEntity, int nSlot)=0 |
virtual void | InvalidateCachedEntityData ()=0 |
virtual QuatTS | GetLocation () const =0 |
virtual void | SetLocation (const QuatTS &loc)=0 |
virtual void | SetTarget (const ParticleTarget &target)=0 |
virtual void | Update ()=0 |
Updates emitter's state to current time. | |
virtual void | EmitParticle (const EmitParticleData *pData=NULL)=0 |
void | EmitParticle (IStatObj *pStatObj, IPhysicalEntity *pPhysEnt=NULL, QuatTS *pLocation=NULL, Velocity3 *pVel=NULL) |
virtual unsigned int | GetAttachedEntityId ()=0 |
Get the Entity ID that this particle emitter is attached to. | |
virtual int | GetAttachedEntitySlot ()=0 |
Get the Entity Slot that this particle emitter is attached to. | |
virtual IParticleAttributes & | GetAttributes ()=0 |
Get Particle Attributes. | |
virtual void | SetEmitterFeatures (pfx2::TParticleFeatures &features) |
Set additional Features on the emitter. | |
Public Member Functions inherited from IRenderNode | |
virtual bool | CanExecuteRenderAsJob () |
virtual const char * | GetName () const =0 |
Debug info about object. | |
virtual const char * | GetEntityClassName () const =0 |
virtual string | GetDebugString (char type=0) const |
virtual float | GetImportance () const |
virtual void | ReleaseNode (bool bImmediate=false) |
Releases IRenderNode. | |
virtual IRenderNode * | Clone () const |
virtual void | SetMatrix (const Matrix34 &mat) |
Sets render node transformation matrix. | |
virtual void | GetLocalBounds (AABB &bbox) |
Gets local bounds of the render node. | |
virtual Vec3 | GetPos (bool bWorldOnly=true) const =0 |
virtual const AABB | GetBBox () const =0 |
virtual void | FillBBox (AABB &aabb) |
virtual void | SetBBox (const AABB &WSBBox)=0 |
virtual void | OffsetPosition (const Vec3 &delta)=0 |
virtual void | Render (const struct SRendParams &EntDrawParams, const SRenderingPassInfo &passInfo)=0 |
Renders node geometry. | |
virtual void | Hide (bool bHide) |
Hides/disables node in renderer. | |
virtual IStatObj * | GetEntityStatObj (unsigned int nSubPartId=0, Matrix34A *pMatrix=NULL, bool bReturnOnlyVisible=false) |
Gives access to object components. | |
virtual void | SetEntityStatObj (IStatObj *pStatObj, const Matrix34A *pMatrix=NULL) |
virtual ICharacterInstance * | GetEntityCharacter (Matrix34A *pMatrix=NULL, bool bReturnOnlyVisible=false) |
Retrieve access to the character instance of the the RenderNode. | |
virtual struct IGeomCacheRenderNode * | GetGeomCacheRenderNode (unsigned int nSlot, Matrix34A *pMatrix=NULL, bool bReturnOnlyVisible=false) |
virtual struct IRenderMesh * | GetRenderMesh (int nLod) |
virtual void | SetLodRatio (int nLodRatio) |
virtual uint8 | GetMaterialLayers () const |
Get material layers mask. | |
virtual struct IPhysicalEntity * | GetPhysics () const =0 |
Get physical entity. | |
virtual void | SetPhysics (IPhysicalEntity *pPhys)=0 |
virtual void | CheckPhysicalized () |
Physicalizes if it isn't already. | |
virtual void | Physicalize (bool bInstant=false) |
Physicalize the node. | |
virtual bool | PhysicalizeFoliage (bool bPhysicalize=true, int iSource=0, int nSlot=0) |
Physicalize stat object's foliage. | |
virtual IPhysicalEntity * | GetBranchPhys (int idx, int nSlot=0) |
Get physical entity (rope) for a given branch (if foliage is physicalized). | |
virtual struct IFoliage * | GetFoliage (int nSlot=0) |
virtual | ~IRenderNode () |
Make sure I3DEngine::FreeRenderNodeState(this) is called in destructor of derived class. | |
virtual void | SetMaterial (IMaterial *pMat)=0 |
Set override material for this instance. | |
virtual IMaterial * | GetMaterial (Vec3 *pHitPos=NULL) const =0 |
Queries override material of this instance. | |
virtual IMaterial * | GetMaterialOverride ()=0 |
virtual void | SetCollisionClassIndex (int tableIndex) |
Used by the editor during export. | |
virtual void | SetStatObjGroupIndex (int nVegetationGroupIndex) |
virtual int | GetStatObjGroupId () const |
virtual void | SetLayerId (uint16 nLayerId) |
virtual uint16 | GetLayerId () |
virtual float | GetMaxViewDist ()=0 |
virtual EERType | GetRenderNodeType ()=0 |
virtual bool | IsAllocatedOutsideOf3DEngineDLL () |
virtual void | Dephysicalize (bool bKeepIfReferenced=false) |
virtual void | Dematerialize () |
virtual void | GetMemoryUsage (ICrySizer *pSizer) const =0 |
virtual void | Precache () |
virtual void | UpdateStreamingPriority (const SUpdateStreamingPriorityContext &streamingContext) |
virtual const AABB | GetBBoxVirtual () |
virtual void | OnRenderNodeBecomeVisibleAsync (SRenderNodeTempData *pTempData, const SRenderingPassInfo &passInfo) |
virtual void | OnRenderNodeVisible (bool bBecomeVisible) |
Called when RenderNode becomes visible or invisible, can only be called from the Main thread. | |
virtual uint8 | GetSortPriority () |
virtual EGIMode | GetGIMode () const |
Retrieves the way object is used by GI system. | |
virtual void | SetMinSpec (RenderFlagsType nMinSpec) |
virtual void | SetViewDistRatio (int nViewDistRatio) |
void | CopyIRenderNodeData (IRenderNode *pDest) const |
ILINE void | SetRndFlags (RenderFlagsType dwFlags) |
Rendering flags. (. More... | |
ILINE void | SetRndFlags (RenderFlagsType dwFlags, bool bEnable) |
ILINE RenderFlagsType | GetRndFlags () const |
ILINE void | SetDrawFrame (int nFrameID, int nRecursionLevel) |
Object draw frames (set if was drawn). | |
ILINE int | GetDrawFrame (int nRecursionLevel=0) const |
ILINE IVisArea * | GetEntityVisArea () const |
struct CTerrainNode * | GetEntityTerrainNode () const |
ILINE void | SetViewDistUnlimited () |
Makes object visible at any distance. | |
ILINE int | GetViewDistRatio () const |
Retrieves the view distance settings. | |
ILINE int | GetViewDistRatioVal () const |
Retrieves the view distance settings without any value interpretation. | |
ILINE float | GetViewDistRatioNormilized () const |
ILINE int | GetLodRatio () const |
ILINE float | GetLodRatioNormalized () const |
virtual bool | GetLodDistances (const SFrameLodInfo &frameLodInfo, float *distances) const |
virtual void | SetShadowLodBias (int8 nShadowLodBias) |
Bias value to add to the regular lod. | |
ILINE int | GetShadowLodBias () const |
virtual void | SetCameraSpacePos (Vec3 *pCameraSpacePos) |
ILINE void | SetMaterialLayers (uint8 nMtlLayers) |
Set material layers mask. | |
ILINE int | GetMinSpec () const |
ILINE void | InvalidatePermanentRenderObject () |
Inform 3d engine that permanent render object that captures drawing state of this node is not valid and must be recreated. | |
virtual void | SetEditorObjectId (uint32 nEditorObjectId) |
virtual void | SetEditorObjectInfo (bool bSelected, bool bHighlighted) |
virtual void | SetOwnerEntity (IEntity *pEntity) |
virtual IEntity * | GetOwnerEntity () const |
void | RemoveAndMarkForAutoDeleteTempData () |
Additional Inherited Members | |
Public Types inherited from IRenderNode | |
enum | EInternalFlags : uint8 { DECAL_OWNER = BIT(0), REQUIRES_NEAREST_CUBEMAP = BIT(1), UPDATE_DECALS = BIT(2), REQUIRES_FORWARD_RENDERING = BIT(3), WAS_INVISIBLE = BIT(4), WAS_IN_VISAREA = BIT(5), WAS_FARAWAY = BIT(6), HAS_OCCLUSION_PROXY = BIT(7) } |
enum | EGIMode { eGM_None = 0, eGM_StaticVoxelization, eGM_DynamicVoxelization, eGM_HideIfGiIsActive, eGM_AnalyticalProxy_Soft, eGM_AnalyticalProxy_Hard, eGM_AnalytPostOccluder, eGM_IntegrateIntoTerrain } |
Object can be used by GI system in several ways. More... | |
typedef uint64 | RenderFlagsType |
Static Public Member Functions inherited from IRenderNode | |
static const ERNListType | GetRenderNodeListId (const EERType eRType) |
Public Attributes inherited from IRenderNode | |
IRenderNode * | m_pNext |
Every sector has linked list of IRenderNode objects. | |
IRenderNode * | m_pPrev |
IOctreeNode * | m_pOcNode |
Current objects tree cell. | |
std::atomic< SRenderNodeTempData * > | m_pTempData |
Pointer to temporary data allocated only for currently visible objects. | |
int | m_manipulationFrame = -1 |
CryRWLock | m_manipulationLock |
uint32 | m_nHUDSilhouettesParam |
Hud silhouette parameter, default is black with alpha zero. | |
float | m_fWSMaxViewDist |
Max view distance. | |
RenderFlagsType | m_dwRndFlags |
Render flags (. More... | |
uint8 | m_nInternalFlags |
Flags for render node internal usage, one or more bits from EInternalFlags. | |
uint8 | m_ucViewDistRatio |
Max view distance settings. | |
uint8 | m_ucLodRatio |
LOD settings. | |
uint8 | m_nMaterialLayers |
Material layers bitmask -> which material layers are active. | |
int8 | m_cShadowLodBias |
uint32 | m_nEditorSelectionID |
Static Public Attributes inherited from IRenderNode | |
static const int8 | SHADOW_LODBIAS_DISABLE = -128 |
Interface to a particle effect emitter. An IParticleEmitter should usually be created by I3DEngine::CreateParticleEmitter. Deleting the emitter should be done using I3DEngine::DeleteParticleEmitter.
|
pure virtual |
Sets emitter state to active or inactive. Emitters are initially active. if bActive is true, Emitter updates and emits as normal, and deletes itself if limited lifetime. if bActive is false, stops all emitter updating and particle emission. Existing particles continue to update and render. Emitter is not deleted.
|
pure virtual |
Programmatically adds particle to emitter for rendering. With no arguments, spawns particles according to emitter settings. Specific objects can be passed for programmatic control.
pData | Specific data for particle, or NULL for defaults. |
|
pure virtual |
Sets location with quat-based orientation.
|
pure virtual |
Restarts the emitter from scratch (if active). Any existing particles are re-used oldest first.
|
pure virtual |
Set the effects used by the particle emitter. Will define the effect used to spawn the particles from the emitter.
pEffect | A pointer to an IParticleEffect object. |
|
pure virtual |
Associates emitter with entity, for dynamic updating of positions etc.