00001 // $Id: camera.h,v 1.5 2005/08/31 19:37:55 hawaii Exp $ 00002 // $Copyright: (c)2001 National Biocomputation Center, Stanford University $ 00003 00004 #ifndef Camera_H 00005 #define Camera_H 00006 00007 #include <stdio.h> 00008 #include "point3d.h" 00009 00010 00011 class Camera { 00012 public: 00013 int debug; 00014 float zoom; 00015 double rotation[16]; 00016 Point3D trans; 00017 float eyez; 00018 float near_z; 00019 float far_z; 00020 00021 float min_z; 00022 float max_z; 00023 float pan_increment; 00024 float rotate_increment; 00025 00026 void Init(); 00027 Camera(); 00028 void SetNearClippingPlane(float near_z_in); 00029 void SetFarClippingPlane(float far_z_in); 00030 }; 00031 00032 inline Camera::Camera() 00033 { Init(); } 00034 00035 inline void Camera::Init() { 00036 debug = 0; 00037 zoom = 1.0; 00038 for (int i = 0; i < 16; i++) rotation[i] = 0.0; 00039 rotation[0] = rotation[5] = rotation[10] = rotation[15] = 1.0; 00040 trans = Point3D(0,0,0); 00041 eyez = 0.0; 00042 00043 min_z = 0.01; 00044 max_z = 1000.0; 00045 near_z = min_z; 00046 far_z = max_z; 00047 pan_increment = 1.0; 00048 rotate_increment = 10.0; 00049 } 00050 00051 00052 inline void Camera::SetNearClippingPlane(float near_z_in) 00053 { 00054 if (near_z_in > min_z) near_z = near_z_in; 00055 if (debug) cerr << "Camera::near_z = " << near_z << endl; 00056 } 00057 00058 inline void Camera::SetFarClippingPlane(float far_z_in) 00059 { 00060 if (far_z_in > min_z) far_z = far_z_in; 00061 if (debug) cerr << "Camera::far_z = " << far_z << endl; 00062 } 00063 00064 #endif 00065 00066
1.5.3