The DejaVU Framework -- hush 3.1

include: graphic-directx-game-19-Sprinkler-PSystem.h /home/ae/www/media


- [up] [top] - index make include source logic grammar scripts html configure mx slides talks scenes reports projects
<body bgcolor="#FFFFFF" text="#000000">

//=============================================================================
// PSystem.h by Frank Luna (C) 2004 All Rights Reserved.
//=============================================================================

ifndef PSYSTEM_H
define PSYSTEM_H

include <d3dUtil.h>
include <Vertex.h>
include 

//===============================================================
<h4 align=right text=red> PSystem</h4><hr>
  class PSystem
{
public:
        PSystem(
                const std::string& fxName, 
                const std::string& techName, 
                const std::string& texName, 
                const D3DXVECTOR3& accel, 
                const AABB& box,
                int maxNumParticles,
                float timePerParticle);

        virtual ~PSystem();

        // Access Methods
        float getTime();
        void  setTime(float t);
        const AABB& getAABB()const;

        void setWorldMtx(const D3DXMATRIX& world);
        void addParticle();

        virtual void onLostDevice();
        virtual void onResetDevice();

        virtual void initParticle(Particle& out) = 0;
        virtual void update(float dt);
        virtual void draw();

protected:
        // In practice, some sort of ID3DXEffect and IDirect3DTexture9 manager should
        // be used so that you do not duplicate effects/textures by having several
        // instances of a particle system.
        ID3DXEffect* mFX;
        D3DXHANDLE mhTech;
        D3DXHANDLE mhWVP;
        D3DXHANDLE mhEyePosL;
        D3DXHANDLE mhTex;
        D3DXHANDLE mhTime;
        D3DXHANDLE mhAccel;
        D3DXHANDLE mhViewportHeight;

        IDirect3DTexture9* mTex;
        IDirect3DVertexBuffer9* mVB;
        D3DXMATRIX mWorld;
        D3DXMATRIX mInvWorld;
        float mTime;
        D3DXVECTOR3 mAccel;
        AABB mBox;
        int mMaxNumParticles;
        float mTimePerParticle;

        std::vector mParticles;
        std::vector mAliveParticles;
        std::vector mDeadParticles; 
};
<hr>


endif // P_SYSTEM
<hr> <style type="text/css"> div.mainnavigate { margin: 20px 2px; /* background-color: #ffffff; */ border: 1px solid black; } </style> <div class=xnavigate> [] <black>readme</black> course(s) preface <black>I</black> 1 2 <black>II</black> 3 4 <black>III</black> 5 6 7 <black>IV</black> 8 9 10 <black>V</black> 11 12 afterthought(s) <black>appendix</black> reference(s) example(s) <black>resource(s)</black> _ </div> <hr>

(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. </div> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> <script type="text/javascript"> _uacct = "UA-2780434-1"; urchinTracker(); </script> </body> </html> <hr> <hr> <table cellpadding=10> <tr> <td> <address> Hush Online Technology </address> hush@cs.vu.nl <br>04/07/09 </td><td> </td> <td></td><td></td><td></td><td></td><td></td><td></td><td></td> <td> </td> </tr> </table>