The DejaVU Framework -- hush 3.1

include: graphic-directx-game-17-Camera-Demo-Camera.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">

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

ifndef CAMERA_H
define CAMERA_H

include <d3dx9.h>

<h4 align=right text=red> Camera</h4><hr>
  class Camera
{
public:
        // By default, the camera starts out with its basis vectors 
        // aligned with the world space axes, and its origin positioned
        // at the world space origin.
        Camera();

        // Read only accessor functions.
        const D3DXMATRIX& view() const;
        const D3DXMATRIX& proj() const;
        const D3DXMATRIX& viewProj() const;

        const D3DXVECTOR3& right() const;
        const D3DXVECTOR3& up() const;
        const D3DXVECTOR3& look() const;

        // Read/write access to the camera position.
        D3DXVECTOR3& pos();

        // Our implementation of D3DXMatrixLookAtLH
        void lookAt(D3DXVECTOR3& pos, D3DXVECTOR3& target, D3DXVECTOR3& up);

        // Perspective projection parameters.
        void setLens(float fov, float aspect, float nearZ, float farZ);

        // Sets the camera speed.
        void setSpeed(float s);

        // Updates the camera's basis vectors and origin, relative to 
        // the world space, based in user input.
        void update(float dt);

protected:
        // Constructs the view matrix based on the camera's basis
        // vectors and origin, relative to the world space
        void buildView();

protected:
        // Save camera related matrices.
        D3DXMATRIX mView;
        D3DXMATRIX mProj;
        D3DXMATRIX mViewProj;

        // Relative to world space.
        D3DXVECTOR3 mPosW;
        D3DXVECTOR3 mRightW;
        D3DXVECTOR3 mUpW;
        D3DXVECTOR3 mLookW;

        // Camera speed.
        float mSpeed;
};
<hr>


endif // CAMERA_H
<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>