topical media & game development

talk show tell print

graphic-directx-game-19-FireRing-Vertex.h / h



  //=============================================================================
  // Vertex.h by Frank Luna (C) 2005 All Rights Reserved.
  //
  // This file contains all of our vertex structures.  We will add to it
  // as needed throughout the book.
  //=============================================================================
  
  ifndef VERTEX_H
  define VERTEX_H
  
  include <d3dx9.h>
  
  // Call in constructor and destructor, respectively, of derived application class.
  void InitAllVertexDeclarations();
  void DestroyAllVertexDeclarations();
  
  //===============================================================
  struct VertexPos
  {
          VertexPos():pos(0.0f, 0.0f, 0.0f){}
          VertexPos(float x, float y, float z):pos(x,y,z){}
          VertexPos(const D3DXVECTOR3& v):pos(v){}
  
          D3DXVECTOR3 pos;
          static IDirect3DVertexDeclaration9* Decl;
  };
  
  //===============================================================
  struct VertexCol
  {
          VertexCol():pos(0.0f, 0.0f, 0.0f),col(0x00000000){}
          VertexCol(float x, float y, float z, D3DCOLOR c):pos(x,y,z), col(c){}
          VertexCol(const D3DXVECTOR3& v, D3DCOLOR c):pos(v),col(c){}
  
          D3DXVECTOR3 pos;
          D3DCOLOR    col;
          static IDirect3DVertexDeclaration9* Decl;
  };
  
  //===============================================================
  struct VertexPN
  {
          VertexPN()
                  :pos(0.0f, 0.0f, 0.0f),
                  normal(0.0f, 0.0f, 0.0f){}
          VertexPN(float x, float y, float z, 
                  float nx, float ny, float nz):pos(x,y,z), normal(nx,ny,nz){}
          VertexPN(const D3DXVECTOR3& v, const D3DXVECTOR3& n)
                  :pos(v),normal(n){}
  
          D3DXVECTOR3 pos;
          D3DXVECTOR3 normal;
          static IDirect3DVertexDeclaration9* Decl;
  };
  
  //===============================================================
  struct VertexPNT
  {
          VertexPNT()
                  :pos(0.0f, 0.0f, 0.0f),
                  normal(0.0f, 0.0f, 0.0f),
                  tex0(0.0f, 0.0f){}
          VertexPNT(float x, float y, float z, 
                  float nx, float ny, float nz,
                  float u, float v):pos(x,y,z), normal(nx,ny,nz), tex0(u,v){}
          VertexPNT(const D3DXVECTOR3& v, const D3DXVECTOR3& n, const D3DXVECTOR2& uv)
                  :pos(v),normal(n), tex0(uv){}
  
          D3DXVECTOR3 pos;
          D3DXVECTOR3 normal;
          D3DXVECTOR2 tex0;
  
          static IDirect3DVertexDeclaration9* Decl;
  };
  
  //===============================================================
  struct Particle
  {
          D3DXVECTOR3 initialPos;
          D3DXVECTOR3 initialVelocity;
          float       initialSize; // In pixels.
          float       initialTime;
          float       lifeTime;
          float       mass;
          D3DCOLOR    initialColor;
  
          static IDirect3DVertexDeclaration9* Decl;
  };
  
  endif // VERTEX_H


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.