@@ -135,9 +135,6 @@ KX_KetsjiEngine::KX_KetsjiEngine(KX_ISystem *system)
135
135
m_exitstring(" " ),
136
136
m_cameraZoom(1 .0f ),
137
137
m_overrideCam(false ),
138
- m_overrideCamUseOrtho(false ),
139
- m_overrideCamNear(0 .0f ),
140
- m_overrideCamFar(0 .0f ),
141
138
m_overrideCamZoom(1 .0f ),
142
139
m_stereo(false ),
143
140
m_curreye(0 ),
@@ -727,47 +724,26 @@ const std::string& KX_KetsjiEngine::GetExitString()
727
724
return m_exitstring;
728
725
}
729
726
730
- void KX_KetsjiEngine::EnableCameraOverride (const std::string& forscene)
731
- {
732
- m_overrideCam = true ;
733
- m_overrideSceneName = forscene;
734
- }
735
-
736
727
void KX_KetsjiEngine::SetCameraZoom (float camzoom)
737
728
{
738
729
m_cameraZoom = camzoom;
739
730
}
740
731
741
- void KX_KetsjiEngine::SetCameraOverrideUseOrtho (bool useOrtho)
742
- {
743
- m_overrideCamUseOrtho = useOrtho;
744
- }
745
-
746
- void KX_KetsjiEngine::SetCameraOverrideProjectionMatrix (const MT_CmMatrix4x4& mat)
747
- {
748
- m_overrideCamProjMat = mat;
749
- }
750
-
751
- void KX_KetsjiEngine::SetCameraOverrideViewMatrix (const MT_CmMatrix4x4& mat)
752
- {
753
- m_overrideCamViewMat = mat;
754
- }
755
-
756
- void KX_KetsjiEngine::SetCameraOverrideClipping (float nearfrust, float farfrust)
732
+ void KX_KetsjiEngine::SetCameraOverrideZoom (float camzoom)
757
733
{
758
- m_overrideCamNear = nearfrust;
759
- m_overrideCamFar = farfrust;
734
+ m_overrideCamZoom = camzoom;
760
735
}
761
736
762
- void KX_KetsjiEngine::SetCameraOverrideLens (float lens)
737
+ void KX_KetsjiEngine::EnableCameraOverride (const std::string& forscene, const MT_CmMatrix4x4& projmat,
738
+ const MT_CmMatrix4x4& viewmat, const RAS_CameraData& camdata)
763
739
{
764
- m_overrideCamLens = lens;
740
+ m_overrideCam = true ;
741
+ m_overrideSceneName = forscene;
742
+ m_overrideCamProjMat = projmat;
743
+ m_overrideCamViewMat = viewmat;
744
+ m_overrideCamData = camdata;
765
745
}
766
746
767
- void KX_KetsjiEngine::SetCameraOverrideZoom (float camzoom)
768
- {
769
- m_overrideCamZoom = camzoom;
770
- }
771
747
772
748
void KX_KetsjiEngine::GetSceneViewport (KX_Scene *scene, KX_Camera *cam, RAS_Rect& area, RAS_Rect& viewport)
773
749
{
@@ -797,7 +773,7 @@ void KX_KetsjiEngine::GetSceneViewport(KX_Scene *scene, KX_Camera *cam, RAS_Rect
797
773
798
774
area = userviewport;
799
775
}
800
- else if (!m_overrideCam || (scene->GetName () != m_overrideSceneName) || m_overrideCamUseOrtho ) {
776
+ else if (!m_overrideCam || (scene->GetName () != m_overrideSceneName) || !m_overrideCamData. m_perspective ) {
801
777
RAS_FramingManager::ComputeViewport (
802
778
scene->GetFramingType (),
803
779
m_canvas->GetDisplayArea (),
@@ -929,7 +905,7 @@ void KX_KetsjiEngine::RenderFrame(KX_Scene *scene, KX_Camera *cam, unsigned shor
929
905
override_camera = m_overrideCam && (scene->GetName () == m_overrideSceneName) &&
930
906
(cam->GetName () == " __default__cam__" );
931
907
932
- if (override_camera && m_overrideCamUseOrtho ) {
908
+ if (override_camera && !m_overrideCamData. m_perspective ) {
933
909
m_rasterizer->SetProjectionMatrix (m_overrideCamProjMat);
934
910
if (!cam->hasValidProjectionMatrix ()) {
935
911
// needed to get frustum planes for culling
@@ -949,11 +925,6 @@ void KX_KetsjiEngine::RenderFrame(KX_Scene *scene, KX_Camera *cam, unsigned shor
949
925
focallength = cam->GetFocalLength ();
950
926
MT_Matrix4x4 projmat;
951
927
952
- if (override_camera) {
953
- nearfrust = m_overrideCamNear;
954
- farfrust = m_overrideCamFar;
955
- }
956
-
957
928
float camzoom = override_camera ? m_overrideCamZoom : m_cameraZoom;
958
929
if (orthographic) {
959
930
@@ -1123,15 +1094,7 @@ void KX_KetsjiEngine::PostProcessScene(KX_Scene *scene)
1123
1094
if (!scene->GetActiveCamera () || override_camera) {
1124
1095
KX_Camera *activecam = NULL ;
1125
1096
1126
- RAS_CameraData camdata = RAS_CameraData ();
1127
- if (override_camera) {
1128
- camdata.m_lens = m_overrideCamLens;
1129
- camdata.m_clipstart = m_overrideCamNear;
1130
- camdata.m_clipend = m_overrideCamFar;
1131
-
1132
- camdata.m_perspective = !m_overrideCamUseOrtho;
1133
- }
1134
- activecam = new KX_Camera (scene, KX_Scene::m_callbacks, camdata);
1097
+ activecam = new KX_Camera (scene, KX_Scene::m_callbacks, override_camera ? m_overrideCamData : RAS_CameraData ());
1135
1098
activecam->SetName (" __default__cam__" );
1136
1099
1137
1100
// set transformation
0 commit comments