#define DALI_INTERNAL_CAMERA_ACTOR_H
/*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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.
*/
// INTERNAL INCLUES
-#include <dali/public-api/actors/camera-actor.h>
-#include <dali/internal/event/actors/actor-impl.h>
#include <dali/internal/event/actors/actor-declarations.h>
+#include <dali/internal/event/actors/actor-impl.h>
+#include <dali/public-api/actors/camera-actor.h>
namespace Dali
{
-
namespace Internal
{
-
namespace SceneGraph
{
class Camera;
class CameraActor : public Actor
{
public:
-
/**
* Create an initialised camera actor.
*
*
* @return A smart-pointer to a newly allocated camera actor.
*/
- static CameraActorPtr New( const Size& size );
+ static CameraActorPtr New(const Size& size);
/**
* Sets the reflection plane for the camera
*
* @note plane.xyz are normal vector of the plane.
*/
- void SetReflectByPlane( const Vector4& plane );
+ void SetReflectByPlane(const Vector4& plane);
/**
* @copydoc Dali::CameraActor::SetTargetPosition
*/
- void SetTarget( const Vector3& targetPosition );
+ void SetTarget(const Vector3& targetPosition);
/**
* @copydoc Dali::CameraActor::GetTargetPosition
/**
* @copydoc Dali::CameraActor::SetType
*/
- void SetType( Dali::Camera::Type type );
+ void SetType(Dali::Camera::Type type);
/**
* @copydoc Dali::CameraActor::GetType
/**
* @copydoc Dali::CameraActor::SetProjectionMode
*/
- void SetProjectionMode( Dali::Camera::ProjectionMode mode );
+ void SetProjectionMode(Dali::Camera::ProjectionMode mode);
/**
* @copydoc Dali::CameraActor::GetProjectionMode
/**
* @copydoc Dali::CameraActor::SetFieldOfView
*/
- void SetFieldOfView( float fieldOfView );
+ void SetFieldOfView(float fieldOfView);
/**
* @copydoc Dali::CameraActor::GetFieldOfView
/**
* @copydoc Dali::CameraActor::SetAspectRatio
*/
- void SetAspectRatio( float aspectRatio );
+ void SetAspectRatio(float aspectRatio);
/**
* @copydoc Dali::CameraActor::GetAspectRatio
/**
* @copydoc Dali::CameraActor::SetNearClippingPlane
*/
- void SetNearClippingPlane( float nearClippingPlane );
+ void SetNearClippingPlane(float nearClippingPlane);
/**
* @copydoc Dali::CameraActor::GetNearClippingPlane
/**
* @copydoc Dali::CameraActor::SetFarClippingPlane
*/
- void SetFarClippingPlane( float farClippingPlane );
+ void SetFarClippingPlane(float farClippingPlane);
/**
* @copydoc Dali::CameraActor::GetFarClippingPlane
/**
* @param leftClippingPlane to use
*/
- void SetLeftClippingPlane( float leftClippingPlane );
+ void SetLeftClippingPlane(float leftClippingPlane);
/**
* @param rightClippingPlane to use
*/
- void SetRightClippingPlane( float rightClippingPlane );
+ void SetRightClippingPlane(float rightClippingPlane);
/**
* @param topClippingPlane to use
*/
- void SetTopClippingPlane( float topClippingPlane );
+ void SetTopClippingPlane(float topClippingPlane);
/**
* @param bottomClippingPlane to use
*/
- void SetBottomClippingPlane( float bottomClippingPlane );
+ void SetBottomClippingPlane(float bottomClippingPlane);
/**
* @copydoc Dali::CameraActor::SetInvertYAxis
*/
- void SetInvertYAxis( bool invertYAxis );
+ void SetInvertYAxis(bool invertYAxis);
/**
* @copydoc Dali::CameraActor::GetCurrentInvertYAxis
/**
* @copydoc Dali::CameraActor::SetPerspectiveProjection()
*/
- void SetPerspectiveProjection( const Size& size );
+ void SetPerspectiveProjection(const Size& size);
/**
* @copydoc Dali::CameraActor::SetOrthographicProjection(const Vector2& size);
*/
- void SetOrthographicProjection( const Vector2& size );
+ void SetOrthographicProjection(const Vector2& size);
/**
* @copydoc Dali::CameraActor::SetOrthographicProjection(float left, float right, float top, float bottom, float near, float far);
*/
- void SetOrthographicProjection( float left, float right, float top, float bottom, float near, float far );
+ void SetOrthographicProjection(float left, float right, float top, float bottom, float near, float far);
/**
* Build a picking ray with this camera and given screen coordinates
* @param [out] rayDirection for the picking ray
* @return true if the building was successful, false if its not possible (camera is not valid for hit testing)
*/
- bool BuildPickingRay( const Vector2& screenCoordinates, const Viewport& viewport, Vector4& rayOrigin, Vector4& rayDirection );
+ bool BuildPickingRay(const Vector2& screenCoordinates, const Viewport& viewport, Vector4& rayOrigin, Vector4& rayDirection);
/**
* Retrieve the view-matrix; This will only be valid when the actor is on-stage.
void RotateProjection(int rotationAngle);
public: // properties
-
/**
* copydoc Dali::Internal::Object::SetDefaultProperty()
*/
- void SetDefaultProperty( Property::Index index, const Property::Value& propertyValue ) override;
+ void SetDefaultProperty(Property::Index index, const Property::Value& propertyValue) override;
/**
* copydoc Dali::Internal::Object::GetDefaultProperty()
*/
- Property::Value GetDefaultProperty( Property::Index index ) const override;
+ Property::Value GetDefaultProperty(Property::Index index) const override;
/**
* copydoc Dali::Internal::Object::GetDefaultPropertyCurrentValue()
*/
- Property::Value GetDefaultPropertyCurrentValue( Property::Index index ) const override;
+ Property::Value GetDefaultPropertyCurrentValue(Property::Index index) const override;
/**
* @copydoc Dali::Internal::Object::GetSceneObjectInputProperty()
*/
- const PropertyInputImpl* GetSceneObjectInputProperty( Property::Index index ) const override;
+ const PropertyInputImpl* GetSceneObjectInputProperty(Property::Index index) const override;
private:
-
/**
* Constructor; see also CameraActor::New()
* @param node the scene graph node
*/
- CameraActor( const SceneGraph::Node& node );
+ CameraActor(const SceneGraph::Node& node);
/**
* A reference counted object may only be deleted by calling Unreference()
*/
~CameraActor() override;
-
/**
* @copydoc Dali::Internal::Actor::OnInitialize()
*/
*/
void OnSceneConnectionInternal() override;
-private: // Data
-
+private: // Data
const SceneGraph::Camera* mSceneObject; ///< Not owned
- Vector3 mTarget;
- Vector2 mCanvasSize;
- Dali::Camera::Type mType;
+ Vector3 mTarget;
+ Vector2 mCanvasSize;
+ Dali::Camera::Type mType;
Dali::Camera::ProjectionMode mProjectionMode;
- float mFieldOfView;
- float mAspectRatio;
- float mNearClippingPlane;
- float mFarClippingPlane;
- float mLeftClippingPlane;
- float mRightClippingPlane;
- float mTopClippingPlane;
- float mBottomClippingPlane;
- bool mInvertYAxis;
-
+ float mFieldOfView;
+ float mAspectRatio;
+ float mNearClippingPlane;
+ float mFarClippingPlane;
+ float mLeftClippingPlane;
+ float mRightClippingPlane;
+ float mTopClippingPlane;
+ float mBottomClippingPlane;
+ bool mInvertYAxis;
};
} // namespace Internal