Camera類對攝象機的抽象。成員函數說明如下: 標準構造函數 Camera(String name, SceneManager* sm); 標準析構函數 virtual ~Camera(); 返回渲染該攝像機的scenemanager的指針 SceneManager* getSceneManager(void) const; 取得攝像機的名字 virtual const String& getName(void) const; 設定投影模式(正射或透視),,缺省為透視 void setProjectionType(ProjectionType pt); 取得使用的投影模式的信息 ProjectionType getProjectionType(void) const; 設定該攝像機需要的渲染細節(jié)級別 void setDetailLevel(SceneDetailLevel sd); 取得該攝像機的渲染細節(jié)級別 SceneDetailLevel getDetailLevel(void) const; 設定攝像機的位置 void setPosition(Real x, Real y, Real z); void setPosition(const Vector3& vec); 取得攝像機的位置 const Vector3& getPosition(void) const; 移動攝像機 void move(const Vector3& vec); void moveRelative(const Vector3& vec); 設定攝像機的方向向量 void setDirection(Real x, Real y, Real z); void setDirection(const Vector3& vec); 取得攝像機的方向 Vector3 getDirection(void) const; 這是一個輔助方法用來自動計算攝像機的方向向量,,在當前位置和所看的點,參數targetPoint是一個向量指明所看的點,。 void lookAt( const Vector3& targetPoint ); void lookAt(Real x, Real y, Real z); 將攝像機繞z軸逆時針旋轉指定角度 void roll(Real degrees); 繞y軸逆時針旋轉指定角度 void yaw(Real degrees); 繞x軸上下逆時針旋轉 void pitch(Real degrees); 旋轉任意角度 void rotate(const Vector3& axis, Real degrees); 使用四元組繞任意軸旋轉 void rotate(const Quaternion& q); 指定攝像機是繞本地y軸還是指定的固定軸旋轉 void setFixedYawAxis( bool useFixed, const Vector3& fixedAxis = Vector3::UNIT_Y ); 設定y方向的視野域,,水平方向的視野域將依此計算 void setFOVy(Real fovy); 取得y方向的視野域 Real getFOVy(void) const; 設定到近裁減面的距離 void setNearClipDistance(Real nearDist); 取得到近裁減面的距離 Real getNearClipDistance(void) const; 設定到遠裁減面的距離 void setAspectRatio(Real ratio); 取得當前縱橫比 Real getAspectRatio(void) const; 內部使用,取得該攝像機的投影矩陣 const Matrix4& getProjectionMatrix(void); 內部使用,,取得該攝像機的觀察矩陣 const Matrix4& getViewMatrix(void); 取得平截臺體的特定面 const Plane& getFrustumPlane( FrustumPlane plane ); 測試給定的包容器是否在平截臺體中 bool isVisible(const AxisAlignedBox& bound, FrustumPlane* culledBy = 0); bool isVisible(const Sphere& bound, FrustumPlane* culledBy = 0); 測試給定的頂點是否在平截臺體中 bool isVisible(const Vector3& vert, FrustumPlane* culledBy = 0); 返回攝像機的當前方向 const Quaternion& getOrientation(void) const; 設定攝像機的方向 void setOrientation(const Quaternion& q); 輸出流功能 friend std::ostream& operator<<(std::ostream& o, Camera& c); 取得攝像機繼承的方向,包括從附著節(jié)點繼承的任何旋轉 Quaternion getDerivedOrientation(void); 取得繼承的位置,,包括從附著節(jié)點繼承的任何平移 Vector3 getDerivedPosition(void); 取得繼承的方向向量 Vector3 getDerivedDirection(void); 覆蓋MovableObject的方法 void _notifyCurrentCamera(Camera* cam); const AxisAlignedBox& getBoundingBox(void) const; void _updateRenderQueue(RenderQueue* queue); const String getMovableType(void) const;
使能/使不能自動跟蹤scenenode void setAutoTracking(bool enabled, SceneNode* target = 0, const Vector3& offset = Vector3::ZERO); |
|