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

## 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< ExCVec3D > | m_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 :

- ExCParticule.h
- ExCParticule.cpp