diff --git a/Source/Engine/Level/Actors/Camera.cpp b/Source/Engine/Level/Actors/Camera.cpp
index ea161c38a..90e33217a 100644
--- a/Source/Engine/Level/Actors/Camera.cpp
+++ b/Source/Engine/Level/Actors/Camera.cpp
@@ -46,6 +46,11 @@ Camera::Camera(const SpawnParams& params)
#endif
}
+bool Camera::GetUsePerspective() const
+{
+ return _usePerspective;
+}
+
void Camera::SetUsePerspective(bool value)
{
if (_usePerspective != value)
@@ -55,6 +60,11 @@ void Camera::SetUsePerspective(bool value)
}
}
+float Camera::GetFieldOfView() const
+{
+ return _fov;
+}
+
void Camera::SetFieldOfView(float value)
{
value = Math::Clamp(value, 1.0f, 179.9f);
@@ -65,16 +75,26 @@ void Camera::SetFieldOfView(float value)
}
}
+float Camera::GetCustomAspectRatio() const
+{
+ return _customAspectRatio;
+}
+
void Camera::SetCustomAspectRatio(float value)
{
value = Math::Clamp(value, 0.0f, 100.0f);
- if (_customAspectRatio != value)
+ if (Math::NotNearEqual(_customAspectRatio, value))
{
_customAspectRatio = value;
UpdateCache();
}
}
+float Camera::GetNearPlane() const
+{
+ return _near;
+}
+
void Camera::SetNearPlane(float value)
{
value = Math::Clamp(value, 0.001f, _far - 1.0f);
@@ -85,6 +105,11 @@ void Camera::SetNearPlane(float value)
}
}
+float Camera::GetFarPlane() const
+{
+ return _far;
+}
+
void Camera::SetFarPlane(float value)
{
value = Math::Max(value, _near + 1.0f);
@@ -95,6 +120,11 @@ void Camera::SetFarPlane(float value)
}
}
+float Camera::GetOrthographicScale() const
+{
+ return _orthoScale;
+}
+
void Camera::SetOrthographicScale(float value)
{
value = Math::Clamp(value, 0.0001f, 1000000.0f);
@@ -191,7 +221,7 @@ Viewport Camera::GetViewport() const
if (Editor::Managed)
result.Size = Editor::Managed->GetGameWindowSize();
#else
- // game
+ // Game
auto mainWin = Engine::MainWindow;
if (mainWin)
{
@@ -201,7 +231,7 @@ Viewport Camera::GetViewport() const
#endif
// Fallback to the default value
- if (result.Width <= ZeroTolerance)
+ if (result.Size.MinValue() <= ZeroTolerance)
result.Size = Float2(1280, 720);
return result;
diff --git a/Source/Engine/Level/Actors/Camera.h b/Source/Engine/Level/Actors/Camera.h
index 806cdcfbb..05d505368 100644
--- a/Source/Engine/Level/Actors/Camera.h
+++ b/Source/Engine/Level/Actors/Camera.h
@@ -66,10 +66,7 @@ public:
/// Gets the value indicating if camera should use perspective rendering mode, otherwise it will use orthographic projection.
///
API_PROPERTY(Attributes="EditorOrder(20), DefaultValue(true), EditorDisplay(\"Camera\"), Tooltip(\"Enables perspective projection mode, otherwise uses orthographic.\")")
- FORCE_INLINE bool GetUsePerspective() const
- {
- return _usePerspective;
- }
+ bool GetUsePerspective() const;
///
/// Sets the value indicating if camera should use perspective rendering mode, otherwise it will use orthographic projection.
@@ -80,10 +77,7 @@ public:
/// Gets the camera's field of view (in degrees).
///
API_PROPERTY(Attributes="EditorOrder(10), DefaultValue(60.0f), Limit(0, 179), EditorDisplay(\"Camera\", \"Field Of View\"), Tooltip(\"Field of view angle in degrees.\")")
- FORCE_INLINE float GetFieldOfView() const
- {
- return _fov;
- }
+ float GetFieldOfView() const;
///
/// Sets camera's field of view (in degrees).
@@ -94,10 +88,7 @@ public:
/// Gets the custom aspect ratio. 0 if not use custom value.
///
API_PROPERTY(Attributes="EditorOrder(50), DefaultValue(0.0f), Limit(0, 10, 0.01f), EditorDisplay(\"Camera\"), Tooltip(\"Custom aspect ratio to use. Set to 0 to disable.\")")
- FORCE_INLINE float GetCustomAspectRatio() const
- {
- return _customAspectRatio;
- }
+ float GetCustomAspectRatio() const;
///
/// Sets the custom aspect ratio. 0 if not use custom value.
@@ -108,10 +99,7 @@ public:
/// Gets camera's near plane distance.
///
API_PROPERTY(Attributes="EditorOrder(30), DefaultValue(10.0f), Limit(0, 1000, 0.05f), EditorDisplay(\"Camera\"), Tooltip(\"Near clipping plane distance\")")
- FORCE_INLINE float GetNearPlane() const
- {
- return _near;
- }
+ float GetNearPlane() const;
///
/// Sets camera's near plane distance.
@@ -122,10 +110,7 @@ public:
/// Gets camera's far plane distance.
///
API_PROPERTY(Attributes="EditorOrder(40), DefaultValue(40000.0f), Limit(0, float.MaxValue, 5), EditorDisplay(\"Camera\"), Tooltip(\"Far clipping plane distance\")")
- FORCE_INLINE float GetFarPlane() const
- {
- return _far;
- }
+ float GetFarPlane() const;
///
/// Sets camera's far plane distance.
@@ -136,10 +121,7 @@ public:
/// Gets the orthographic projection scale.
///
API_PROPERTY(Attributes="EditorOrder(60), DefaultValue(1.0f), Limit(0.0001f, 1000, 0.01f), EditorDisplay(\"Camera\"), Tooltip(\"Orthographic projection scale\")")
- FORCE_INLINE float GetOrthographicScale() const
- {
- return _orthoScale;
- }
+ float GetOrthographicScale() const;
///
/// Sets the orthographic projection scale.