[dali_2.3.24] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-scene3d / utc-Dali-CameraParameters.cpp
index 15e575b..83f345c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 // Enable debug log for test coverage
 #define DEBUG_ENABLED 1
 
-#include "dali-scene3d/public-api/loader/camera-parameters.h"
 #include <dali-test-suite-utils.h>
+#include <dali/devel-api/actors/camera-actor-devel.h>
 #include <string_view>
+#include "dali-scene3d/public-api/loader/camera-parameters.h"
 
 using namespace Dali;
 using namespace Dali::Scene3D::Loader;
 
 int UtcDaliCameraParameters(void)
 {
-  Quaternion qView = Quaternion(Radian(Degree(180.f)), Vector3::YAXIS);
+  Quaternion       qView = Quaternion(Radian(Degree(180.f)), Vector3::YAXIS);
   CameraParameters camParams;
   camParams.matrix.SetTransformComponents(Vector3::ONE * 2.f,
-    qView,
-    Vector3::ZAXIS * -100.f);
-  camParams.orthographicSize = Vector4{ -1.f, 1.f, -1.f, 1.f };
-  camParams.yFov = Radian(M_PI * .5).radian;
-  camParams.zNear = 1.f;
-  camParams.zFar = 1000.f;
+                                          qView,
+                                          Vector3::ZAXIS * -100.f);
+  camParams.orthographicSize = 3.0f;
+  camParams.aspectRatio      = 1.0f;
+  camParams.yFovDegree       = Degree(Radian(M_PI * .5));
+  camParams.zNear            = 1.f;
+  camParams.zFar             = 1000.f;
 
-  Vector3 scale;
+  Vector3    scale;
   Quaternion orientation;
-  Vector3 position;
+  Vector3    position;
   camParams.CalculateTransformComponents(position, orientation, scale);
   DALI_TEST_EQUAL(scale, Vector3::ONE * 2.f);
   DALI_TEST_EQUAL(orientation, Quaternion::IDENTITY); // 2 180 degrees rotations along y
   DALI_TEST_EQUAL(position, Vector3::ZAXIS * -100.f);
 
   TestApplication app;
-  CameraActor camera = CameraActor::New();
-  for (auto i : { false, true })
+  CameraActor     camera = CameraActor::New();
+  for(auto i : {false, true})
   {
     camParams.isPerspective = i;
 
-    auto viewProjection = camParams.GetViewProjection();
-    Matrix view{ false };
+    auto   viewProjection = camParams.GetViewProjection();
+    Matrix view{false};
     Matrix::Multiply(view, Matrix(qView), camParams.matrix);
     view.Invert();
     DALI_TEST_EQUAL(viewProjection.GetView(), view);
@@ -65,6 +67,15 @@ int UtcDaliCameraParameters(void)
     DALI_TEST_EQUAL(camera.GetProperty(Actor::Property::POSITION).Get<Vector3>(), position);
     DALI_TEST_EQUAL(camera.GetProperty(Actor::Property::ORIENTATION).Get<Quaternion>(), orientation);
     DALI_TEST_EQUAL(camera.GetProperty(Actor::Property::SCALE).Get<Vector3>(), scale);
+
+    if(camParams.isPerspective)
+    {
+      DALI_TEST_EQUAL(camera.GetProperty(Dali::CameraActor::Property::FIELD_OF_VIEW).Get<float>(), Radian(camParams.yFovDegree).radian);
+    }
+    else
+    {
+      DALI_TEST_EQUAL(camera.GetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE).Get<float>(), camParams.orthographicSize);
+    }
   }
 
   END_TEST;