@@ -35,17 +35,6 @@ std::string OvCore::ECS::Components::CCamera::GetName()
3535 return " Camera" ;
3636}
3737
38-
39- OvMaths::FMatrix4 OvCore::ECS::Components::CCamera::GetProjectionMatrix (uint16_t p_windowWidth, uint16_t p_windowHeight)
40- {
41- return m_camera.GetProjectionMatrix (p_windowWidth, p_windowHeight);
42- }
43-
44- OvMaths::FMatrix4 OvCore::ECS::Components::CCamera::GetViewMatrix ()
45- {
46- return m_camera.GetViewMatrix (owner.transform .GetWorldPosition ());
47- }
48-
4938void OvCore::ECS::Components::CCamera::SetFov (float p_value)
5039{
5140 m_camera.SetFov (p_value);
@@ -61,6 +50,16 @@ void OvCore::ECS::Components::CCamera::SetFar(float p_value)
6150 m_camera.SetFar (p_value);
6251}
6352
53+ void OvCore::ECS::Components::CCamera::SetFrustumGeometryCulling (bool p_enable)
54+ {
55+ m_camera.SetFrustumGeometryCulling (p_enable);
56+ }
57+
58+ void OvCore::ECS::Components::CCamera::SetFrustumLightCulling (bool p_enable)
59+ {
60+ m_camera.SetFrustumLightCulling (p_enable);
61+ }
62+
6463float OvCore::ECS::Components::CCamera::GetFov () const
6564{
6665 return m_camera.GetFov ();
@@ -81,11 +80,21 @@ const OvMaths::FVector3 & OvCore::ECS::Components::CCamera::GetClearColor() cons
8180 return m_camera.GetClearColor ();
8281}
8382
83+ bool OvCore::ECS::Components::CCamera::HasFrustumGeometryCulling () const
84+ {
85+ return m_camera.HasFrustumGeometryCulling ();
86+ }
87+
8488void OvCore::ECS::Components::CCamera::SetClearColor (const OvMaths::FVector3 & p_clearColor)
8589{
8690 m_camera.SetClearColor (p_clearColor);
8791}
8892
93+ bool OvCore::ECS::Components::CCamera::HasFrustumLightCulling () const
94+ {
95+ return m_camera.HasFrustumLightCulling ();
96+ }
97+
8998OvRendering::LowRenderer::Camera & OvCore::ECS::Components::CCamera::GetCamera ()
9099{
91100 return m_camera;
@@ -97,14 +106,18 @@ void OvCore::ECS::Components::CCamera::OnSerialize(tinyxml2::XMLDocument & p_doc
97106 OvCore::Helpers::Serializer::SerializeFloat (p_doc, p_node, " near" , m_camera.GetNear ());
98107 OvCore::Helpers::Serializer::SerializeFloat (p_doc, p_node, " far" , m_camera.GetFar ());
99108 OvCore::Helpers::Serializer::SerializeVec3 (p_doc, p_node, " clear_color" , m_camera.GetClearColor ());
109+ OvCore::Helpers::Serializer::SerializeBoolean (p_doc, p_node, " frustum_geometry_culling" , m_camera.HasFrustumGeometryCulling ());
110+ OvCore::Helpers::Serializer::SerializeBoolean (p_doc, p_node, " frustum_light_culling" , m_camera.HasFrustumLightCulling ());
100111}
101112
102113void OvCore::ECS::Components::CCamera::OnDeserialize (tinyxml2::XMLDocument & p_doc, tinyxml2::XMLNode * p_node)
103114{
104115 m_camera.SetFov (OvCore::Helpers::Serializer::DeserializeFloat (p_doc, p_node, " fov" ));
105116 m_camera.SetNear (OvCore::Helpers::Serializer::DeserializeFloat (p_doc, p_node, " near" ));
106117 m_camera.SetFar (OvCore::Helpers::Serializer::DeserializeFloat (p_doc, p_node, " far" ));
107- SetClearColor (OvCore::Helpers::Serializer::DeserializeVec3 (p_doc, p_node, " clear_color" ));
118+ m_camera.SetClearColor (OvCore::Helpers::Serializer::DeserializeVec3 (p_doc, p_node, " clear_color" ));
119+ m_camera.SetFrustumGeometryCulling (OvCore::Helpers::Serializer::DeserializeBoolean (p_doc, p_node, " frustum_geometry_culling" ));
120+ m_camera.SetFrustumLightCulling (OvCore::Helpers::Serializer::DeserializeBoolean (p_doc, p_node, " frustum_light_culling" ));
108121}
109122
110123void OvCore::ECS::Components::CCamera::OnInspector (OvUI::Internal::WidgetContainer& p_root)
@@ -113,4 +126,6 @@ void OvCore::ECS::Components::CCamera::OnInspector(OvUI::Internal::WidgetContain
113126 OvCore::Helpers::GUIDrawer::DrawScalar<float >(p_root, " Near" , std::bind (&CCamera::GetNear, this ), std::bind (&CCamera::SetNear, this , std::placeholders::_1));
114127 OvCore::Helpers::GUIDrawer::DrawScalar<float >(p_root, " Far" , std::bind (&CCamera::GetFar, this ), std::bind (&CCamera::SetFar, this , std::placeholders::_1));
115128 OvCore::Helpers::GUIDrawer::DrawColor (p_root, " Clear color" , [this ]() {return reinterpret_cast <const OvUI::Types::Color&>(GetClearColor ()); }, [this ](OvUI::Types::Color p_color) { SetClearColor ({ p_color.r , p_color.g , p_color.b }); }, false );
129+ OvCore::Helpers::GUIDrawer::DrawBoolean (p_root, " Frustum Geometry Culling" , std::bind (&CCamera::HasFrustumGeometryCulling, this ), std::bind (&CCamera::SetFrustumGeometryCulling, this , std::placeholders::_1));
130+ OvCore::Helpers::GUIDrawer::DrawBoolean (p_root, " Frustum Light Culling" , std::bind (&CCamera::HasFrustumLightCulling, this ), std::bind (&CCamera::SetFrustumLightCulling, this , std::placeholders::_1));
116131}
0 commit comments