Main Page   Namespace List   Class Hierarchy   Alphabetical List   Data Structures   File List   Namespace Members   Data Fields   Globals  

ExCSDKParticule Class Reference

#include <ExCSDKParticule.h>


Public Methods

 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)

Protected Attributes

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


Constructor & Destructor Documentation

ExCSDKParticule void   
 

Definition at line 3 of file ExCSDKParticule.cpp.

References m_Acceleration, m_ColorB, m_ColorG, m_ColorR, m_Gravity, m_LifeSpan, m_Mass, m_Position, m_Size, m_Type, m_Velocity, m_Weight, and 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   
 

Definition at line 19 of file ExCSDKParticule.cpp.

00021 {


Member Function Documentation

void ApplyForceToParitcule ExCVec3D    force
 

Definition at line 178 of file ExCSDKParticule.cpp.

00180 {

void DecreaseLifeSpan void    [inline]
 

Definition at line 88 of file ExCSDKParticule.h.

References m_LifeSpan.

00088 {m_LifeSpan--;}

void Draw void   
 

Definition at line 35 of file 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]
 

Definition at line 80 of file ExCSDKParticule.h.

00080 {return m_Acceleration;}

int GetParticuleBlending void    [inline]
 

Definition at line 74 of file ExCSDKParticule.h.

References m_Blending.

00074 {return m_Blending;}

int GetParticuleColorB void    [inline]
 

Definition at line 71 of file ExCSDKParticule.h.

References m_ColorB.

00071 {return m_ColorB;}

int GetParticuleColorG void    [inline]
 

Definition at line 68 of file ExCSDKParticule.h.

References m_ColorG.

00068 {return m_ColorG;}

int GetParticuleColorR void    [inline]
 

Definition at line 65 of file ExCSDKParticule.h.

References m_ColorR.

00065 {return m_ColorR;}

ExCVec3D GetParticuleGravity void    [inline]
 

Definition at line 83 of file ExCSDKParticule.h.

00083 {return m_Gravity;}

int GetParticuleLife void    [inline]
 

Definition at line 59 of file ExCSDKParticule.h.

References m_LifeSpan.

00059 {return m_LifeSpan;}

float GetParticuleMass void    [inline]
 

Definition at line 56 of file ExCSDKParticule.h.

References m_Mass.

00056 {return m_Mass;}

ExCVec3D GetParticulePosition void    [inline]
 

Definition at line 86 of file ExCSDKParticule.h.

00086 {return m_Position;}

float GetParticuleSize void    [inline]
 

Definition at line 53 of file ExCSDKParticule.h.

References m_Size.

00053 {return m_Size;}

ExCVec3D GetParticuleVelocity void    [inline]
 

Definition at line 77 of file ExCSDKParticule.h.

00077 {return m_Velocity;}

int GetParticuleWeight void    [inline]
 

Definition at line 62 of file ExCSDKParticule.h.

References m_Weight.

00062 {return m_Weight;}

void PrecalculeParticuleTrajectory int    start,
int    end
 

Definition at line 161 of file ExCSDKParticule.cpp.

References m_Gravity, m_Position, m_VecPosition, ExCVec3D::m_Vector, and 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]
 

Definition at line 79 of file ExCSDKParticule.h.

00079 {m_Acceleration=Acceleration;}

void SetParticuleBlending int    Blending [inline]
 

Definition at line 73 of file ExCSDKParticule.h.

References m_Blending.

00073 {m_Blending=Blending;}

void SetParticuleColorB int    ColorB [inline]
 

Definition at line 70 of file ExCSDKParticule.h.

References m_ColorB.

00070 {m_ColorB=ColorB;}

void SetParticuleColorG int    ColorG [inline]
 

Definition at line 67 of file ExCSDKParticule.h.

References m_ColorG.

00067 {m_ColorG=ColorG;}

void SetParticuleColorR int    ColorR [inline]
 

Definition at line 64 of file ExCSDKParticule.h.

References m_ColorR.

00064 {m_ColorR=ColorR;}

void SetParticuleGravity ExCVec3D    Gravity [inline]
 

Definition at line 82 of file ExCSDKParticule.h.

00082 {m_Gravity=Gravity;}

void SetParticuleLife int    life [inline]
 

Definition at line 58 of file ExCSDKParticule.h.

References m_LifeSpan, and m_TotalLife.

00058 {m_LifeSpan=life;m_TotalLife=life;}

void SetParticuleMass float    Mass [inline]
 

Definition at line 55 of file ExCSDKParticule.h.

References m_Mass.

00055 {m_Mass=Mass;}

void SetParticulePosition ExCVec3D    Position [inline]
 

Definition at line 85 of file ExCSDKParticule.h.

00085 {m_Position=Position;}

void SetParticuleSize float    Size [inline]
 

Definition at line 52 of file ExCSDKParticule.h.

References m_Size.

00052 {m_Size=Size;}

void SetParticuleTexture int    texture
 

Definition at line 29 of file ExCSDKParticule.cpp.

References m_Texture.

00031 {
00032         m_Texture=texture;

void SetParticuleType int    type
 

Definition at line 23 of file ExCSDKParticule.cpp.

References m_Type.

00025 {
00026         m_Type=type;
00027         if(m_Type>3)m_Type=1;

void SetParticuleVelocity ExCVec3D    Velocity [inline]
 

Definition at line 76 of file ExCSDKParticule.h.

00076 {m_Velocity=Velocity;}

void SetParticuleWeight int    Weight [inline]
 

Definition at line 61 of file ExCSDKParticule.h.

References m_Weight.

00061 {m_Weight=Weight;}


Field Documentation

ExCVec3D m_Acceleration [protected]
 

Definition at line 23 of file ExCSDKParticule.h.

Referenced by ExCSDKParticule().

int m_Blending [protected]
 

Definition at line 34 of file ExCSDKParticule.h.

Referenced by GetParticuleBlending(), and SetParticuleBlending().

int m_ColorB [protected]
 

Definition at line 33 of file ExCSDKParticule.h.

Referenced by ExCSDKParticule(), GetParticuleColorB(), and SetParticuleColorB().

int m_ColorG [protected]
 

Definition at line 32 of file ExCSDKParticule.h.

Referenced by ExCSDKParticule(), GetParticuleColorG(), and SetParticuleColorG().

int m_ColorR [protected]
 

Definition at line 31 of file ExCSDKParticule.h.

Referenced by ExCSDKParticule(), GetParticuleColorR(), and SetParticuleColorR().

ExCVec3D m_Gravity [protected]
 

Definition at line 24 of file ExCSDKParticule.h.

Referenced by ExCSDKParticule(), and PrecalculeParticuleTrajectory().

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

Definition at line 38 of file ExCSDKParticule.h.

int m_LifeSpan [protected]
 

Definition at line 27 of file ExCSDKParticule.h.

Referenced by DecreaseLifeSpan(), ExCSDKParticule(), GetParticuleLife(), and SetParticuleLife().

float m_Mass [protected]
 

Definition at line 26 of file ExCSDKParticule.h.

Referenced by ExCSDKParticule(), GetParticuleMass(), and SetParticuleMass().

ExCVec3D m_Position [protected]
 

Definition at line 21 of file ExCSDKParticule.h.

Referenced by ExCSDKParticule(), and PrecalculeParticuleTrajectory().

float m_Size [protected]
 

Definition at line 25 of file ExCSDKParticule.h.

Referenced by ExCSDKParticule(), GetParticuleSize(), and SetParticuleSize().

int m_Texture [protected]
 

Definition at line 35 of file ExCSDKParticule.h.

Referenced by SetParticuleTexture().

int m_TotalLife [protected]
 

Definition at line 28 of file ExCSDKParticule.h.

Referenced by SetParticuleLife().

int m_Type [protected]
 

Definition at line 30 of file ExCSDKParticule.h.

Referenced by ExCSDKParticule(), and SetParticuleType().

std::vector<ExCVec3D> m_VecPosition [protected]
 

Definition at line 37 of file ExCSDKParticule.h.

Referenced by PrecalculeParticuleTrajectory().

ExCVec3D m_Velocity [protected]
 

Definition at line 22 of file ExCSDKParticule.h.

Referenced by ExCSDKParticule(), and PrecalculeParticuleTrajectory().

int m_Weight [protected]
 

Definition at line 29 of file ExCSDKParticule.h.

Referenced by ExCSDKParticule(), GetParticuleWeight(), and SetParticuleWeight().


The documentation for this class was generated from the following files:
Generated on Tue Dec 10 18:20:27 2002 for ExNihilo by doxygen1.3-rc1