/*
- * 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);
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;