Initial commit.
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
|
||||
#ifndef CAMERA_H
|
||||
#define CAMERA_H
|
||||
|
||||
#include "model.h"
|
||||
#include "frustum.h"
|
||||
#include "mirror.h"
|
||||
|
||||
class Camera : public Object{
|
||||
public:
|
||||
enum{
|
||||
PROJ_NONE=0,PROJ_PERSP=1,PROJ_ORTHO=2
|
||||
};
|
||||
|
||||
Camera();
|
||||
Camera *getCamera(){ return this; }
|
||||
|
||||
//called by user
|
||||
void setZoom( float z );
|
||||
void setRange( float nr,float fr );
|
||||
void setViewport( int x,int y,int w,int h );
|
||||
void setClsColor( const Vector &v );
|
||||
void setClsMode( bool cls_argb,bool cls_z );
|
||||
void setProjMode( int mode );
|
||||
void setFogColor( const Vector &v );
|
||||
void setFogRange( float nr,float fr );
|
||||
void setFogMode( int mode );
|
||||
|
||||
//called by world
|
||||
bool beginRenderFrame();
|
||||
|
||||
//Camera frustum...
|
||||
float getFrustumNear()const;
|
||||
float getFrustumFar()const;
|
||||
float getFrustumWidth()const;
|
||||
float getFrustumHeight()const;
|
||||
const Frustum &getFrustum()const;
|
||||
void getViewport( int *x,int *y,int *w,int *h )const;
|
||||
int getProjMode()const{ return proj_mode; }
|
||||
|
||||
private:
|
||||
float zoom;
|
||||
int vp_x,vp_y,vp_w,vp_h;
|
||||
Vector cls_color;
|
||||
bool cls_argb,cls_z;
|
||||
int proj_mode;
|
||||
Vector fog_color;
|
||||
float fog_nr,fog_fr;
|
||||
int fog_mode;
|
||||
float frustum_nr,frustum_fr;
|
||||
mutable float frustum_w,frustum_h;
|
||||
mutable Frustum local_frustum;
|
||||
mutable bool local_valid;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user