Main Page Class Hierarchy Compound List File List Compound Members File Members

Camera.h

Go to the documentation of this file.
00001 /*
00002 File: Camera.h
00003 
00004 Function: Defines a camera. When sent to a Renderer, this defines
00005 the current view (and perspective) transformations.
00006 A camera can be embedded in a scene: see SceneObjects.cc
00007 
00008 Author(s): Andrew Willmott
00009 
00010 Copyright: (c) 1995-2000, Andrew Willmott
00011 */
00012 
00013 #ifndef __Camera__
00014 #define __Camera__
00015 
00016 #include "gcl/Geometry.h"
00017 #include "cl/String.h"
00018 #include <iostream.h>
00019 
00020  class Camera
00021 // Maps view into viewport [-1,1] x [-1,1]
00022 {
00023 public: 
00024 Camera();
00025 
00026 // Set standard camera parameters. (shared by all.)
00027 Void SetClipping(GCLReal nearPlane, GCLReal farPlane);
00028 Void SetFOV(GCLReal fieldOfView);
00029 Void SetAspect(GCLReal aspect);
00030 Void SetScale(GCLReal scale);
00031 
00032 // useful routines for directly setting the view
00033 Void SetView(const Point &eyePoint, const Quaternion &orientation);
00034 Void SetViewDir(const Point &pos, const Vector &dir);
00035 Void SetLookAt(const Point &pos, const Point &at);
00036 Void SetModelCentric(const Coord &rot, const Vector &trans);
00037 Void SetViewUp(Vector up);
00038 
00039 // set up a particular model from params (low-level)
00040 Void SetupViewDir();
00041 Void SetupLookAt();
00042 Void SetupModelCentric();
00043 
00044 // set params for a particular model from the generic model.
00045 Void GetViewDirParams();
00046 Void GetLookAtParams();
00047 Void GetModelCentricParams();
00048 
00049 // avar handling stuff
00050 virtual Void PrintAvars(Bool animFormat = false);
00051 virtual Bool CheckAvar(StrConst avarName, GCLReal avarVal);
00052 virtual Void SetupFromParams();
00053 
00054 virtual Transform ProjMatrix() const;
00055 // Return the projection matrix from Camera space to
00056 // Display Space ([-1,1] ^ 2)
00057 virtual Transform ModelMatrix() const;
00058 // Return the transformation from World space to Camera
00059 // space
00060 
00061 
00062  Int model;
00063 
00064 // generic camera model. all models convert to this.
00065  Point position; 
00066  Quaternion orient; 
00067  GCLReal scale; 
00068  GCLReal clipNear, clipFar; 
00069  GCLReal fov; 
00070  GCLReal aspect; 
00071  Int lhand; 
00072 
00073 // the standard view-up/direction camera model params
00074  Point up; 
00075  Vector viewDir; 
00076  Point lookAt; 
00077 
00078 // model-centric model params
00079  Point modelCentre;
00080  Point trans;
00081  Coord rot;
00082 };
00083 
00097 Void FindWorldRay(
00098 const Coord &c,
00099 const Transform &inverseW2S,
00100 Point &from,
00101 Vector &dir
00102 );
00103 
00104 
00105 #endif

Generated at Sat Aug 5 00:16:57 2000 for Graphics Class Library by doxygen 1.1.0 written by Dimitri van Heesch, © 1997-2000

AltStyle によって変換されたページ (->オリジナル) /