/*
- * Copyright (c) 2022 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.
END_TEST;
}
+int UtcDaliCameraActorMoveConstructor(void)
+{
+ TestApplication application;
+
+ CameraActor actor = CameraActor::New();
+ DALI_TEST_CHECK(actor);
+
+ int id = actor.GetProperty<int>(Actor::Property::ID);
+
+ CameraActor moved = std::move(actor);
+ DALI_TEST_CHECK(moved);
+ DALI_TEST_EQUALS(id, moved.GetProperty<int>(Actor::Property::ID), TEST_LOCATION);
+ DALI_TEST_CHECK(!actor);
+
+ END_TEST;
+}
+
+int UtcDaliCameraActorMoveAssignment(void)
+{
+ TestApplication application;
+
+ CameraActor actor = CameraActor::New();
+ DALI_TEST_CHECK(actor);
+
+ int id = actor.GetProperty<int>(Actor::Property::ID);
+
+ CameraActor moved;
+ moved = std::move(actor);
+ DALI_TEST_CHECK(moved);
+ DALI_TEST_EQUALS(id, moved.GetProperty<int>(Actor::Property::ID), TEST_LOCATION);
+ DALI_TEST_CHECK(!actor);
+
+ END_TEST;
+}
+
int UtcDaliCameraActorNewP(void)
{
TestApplication application;
END_TEST;
}
+int UtcDaliCameraActorNew3DCameraP(void)
+{
+ TestApplication application;
+ tet_infoline("Testing Dali::CameraActor::New3DCamera (P)");
+
+ CameraActor actor = CameraActor::New3DCamera();
+
+ DALI_TEST_CHECK(actor);
+
+ actor.Reset();
+
+ DALI_TEST_CHECK(!actor);
+ END_TEST;
+}
+
int UtcDaliCameraActorNewDefaultPerspectiveProjection(void)
{
TestApplication application;
// All the properties should still be the default values
// Defaults taken from scene-graph-camera.cpp
- DALI_TEST_EQUALS(800.0f / 480.0f, actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
+ DALI_TEST_EQUALS(480.0f / 800.0f, actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
DALI_TEST_EQUALS(45.0f * (Math::PI / 180.0f), actor.GetProperty(CameraActor::Property::FIELD_OF_VIEW).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
DALI_TEST_EQUALS(800.0f, actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
DALI_TEST_EQUALS(3.0f * 800.0f, actor.GetProperty(CameraActor::Property::FAR_PLANE_DISTANCE).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
+ DALI_TEST_EQUALS(400.0f, actor.GetProperty(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
DALI_TEST_EQUALS(0.0f, actor.GetProperty(Actor::Property::POSITION_Z).Get<float>(), TEST_LOCATION);
DALI_TEST_EQUALS(actor.GetProjectionMode(), Dali::Camera::PERSPECTIVE_PROJECTION, TEST_LOCATION);
DALI_TEST_EQUALS(0.489957f, actor.GetProperty(CameraActor::Property::FIELD_OF_VIEW).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
DALI_TEST_EQUALS(800.0f, actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
DALI_TEST_EQUALS(4895.0f, actor.GetProperty(CameraActor::Property::FAR_PLANE_DISTANCE).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
+ DALI_TEST_EQUALS(400.0f, actor.GetProperty(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
DALI_TEST_EQUALS(1600.0f, actor.GetProperty(Actor::Property::POSITION_Z).Get<float>(), TEST_LOCATION);
DALI_TEST_EQUALS(actor.GetProjectionMode(), Dali::Camera::PERSPECTIVE_PROJECTION, TEST_LOCATION);
DALI_TEST_EQUALS(0.489957f, actor.GetProperty(CameraActor::Property::FIELD_OF_VIEW).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
DALI_TEST_EQUALS(800.0f, actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
DALI_TEST_EQUALS(4895.0f, actor.GetProperty(CameraActor::Property::FAR_PLANE_DISTANCE).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
+ DALI_TEST_EQUALS(400.0f, actor.GetProperty(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE).Get<float>(), FLOAT_EPSILON, TEST_LOCATION);
DALI_TEST_EQUALS(1600.0f, actor.GetProperty(Actor::Property::POSITION_Z).Get<float>(), TEST_LOCATION);
DALI_TEST_EQUALS(actor.GetProjectionMode(), Dali::Camera::PERSPECTIVE_PROJECTION, TEST_LOCATION);
actor.SetType(Dali::Camera::LOOK_AT_TARGET);
DALI_TEST_EQUALS(actor.GetType(), Dali::Camera::LOOK_AT_TARGET, TEST_LOCATION);
- DALI_TEST_EQUALS("LOOK_AT_TARGET", actor.GetProperty<std::string>(CameraActor::Property::TYPE), TEST_LOCATION);
- DALI_TEST_EQUALS("LOOK_AT_TARGET", actor.GetCurrentProperty<std::string>(CameraActor::Property::TYPE), TEST_LOCATION);
+ Dali::Camera::Type cameraType = actor.GetProperty<Dali::Camera::Type>(CameraActor::Property::TYPE);
+ Dali::Camera::Type currentCameraType = actor.GetCurrentProperty<Dali::Camera::Type>(CameraActor::Property::TYPE);
+ DALI_TEST_EQUALS(Camera::LOOK_AT_TARGET, cameraType, TEST_LOCATION);
+ DALI_TEST_EQUALS(Camera::LOOK_AT_TARGET, currentCameraType, TEST_LOCATION);
END_TEST;
}
END_TEST;
}
+int UtcDaliCameraActorSetGetOthographicSizeP(void)
+{
+ TestApplication application;
+ tet_infoline("Testing Dali::CameraActor Set Orthographic Size (P)");
+
+ CameraActor actor = CameraActor::New(Size(TestApplication::DEFAULT_SURFACE_WIDTH, TestApplication::DEFAULT_SURFACE_HEIGHT));
+ actor.SetProjectionMode(Dali::Camera::ORTHOGRAPHIC_PROJECTION);
+
+ // Get default orthographic size by inputed size
+ DALI_TEST_EQUALS(actor.GetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE).Get<float>(), static_cast<float>(TestApplication::DEFAULT_SURFACE_HEIGHT) * 0.5f, TEST_LOCATION);
+
+ float value = 0.0f;
+
+ // Set an initial value to confirm a further set changes it.
+ float size = 300.0f;
+ actor.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, size);
+
+ value = 0.0f;
+ DALI_TEST_CHECK(actor.GetProperty(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE).Get(value));
+ DALI_TEST_EQUALS(value, size, TEST_LOCATION);
+
+ size = 1600.0f;
+ actor.SetProperty(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, size);
+
+ value = 0.0f;
+ DALI_TEST_CHECK(actor.GetProperty(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE).Get(value));
+ DALI_TEST_EQUALS(value, size, TEST_LOCATION);
+
+ actor.SetProperty(DevelCameraActor::Property::PROJECTION_DIRECTION, DevelCameraActor::ProjectionDirection::HORIZONTAL);
+
+ size = 600.0f;
+ actor.SetProperty(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, size);
+
+ value = 0.0f;
+ DALI_TEST_CHECK(actor.GetProperty(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE).Get(value));
+ DALI_TEST_EQUALS(value, size, TEST_LOCATION);
+
+ END_TEST;
+}
+
int UtcDaliCameraActorSetPerspectiveProjectionP(void)
{
TestApplication application;
application.GetScene().Add(actor);
actor.SetOrthographicProjection(Size(1080.0f, 1920.0f));
+
application.SendNotification();
application.Render(0);
application.Render();
application.SendNotification();
float defaultAspectRatio;
- float defaultFieldOfView;
float defaultNearPlaneDistance;
float defaultFarPlaneDistance;
actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get(defaultAspectRatio);
- actor.GetProperty(CameraActor::Property::FIELD_OF_VIEW).Get(defaultFieldOfView);
actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get(defaultNearPlaneDistance);
actor.GetProperty(CameraActor::Property::FAR_PLANE_DISTANCE).Get(defaultFarPlaneDistance);
Vector3 defaultPos = actor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
- actor.SetOrthographicProjection(Size(1080.0f, 1920.0f));
+ auto TestOrthographicPlaneDistance = [&](float width, float height, float expectOrthographicSize) {
+ actor.SetOrthographicProjection(Size(width, height));
- application.SendNotification();
- application.Render(0);
- application.Render();
- application.SendNotification();
+ DALI_TEST_EQUALS(expectOrthographicSize, actor.GetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE).Get<float>(), TEST_LOCATION);
- float value;
- actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get(value);
- DALI_TEST_EQUALS(defaultAspectRatio, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::FIELD_OF_VIEW).Get(value);
- DALI_TEST_EQUALS(defaultFieldOfView, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(defaultNearPlaneDistance, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::FAR_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(defaultFarPlaneDistance, value, FLOAT_EPSILON, TEST_LOCATION);
+ application.SendNotification();
+ application.Render(0);
+ application.Render();
+ application.SendNotification();
- actor.GetProperty(CameraActor::Property::LEFT_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(-540.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::RIGHT_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(540.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::TOP_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(960.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::BOTTOM_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(-960.0f, value, FLOAT_EPSILON, TEST_LOCATION);
+ float value;
+ actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get(value);
+ DALI_TEST_EQUALS(defaultAspectRatio, value, FLOAT_EPSILON, TEST_LOCATION);
+ actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get(value);
+ DALI_TEST_EQUALS(defaultNearPlaneDistance, value, FLOAT_EPSILON, TEST_LOCATION);
+ actor.GetProperty(CameraActor::Property::FAR_PLANE_DISTANCE).Get(value);
+ DALI_TEST_EQUALS(defaultFarPlaneDistance, value, FLOAT_EPSILON, TEST_LOCATION);
- Vector3 pos = actor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
- DALI_TEST_EQUALS(defaultPos.z, pos.z, 0.001f, TEST_LOCATION);
+ actor.GetProperty(CameraActor::Property::LEFT_PLANE_DISTANCE).Get(value);
+ DALI_TEST_EQUALS(-540.0f, value, FLOAT_EPSILON, TEST_LOCATION);
+ actor.GetProperty(CameraActor::Property::RIGHT_PLANE_DISTANCE).Get(value);
+ DALI_TEST_EQUALS(540.0f, value, FLOAT_EPSILON, TEST_LOCATION);
+ actor.GetProperty(CameraActor::Property::TOP_PLANE_DISTANCE).Get(value);
+ DALI_TEST_EQUALS(960.0f, value, FLOAT_EPSILON, TEST_LOCATION);
+ actor.GetProperty(CameraActor::Property::BOTTOM_PLANE_DISTANCE).Get(value);
+ DALI_TEST_EQUALS(-960.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- DALI_TEST_EQUALS(actor.GetProjectionMode(), Dali::Camera::ORTHOGRAPHIC_PROJECTION, TEST_LOCATION);
+ Vector3 pos = actor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
+ DALI_TEST_EQUALS(defaultPos.z, pos.z, 0.001f, TEST_LOCATION);
+
+ DALI_TEST_EQUALS(actor.GetProjectionMode(), Dali::Camera::ORTHOGRAPHIC_PROJECTION, TEST_LOCATION);
+ };
+
+ TestOrthographicPlaneDistance(1080.0f, 1920.0f, 960.0f);
+ // Change projection direction
+ actor.SetProperty(DevelCameraActor::Property::PROJECTION_DIRECTION, DevelCameraActor::ProjectionDirection::HORIZONTAL);
+ TestOrthographicPlaneDistance(1080.0f, 1920.0f, 540.0f);
END_TEST;
}
END_TEST;
}
-int UtcDaliCameraActorSetOrthographicProjectionP2(void)
-{
- TestApplication application;
- tet_infoline("Testing Dali::CameraActor::SetOrthographicProjection (P,2)");
-
- CameraActor actor = CameraActor::New();
- DALI_TEST_CHECK(actor);
-
- float defaultAspectRatio;
- float defaultFieldOfView;
- float defaultNearPlaneDistance;
- float defaultFarPlaneDistance;
- actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get(defaultAspectRatio);
- actor.GetProperty(CameraActor::Property::FIELD_OF_VIEW).Get(defaultFieldOfView);
- actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get(defaultNearPlaneDistance);
- actor.GetProperty(CameraActor::Property::FAR_PLANE_DISTANCE).Get(defaultFarPlaneDistance);
-
- // Check setting with specific near and far plane distances.
- actor.SetOrthographicProjection(-100.0f, 200.0f, -300.0f, 500.0f, 400.0f, 4000.0f);
-
- float value;
- actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get(value);
- DALI_TEST_EQUALS(defaultAspectRatio, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::FIELD_OF_VIEW).Get(value);
- DALI_TEST_EQUALS(defaultFieldOfView, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(400.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::FAR_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(4000.0f, value, FLOAT_EPSILON, TEST_LOCATION);
-
- actor.GetProperty(CameraActor::Property::LEFT_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(-100.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::RIGHT_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(200.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::TOP_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(-300.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::BOTTOM_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(500.0f, value, FLOAT_EPSILON, TEST_LOCATION);
-
- DALI_TEST_EQUALS(actor.GetProjectionMode(), Dali::Camera::ORTHOGRAPHIC_PROJECTION, TEST_LOCATION);
-
- END_TEST;
-}
-
-int UtcDaliCameraActorSetOrthographicProjectionP3(void)
-{
- TestApplication application;
- tet_infoline("Testing Dali::CameraActor::SetOrthographicProjection (P,3)");
-
- CameraActor actor = CameraActor::New();
- DALI_TEST_CHECK(actor);
-
- float defaultAspectRatio;
- float defaultFieldOfView;
- float defaultNearPlaneDistance;
- float defaultFarPlaneDistance;
- actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get(defaultAspectRatio);
- actor.GetProperty(CameraActor::Property::FIELD_OF_VIEW).Get(defaultFieldOfView);
- actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get(defaultNearPlaneDistance);
- actor.GetProperty(CameraActor::Property::FAR_PLANE_DISTANCE).Get(defaultFarPlaneDistance);
-
- actor.SetProjectionMode(Dali::Camera::ORTHOGRAPHIC_PROJECTION);
-
- actor.SetProperty(CameraActor::Property::LEFT_PLANE_DISTANCE, -100.0f);
- actor.SetProperty(CameraActor::Property::RIGHT_PLANE_DISTANCE, 200.0f);
- actor.SetProperty(CameraActor::Property::TOP_PLANE_DISTANCE, -300.0f);
- actor.SetProperty(CameraActor::Property::BOTTOM_PLANE_DISTANCE, 500.0f);
- actor.SetNearClippingPlane(400.0f);
- actor.SetFarClippingPlane(4000.0f);
-
- float value;
- actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get(value);
- DALI_TEST_EQUALS(defaultAspectRatio, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::FIELD_OF_VIEW).Get(value);
- DALI_TEST_EQUALS(defaultFieldOfView, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(400.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::FAR_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(4000.0f, value, FLOAT_EPSILON, TEST_LOCATION);
-
- actor.GetProperty(CameraActor::Property::LEFT_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(-100.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::RIGHT_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(200.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::TOP_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(-300.0f, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::BOTTOM_PLANE_DISTANCE).Get(value);
- DALI_TEST_EQUALS(500.0f, value, FLOAT_EPSILON, TEST_LOCATION);
-
- DALI_TEST_EQUALS(actor.GetProjectionMode(), Dali::Camera::ORTHOGRAPHIC_PROJECTION, TEST_LOCATION);
- std::string stringValue;
- actor.GetProperty(CameraActor::Property::PROJECTION_MODE).Get(stringValue);
- DALI_TEST_EQUALS(stringValue, "ORTHOGRAPHIC_PROJECTION", TEST_LOCATION);
- END_TEST;
-}
-
int UtcDaliCameraActorSetProjectionModeP(void)
{
TestApplication application;
DALI_TEST_EQUALS(actor.GetFarClippingPlane(), 400.0f, FLOAT_EPSILON, TEST_LOCATION);
// Check setting the property.
- Property::Value setValue = "PERSPECTIVE_PROJECTION";
+ Property::Value setValue = Dali::Camera::PERSPECTIVE_PROJECTION;
actor.SetProperty(CameraActor::Property::PROJECTION_MODE, setValue);
DALI_TEST_EQUALS(actor.GetProjectionMode(), Dali::Camera::PERSPECTIVE_PROJECTION, TEST_LOCATION);
END_TEST;
DALI_TEST_EQUALS(actor.GetProjectionMode(), Dali::Camera::PERSPECTIVE_PROJECTION, TEST_LOCATION);
// Check getting the property.
- std::string stringValue;
- actor.GetProperty(CameraActor::Property::PROJECTION_MODE).Get(stringValue);
- DALI_TEST_EQUALS(stringValue, "PERSPECTIVE_PROJECTION", TEST_LOCATION);
+ Dali::Camera::ProjectionMode projectionMode = actor.GetProperty<Dali::Camera::ProjectionMode>(CameraActor::Property::PROJECTION_MODE);
+ DALI_TEST_EQUALS(projectionMode, Dali::Camera::PERSPECTIVE_PROJECTION, TEST_LOCATION);
END_TEST;
}
DALI_TEST_EQUALS(TEST_NEAR_PLANE_DISTANCE, value, FLOAT_EPSILON, TEST_LOCATION);
actor.GetProperty(CameraActor::Property::FAR_PLANE_DISTANCE).Get(value);
DALI_TEST_EQUALS(TEST_FAR_PLANE_DISTANCE, value, FLOAT_EPSILON, TEST_LOCATION);
- actor.GetProperty(CameraActor::Property::PROJECTION_MODE).Get(sValue);
- DALI_TEST_EQUALS("PERSPECTIVE_PROJECTION", sValue, TEST_LOCATION);
+
+ Dali::Camera::ProjectionMode projectionMode = actor.GetProperty<Dali::Camera::ProjectionMode>(CameraActor::Property::PROJECTION_MODE);
+ DALI_TEST_EQUALS(Dali::Camera::PERSPECTIVE_PROJECTION, projectionMode, TEST_LOCATION);
bool bValue;
actor.GetProperty(CameraActor::Property::INVERT_Y_AXIS).Get(bValue);
DALI_TEST_EQUALS(false, bValue, TEST_LOCATION);
DALI_TEST_EQUALS(TEST_FAR_PLANE_DISTANCE, actor.GetFarClippingPlane(), FLOAT_EPSILON, TEST_LOCATION);
DALI_TEST_EQUALS(false, actor.GetInvertYAxis(), TEST_LOCATION);
- std::string sValue;
- actor.GetProperty(CameraActor::Property::TYPE).Get(sValue);
- DALI_TEST_EQUALS(sValue, "LOOK_AT_TARGET", TEST_LOCATION);
+ Dali::Camera::Type cameraType = actor.GetProperty<Dali::Camera::Type>(CameraActor::Property::TYPE);
+ DALI_TEST_EQUALS(cameraType, Camera::LOOK_AT_TARGET, TEST_LOCATION);
float value;
actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get(value);
DALI_TEST_EQUALS(actor.GetAspectRatio(), TEST_ASPECT_RATIO, FLOAT_EPSILON, TEST_LOCATION);
- actor.SetProperty(CameraActor::Property::TYPE, "FREE_LOOK");
+ actor.SetProperty(CameraActor::Property::TYPE, Camera::FREE_LOOK);
actor.SetProperty(CameraActor::Property::ASPECT_RATIO, TEST_ASPECT_RATIO);
actor.SetProperty(CameraActor::Property::FIELD_OF_VIEW, TEST_FIELD_OF_VIEW);
actor.SetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE, TEST_NEAR_PLANE_DISTANCE);
indices.push_back(CameraActor::Property::PROJECTION_MATRIX);
indices.push_back(CameraActor::Property::VIEW_MATRIX);
indices.push_back(CameraActor::Property::INVERT_Y_AXIS);
+ indices.push_back(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE);
+ indices.push_back(DevelCameraActor::Property::PROJECTION_DIRECTION);
DALI_TEST_CHECK(actor.GetPropertyCount() == (Actor::New().GetPropertyCount() + indices.size()));
for(std::vector<Property::Index>::iterator iter = indices.begin(); iter != indices.end(); ++iter)
{
DALI_TEST_EQUALS(*iter, actor.GetPropertyIndex(actor.GetPropertyName(*iter)), TEST_LOCATION);
- DALI_TEST_CHECK(!actor.IsPropertyAnimatable(*iter));
- if((*iter == CameraActor::Property::PROJECTION_MATRIX) ||
+ if(*iter == CameraActor::Property::FIELD_OF_VIEW || *iter == CameraActor::Property::ASPECT_RATIO || *iter == DevelCameraActor::Property::ORTHOGRAPHIC_SIZE)
+ {
+ DALI_TEST_CHECK(actor.IsPropertyAnimatable(*iter));
+ }
+ else
+ {
+ DALI_TEST_CHECK(!actor.IsPropertyAnimatable(*iter));
+ }
+
+ if((*iter == CameraActor::Property::LEFT_PLANE_DISTANCE) ||
+ (*iter == CameraActor::Property::RIGHT_PLANE_DISTANCE) ||
+ (*iter == CameraActor::Property::TOP_PLANE_DISTANCE) ||
+ (*iter == CameraActor::Property::BOTTOM_PLANE_DISTANCE) ||
+ (*iter == CameraActor::Property::PROJECTION_MATRIX) ||
(*iter == CameraActor::Property::VIEW_MATRIX))
{
DALI_TEST_CHECK(!actor.IsPropertyWritable(*iter));
{"keyboardFocusable", Property::BOOLEAN, true, false, false, Dali::Actor::Property::KEYBOARD_FOCUSABLE},
{"siblingOrder", Property::INTEGER, true, false, false, Dali::DevelActor::Property::SIBLING_ORDER},
// camera own
- {"type", Property::STRING, true, false, true, Dali::CameraActor::Property::TYPE},
- {"projectionMode", Property::STRING, true, false, true, Dali::CameraActor::Property::PROJECTION_MODE},
- {"fieldOfView", Property::FLOAT, true, false, true, Dali::CameraActor::Property::FIELD_OF_VIEW},
- {"aspectRatio", Property::FLOAT, true, false, true, Dali::CameraActor::Property::ASPECT_RATIO},
+ {"type", Property::INTEGER, true, false, true, Dali::CameraActor::Property::TYPE},
+ {"projectionMode", Property::INTEGER, true, false, true, Dali::CameraActor::Property::PROJECTION_MODE},
+ {"fieldOfView", Property::FLOAT, true, true, true, Dali::CameraActor::Property::FIELD_OF_VIEW},
+ {"aspectRatio", Property::FLOAT, true, true, true, Dali::CameraActor::Property::ASPECT_RATIO},
{"nearPlaneDistance", Property::FLOAT, true, false, true, Dali::CameraActor::Property::NEAR_PLANE_DISTANCE},
{"farPlaneDistance", Property::FLOAT, true, false, true, Dali::CameraActor::Property::FAR_PLANE_DISTANCE},
- {"leftPlaneDistance", Property::FLOAT, true, false, true, Dali::CameraActor::Property::LEFT_PLANE_DISTANCE},
- {"rightPlaneDistance", Property::FLOAT, true, false, true, Dali::CameraActor::Property::RIGHT_PLANE_DISTANCE},
- {"topPlaneDistance", Property::FLOAT, true, false, true, Dali::CameraActor::Property::TOP_PLANE_DISTANCE},
- {"bottomPlaneDistance", Property::FLOAT, true, false, true, Dali::CameraActor::Property::BOTTOM_PLANE_DISTANCE},
+ {"leftPlaneDistance", Property::FLOAT, false, false, true, Dali::CameraActor::Property::LEFT_PLANE_DISTANCE},
+ {"rightPlaneDistance", Property::FLOAT, false, false, true, Dali::CameraActor::Property::RIGHT_PLANE_DISTANCE},
+ {"topPlaneDistance", Property::FLOAT, false, false, true, Dali::CameraActor::Property::TOP_PLANE_DISTANCE},
+ {"bottomPlaneDistance", Property::FLOAT, false, false, true, Dali::CameraActor::Property::BOTTOM_PLANE_DISTANCE},
{"targetPosition", Property::VECTOR3, true, false, true, Dali::CameraActor::Property::TARGET_POSITION},
{"projectionMatrix", Property::MATRIX, false, false, true, Dali::CameraActor::Property::PROJECTION_MATRIX},
{"viewMatrix", Property::MATRIX, false, false, true, Dali::CameraActor::Property::VIEW_MATRIX},
- {"invertYAxis", Property::BOOLEAN, true, false, true, Dali::CameraActor::Property::INVERT_Y_AXIS}};
+ {"invertYAxis", Property::BOOLEAN, true, false, true, Dali::CameraActor::Property::INVERT_Y_AXIS},
+ {"orthographicSize", Property::FLOAT, true, true, true, Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE},
+ {"projectionDirection", Property::INTEGER, true, false, true, Dali::DevelCameraActor::Property::PROJECTION_DIRECTION}};
for(uint32_t index = 0; index < (sizeof(CAMERA_DEFAULT_PROPERTY) / sizeof(PropertyDetails)); ++index)
{
END_TEST;
}
-int UtcDaliCameraActorAnimatedProperties(void)
+int UtcDaliCameraActorAnimatedProperties01(void)
{
TestApplication application;
tet_infoline("Testing Dali::Internal::CameraActor::GetSceneObjectAnimatableProperty()");
END_TEST;
}
+int UtcDaliCameraActorAnimatedProperties02(void)
+{
+ TestApplication application;
+ tet_infoline("Testing Dali::Internal::CameraActor::GetSceneObjectAnimatableProperty()");
+
+ CameraActor camera = application.GetScene().GetRenderTaskList().GetTask(0u).GetCameraActor();
+ Actor actor = Actor::New();
+ actor.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
+ actor.SetProperty(Actor::Property::POSITION, Vector2(0.1f, 0.0f));
+ application.GetScene().Add(actor);
+
+ camera.SetFieldOfView(0.1f);
+ camera.SetAspectRatio(0.5f);
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, 200.0f);
+
+ Constraint constraintX = Constraint::New<float>(actor, Actor::Property::POSITION_X, EqualToConstraint());
+ constraintX.AddSource(Source(camera, CameraActor::Property::FIELD_OF_VIEW));
+ constraintX.Apply();
+
+ Constraint constraintY = Constraint::New<float>(actor, Actor::Property::POSITION_Y, EqualToConstraint());
+ constraintY.AddSource(Source(camera, CameraActor::Property::ASPECT_RATIO));
+ constraintY.Apply();
+
+ Constraint constraintZ = Constraint::New<float>(actor, Actor::Property::POSITION_Z, EqualToConstraint());
+ constraintZ.AddSource(Source(camera, DevelCameraActor::Property::ORTHOGRAPHIC_SIZE));
+ constraintZ.Apply();
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(actor.GetCurrentProperty<float>(Actor::Property::POSITION_X), 0.1f, TEST_LOCATION);
+ DALI_TEST_EQUALS(actor.GetCurrentProperty<float>(Actor::Property::POSITION_Y), 0.5f, TEST_LOCATION);
+ DALI_TEST_EQUALS(actor.GetCurrentProperty<float>(Actor::Property::POSITION_Z), 200.0f, TEST_LOCATION);
+
+ camera.SetFieldOfView(0.5f);
+ camera.SetAspectRatio(0.2f);
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, 100.0f);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(actor.GetCurrentProperty<float>(Actor::Property::POSITION_X), 0.5f, TEST_LOCATION);
+ DALI_TEST_EQUALS(actor.GetCurrentProperty<float>(Actor::Property::POSITION_Y), 0.2f, TEST_LOCATION);
+ DALI_TEST_EQUALS(actor.GetCurrentProperty<float>(Actor::Property::POSITION_Z), 100.0f, TEST_LOCATION);
+ END_TEST;
+}
+
+int UtcDaliCameraActorAnimatedProperties03(void)
+{
+ TestApplication application;
+ tet_infoline("Testing Dali::Internal::CameraActor::GetSceneObjectAnimatableProperty()");
+
+ CameraActor camera = application.GetScene().GetRenderTaskList().GetTask(0u).GetCameraActor();
+
+ // Add dummy actor
+ Actor actor = Actor::New();
+ actor.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
+ actor.SetProperty(Actor::Property::POSITION, Vector2(0.1f, 0.0f));
+ application.GetScene().Add(actor);
+
+ Radian sourceFoV = Radian(0.6f);
+ float sourceAspect = 0.7f;
+
+ Radian targetFoV = Radian(0.1f);
+ float targetAspect = 1.3f;
+
+ Matrix expectedProjectionMatrix1;
+ Matrix expectedProjectionMatrix2;
+ Matrix expectedProjectionMatrix3;
+
+ // Reduce near-far value for projection matrix epsilon
+ camera.SetNearClippingPlane(1.0f);
+ camera.SetFarClippingPlane(3.0f);
+
+ // Build expect projection matrix
+ camera.SetFieldOfView(sourceFoV.radian);
+ camera.SetAspectRatio(sourceAspect);
+ application.SendNotification();
+ application.Render();
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(expectedProjectionMatrix1);
+
+ camera.SetFieldOfView(sourceFoV.radian * 0.6f + targetFoV.radian * 0.4f);
+ camera.SetAspectRatio(sourceAspect * 0.6f + targetAspect * 0.4f);
+ application.SendNotification();
+ application.Render();
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(expectedProjectionMatrix2);
+
+ camera.SetFieldOfView(targetFoV.radian);
+ camera.SetAspectRatio(targetAspect);
+ application.SendNotification();
+ application.Render();
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(expectedProjectionMatrix3);
+
+ auto TestAnimationProgress = [&]() {
+ Matrix projectionMatrix;
+
+ application.SendNotification();
+ application.Render(0);
+
+ // progress 0.0
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::FIELD_OF_VIEW), sourceFoV.radian, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::ASPECT_RATIO), sourceAspect, TEST_LOCATION);
+
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(projectionMatrix);
+ DALI_TEST_EQUALS(projectionMatrix, expectedProjectionMatrix1, Epsilon<100000>::value, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render(400);
+
+ // progress 0.4
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::FIELD_OF_VIEW), sourceFoV.radian * 0.6f + targetFoV.radian * 0.4f, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::ASPECT_RATIO), sourceAspect * 0.6f + targetAspect * 0.4f, TEST_LOCATION);
+
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(projectionMatrix);
+ DALI_TEST_EQUALS(projectionMatrix, expectedProjectionMatrix2, Epsilon<100000>::value, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render(600);
+
+ // progress 1.0
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::FIELD_OF_VIEW), targetFoV.radian, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::ASPECT_RATIO), targetAspect, TEST_LOCATION);
+
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(projectionMatrix);
+ DALI_TEST_EQUALS(projectionMatrix, expectedProjectionMatrix3, Epsilon<100000>::value, TEST_LOCATION);
+
+ // Ensure Animate finished.
+ application.SendNotification();
+ application.Render(16);
+ };
+
+ // AnimateTo
+ {
+ tet_printf("AnimateTo\n");
+ camera.SetProperty(CameraActor::Property::FIELD_OF_VIEW, sourceFoV.radian);
+ camera.SetProperty(CameraActor::Property::ASPECT_RATIO, sourceAspect);
+ Animation animation = Animation::New(1.0f);
+ animation.AnimateTo(Property(camera, CameraActor::Property::FIELD_OF_VIEW), targetFoV.radian);
+ animation.AnimateTo(Property(camera, CameraActor::Property::ASPECT_RATIO), targetAspect);
+ animation.AnimateTo(Property(camera, Actor::Property::POSITION_X), 0.0f); ///< For line coverage.
+ animation.Play();
+
+ TestAnimationProgress();
+ }
+
+ // AnimateBetween
+ {
+ tet_printf("AnimateBetween\n");
+ Animation animation = Animation::New(1.0f);
+
+ KeyFrames keyFrames1 = KeyFrames::New();
+ keyFrames1.Add(0.0f, sourceFoV.radian);
+ keyFrames1.Add(1.0f, targetFoV.radian);
+
+ KeyFrames keyFrames2 = KeyFrames::New();
+ keyFrames2.Add(0.0f, sourceAspect);
+ keyFrames2.Add(1.0f, targetAspect);
+
+ animation.AnimateBetween(Property(camera, CameraActor::Property::FIELD_OF_VIEW), keyFrames1);
+ animation.AnimateBetween(Property(camera, CameraActor::Property::ASPECT_RATIO), keyFrames2);
+
+ animation.Play();
+
+ TestAnimationProgress();
+ }
+
+ // AnimateBy
+ {
+ tet_printf("AnimateBy\n");
+ camera.SetProperty(CameraActor::Property::FIELD_OF_VIEW, sourceFoV.radian);
+ camera.SetProperty(CameraActor::Property::ASPECT_RATIO, sourceAspect);
+ Animation animation = Animation::New(1.0f);
+ animation.AnimateBy(Property(camera, CameraActor::Property::FIELD_OF_VIEW), targetFoV.radian - sourceFoV.radian);
+ animation.AnimateBy(Property(camera, CameraActor::Property::ASPECT_RATIO), targetAspect - sourceAspect);
+ animation.Play();
+
+ TestAnimationProgress();
+ }
+
+ END_TEST;
+}
+
+int UtcDaliCameraActorAnimatedProperties04(void)
+{
+ TestApplication application;
+ tet_infoline("Testing Dali::Internal::CameraActor::GetSceneObjectAnimatableProperty()");
+
+ CameraActor camera = application.GetScene().GetRenderTaskList().GetTask(0u).GetCameraActor();
+
+ // Make camera as orthographic mode
+ camera.SetProjectionMode(Dali::Camera::ORTHOGRAPHIC_PROJECTION);
+
+ // Add dummy actor
+ Actor actor = Actor::New();
+ actor.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
+ actor.SetProperty(Actor::Property::POSITION, Vector2(0.1f, 0.0f));
+ application.GetScene().Add(actor);
+
+ float sourceOrthographic = 2.0f;
+ float sourceAspect = 0.7f;
+
+ float targetOrthographic = 4.0f;
+ float targetAspect = 1.3f;
+
+ Matrix expectedProjectionMatrix1;
+ Matrix expectedProjectionMatrix2;
+ Matrix expectedProjectionMatrix3;
+
+ // Reduce near-far value for projection matrix epsilon
+ camera.SetNearClippingPlane(1.0f);
+ camera.SetFarClippingPlane(3.0f);
+
+ // Build expect projection matrix
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, sourceOrthographic);
+ camera.SetAspectRatio(sourceAspect);
+ application.SendNotification();
+ application.Render();
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(expectedProjectionMatrix1);
+
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, sourceOrthographic * 0.6f + targetOrthographic * 0.4f);
+ camera.SetAspectRatio(sourceAspect * 0.6f + targetAspect * 0.4f);
+ application.SendNotification();
+ application.Render();
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(expectedProjectionMatrix2);
+
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, targetOrthographic);
+ camera.SetAspectRatio(targetAspect);
+ application.SendNotification();
+ application.Render();
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(expectedProjectionMatrix3);
+
+ auto TestAnimationProgress = [&]() {
+ Matrix projectionMatrix;
+
+ application.SendNotification();
+ application.Render(0);
+
+ float expectOrthographic;
+ float expectAspect;
+ float expectLeft;
+ float expectRight;
+ float expectTop;
+ float expectBottom;
+
+ auto UpdateExpectPlaneDistance = [&]() {
+ bool isVertical = camera.GetProperty<int>(DevelCameraActor::Property::PROJECTION_DIRECTION) == static_cast<int>(DevelCameraActor::ProjectionDirection::VERTICAL);
+ expectLeft = -(isVertical ? expectOrthographic * expectAspect : expectOrthographic);
+ expectRight = (isVertical ? expectOrthographic * expectAspect : expectOrthographic);
+ expectTop = (isVertical ? expectOrthographic : expectOrthographic / expectAspect);
+ expectBottom = -(isVertical ? expectOrthographic : expectOrthographic / expectAspect);
+ };
+
+ // progress 0.0
+ expectOrthographic = sourceOrthographic;
+ expectAspect = sourceAspect;
+ UpdateExpectPlaneDistance();
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), expectOrthographic, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::ASPECT_RATIO), expectAspect, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::LEFT_PLANE_DISTANCE), expectLeft, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::RIGHT_PLANE_DISTANCE), expectRight, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::TOP_PLANE_DISTANCE), expectTop, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::BOTTOM_PLANE_DISTANCE), expectBottom, TEST_LOCATION);
+
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(projectionMatrix);
+ DALI_TEST_EQUALS(projectionMatrix, expectedProjectionMatrix1, Epsilon<100000>::value, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render(400);
+
+ // progress 0.4
+ expectOrthographic = sourceOrthographic * 0.6f + targetOrthographic * 0.4f;
+ expectAspect = sourceAspect * 0.6f + targetAspect * 0.4f;
+ UpdateExpectPlaneDistance();
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), expectOrthographic, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::ASPECT_RATIO), expectAspect, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::LEFT_PLANE_DISTANCE), expectLeft, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::RIGHT_PLANE_DISTANCE), expectRight, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::TOP_PLANE_DISTANCE), expectTop, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::BOTTOM_PLANE_DISTANCE), expectBottom, TEST_LOCATION);
+
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(projectionMatrix);
+ DALI_TEST_EQUALS(projectionMatrix, expectedProjectionMatrix2, Epsilon<100000>::value, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render(600);
+
+ // progress 1.0
+ expectOrthographic = targetOrthographic;
+ expectAspect = targetAspect;
+ UpdateExpectPlaneDistance();
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), expectOrthographic, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::ASPECT_RATIO), expectAspect, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::LEFT_PLANE_DISTANCE), expectLeft, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::RIGHT_PLANE_DISTANCE), expectRight, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::TOP_PLANE_DISTANCE), expectTop, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::BOTTOM_PLANE_DISTANCE), expectBottom, TEST_LOCATION);
+
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(projectionMatrix);
+ DALI_TEST_EQUALS(projectionMatrix, expectedProjectionMatrix3, Epsilon<100000>::value, TEST_LOCATION);
+
+ // Ensure Animate finished.
+ application.SendNotification();
+ application.Render(16);
+ };
+
+ // AnimateTo
+ {
+ tet_printf("AnimateTo - vertical\n");
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, sourceOrthographic);
+ camera.SetProperty(CameraActor::Property::ASPECT_RATIO, sourceAspect);
+ Animation animation = Animation::New(1.0f);
+ animation.AnimateTo(Property(camera, DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), targetOrthographic);
+ animation.AnimateTo(Property(camera, CameraActor::Property::ASPECT_RATIO), targetAspect);
+ animation.Play();
+ TestAnimationProgress();
+ }
+
+ // AnimateBetween
+ {
+ tet_printf("AnimateBetween - vertical\n");
+ Animation animation = Animation::New(1.0f);
+
+ KeyFrames keyFrames1 = KeyFrames::New();
+ keyFrames1.Add(0.0f, sourceOrthographic);
+ keyFrames1.Add(1.0f, targetOrthographic);
+
+ KeyFrames keyFrames2 = KeyFrames::New();
+ keyFrames2.Add(0.0f, sourceAspect);
+ keyFrames2.Add(1.0f, targetAspect);
+
+ animation.AnimateBetween(Property(camera, DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), keyFrames1);
+ animation.AnimateBetween(Property(camera, CameraActor::Property::ASPECT_RATIO), keyFrames2);
+
+ animation.Play();
+ TestAnimationProgress();
+ }
+
+ // AnimateBy
+ {
+ tet_printf("AnimateBy - vertical\n");
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, sourceOrthographic);
+ camera.SetProperty(CameraActor::Property::ASPECT_RATIO, sourceAspect);
+ Animation animation = Animation::New(1.0f);
+ animation.AnimateBy(Property(camera, DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), targetOrthographic - sourceOrthographic);
+ animation.AnimateBy(Property(camera, CameraActor::Property::ASPECT_RATIO), targetAspect - sourceAspect);
+ animation.Play();
+ TestAnimationProgress();
+ }
+
+ END_TEST;
+}
+
+int UtcDaliCameraActorAnimatedProperties05(void)
+{
+ TestApplication application;
+ tet_infoline("Testing Dali::Internal::CameraActor::GetSceneObjectAnimatableProperty()");
+
+ CameraActor camera = application.GetScene().GetRenderTaskList().GetTask(0u).GetCameraActor();
+
+ // Make camera as orthographic mode and horizontal
+ camera.SetProjectionMode(Dali::Camera::ORTHOGRAPHIC_PROJECTION);
+ camera.SetProperty(DevelCameraActor::Property::PROJECTION_DIRECTION, DevelCameraActor::ProjectionDirection::HORIZONTAL);
+
+ // Add dummy actor
+ Actor actor = Actor::New();
+ actor.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
+ actor.SetProperty(Actor::Property::POSITION, Vector2(0.1f, 0.0f));
+ application.GetScene().Add(actor);
+
+ float sourceOrthographic = 2.0f;
+ float sourceAspect = 0.7f;
+
+ float targetOrthographic = 4.0f;
+ float targetAspect = 1.3f;
+
+ Matrix expectedProjectionMatrix1;
+ Matrix expectedProjectionMatrix2;
+ Matrix expectedProjectionMatrix3;
+
+ // Reduce near-far value for projection matrix epsilon
+ camera.SetNearClippingPlane(1.0f);
+ camera.SetFarClippingPlane(3.0f);
+
+ // Build expect projection matrix
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, sourceOrthographic);
+ camera.SetAspectRatio(sourceAspect);
+ application.SendNotification();
+ application.Render();
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(expectedProjectionMatrix1);
+
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, sourceOrthographic * 0.6f + targetOrthographic * 0.4f);
+ camera.SetAspectRatio(sourceAspect * 0.6f + targetAspect * 0.4f);
+ application.SendNotification();
+ application.Render();
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(expectedProjectionMatrix2);
+
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, targetOrthographic);
+ camera.SetAspectRatio(targetAspect);
+ application.SendNotification();
+ application.Render();
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(expectedProjectionMatrix3);
+
+ auto TestAnimationProgress = [&]() {
+ Matrix projectionMatrix;
+
+ application.SendNotification();
+ application.Render(0);
+
+ float expectOrthographic;
+ float expectAspect;
+ float expectLeft;
+ float expectRight;
+ float expectTop;
+ float expectBottom;
+
+ auto UpdateExpectPlaneDistance = [&]() {
+ bool isVertical = camera.GetProperty<int>(DevelCameraActor::Property::PROJECTION_DIRECTION) == static_cast<int>(DevelCameraActor::ProjectionDirection::VERTICAL);
+ expectLeft = -(isVertical ? expectOrthographic * expectAspect : expectOrthographic);
+ expectRight = (isVertical ? expectOrthographic * expectAspect : expectOrthographic);
+ expectTop = (isVertical ? expectOrthographic : expectOrthographic / expectAspect);
+ expectBottom = -(isVertical ? expectOrthographic : expectOrthographic / expectAspect);
+ };
+
+ // progress 0.0
+ expectOrthographic = sourceOrthographic;
+ expectAspect = sourceAspect;
+ UpdateExpectPlaneDistance();
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), expectOrthographic, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::ASPECT_RATIO), expectAspect, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::LEFT_PLANE_DISTANCE), expectLeft, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::RIGHT_PLANE_DISTANCE), expectRight, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::TOP_PLANE_DISTANCE), expectTop, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::BOTTOM_PLANE_DISTANCE), expectBottom, TEST_LOCATION);
+
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(projectionMatrix);
+ DALI_TEST_EQUALS(projectionMatrix, expectedProjectionMatrix1, Epsilon<100000>::value, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render(400);
+
+ // progress 0.4
+ expectOrthographic = sourceOrthographic * 0.6f + targetOrthographic * 0.4f;
+ expectAspect = sourceAspect * 0.6f + targetAspect * 0.4f;
+ UpdateExpectPlaneDistance();
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), expectOrthographic, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::ASPECT_RATIO), expectAspect, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::LEFT_PLANE_DISTANCE), expectLeft, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::RIGHT_PLANE_DISTANCE), expectRight, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::TOP_PLANE_DISTANCE), expectTop, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::BOTTOM_PLANE_DISTANCE), expectBottom, TEST_LOCATION);
+
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(projectionMatrix);
+ DALI_TEST_EQUALS(projectionMatrix, expectedProjectionMatrix2, Epsilon<100000>::value, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render(600);
+
+ // progress 1.0
+ expectOrthographic = targetOrthographic;
+ expectAspect = targetAspect;
+ UpdateExpectPlaneDistance();
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), expectOrthographic, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::ASPECT_RATIO), expectAspect, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::LEFT_PLANE_DISTANCE), expectLeft, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::RIGHT_PLANE_DISTANCE), expectRight, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::TOP_PLANE_DISTANCE), expectTop, TEST_LOCATION);
+ DALI_TEST_EQUALS(camera.GetCurrentProperty<float>(CameraActor::Property::BOTTOM_PLANE_DISTANCE), expectBottom, TEST_LOCATION);
+
+ camera.GetProperty(CameraActor::Property::PROJECTION_MATRIX).Get(projectionMatrix);
+ DALI_TEST_EQUALS(projectionMatrix, expectedProjectionMatrix3, Epsilon<100000>::value, TEST_LOCATION);
+
+ // Ensure Animate finished.
+ application.SendNotification();
+ application.Render(16);
+ };
+
+ // AnimateTo
+ {
+ tet_printf("AnimateTo - horizontal\n");
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, sourceOrthographic);
+ camera.SetProperty(CameraActor::Property::ASPECT_RATIO, sourceAspect);
+ Animation animation = Animation::New(1.0f);
+ animation.AnimateTo(Property(camera, DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), targetOrthographic);
+ animation.AnimateTo(Property(camera, CameraActor::Property::ASPECT_RATIO), targetAspect);
+ animation.Play();
+ TestAnimationProgress();
+ }
+
+ // AnimateBetween
+ {
+ tet_printf("AnimateBetween - horizontal\n");
+ Animation animation = Animation::New(1.0f);
+
+ KeyFrames keyFrames1 = KeyFrames::New();
+ keyFrames1.Add(0.0f, sourceOrthographic);
+ keyFrames1.Add(1.0f, targetOrthographic);
+
+ KeyFrames keyFrames2 = KeyFrames::New();
+ keyFrames2.Add(0.0f, sourceAspect);
+ keyFrames2.Add(1.0f, targetAspect);
+
+ animation.AnimateBetween(Property(camera, DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), keyFrames1);
+ animation.AnimateBetween(Property(camera, CameraActor::Property::ASPECT_RATIO), keyFrames2);
+
+ animation.Play();
+ TestAnimationProgress();
+ }
+
+ // AnimateBy
+ {
+ tet_printf("AnimateBy - horizontal\n");
+ camera.SetProperty(Dali::DevelCameraActor::Property::ORTHOGRAPHIC_SIZE, sourceOrthographic);
+ camera.SetProperty(CameraActor::Property::ASPECT_RATIO, sourceAspect);
+ Animation animation = Animation::New(1.0f);
+ animation.AnimateBy(Property(camera, DevelCameraActor::Property::ORTHOGRAPHIC_SIZE), targetOrthographic - sourceOrthographic);
+ animation.AnimateBy(Property(camera, CameraActor::Property::ASPECT_RATIO), targetAspect - sourceAspect);
+ animation.Play();
+ TestAnimationProgress();
+ }
+
+ END_TEST;
+}
+
int UtcDaliCameraActorPropertyIndices(void)
{
TestApplication application;
matrixAfter.GetTransformComponents(position, rotation, scale);
DALI_TEST_EQUALS(reflected, rotation, 0.01f, TEST_LOCATION);
+ // Test Orthographic camera
+ freeLookCameraActor.SetProjectionMode(Dali::Camera::ProjectionMode::ORTHOGRAPHIC_PROJECTION);
+
+ // Make sure the recalculation will take place
+ freeLookCameraActor.SetProperty(Dali::DevelCameraActor::Property::REFLECTION_PLANE, Vector4(0.0f, 1.0f, 0.0f, 0.0f));
+
+ application.SendNotification();
+ application.Render();
+ application.SendNotification();
+ application.Render();
+
+ // Nothing should change despite of different camera type
+ matrixAfter.GetTransformComponents(position, rotation, scale);
+ DALI_TEST_EQUALS(reflected, rotation, 0.01f, TEST_LOCATION);
+
+ // Test Orthographic camera + Look at target
+ freeLookCameraActor.SetType(Camera::LOOK_AT_TARGET);
+ freeLookCameraActor.SetTargetPosition(targetPosition);
+
+ // Make sure the recalculation will take place
+ freeLookCameraActor.SetProperty(Dali::DevelCameraActor::Property::REFLECTION_PLANE, Vector4(0.0f, 1.0f, 0.0f, 0.0f));
+
+ application.SendNotification();
+ application.Render();
+ application.SendNotification();
+ application.Render();
+
+ // Nothing should change despite of different camera type
+ matrixAfter.GetTransformComponents(position, rotation, scale);
+ DALI_TEST_EQUALS(reflected, rotation, 0.01f, TEST_LOCATION);
+
+ END_TEST;
+}
+
+int UtcDaliCameraActorProjectionDirection(void)
+{
+ TestApplication application;
+
+ Integration::Scene stage = application.GetScene();
+ Vector2 stageSize = stage.GetSize();
+
+ CameraActor defaultCameraActor = stage.GetRenderTaskList().GetTask(0).GetCameraActor();
+ CameraActor expectCameraActor1 = CameraActor::New(stageSize);
+ CameraActor expectCameraActor2 = CameraActor::New(stageSize);
+ CameraActor expectCameraActor3 = CameraActor::New(stageSize);
+
+ float fieldOfView = defaultCameraActor.GetFieldOfView();
+ float aspectRatio = defaultCameraActor.GetAspectRatio();
+
+ // Calculate expect camera 1's fov.
+ float anotherFieldOfView = 2.0f * std::atan(std::tan(fieldOfView * 0.5f) / aspectRatio);
+ expectCameraActor1.SetFieldOfView(anotherFieldOfView);
+
+ // Calculate expect camera 2's fov and aspect ratio.
+ float anotherFieldOfView2 = 2.0f * std::atan(std::tan(fieldOfView * 0.5f) * aspectRatio);
+ float anotherAspectRatio = 1.0f / aspectRatio;
+ expectCameraActor2.SetFieldOfView(anotherFieldOfView2);
+ expectCameraActor2.SetAspectRatio(anotherAspectRatio);
+
+ // Calculate expect camera 3's aspect raio
+ expectCameraActor3.SetAspectRatio(anotherAspectRatio);
+
+ stage.Add(expectCameraActor1);
+ stage.Add(expectCameraActor2);
+ stage.Add(expectCameraActor3);
+
+ application.SendNotification();
+ application.Render();
+ application.SendNotification();
+ application.Render();
+
+ // Test default projection direction is VERTICAL
+ DALI_TEST_EQUALS(defaultCameraActor.GetProperty<int>(Dali::DevelCameraActor::Property::PROJECTION_DIRECTION), static_cast<int>(Dali::DevelCameraActor::ProjectionDirection::VERTICAL), TEST_LOCATION);
+
+ Matrix matrixBefore, matrixAfter;
+ Matrix matrixExpect1, matrixExpect2, matrixExpect3;
+
+ defaultCameraActor.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(matrixBefore);
+ expectCameraActor1.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(matrixExpect1);
+ expectCameraActor2.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(matrixExpect2);
+ expectCameraActor3.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(matrixExpect3);
+
+ tet_printf("Check ProjectionDirection::HORIZONTAL\n");
+
+ defaultCameraActor.SetProperty(Dali::DevelCameraActor::Property::PROJECTION_DIRECTION, Dali::DevelCameraActor::ProjectionDirection::HORIZONTAL);
+ DALI_TEST_EQUALS(defaultCameraActor.GetProperty<int>(Dali::DevelCameraActor::Property::PROJECTION_DIRECTION), static_cast<int>(Dali::DevelCameraActor::ProjectionDirection::HORIZONTAL), TEST_LOCATION);
+ // NOTE : ProjectionDirection doesn't change camera actor's FieldOfView and AspectRatio value.)
+ DALI_TEST_EQUALS(defaultCameraActor.GetFieldOfView(), fieldOfView, TEST_LOCATION);
+ DALI_TEST_EQUALS(defaultCameraActor.GetAspectRatio(), aspectRatio, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+ application.SendNotification();
+ application.Render();
+
+ defaultCameraActor.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(matrixAfter);
+
+ // Check camera's ProjectionMatrix same as expect camera 1's ProjectionMatrix.
+ DALI_TEST_EQUALS(matrixAfter, matrixExpect1, Dali::Math::MACHINE_EPSILON_10000, TEST_LOCATION);
+
+ tet_printf("Check ProjectionDirection::HORIZONTAL + Change aspect ratio\n");
+
+ defaultCameraActor.SetAspectRatio(anotherAspectRatio);
+ DALI_TEST_EQUALS(defaultCameraActor.GetAspectRatio(), anotherAspectRatio, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+ application.SendNotification();
+ application.Render();
+
+ defaultCameraActor.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(matrixAfter);
+
+ // Check camera's ProjectionMatrix same as expect camera 2's ProjectionMatrix.
+ DALI_TEST_EQUALS(matrixAfter, matrixExpect2, Dali::Math::MACHINE_EPSILON_10000, TEST_LOCATION);
+
+ tet_printf("Check ProjectionDirection::HORIZONTAL + Change aspect ratio + Change fov\n");
+
+ defaultCameraActor.SetFieldOfView(anotherFieldOfView);
+ DALI_TEST_EQUALS(defaultCameraActor.GetFieldOfView(), anotherFieldOfView, TEST_LOCATION);
+ DALI_TEST_EQUALS(defaultCameraActor.GetAspectRatio(), anotherAspectRatio, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+ application.SendNotification();
+ application.Render();
+
+ defaultCameraActor.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(matrixAfter);
+
+ // Check camera's ProjectionMatrix same as expect camera 3's ProjectionMatrix.
+ DALI_TEST_EQUALS(matrixAfter, matrixExpect3, Dali::Math::MACHINE_EPSILON_10000, TEST_LOCATION);
+
+ tet_printf("Check ProjectionDirection::VERTICAL, the original camera\n");
+
+ defaultCameraActor.SetProperty(Dali::DevelCameraActor::Property::PROJECTION_DIRECTION, Dali::DevelCameraActor::ProjectionDirection::VERTICAL);
+ defaultCameraActor.SetFieldOfView(fieldOfView);
+ defaultCameraActor.SetAspectRatio(aspectRatio);
+ DALI_TEST_EQUALS(defaultCameraActor.GetProperty<int>(Dali::DevelCameraActor::Property::PROJECTION_DIRECTION), static_cast<int>(Dali::DevelCameraActor::ProjectionDirection::VERTICAL), TEST_LOCATION);
+ DALI_TEST_EQUALS(defaultCameraActor.GetFieldOfView(), fieldOfView, TEST_LOCATION);
+ DALI_TEST_EQUALS(defaultCameraActor.GetAspectRatio(), aspectRatio, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+ application.SendNotification();
+ application.Render();
+
+ defaultCameraActor.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(matrixAfter);
+
+ // Check vertical camera's ProjectionMatrix same as original ProjectionMatrix.
+ DALI_TEST_EQUALS(matrixAfter, matrixBefore, Dali::Math::MACHINE_EPSILON_10000, TEST_LOCATION);
+
END_TEST;
}
END_TEST;
}
-int UtcDaliCameraActorSetOrthographicProjectionNegative01(void)
-{
- TestApplication application;
- Dali::CameraActor instance;
- try
- {
- float arg1(0.0f);
- float arg2(0.0f);
- float arg3(0.0f);
- float arg4(0.0f);
- float arg5(0.0f);
- float arg6(0.0f);
- instance.SetOrthographicProjection(arg1, arg2, arg3, arg4, arg5, arg6);
- DALI_TEST_CHECK(false); // Should not get here
- }
- catch(...)
- {
- DALI_TEST_CHECK(true); // We expect an assert
- }
- END_TEST;
-}
-
int UtcDaliCameraActorSetOrthographicProjectionNegative02(void)
{
TestApplication application;
// Check that the properties match to that screen size
float value;
actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get(value);
- DALI_TEST_EQUALS(800.0f / 480.0f, value, FLOAT_EPSILON, TEST_LOCATION);
+ DALI_TEST_EQUALS(480.0f / 800.0f, value, FLOAT_EPSILON, TEST_LOCATION);
actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get(value);
DALI_TEST_EQUALS(800.0f, value, FLOAT_EPSILON, TEST_LOCATION);
// Check that the properties match to that screen size
float value;
actor.GetProperty(CameraActor::Property::ASPECT_RATIO).Get(value);
- DALI_TEST_EQUALS(800.0f / 480.0f, value, FLOAT_EPSILON, TEST_LOCATION);
+ DALI_TEST_EQUALS(480.0f / 800.0f, value, FLOAT_EPSILON, TEST_LOCATION);
actor.GetProperty(CameraActor::Property::NEAR_PLANE_DISTANCE).Get(value);
DALI_TEST_EQUALS(800.0f, value, FLOAT_EPSILON, TEST_LOCATION);
END_TEST;
}
+
+int UtcDaliCameraActorSetProperty(void)
+{
+ TestApplication application;
+
+ tet_infoline("Test the CameraActor reset properties when On Scene, if user set property explicitly.");
+
+ CameraActor camera = CameraActor::New();
+ camera.SetFieldOfView(1.0f);
+ application.GetScene().Add(camera);
+ DALI_TEST_EQUALS(1.0f, camera.GetFieldOfView(), TEST_LOCATION);
+ camera.Unparent();
+ camera.Reset();
+
+ camera = CameraActor::New();
+ camera.SetAspectRatio(1.0f);
+ application.GetScene().Add(camera);
+ DALI_TEST_EQUALS(1.0f, camera.GetAspectRatio(), TEST_LOCATION);
+ camera.Unparent();
+ camera.Reset();
+
+ camera = CameraActor::New();
+ camera.SetNearClippingPlane(1.0f);
+ application.GetScene().Add(camera);
+ DALI_TEST_EQUALS(1.0f, camera.GetNearClippingPlane(), TEST_LOCATION);
+ camera.Unparent();
+ camera.Reset();
+
+ camera = CameraActor::New();
+ camera.SetFarClippingPlane(1.0f);
+ application.GetScene().Add(camera);
+ DALI_TEST_EQUALS(1.0f, camera.GetFarClippingPlane(), TEST_LOCATION);
+ camera.Unparent();
+ camera.Reset();
+
+ camera = CameraActor::New();
+ camera.SetProperty(Dali::Actor::Property::POSITION, Vector3(100.0f, 100.0f, 100.0f));
+ application.GetScene().Add(camera);
+ DALI_TEST_EQUALS(Vector3(100.0f, 100.0f, 100.0f), camera.GetProperty<Vector3>(Dali::Actor::Property::POSITION), TEST_LOCATION);
+ camera.Unparent();
+ camera.Reset();
+
+ camera = CameraActor::New();
+ camera.SetProperty(Dali::Actor::Property::POSITION_X, 1.0f);
+ application.GetScene().Add(camera);
+ DALI_TEST_EQUALS(1.0f, camera.GetProperty<float>(Dali::Actor::Property::POSITION_X), TEST_LOCATION);
+ camera.Unparent();
+ camera.Reset();
+
+ camera = CameraActor::New();
+ camera.SetProperty(Dali::Actor::Property::POSITION_Y, 1.0f);
+ application.GetScene().Add(camera);
+ DALI_TEST_EQUALS(1.0f, camera.GetProperty<float>(Dali::Actor::Property::POSITION_Y), TEST_LOCATION);
+ camera.Unparent();
+ camera.Reset();
+
+ camera = CameraActor::New();
+ camera.SetProperty(Dali::Actor::Property::POSITION_Z, 1.0f);
+ application.GetScene().Add(camera);
+ DALI_TEST_EQUALS(1.0f, camera.GetProperty<float>(Dali::Actor::Property::POSITION_Z), TEST_LOCATION);
+ camera.Unparent();
+ camera.Reset();
+
+ camera = CameraActor::New();
+ camera.SetProperty(Dali::Actor::Property::ORIENTATION, Quaternion(Radian(Degree(90.0f)), Vector3::XAXIS));
+ application.GetScene().Add(camera);
+ DALI_TEST_EQUALS(Quaternion(Radian(Degree(90.0f)), Vector3::XAXIS), camera.GetProperty<Quaternion>(Dali::Actor::Property::ORIENTATION), TEST_LOCATION);
+ camera.Unparent();
+ camera.Reset();
+
+ END_TEST;
+}