소스 검색

Applied camera constness patch from Erik Beran.

Lasse Öörni 12 년 전
부모
커밋
abae3414ac
6개의 변경된 파일23개의 추가작업 그리고 21개의 파일을 삭제
  1. 3 3
      Docs/ScriptAPI.dox
  2. 1 0
      Docs/Urho3D.dox
  3. 6 6
      Engine/Engine/GraphicsAPI.cpp
  4. 6 6
      Engine/Graphics/Camera.cpp
  5. 6 6
      Engine/Graphics/Camera.h
  6. 1 0
      Readme.txt

+ 3 - 3
Docs/ScriptAPI.dox

@@ -1690,9 +1690,9 @@ Methods:<br>
 - void DrawDebugGeometry(DebugRenderer@, bool)
 - void SetOrthoSize(const Vector2&)
 - Frustum GetSplitFrustum(float, float) const
-- Ray GetScreenRay(float, float)
-- Vector2 WorldToScreenPoint(const Vector3&)
-- Vector3 ScreenToWorldPoint(const Vector3&)
+- Ray GetScreenRay(float, float) const
+- Vector2 WorldToScreenPoint(const Vector3&) const
+- Vector3 ScreenToWorldPoint(const Vector3&) const
 - float GetDistance(const Vector3&) const
 - float GetDistanceSquared(const Vector3&) const
 

+ 1 - 0
Docs/Urho3D.dox

@@ -51,6 +51,7 @@ Urho3D development, contributions and bugfixes by:
 - Lasse &Ouml;&ouml;rni ([email protected], AgentC at GameDev.net)
 - Wei Tjong Yao
 - Colin Barrett
+- Erik Beran
 - Carlo Carollo
 - Alex Fuller
 - Mika Heinonen

+ 6 - 6
Engine/Engine/GraphicsAPI.cpp

@@ -71,9 +71,9 @@ static void RegisterCamera(asIScriptEngine* engine)
     RegisterComponent<Camera>(engine, "Camera");
     engine->RegisterObjectMethod("Camera", "void SetOrthoSize(const Vector2&in)", asMETHODPR(Camera, SetOrthoSize, (const Vector2&), void), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "Frustum GetSplitFrustum(float, float) const", asMETHOD(Camera, GetSplitFrustum), asCALL_THISCALL);
-    engine->RegisterObjectMethod("Camera", "Ray GetScreenRay(float, float)", asMETHOD(Camera, GetScreenRay), asCALL_THISCALL);
-    engine->RegisterObjectMethod("Camera", "Vector2 WorldToScreenPoint(const Vector3&in)", asMETHOD(Camera, WorldToScreenPoint), asCALL_THISCALL);
-    engine->RegisterObjectMethod("Camera", "Vector3 ScreenToWorldPoint(const Vector3&in)", asMETHOD(Camera, ScreenToWorldPoint), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Camera", "Ray GetScreenRay(float, float) const", asMETHOD(Camera, GetScreenRay), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Camera", "Vector2 WorldToScreenPoint(const Vector3&in) const", asMETHOD(Camera, WorldToScreenPoint), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Camera", "Vector3 ScreenToWorldPoint(const Vector3&in) const", asMETHOD(Camera, ScreenToWorldPoint), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "float GetDistance(const Vector3&in) const", asMETHOD(Camera, GetDistance), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "float GetDistanceSquared(const Vector3&in) const", asMETHOD(Camera, GetDistanceSquared), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "void set_nearClip(float)", asMETHOD(Camera, SetNearClip), asCALL_THISCALL);
@@ -107,9 +107,9 @@ static void RegisterCamera(asIScriptEngine* engine)
     engine->RegisterObjectMethod("Camera", "const Matrix3x4& get_inverseWorldTransform() const", asMETHOD(Camera, GetInverseWorldTransform), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "Frustum get_viewSpaceFrustum() const", asMETHOD(Camera, GetViewSpaceFrustum), asCALL_THISCALL);
     engine->RegisterObjectMethod("Camera", "float get_halfViewSize() const", asMETHOD(Camera, GetHalfViewSize), asCALL_THISCALL);
-    engine->RegisterObjectMethod("Camera", "Vector3 get_forwardVector()", asMETHOD(Camera, GetForwardVector), asCALL_THISCALL);
-    engine->RegisterObjectMethod("Camera", "Vector3 get_rightVector()", asMETHOD(Camera, GetRightVector), asCALL_THISCALL);
-    engine->RegisterObjectMethod("Camera", "Vector3 get_upVector()", asMETHOD(Camera, GetUpVector), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Camera", "Vector3 get_forwardVector() const", asMETHOD(Camera, GetForwardVector), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Camera", "Vector3 get_rightVector() const", asMETHOD(Camera, GetRightVector), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Camera", "Vector3 get_upVector() const", asMETHOD(Camera, GetUpVector), asCALL_THISCALL);
 }
 
 static Node* BoneGetNode(Bone* ptr)

+ 6 - 6
Engine/Graphics/Camera.cpp

@@ -266,7 +266,7 @@ Frustum Camera::GetViewSpaceSplitFrustum(float nearClip, float farClip) const
     return ret;
 }
 
-Ray Camera::GetScreenRay(float x, float y)
+Ray Camera::GetScreenRay(float x, float y) const
 {
     Ray ret;
     
@@ -291,7 +291,7 @@ Ray Camera::GetScreenRay(float x, float y)
     return ret;
 }
 
-Vector2 Camera::WorldToScreenPoint(const Vector3& worldPos)
+Vector2 Camera::WorldToScreenPoint(const Vector3& worldPos) const
 {
     Vector3 eyeSpacePos = GetInverseWorldTransform() * worldPos;
     Vector2 ret;
@@ -313,7 +313,7 @@ Vector2 Camera::WorldToScreenPoint(const Vector3& worldPos)
     return ret;
 }
 
-Vector3 Camera::ScreenToWorldPoint(const Vector3& screenPos)
+Vector3 Camera::ScreenToWorldPoint(const Vector3& screenPos) const
 {
     Ray ray = GetScreenRay(screenPos.x_, screenPos.y_);
     return ray.origin_ + ray.direction_ * screenPos.z_;
@@ -454,17 +454,17 @@ float Camera::GetHalfViewSize() const
         return orthoSize_ * 0.5f / zoom_;
 }
 
-Vector3 Camera::GetForwardVector()
+Vector3 Camera::GetForwardVector() const
 {
     return node_ ? node_->GetWorldDirection() : Vector3::FORWARD;
 }
 
-Vector3 Camera::GetRightVector()
+Vector3 Camera::GetRightVector() const
 {
     return node_ ? node_->GetWorldTransform().RotationMatrix() * Vector3::RIGHT : Vector3::RIGHT;
 }
 
-Vector3 Camera::GetUpVector()
+Vector3 Camera::GetUpVector() const
 {
     return node_ ? node_->GetWorldTransform().RotationMatrix() * Vector3::UP : Vector3::UP;
 }

+ 6 - 6
Engine/Graphics/Camera.h

@@ -120,17 +120,17 @@ public:
     /// Return split frustum in view space.
     Frustum GetViewSpaceSplitFrustum(float nearClip, float farClip) const;
     /// Return ray corresponding to normalized screen coordinates (0.0 to 1.0.)
-    Ray GetScreenRay(float x, float y);
+    Ray GetScreenRay(float x, float y) const;
     // Convert a world space point to normalized screen coordinates (0.0 - 1.0).
-    Vector2 WorldToScreenPoint(const Vector3& worldPos);
+    Vector2 WorldToScreenPoint(const Vector3& worldPos) const;
     // Convert normalized screen coordinates (0.0 - 1.0) and depth to a world space point.
-    Vector3 ScreenToWorldPoint(const Vector3& screenPos);
+    Vector3 ScreenToWorldPoint(const Vector3& screenPos) const;
     /// Return forward vector.
-    Vector3 GetForwardVector();
+    Vector3 GetForwardVector() const;
     /// Return right vector.
-    Vector3 GetRightVector();
+    Vector3 GetRightVector() const;
     /// Return up vector.
-    Vector3 GetUpVector();
+    Vector3 GetUpVector() const;
     /// Return projection offset.
     const Vector2& GetProjectionOffset() const { return projectionOffset_; }
     /// Return vertical flipping mode.

+ 1 - 0
Readme.txt

@@ -13,6 +13,7 @@ Urho3D development, contributions and bugfixes by:
 - Lasse Öörni ([email protected])
 - Wei Tjong Yao
 - Colin Barrett
+- Erik Beran
 - Carlo Carollo
 - Alex Fuller
 - Mika Heinonen