Page principale   Liste des namespaces   Hiérarchie des classes   Liste par ordre alphabétique   Liste des composants   Liste des fichiers   Membres des namespaces   Composants   Déclarations  

Référence de la classe ExCParticule

#include <ExCParticule.h>

Graphe d'héritage de la classe ExCParticule

ExCObject3D ExCObject ExCParticuleLine ExCParticulePoint ExCParticuleTexture

Membres publics

 ExCParticule (void)
 ~ExCParticule (void)
void PrecalculeParticuleTrajectory (int start, int end)
void ApplyForceToParitcule (ExCVec3D force)
void Draw (void)
void SetParticuleType (int type)
void SetParticuleTexture (GLint texture)
void SetParticuleSize (float Size)
float GetParticuleSize (void)
void SetParticuleGrowth (float Growth)
float GetParticuleGrowth (void)
void SetParticuleMass (float Mass)
float GetParticuleMass (void)
void SetParticuleLife (int life)
int GetParticuleLife (void)
void SetParticuleWeight (int Weight)
int GetParticuleWeight (void)
void SetParticuleColorR (int ColorR)
int GetParticuleColorR (void)
void SetParticuleColorG (int ColorG)
int GetParticuleColorG (void)
void SetParticuleColorB (int ColorB)
int GetParticuleColorB (void)
void SetParticuleBlending (int Blending)
int GetParticuleBlending (void)
void SetParticuleVelocity (ExCVec3D Velocity)
ExCVec3D GetParticuleVelocity (void)
void SetParticuleAcceleration (ExCVec3D Acceleration)
ExCVec3D GetParticuleAcceleration (void)
void SetParticuleGravity (ExCVec3D Gravity)
ExCVec3D GetParticuleGravity (void)
void SetParticulePosition (ExCVec3D Position)
ExCVec3D GetParticulePosition (void)
void DecreaseLifeSpan (void)

Attributs Protégés

ExCVec3D m_Position
ExCVec3D m_Velocity
ExCVec3D m_Acceleration
ExCVec3D m_Gravity
float m_Size
float m_Mass
float m_Growth
int m_LifeSpan
int m_TotalLife
int m_Weight
int m_Type
int m_ColorR
int m_ColorG
int m_ColorB
int m_Blending
GLint m_Texture
std::vector< ExCVec3Dm_VecPosition
std::vector< ExCVec3D >::iterator m_ItVecPosition

Documentation des contructeurs et destructeurs

ExCParticule void   
 

Définition à la ligne 26 du fichier ExCParticule.cpp.

Références ExCParticule(), Guard, m_Acceleration, m_ColorB, m_ColorG, m_ColorR, m_Gravity, m_Growth, m_LifeSpan, m_Mass, m_Position, m_Size, m_Type, m_Velocity, m_Weight, ExCObject::SetName(), ExCObject::SetType(), et ExCVec3D::SetValue().

Référencé par ExCParticule(), et ~ExCParticule().

00027 {
00028 Guard(ExCParticule::ExCParticule(void))
00029         m_LifeSpan=1000;
00030         m_Size=0.6;
00031         m_Weight=1;
00032         m_Mass=1;
00033         m_Type=PARTICULE_LINE;
00034         m_ColorR=255;
00035         m_ColorG=255;
00036         m_ColorB=255;
00037         m_Velocity.SetValue(0.0f,0.1f,0.0f);
00038         m_Position.SetValue(0.0f,0.0f,0.0f);
00039         m_Acceleration.SetValue(1.0f,1.0f,1.0f);
00040         m_Gravity.SetValue(0.0f,0.0f,0.0f);
00041         SetName("ExCParticule");
00042         SetType(typeid(this).name());
00043         m_Growth=100;//in %
00044 UnGuard
00045 }

~ExCParticule void   
 

Définition à la ligne 47 du fichier ExCParticule.cpp.

Références ExCParticule(), et Guard.

00048 {
00049 Guard(ExCParticule::~ExCParticule(void))
00050 UnGuard
00051 }


Documentation des méthodes

void ApplyForceToParitcule ExCVec3D    force
 

Définition à la ligne 186 du fichier ExCParticule.cpp.

Références ApplyForceToParitcule(), et Guard.

Référencé par ApplyForceToParitcule().

00187 {
00188 Guard(void ExCParticule::ApplyForceToParitcule(ExCVec3D force))
00189         
00190 UnGuard
00191 }

void DecreaseLifeSpan void    [inline]
 

Définition à la ligne 118 du fichier ExCParticule.h.

Références m_LifeSpan.

00119 {m_LifeSpan--;}

void Draw void    [virtual]
 

Redéfinie à partir de ExCObject.

Définition à la ligne 63 du fichier ExCParticule.cpp.

Références Draw(), Guard, m_Blending, m_ColorB, m_ColorG, m_ColorR, m_Gravity, m_Growth, m_LifeSpan, m_Position, m_Size, m_Texture, m_TotalLife, m_VecPosition, ExCVec3D::m_Vector, m_Velocity, et ExCVec3D::SetValue().

Référencé par Draw().

00064 {
00065 Guard(void ExCParticule::Draw(void))
00066         float final,pas,current;
00067         
00068         float x,y,z,x1,y1,z1;
00069         float GravityX,GravityY,GravityZ;
00070         int TimeNow=(m_TotalLife-m_LifeSpan);
00071         
00072         final=((float)m_Size/100)*m_Growth;
00073         pas=(float)(final-m_Size)/m_TotalLife;
00074         current=m_Size+(TimeNow*pas);
00075 
00076         if(TimeNow>=m_TotalLife){return;}
00077 
00078         switch(m_Type)
00079         {
00080         case PARTICULE_POINT:
00081                 glPushMatrix();
00082                         glTranslatef(m_Position.m_Vector[0],m_Position.m_Vector[1],m_Position.m_Vector[2]);
00083                         m_Position=m_Position+m_Velocity;
00084                         glColor4ub(m_ColorR,m_ColorG,m_ColorB,m_Blending);
00085                         glBegin(GL_POINT);
00086                                 glVertex3fv(m_Position.m_Vector);
00087                         glEnd();
00088                 glPopMatrix();
00089                 break;
00090 
00091         case PARTICULE_LINE:
00092                 GravityX=((TimeNow*TimeNow)*(m_Gravity.m_Vector[0])/20);
00093                 GravityY=((TimeNow*TimeNow)*(m_Gravity.m_Vector[1])/20);
00094                 GravityZ=((TimeNow*TimeNow)*(m_Gravity.m_Vector[2])/20);
00095                                 
00096                 x=m_Position.m_Vector[0]+(m_Velocity.m_Vector[0]*TimeNow)-GravityX;
00097                 y=m_Position.m_Vector[1]+(m_Velocity.m_Vector[1]*TimeNow)-GravityY;
00098                 z=m_Position.m_Vector[2]+(m_Velocity.m_Vector[2]*TimeNow)-GravityZ;     
00099 
00100                 x1=m_Position.m_Vector[0]+(m_Velocity.m_Vector[0]*(TimeNow+current))-GravityX;
00101                 y1=m_Position.m_Vector[1]+(m_Velocity.m_Vector[1]*(TimeNow+current))-GravityY;
00102                 z1=m_Position.m_Vector[2]+(m_Velocity.m_Vector[2]*(TimeNow+current))-GravityZ;
00103                 
00104                 glPushMatrix();
00105                 glPushAttrib(GL_ALL_ATTRIB_BITS);
00106                         glTranslatef(x,y,z);
00107                         glColor4ub(m_ColorR,m_ColorG,m_ColorB,m_Blending);
00108                         glDisable(GL_LIGHTING);
00109                         glEnable(GL_BLEND);
00110                         glEnable(GL_ALPHA);
00111                         glBlendFunc(GL_ONE,GL_ONE);
00112                         glEnable(GL_ALPHA_TEST);
00113                         glAlphaFunc(GL_GREATER,0);
00114                         glLineWidth(2.0f);
00115                         glBegin(GL_LINES);
00116                                 glVertex3f(x,y,z);      
00117                                 glVertex3f(x1,y1,z1);
00118                         glEnd();
00119                 glPopAttrib();
00120                 glPopMatrix();
00121                 break;
00122 
00123         case PARTICULE_TEXTURE:
00124                 glPushMatrix();
00125                 glPushAttrib(GL_ALL_ATTRIB_BITS);
00126                         ExCVec3D position;
00127         
00128                         position=m_VecPosition.at(TimeNow);
00129                         glTranslatef(position.m_Vector[0],position.m_Vector[1],position.m_Vector[2]);
00130                         // Orienation of particule
00131                         GLfloat viewMatrix[16];
00132                         glGetFloatv(GL_MODELVIEW_MATRIX, viewMatrix);
00133                         ExCVec3D right;
00134                         ExCVec3D up;
00135 
00136                         right.SetValue(viewMatrix[0],viewMatrix[4],viewMatrix[8]);
00137                         up.SetValue(viewMatrix[1],viewMatrix[5],viewMatrix[9]);
00138 
00139                         ExCVec3D v1,v2,v3,v4;
00140                         v1=m_Position+(right+up)*-current;
00141                         v2=m_Position+(right-up)*current;
00142                         v3=m_Position+(right+up)*current;
00143                         v4=m_Position+(up-right)*current;
00144 
00145                         glEnable(GL_BLEND);
00146                         glBlendFunc(GL_SRC_ALPHA,GL_ONE);
00147                         glEnable(GL_TEXTURE_2D);
00148                         glDisable(GL_LIGHTING);
00149                         glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);
00150                         glBindTexture(GL_TEXTURE_2D, m_Texture);
00151                         glColor4ub(m_ColorR,m_ColorG,m_ColorB,m_Blending);
00152                         glBegin(GL_QUADS);
00153                                 glTexCoord2f(0.0f, 0.0f); glVertex3fv(v1.m_Vector);
00154                                 glTexCoord2f(1.0f, 0.0f); glVertex3fv(v2.m_Vector);
00155                                 glTexCoord2f(1.0f, 1.0f); glVertex3fv(v3.m_Vector);
00156                                 glTexCoord2f(0.0f, 1.0f); glVertex3fv(v4.m_Vector);
00157                         glEnd();
00158                 
00159                 glPopAttrib();
00160                 glPopMatrix();
00161                 break;
00162         }
00163         
00164 UnGuard
00165 }

ExCVec3D GetParticuleAcceleration void    [inline]
 

Définition à la ligne 110 du fichier ExCParticule.h.

00110 {m_Acceleration=Acceleration;}

int GetParticuleBlending void    [inline]
 

Définition à la ligne 104 du fichier ExCParticule.h.

Références m_Blending.

00104 {m_Blending=Blending;}

int GetParticuleColorB void    [inline]
 

Définition à la ligne 101 du fichier ExCParticule.h.

Références m_ColorB.

00101 {m_ColorB=ColorB;}

int GetParticuleColorG void    [inline]
 

Définition à la ligne 98 du fichier ExCParticule.h.

Références m_ColorG.

00098 {m_ColorG=ColorG;}

int GetParticuleColorR void    [inline]
 

Définition à la ligne 95 du fichier ExCParticule.h.

Références m_ColorR.

00095 {m_ColorR=ColorR;}

ExCVec3D GetParticuleGravity void    [inline]
 

Définition à la ligne 113 du fichier ExCParticule.h.

00113 {m_Gravity=Gravity;}

float GetParticuleGrowth void    [inline]
 

Définition à la ligne 83 du fichier ExCParticule.h.

Références m_Growth.

00083 {m_Growth=Growth;}

int GetParticuleLife void    [inline]
 

Définition à la ligne 89 du fichier ExCParticule.h.

Références m_LifeSpan, et m_TotalLife.

Référencé par ExCSystemeParticule::CreateNewParticle().

00089 {m_LifeSpan=life;m_TotalLife=life;}

float GetParticuleMass void    [inline]
 

Définition à la ligne 86 du fichier ExCParticule.h.

Références m_Mass.

00086 {m_Mass=Mass;}

ExCVec3D GetParticulePosition void    [inline]
 

Définition à la ligne 116 du fichier ExCParticule.h.

00116 {m_Position=Position;}

float GetParticuleSize void    [inline]
 

Définition à la ligne 80 du fichier ExCParticule.h.

Références m_Size.

00080 {m_Size=Size;}

ExCVec3D GetParticuleVelocity void    [inline]
 

Définition à la ligne 107 du fichier ExCParticule.h.

00107 {m_Velocity=Velocity;}

int GetParticuleWeight void    [inline]
 

Définition à la ligne 92 du fichier ExCParticule.h.

Références m_Weight.

00092 {m_Weight=Weight;}

void PrecalculeParticuleTrajectory int    start,
int    end
 

Définition à la ligne 167 du fichier ExCParticule.cpp.

Références Guard, m_Gravity, m_Position, m_VecPosition, ExCVec3D::m_Vector, m_Velocity, et PrecalculeParticuleTrajectory().

Référencé par ExCSystemeParticule::CreateNewParticle(), et PrecalculeParticuleTrajectory().

00168 {
00169 Guard(void ExCParticule::PrecalculeParticuleTrajectory(int start,int end))
00170         float GravityX,GravityY,GravityZ;
00171         ExCVec3D Position;
00172         for(int i=start;i<end;i++)
00173         {
00174                 GravityX=((i*i)*(m_Gravity.m_Vector[0])/2000);
00175                 GravityY=((i*i)*(m_Gravity.m_Vector[1])/2000);
00176                 GravityZ=((i*i)*(m_Gravity.m_Vector[2])/2000);
00177                                 
00178                 Position.m_Vector[0]=m_Position.m_Vector[0]+(m_Velocity.m_Vector[0]*i)-GravityX;
00179                 Position.m_Vector[1]=m_Position.m_Vector[1]+(m_Velocity.m_Vector[1]*i)-GravityY;
00180                 Position.m_Vector[2]=m_Position.m_Vector[2]+(m_Velocity.m_Vector[2]*i)-GravityZ;        
00181                 m_VecPosition.push_back(Position);
00182         }
00183 UnGuard
00184 }

void SetParticuleAcceleration ExCVec3D    Acceleration [inline]
 

Définition à la ligne 109 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00110 {m_Acceleration=Acceleration;}

void SetParticuleBlending int    Blending [inline]
 

Définition à la ligne 103 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00104 {m_Blending=Blending;}

void SetParticuleColorB int    ColorB [inline]
 

Définition à la ligne 100 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00101 {m_ColorB=ColorB;}

void SetParticuleColorG int    ColorG [inline]
 

Définition à la ligne 97 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00098 {m_ColorG=ColorG;}

void SetParticuleColorR int    ColorR [inline]
 

Définition à la ligne 94 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00095 {m_ColorR=ColorR;}

void SetParticuleGravity ExCVec3D    Gravity [inline]
 

Définition à la ligne 112 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00113 {m_Gravity=Gravity;}

void SetParticuleGrowth float    Growth [inline]
 

Définition à la ligne 82 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00083 {m_Growth=Growth;}

void SetParticuleLife int    life [inline]
 

Définition à la ligne 88 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00089 {m_LifeSpan=life;m_TotalLife=life;}

void SetParticuleMass float    Mass [inline]
 

Définition à la ligne 85 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00086 {m_Mass=Mass;}

void SetParticulePosition ExCVec3D    Position [inline]
 

Définition à la ligne 115 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00116 {m_Position=Position;}

void SetParticuleSize float    Size [inline]
 

Définition à la ligne 79 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00080 {m_Size=Size;}

void SetParticuleTexture GLint    texture [inline]
 

Définition à la ligne 77 du fichier ExCParticule.h.

Références m_Texture.

Référencé par ExCSystemeParticule::CreateNewParticle(), et ExCSystemeParticule::SetParticuleTexture().

00078 {m_Texture=texture;}

void SetParticuleType int    type
 

Définition à la ligne 54 du fichier ExCParticule.cpp.

Références Guard, m_Type, et SetParticuleType().

Référencé par ExCSystemeParticule::CreateNewParticle(), ExCSystemeParticule::SetParticuleType(), et SetParticuleType().

00055 {
00056 Guard(void ExCParticule::SetParticuleType(int type))
00057         m_Type=type;
00058         if(m_Type>3)m_Type=1;
00059 UnGuard
00060 }

void SetParticuleVelocity ExCVec3D    Velocity [inline]
 

Définition à la ligne 106 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00107 {m_Velocity=Velocity;}

void SetParticuleWeight int    Weight [inline]
 

Définition à la ligne 91 du fichier ExCParticule.h.

Référencé par ExCSystemeParticule::CreateNewParticle().

00092 {m_Weight=Weight;}


Documentation des données imbriquées

ExCVec3D m_Acceleration [protected]
 

Redéfinie à partir de ExCObject3D.

Définition à la ligne 45 du fichier ExCParticule.h.

Référencé par ExCParticule().

int m_Blending [protected]
 

Définition à la ligne 57 du fichier ExCParticule.h.

Référencé par Draw(), et GetParticuleBlending().

int m_ColorB [protected]
 

Définition à la ligne 56 du fichier ExCParticule.h.

Référencé par Draw(), ExCParticule(), et GetParticuleColorB().

int m_ColorG [protected]
 

Définition à la ligne 55 du fichier ExCParticule.h.

Référencé par Draw(), ExCParticule(), et GetParticuleColorG().

int m_ColorR [protected]
 

Définition à la ligne 54 du fichier ExCParticule.h.

Référencé par Draw(), ExCParticule(), et GetParticuleColorR().

ExCVec3D m_Gravity [protected]
 

Redéfinie à partir de ExCObject3D.

Définition à la ligne 46 du fichier ExCParticule.h.

Référencé par Draw(), ExCParticule(), et PrecalculeParticuleTrajectory().

float m_Growth [protected]
 

Définition à la ligne 49 du fichier ExCParticule.h.

Référencé par Draw(), ExCParticule(), et GetParticuleGrowth().

std::vector<ExCVec3D>::iterator m_ItVecPosition [protected]
 

Définition à la ligne 60 du fichier ExCParticule.h.

int m_LifeSpan [protected]
 

Définition à la ligne 50 du fichier ExCParticule.h.

Référencé par DecreaseLifeSpan(), Draw(), ExCParticule(), et GetParticuleLife().

float m_Mass [protected]
 

Redéfinie à partir de ExCObject3D.

Définition à la ligne 48 du fichier ExCParticule.h.

Référencé par ExCParticule(), et GetParticuleMass().

ExCVec3D m_Position [protected]
 

Redéfinie à partir de ExCObject3D.

Définition à la ligne 43 du fichier ExCParticule.h.

Référencé par Draw(), ExCParticule(), et PrecalculeParticuleTrajectory().

float m_Size [protected]
 

Redéfinie à partir de ExCObject3D.

Définition à la ligne 47 du fichier ExCParticule.h.

Référencé par Draw(), ExCParticule(), et GetParticuleSize().

GLint m_Texture [protected]
 

Définition à la ligne 58 du fichier ExCParticule.h.

Référencé par Draw(), et SetParticuleTexture().

int m_TotalLife [protected]
 

Définition à la ligne 51 du fichier ExCParticule.h.

Référencé par Draw(), et GetParticuleLife().

int m_Type [protected]
 

Définition à la ligne 53 du fichier ExCParticule.h.

Référencé par ExCParticule(), et SetParticuleType().

std::vector<ExCVec3D> m_VecPosition [protected]
 

Définition à la ligne 59 du fichier ExCParticule.h.

Référencé par Draw(), et PrecalculeParticuleTrajectory().

ExCVec3D m_Velocity [protected]
 

Redéfinie à partir de ExCObject3D.

Définition à la ligne 44 du fichier ExCParticule.h.

Référencé par Draw(), ExCParticule(), et PrecalculeParticuleTrajectory().

int m_Weight [protected]
 

Définition à la ligne 52 du fichier ExCParticule.h.

Référencé par ExCParticule(), et GetParticuleWeight().


La documentation associée à cette classe a été générée à partir des fichiers suivants :
Généré le Tue Dec 10 18:18:30 2002 pour ExNihilo par doxygen1.3-rc1