# 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  

u_particle_system_instance.h

Go to the documentation of this file.
00001 
00007 /* Copyright, 2000, 2001 Nevrax Ltd.
00008  *
00009  * This file is part of NEVRAX NEL.
00010  * NEVRAX NEL is free software; you can redistribute it and/or modify
00011  * it under the terms of the GNU General Public License as published by
00012  * the Free Software Foundation; either version 2, or (at your option)
00013  * any later version.
00014 
00015  * NEVRAX NEL is distributed in the hope that it will be useful, but
00016  * WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00018  * General Public License for more details.
00019 
00020  * You should have received a copy of the GNU General Public License
00021  * along with NEVRAX NEL; see the file COPYING. If not, write to the
00022  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
00023  * MA 02111-1307, USA.
00024  */
00025 
00026 #ifndef NL_U_PARTICLE_SYSTEM_INSTANCE_H
00027 #define NL_U_PARTICLE_SYSTEM_INSTANCE_H
00028 
00029 #include "nel/misc/types_nl.h"
00030 #include "u_instance.h"
00031 
00032 
00033 namespace NLMISC
00034 {
00035         class CAABBox;
00036 }
00037 
00038 namespace NL3D {
00039 
00040 
00052 class UParticleSystemInstance : public UInstance
00053 {
00054 public:
00069         virtual bool            isSystemPresent         (void) const = 0;
00070 
00078         virtual bool            getSystemBBox(NLMISC::CAABBox &bbox)   = 0;
00079 
00080 
00081         
00083 
00084 
00091                 virtual void            setUserParam            (uint index, float value) = 0;
00092 
00099                 virtual float           getUserParam            (uint index) const = 0;
00101 
00103 
00104 
00112                 virtual bool            isValid                         (void) const =  0;
00113 
00118                   struct                        IPSObserver
00119                   {      
00123                         virtual void    systemDestroyed         (UParticleSystemInstance *system) = 0;      
00124                   };
00125 
00131                 virtual void            registerPSObserver      (IPSObserver *observer) = 0;
00132 
00137                 virtual bool            isPSObserver            (IPSObserver *observer) = 0;
00138 
00143                 virtual void            removePSObserver        (IPSObserver *observer) = 0;
00145 
00147 
00151                         virtual void    emit(uint32 id, uint quantity = 1) = 0;
00152 
00156                         virtual void   removeByID(uint32 id) = 0;
00158 };
00159 
00160 
00161 } // NL3D
00162 
00163 
00164 #endif // NL_U_PARTICLE_SYSTEM_INSTANCE_H
00165 
00166 /* End of u_particle_system_instance.h */