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

Référence de la classe ExCParticule

#include <ExCParticule.h>


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 (int texture)
void SetManagerTexture (ExManagerTexture *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)
void SetParticuleAcceleration (ExCVec3D Acceleration)
void SetParticuleGravity (ExCVec3D Gravity)
void SetParticulePosition (ExCVec3D Position)
void DecreaseLifeSpan (void)

Attributs Publics

ExCVec3D GetParticuleVelocity (void)
ExCVec3D GetParticuleAcceleration (void)
ExCVec3D GetParticuleGravity (void)
ExCVec3D GetParticulePosition (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< ExCVec3Dm_VecPosition
std::vector< ExCVec3D >::iterator m_ItVecPosition
ExManagerTextureManagerTexture


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_LifeSpan, m_Mass, m_Position, m_Size, m_Type, m_Velocity, m_Weight, PARTICULE_LINE, ExCVec3D::SetValue(), et UnGuard.

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

00027 {
00028 Guard(ExCParticule::ExCParticule(void))
00029         m_LifeSpan=1000;
00030         m_Size=0.2;
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 UnGuard
00042 }

~ExCParticule void   
 

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

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

00045 {
00046 Guard(ExCParticule::~ExCParticule(void))
00047 UnGuard
00048 }


Documentation des méthodes

void ApplyForceToParitcule ExCVec3D    force
 

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

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

Référencé par ApplyForceToParitcule().

00217 {
00218 Guard(void ExCParticule::ApplyForceToParitcule(ExCVec3D force))
00219         
00220 UnGuard
00221 }

void DecreaseLifeSpan void    [inline]
 

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

Références m_LifeSpan.

00119 {m_LifeSpan--;}

void Draw void   
 

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

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

Référencé par Draw().

00068 {
00069 Guard(void ExCParticule::Draw(void))
00070         
00071         float x,y,z,x1,y1,z1;
00072         float GravityX,GravityY,GravityZ;
00073         int TimeNow=(m_TotalLife-m_LifeSpan);
00074         
00075         GLfloat no_mat[]                        = {0.0f,0.0f,0.0f,1.0f};
00076         GLfloat mat_ambient[]           = {0.7f,0.7f,0.7f,1.0f};
00077         GLfloat mat_ambient_color[] = {0.8f,0.8f,0.2f,1.0f};
00078         GLfloat mat_diffuse[]           = {0.1f,0.5f,0.8f,1.0f};
00079         GLfloat mat_specular[]          = {1.0f,1.0f,1.0f,1.0f};
00080         GLfloat no_shininess[]          = {0.0f};
00081         GLfloat low_shininess[]         = {5.0f};
00082         GLfloat high_shininess[]        = {100.0f};
00083         GLfloat mat_emission[]          = {0.3f,0.2f,0.2f,0.0f};
00084 
00085         switch(m_Type)
00086         {
00087         case PARTICULE_POINT:
00088 
00089                 glPushMatrix();
00090 
00091                         glTranslatef(m_Position.m_Vector[0],
00092                                 m_Position.m_Vector[1],
00093                                 m_Position.m_Vector[2]);
00094                         m_Position=m_Position+m_Velocity;
00095 
00096                         glColor4ub(m_ColorR,m_ColorG,m_ColorB,m_Blending);
00097                                 glBegin(GL_POINT);
00098                                         glVertex3fv(m_Position.m_Vector);
00099                                 glEnd();
00100                 glPopMatrix();
00101                 break;
00102 
00103         case PARTICULE_LINE:
00104                 glPushMatrix();
00105 
00106                 GravityX=((TimeNow*TimeNow)*(m_Gravity.m_Vector[0])/20);
00107                 GravityY=((TimeNow*TimeNow)*(m_Gravity.m_Vector[1])/20);
00108                 GravityZ=((TimeNow*TimeNow)*(m_Gravity.m_Vector[2])/20);
00109                                 
00110                 x=m_Position.m_Vector[0]+(m_Velocity.m_Vector[0]*TimeNow)-GravityX;
00111                 y=m_Position.m_Vector[1]+(m_Velocity.m_Vector[1]*TimeNow)-GravityY;
00112                 z=m_Position.m_Vector[2]+(m_Velocity.m_Vector[2]*TimeNow)-GravityZ;     
00113 
00114                 x1=m_Position.m_Vector[0]+(m_Velocity.m_Vector[0]*(TimeNow+m_Size))-GravityX;
00115                 y1=m_Position.m_Vector[1]+(m_Velocity.m_Vector[1]*(TimeNow+m_Size))-GravityY;
00116                 z1=m_Position.m_Vector[2]+(m_Velocity.m_Vector[2]*(TimeNow+m_Size))-GravityZ;
00117                 
00118                 glTranslatef(x,y,z);
00119                 glColor4ub(m_ColorR,m_ColorG,m_ColorB,m_Blending);
00120                 
00121                 glEnable(GL_BLEND);
00122                 glEnable(GL_ALPHA);
00123                 glBlendFunc(GL_ONE,GL_ONE);
00124                 glEnable(GL_ALPHA_TEST);
00125                 glAlphaFunc(GL_GREATER,0);
00126                 glLineWidth(2.0f);
00127                 //glEnable(GL_LIGHTING);
00128                 
00129                 glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT,no_mat); 
00130                 glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,mat_diffuse); 
00131                 glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular); 
00132                 glMaterialfv(GL_FRONT_AND_BACK,GL_SHININESS,high_shininess); 
00133                 glMaterialfv(GL_FRONT_AND_BACK,GL_EMISSION,no_mat); 
00134                 
00135                 glBegin(GL_LINES);
00136                         glVertex3f(x,y,z);      
00137                         glVertex3f(x1,y1,z1);
00138                 glEnd();
00139                 glDisable(GL_LIGHTING);
00140                 glDisable(GL_BLEND);
00141                 glDisable(GL_ALPHA);
00142                 glLineWidth(1.5);
00143                 glPopMatrix();
00144                 break;
00145 
00146         case PARTICULE_TEXTURE:
00147                 glPushMatrix();
00148                 ExCVec3D position;
00149                 if(TimeNow<m_TotalLife)
00150                 {
00151                         position=m_VecPosition.at(TimeNow);
00152                         glTranslatef(position.m_Vector[0],position.m_Vector[1],position.m_Vector[2]);
00153                         // Orienation of particule
00154                         GLfloat viewMatrix[16];
00155                         glGetFloatv(GL_MODELVIEW_MATRIX, viewMatrix);
00156                         ExCVec3D right;
00157                         ExCVec3D up;
00158 
00159                         right.SetValue(viewMatrix[0],viewMatrix[4],viewMatrix[8]);
00160                         up.SetValue(viewMatrix[1],viewMatrix[5],viewMatrix[9]);
00161 
00162                         ExCVec3D v1,v2,v3,v4;
00163                         v1=m_Position+(right+up)*-m_Size;
00164                         v2=m_Position+(right-up)*m_Size;
00165                         v3=m_Position+(right+up)*m_Size;
00166                         v4=m_Position+(up-right)*m_Size;
00167 
00168                                         
00169                         //DRAW PARTICULE
00170                         glColor4ub(m_ColorR,m_ColorG,m_ColorB,m_Blending);
00171                         glEnable(GL_BLEND);
00172                         glEnable(GL_ALPHA);
00173                         glEnable(GL_TEXTURE_2D);
00174                         glBlendFunc(GL_ONE,GL_ONE);
00175                         glEnable(GL_ALPHA_TEST);
00176                         glAlphaFunc(GL_GREATER,0);
00177                         glDisable(GL_LIGHTING);
00178                         glBindTexture(GL_TEXTURE_2D,m_Texture);
00179                         glBegin(GL_QUADS);
00180                                 glTexCoord2f(0.0f, 0.0f); glVertex3fv(v1.m_Vector);
00181                                 glTexCoord2f(1.0f, 0.0f); glVertex3fv(v2.m_Vector);
00182                                 glTexCoord2f(1.0f, 1.0f); glVertex3fv(v3.m_Vector);
00183                                 glTexCoord2f(0.0f, 1.0f); glVertex3fv(v4.m_Vector);
00184                         glEnd();
00185                         glDisable(GL_TEXTURE_2D);
00186                         glDisable(GL_BLEND);
00187                         glDisable(GL_ALPHA);
00188                         glEnable(GL_LIGHTING);
00189                 }
00190                 glPopMatrix();
00191                 break;
00192         }
00193         
00194 UnGuard
00195 }

int GetParticuleBlending void    [inline]
 

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

Références m_Blending.

00105 {return m_Blending;}

int GetParticuleColorB void    [inline]
 

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

Références m_ColorB.

00102 {return m_ColorB;}

int GetParticuleColorG void    [inline]
 

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

Références m_ColorG.

00099 {return m_ColorG;}

int GetParticuleColorR void    [inline]
 

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

Références m_ColorR.

00096 {return m_ColorR;}

int GetParticuleLife void    [inline]
 

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

Références m_LifeSpan.

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

00090 {return m_LifeSpan;}

float GetParticuleMass void    [inline]
 

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

Références m_Mass.

00087 {return m_Mass;}

float GetParticuleSize void    [inline]
 

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

Références m_Size.

00084 {return m_Size;}

int GetParticuleWeight void    [inline]
 

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

Références m_Weight.

00093 {return m_Weight;}

void PrecalculeParticuleTrajectory int    start,
int    end
 

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

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

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

00198 {
00199 Guard(void ExCParticule::PrecalculeParticuleTrajectory(int start,int end))
00200         float GravityX,GravityY,GravityZ;
00201         ExCVec3D Position;
00202         for(int i=start;i<end;i++)
00203         {
00204                 GravityX=((i*i)*(m_Gravity.m_Vector[0])/2000);
00205                 GravityY=((i*i)*(m_Gravity.m_Vector[1])/2000);
00206                 GravityZ=((i*i)*(m_Gravity.m_Vector[2])/2000);
00207                                 
00208                 Position.m_Vector[0]=m_Position.m_Vector[0]+(m_Velocity.m_Vector[0]*i)-GravityX;
00209                 Position.m_Vector[1]=m_Position.m_Vector[1]+(m_Velocity.m_Vector[1]*i)-GravityY;
00210                 Position.m_Vector[2]=m_Position.m_Vector[2]+(m_Velocity.m_Vector[2]*i)-GravityZ;        
00211                 m_VecPosition.push_back(Position);
00212         }
00213 UnGuard
00214 }

void SetManagerTexture ExManagerTexture   Texture [inline]
 

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

00081 {ManagerTexture = Texture;}

void SetParticuleAcceleration ExCVec3D    Acceleration [inline]
 

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

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

00110 {m_Acceleration=Acceleration;}

void SetParticuleBlending int    Blending [inline]
 

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

Références m_Blending.

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

00104 {m_Blending=Blending;}

void SetParticuleColorB int    ColorB [inline]
 

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

Références m_ColorB.

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

00101 {m_ColorB=ColorB;}

void SetParticuleColorG int    ColorG [inline]
 

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

Références m_ColorG.

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

00098 {m_ColorG=ColorG;}

void SetParticuleColorR int    ColorR [inline]
 

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

Références m_ColorR.

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

00095 {m_ColorR=ColorR;}

void SetParticuleGravity ExCVec3D    Gravity [inline]
 

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

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

00113 {m_Gravity=Gravity;}

void SetParticuleLife int    life [inline]
 

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

Références m_LifeSpan, et m_TotalLife.

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

00089 {m_LifeSpan=life;m_TotalLife=life;}

void SetParticuleMass float    Mass [inline]
 

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

Références m_Mass.

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

00086 {m_Mass=Mass;}

void SetParticulePosition ExCVec3D    Position [inline]
 

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

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

00116 {m_Position=Position;}

void SetParticuleSize float    Size [inline]
 

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

Références m_Size.

00083 {m_Size=Size;}

void SetParticuleTexture int    texture
 

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

Références Guard, m_Texture, SetParticuleTexture(), et UnGuard.

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

00060 {
00061 Guard(void ExCParticule::SetParticuleTexture(int texture))
00062         m_Texture=texture;
00063 UnGuard
00064 }

void SetParticuleType int    type
 

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

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

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

00052 {
00053 Guard(void ExCParticule::SetParticuleType(int type))
00054         m_Type=type;
00055         if(m_Type>3)m_Type=1;
00056 UnGuard
00057 }

void SetParticuleVelocity ExCVec3D    Velocity [inline]
 

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

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

00107 {m_Velocity=Velocity;}

void SetParticuleWeight int    Weight [inline]
 

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

Références m_Weight.

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

00092 {m_Weight=Weight;}


Documentation des données imbriquées

ExCVec3D GetParticuleAcceleration(void)
 

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

00111 {return m_Acceleration;}

ExCVec3D GetParticuleGravity(void)
 

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

00114 {return m_Gravity;}

ExCVec3D GetParticulePosition(void)
 

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

00117 {return m_Position;}

ExCVec3D GetParticuleVelocity(void)
 

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

00108 {return m_Velocity;}

ExCVec3D m_Acceleration [protected]
 

Définition à la ligne 46 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(), GetParticuleBlending(), et SetParticuleBlending().

int m_ColorB [protected]
 

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

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

int m_ColorG [protected]
 

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

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

int m_ColorR [protected]
 

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

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

ExCVec3D m_Gravity [protected]
 

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

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

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

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

int m_LifeSpan [protected]
 

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

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

float m_Mass [protected]
 

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

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

ExCVec3D m_Position [protected]
 

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

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

float m_Size [protected]
 

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

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

int 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 SetParticuleLife().

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 60 du fichier ExCParticule.h.

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

ExCVec3D m_Velocity [protected]
 

Définition à la ligne 45 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(), GetParticuleWeight(), et SetParticuleWeight().

ExManagerTexture* ManagerTexture [protected]
 

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


La documentation associée à cette classe a été générée à partir des fichiers suivants :
Généré le Tue Aug 6 20:25:39 2002 pour ExNihilo par doxygen1.2.17