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 ExCSDKParticule

`#include <ExCSDKParticule.h>`

## Membres publics
| ExCSDKParticule (void)
| ~ExCSDKParticule (void)
void | PrecalculeParticuleTrajectory (int start, int end)
void | ApplyForceToParitcule (ExCVec3D force)
void | Draw (void)
void | SetParticuleType (int type)
void | SetParticuleTexture (int texture)
void | SetParticuleSize (float Size)
float | GetParticuleSize (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
int | m_LifeSpan
int | m_TotalLife
int | m_Weight
int | m_Type
int | m_ColorR
int | m_ColorG
int | m_ColorB
int | m_Blending
int | m_Texture
std::vector< ExCVec3D > | m_VecPosition
std::vector< ExCVec3D >::iterator | m_ItVecPosition

## Documentation des contructeurs et destructeurs

ExCSDKParticule | ( | void |  | ) |

| Définition à la ligne 3 du fichier ExCSDKParticule.cpp. Références m_Acceleration, m_ColorB, m_ColorG, m_ColorR, m_Gravity, m_LifeSpan, m_Mass, m_Position, m_Size, m_Type, m_Velocity, m_Weight, et ExCVec3D::SetValue().
    00005 {
    00006         m_LifeSpan=1000;
    00007         m_Size=0.2;
    00008         m_Weight=1;
    00009         m_Mass=1;
    00010         m_Type=PARTICULE_LINE;
    00011         m_ColorR=255;
    00012         m_ColorG=255;
    00013         m_ColorB=255;
    00014         m_Velocity.SetValue(0.0f,0.1f,0.0f);
    00015         m_Position.SetValue(0.0f,0.0f,0.0f);
    00016         m_Acceleration.SetValue(1.0f,1.0f,1.0f);
    00017         m_Gravity.SetValue(0.0f,0.0f,0.0f);

~ExCSDKParticule | ( | void |  | ) |

| Définition à la ligne 19 du fichier ExCSDKParticule.cpp.
    00021 {

## Documentation des méthodes

void ApplyForceToParitcule | ( | ExCVec3D | force | ) |

| Définition à la ligne 178 du fichier ExCSDKParticule.cpp.
    00180 {

void DecreaseLifeSpan | ( | void |  | ) | `[inline]`

| Définition à la ligne 88 du fichier ExCSDKParticule.h. Références m_LifeSpan.
    00088 {m_LifeSpan--;}

void Draw | ( | void |  | ) |

| Définition à la ligne 35 du fichier ExCSDKParticule.cpp.
    00037 {
    00038 /*      float x,y,z,x1,y1,z1;
    00039         float GravityX,GravityY,GravityZ;
    00040         int TimeNow=(m_TotalLife-m_LifeSpan);
    00041
    00042         GLfloat no_mat[]                        = {0.0f,0.0f,0.0f,1.0f};
    00043         GLfloat mat_ambient[]           = {0.7f,0.7f,0.7f,1.0f};
    00044         GLfloat mat_ambient_color[] = {0.8f,0.8f,0.2f,1.0f};
    00045         GLfloat mat_diffuse[]           = {0.1f,0.5f,0.8f,1.0f};
    00046         GLfloat mat_specular[]          = {1.0f,1.0f,1.0f,1.0f};
    00047         GLfloat no_shininess[]          = {0.0f};
    00048         GLfloat low_shininess[]         = {5.0f};
    00049         GLfloat high_shininess[]        = {100.0f};
    00050         GLfloat mat_emission[]          = {0.3f,0.2f,0.2f,0.0f};
    00051
    00052         switch(m_Type)
    00053         {
    00054         case PARTICULE_POINT:
    00055
    00056                 glPushMatrix();
    00057
    00058                         glTranslatef(m_Position.m_Vector[0],
    00059                                 m_Position.m_Vector[1],
    00060                                 m_Position.m_Vector[2]);
    00061                         m_Position=m_Position+m_Velocity;
    00062
    00063                         glColor4ub(m_ColorR,m_ColorG,m_ColorB,m_Blending);
    00064                                 glBegin(GL_POINT);
    00065                                         glVertex3fv(m_Position.m_Vector);
    00066                                 glEnd();
    00067                 glPopMatrix();
    00068                 break;
    00069
    00070         case PARTICULE_LINE:
    00071                 glPushMatrix();
    00072
    00073                 GravityX=((TimeNow*TimeNow)*(m_Gravity.m_Vector[0])/20);
    00074                 GravityY=((TimeNow*TimeNow)*(m_Gravity.m_Vector[1])/20);
    00075                 GravityZ=((TimeNow*TimeNow)*(m_Gravity.m_Vector[2])/20);
    00076
    00077                 x=m_Position.m_Vector[0]+(m_Velocity.m_Vector[0]*TimeNow)-GravityX;
    00078                 y=m_Position.m_Vector[1]+(m_Velocity.m_Vector[1]*TimeNow)-GravityY;
    00079                 z=m_Position.m_Vector[2]+(m_Velocity.m_Vector[2]*TimeNow)-GravityZ;
    00080
    00081                 x1=m_Position.m_Vector[0]+(m_Velocity.m_Vector[0]*(TimeNow+m_Size))-GravityX;
    00082                 y1=m_Position.m_Vector[1]+(m_Velocity.m_Vector[1]*(TimeNow+m_Size))-GravityY;
    00083                 z1=m_Position.m_Vector[2]+(m_Velocity.m_Vector[2]*(TimeNow+m_Size))-GravityZ;
    00084
    00085                 glTranslatef(x,y,z);
    00086                 glColor4ub(m_ColorR,m_ColorG,m_ColorB,m_Blending);
    00087
    00088                 glEnable(GL_BLEND);
    00089                 glEnable(GL_ALPHA);
    00090                 glBlendFunc(GL_ONE,GL_ONE);
    00091                 glEnable(GL_ALPHA_TEST);
    00092                 glAlphaFunc(GL_GREATER,0);
    00093                 glLineWidth(2.0f);
    00094                 //glEnable(GL_LIGHTING);
    00095
    00096                 glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT,no_mat);
    00097                 glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,mat_diffuse);
    00098                 glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);
    00099                 glMaterialfv(GL_FRONT_AND_BACK,GL_SHININESS,high_shininess);
    00100                 glMaterialfv(GL_FRONT_AND_BACK,GL_EMISSION,no_mat);
    00101
    00102                 glBegin(GL_LINES);
    00103                         glVertex3f(x,y,z);
    00104                         glVertex3f(x1,y1,z1);
    00105                 glEnd();
    00106                 glDisable(GL_LIGHTING);
    00107                 glDisable(GL_BLEND);
    00108                 glDisable(GL_ALPHA);
    00109                 glLineWidth(1.5);
    00110                 glPopMatrix();
    00111                 break;
    00112
    00113         case PARTICULE_TEXTURE:
    00114                 glPushMatrix();
    00115                 ExCVec3D position;
    00116                 if(TimeNow<m_TotalLife)
    00117                 {
    00118                         position=m_VecPosition.at(TimeNow);
    00119                         glTranslatef(position.m_Vector[0],position.m_Vector[1],position.m_Vector[2]);
    00120                         // Orienation of particule
    00121                         GLfloat viewMatrix[16];
    00122                         glGetFloatv(GL_MODELVIEW_MATRIX, viewMatrix);
    00123                         ExCVec3D right;
    00124                         ExCVec3D up;
    00125
    00126                         right.SetValue(viewMatrix[0],viewMatrix[4],viewMatrix[8]);
    00127                         up.SetValue(viewMatrix[1],viewMatrix[5],viewMatrix[9]);
    00128
    00129                         ExCVec3D v1,v2,v3,v4;
    00130                         v1=m_Position+(right+up)*-m_Size;
    00131                         v2=m_Position+(right-up)*m_Size;
    00132                         v3=m_Position+(right+up)*m_Size;
    00133                         v4=m_Position+(up-right)*m_Size;
    00134
    00135
    00136                         //DRAW PARTICULE
    00137                         glColor4ub(m_ColorR,m_ColorG,m_ColorB,m_Blending);
    00138                         glEnable(GL_BLEND);
    00139                         glEnable(GL_ALPHA);
    00140                         glEnable(GL_TEXTURE_2D);
    00141                         glBlendFunc(GL_ONE,GL_ONE);
    00142                         glEnable(GL_ALPHA_TEST);
    00143                         glAlphaFunc(GL_GREATER,0);
    00144                         glDisable(GL_LIGHTING);
    00145                         glBindTexture(GL_TEXTURE_2D,m_Texture);
    00146                         glBegin(GL_QUADS);
    00147                                 glTexCoord2f(0.0f, 0.0f); glVertex3fv(v1.m_Vector);
    00148                                 glTexCoord2f(1.0f, 0.0f); glVertex3fv(v2.m_Vector);
    00149                                 glTexCoord2f(1.0f, 1.0f); glVertex3fv(v3.m_Vector);
    00150                                 glTexCoord2f(0.0f, 1.0f); glVertex3fv(v4.m_Vector);
    00151                         glEnd();
    00152                         glDisable(GL_TEXTURE_2D);
    00153                         glDisable(GL_BLEND);
    00154                         glDisable(GL_ALPHA);
    00155                         glEnable(GL_LIGHTING);
    00156                 }
    00157                 glPopMatrix();
    00158                 break;
    00159         }*/

ExCVec3D GetParticuleAcceleration | ( | void |  | ) | `[inline]`

| Définition à la ligne 80 du fichier ExCSDKParticule.h.
    00080 {return m_Acceleration;}

int GetParticuleBlending | ( | void |  | ) | `[inline]`

| Définition à la ligne 74 du fichier ExCSDKParticule.h. Références m_Blending.
    00074 {return m_Blending;}

int GetParticuleColorB | ( | void |  | ) | `[inline]`

| Définition à la ligne 71 du fichier ExCSDKParticule.h. Références m_ColorB.
    00071 {return m_ColorB;}

int GetParticuleColorG | ( | void |  | ) | `[inline]`

| Définition à la ligne 68 du fichier ExCSDKParticule.h. Références m_ColorG.
    00068 {return m_ColorG;}

int GetParticuleColorR | ( | void |  | ) | `[inline]`

| Définition à la ligne 65 du fichier ExCSDKParticule.h. Références m_ColorR.
    00065 {return m_ColorR;}

ExCVec3D GetParticuleGravity | ( | void |  | ) | `[inline]`

| Définition à la ligne 83 du fichier ExCSDKParticule.h.
    00083 {return m_Gravity;}

int GetParticuleLife | ( | void |  | ) | `[inline]`

| Définition à la ligne 59 du fichier ExCSDKParticule.h. Références m_LifeSpan.
    00059 {return m_LifeSpan;}

float GetParticuleMass | ( | void |  | ) | `[inline]`

| Définition à la ligne 56 du fichier ExCSDKParticule.h. Références m_Mass.
    00056 {return m_Mass;}

ExCVec3D GetParticulePosition | ( | void |  | ) | `[inline]`

| Définition à la ligne 86 du fichier ExCSDKParticule.h.
    00086 {return m_Position;}

float GetParticuleSize | ( | void |  | ) | `[inline]`

| Définition à la ligne 53 du fichier ExCSDKParticule.h. Références m_Size.
    00053 {return m_Size;}

ExCVec3D GetParticuleVelocity | ( | void |  | ) | `[inline]`

| Définition à la ligne 77 du fichier ExCSDKParticule.h.
    00077 {return m_Velocity;}

int GetParticuleWeight | ( | void |  | ) | `[inline]`

| Définition à la ligne 62 du fichier ExCSDKParticule.h. Références m_Weight.
    00062 {return m_Weight;}

void PrecalculeParticuleTrajectory | ( | int | start,
|  | int | end
| ) |

| Définition à la ligne 161 du fichier ExCSDKParticule.cpp. Références m_Gravity, m_Position, m_VecPosition, ExCVec3D::m_Vector, et m_Velocity.
    00163 {
    00164         float GravityX,GravityY,GravityZ;
    00165         ExCVec3D Position;
    00166         for(int i=start;i<end;i++)
    00167         {
    00168                 GravityX=((i*i)*(m_Gravity.m_Vector[0])/2000);
    00169                 GravityY=((i*i)*(m_Gravity.m_Vector[1])/2000);
    00170                 GravityZ=((i*i)*(m_Gravity.m_Vector[2])/2000);
    00171
    00172                 Position.m_Vector[0]=m_Position.m_Vector[0]+(m_Velocity.m_Vector[0]*i)-GravityX;
    00173                 Position.m_Vector[1]=m_Position.m_Vector[1]+(m_Velocity.m_Vector[1]*i)-GravityY;
    00174                 Position.m_Vector[2]=m_Position.m_Vector[2]+(m_Velocity.m_Vector[2]*i)-GravityZ;
    00175                 m_VecPosition.push_back(Position);
    00176         }

void SetParticuleAcceleration | ( | ExCVec3D | Acceleration | ) | `[inline]`

| Définition à la ligne 79 du fichier ExCSDKParticule.h.
    00079 {m_Acceleration=Acceleration;}

void SetParticuleBlending | ( | int | Blending | ) | `[inline]`

| Définition à la ligne 73 du fichier ExCSDKParticule.h. Références m_Blending.
    00073 {m_Blending=Blending;}

void SetParticuleColorB | ( | int | ColorB | ) | `[inline]`

| Définition à la ligne 70 du fichier ExCSDKParticule.h. Références m_ColorB.
    00070 {m_ColorB=ColorB;}

void SetParticuleColorG | ( | int | ColorG | ) | `[inline]`

| Définition à la ligne 67 du fichier ExCSDKParticule.h. Références m_ColorG.
    00067 {m_ColorG=ColorG;}

void SetParticuleColorR | ( | int | ColorR | ) | `[inline]`

| Définition à la ligne 64 du fichier ExCSDKParticule.h. Références m_ColorR.
    00064 {m_ColorR=ColorR;}

void SetParticuleGravity | ( | ExCVec3D | Gravity | ) | `[inline]`

| Définition à la ligne 82 du fichier ExCSDKParticule.h.
    00082 {m_Gravity=Gravity;}

void SetParticuleLife | ( | int | life | ) | `[inline]`

| Définition à la ligne 58 du fichier ExCSDKParticule.h. Références m_LifeSpan, et m_TotalLife.
    00058 {m_LifeSpan=life;m_TotalLife=life;}

void SetParticuleMass | ( | float | Mass | ) | `[inline]`

| Définition à la ligne 55 du fichier ExCSDKParticule.h. Références m_Mass.
    00055 {m_Mass=Mass;}

void SetParticulePosition | ( | ExCVec3D | Position | ) | `[inline]`

| Définition à la ligne 85 du fichier ExCSDKParticule.h.
    00085 {m_Position=Position;}

void SetParticuleSize | ( | float | Size | ) | `[inline]`

| Définition à la ligne 52 du fichier ExCSDKParticule.h. Références m_Size.
    00052 {m_Size=Size;}

void SetParticuleTexture | ( | int | texture | ) |

| Définition à la ligne 29 du fichier ExCSDKParticule.cpp. Références m_Texture.
    00031 {
    00032         m_Texture=texture;

void SetParticuleType | ( | int | type | ) |

| Définition à la ligne 23 du fichier ExCSDKParticule.cpp. Références m_Type.
    00025 {
    00026         m_Type=type;
    00027         if(m_Type>3)m_Type=1;

void SetParticuleVelocity | ( | ExCVec3D | Velocity | ) | `[inline]`

| Définition à la ligne 76 du fichier ExCSDKParticule.h.
    00076 {m_Velocity=Velocity;}

void SetParticuleWeight | ( | int | Weight | ) | `[inline]`

| Définition à la ligne 61 du fichier ExCSDKParticule.h. Références m_Weight.
    00061 {m_Weight=Weight;}

## Documentation des données imbriquées

ExCVec3D m_Acceleration`[protected]`

| Définition à la ligne 23 du fichier ExCSDKParticule.h. Référencé par ExCSDKParticule().

int m_Blending`[protected]`

| Définition à la ligne 34 du fichier ExCSDKParticule.h. Référencé par GetParticuleBlending(), et SetParticuleBlending().

int m_ColorB`[protected]`

| Définition à la ligne 33 du fichier ExCSDKParticule.h. Référencé par ExCSDKParticule(), GetParticuleColorB(), et SetParticuleColorB().

int m_ColorG`[protected]`

| Définition à la ligne 32 du fichier ExCSDKParticule.h. Référencé par ExCSDKParticule(), GetParticuleColorG(), et SetParticuleColorG().

int m_ColorR`[protected]`

| Définition à la ligne 31 du fichier ExCSDKParticule.h. Référencé par ExCSDKParticule(), GetParticuleColorR(), et SetParticuleColorR().

ExCVec3D m_Gravity`[protected]`

| Définition à la ligne 24 du fichier ExCSDKParticule.h. Référencé par ExCSDKParticule(), et PrecalculeParticuleTrajectory().

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

| Définition à la ligne 38 du fichier ExCSDKParticule.h.

int m_LifeSpan`[protected]`

| Définition à la ligne 27 du fichier ExCSDKParticule.h. Référencé par DecreaseLifeSpan(), ExCSDKParticule(), GetParticuleLife(), et SetParticuleLife().

float m_Mass`[protected]`

| Définition à la ligne 26 du fichier ExCSDKParticule.h. Référencé par ExCSDKParticule(), GetParticuleMass(), et SetParticuleMass().

ExCVec3D m_Position`[protected]`

| Définition à la ligne 21 du fichier ExCSDKParticule.h. Référencé par ExCSDKParticule(), et PrecalculeParticuleTrajectory().

float m_Size`[protected]`

| Définition à la ligne 25 du fichier ExCSDKParticule.h. Référencé par ExCSDKParticule(), GetParticuleSize(), et SetParticuleSize().

int m_Texture`[protected]`

| Définition à la ligne 35 du fichier ExCSDKParticule.h. Référencé par SetParticuleTexture().

int m_TotalLife`[protected]`

| Définition à la ligne 28 du fichier ExCSDKParticule.h. Référencé par SetParticuleLife().

int m_Type`[protected]`

| Définition à la ligne 30 du fichier ExCSDKParticule.h. Référencé par ExCSDKParticule(), et SetParticuleType().

std::vector<ExCVec3D> m_VecPosition`[protected]`

| Définition à la ligne 37 du fichier ExCSDKParticule.h. Référencé par PrecalculeParticuleTrajectory().

ExCVec3D m_Velocity`[protected]`

| Définition à la ligne 22 du fichier ExCSDKParticule.h. Référencé par ExCSDKParticule(), et PrecalculeParticuleTrajectory().

int m_Weight`[protected]`

| Définition à la ligne 29 du fichier ExCSDKParticule.h. Référencé par ExCSDKParticule(), GetParticuleWeight(), et SetParticuleWeight().

La documentation associée à cette classe a été générée à partir des fichiers suivants :

- ExCSDKParticule.h
- ExCSDKParticule.cpp