-#ifndef __DALI_INTERNAL_CAMERA_ACTOR_H__
-#define __DALI_INTERNAL_CAMERA_ACTOR_H__
+#ifndef DALI_INTERNAL_CAMERA_ACTOR_H
+#define DALI_INTERNAL_CAMERA_ACTOR_H
/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 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.
namespace SceneGraph
{
-class CameraAttachment;
+class Camera;
}
/**
- * An actor with CameraAttachment.
+ * An actor with Camera.
*/
class CameraActor : public Actor
{
static CameraActorPtr New( const Size& size );
/**
+ * Sets the reflection plane for the camera
+ *
+ * @param[in] plane Plane parameters
+ *
+ * @note plane.xyz are normal vector of the plane.
+ */
+ void SetReflectByPlane( const Vector4& plane );
+
+ /**
* @copydoc Dali::CameraActor::SetTargetPosition
*/
void SetTarget( const Vector3& targetPosition );
/**
* @copydoc Dali::CameraActor::SetPerspectiveProjection()
- * @param[in] stereoBias The frustum horizontal and vertical offset for stereoscopic cameras
*/
- void SetPerspectiveProjection( const Size& size, const Vector2& stereoBias = Vector2::ZERO );
+ void SetPerspectiveProjection( const Size& size );
/**
* @copydoc Dali::CameraActor::SetOrthographicProjection(const Vector2& size);
*/
const Matrix& GetProjectionMatrix() const;
-public: // properties
-
- /**
- * copydoc Dali::Internal::Object
- */
- virtual unsigned int GetDefaultPropertyCount() const;
-
- /**
- * @copydoc Dali::Internal::Object::GetDefaultPropertyIndices()
- */
- virtual void GetDefaultPropertyIndices( Property::IndexContainer& indices ) const;
-
- /**
- * copydoc Dali::Internal::Object
- */
- virtual bool IsDefaultPropertyAnimatable( Property::Index index ) const;
-
/**
- * @copydoc Dali::Internal::Object::IsDefaultPropertyAConstraintInput()
+ * Return the scene graph camera (for RenderTask)
+ * @return The scene graph camera.
*/
- virtual bool IsDefaultPropertyAConstraintInput( Property::Index index ) const;
+ const SceneGraph::Camera* GetCamera() const;
/**
- * copydoc Dali::Internal::Object
+ * Rotate the projection.
+ * It is used in case that the target buffer direction is different from the window direction.
+ * @param [in] rotationAngle The rotation angle
*/
- virtual Property::Type GetDefaultPropertyType( Property::Index index ) const;
+ void RotateProjection( int rotationAngle );
- /**
- * copydoc Dali::Internal::Object
- */
- virtual const char* GetDefaultPropertyName( Property::Index index ) const;
-
- /**
- * @copydoc Dali::Internal::Object::GetDefaultPropertyIndex()
- */
- virtual Property::Index GetDefaultPropertyIndex(const std::string& name) const;
+public: // properties
/**
- * copydoc Dali::Internal::Object
+ * copydoc Dali::Internal::Object::SetDefaultProperty()
*/
virtual void SetDefaultProperty( Property::Index index, const Property::Value& propertyValue );
/**
- * copydoc Dali::Internal::Object
+ * copydoc Dali::Internal::Object::GetDefaultProperty()
*/
virtual Property::Value GetDefaultProperty( Property::Index index ) const;
/**
- * copydoc Dali::Internal::Object
- */
- virtual bool IsDefaultPropertyWritable( Property::Index index ) const ;
-
- /**
- * @copydoc Dali::Internal::Object::GetSceneObjectAnimatableProperty()
+ * copydoc Dali::Internal::Object::GetDefaultPropertyCurrentValue()
*/
- virtual const SceneGraph::PropertyBase* GetSceneObjectAnimatableProperty( Property::Index index ) const;
+ virtual Property::Value GetDefaultPropertyCurrentValue( Property::Index index ) const;
/**
* @copydoc Dali::Internal::Object::GetSceneObjectInputProperty()
/**
* Constructor; see also CameraActor::New()
+ * @param node the scene graph node
*/
- CameraActor();
+ CameraActor( const SceneGraph::Node& node );
/**
* A reference counted object may only be deleted by calling Unreference()
*/
virtual ~CameraActor();
+
+ /**
+ * @copydoc Dali::Internal::Actor::OnInitialize()
+ */
+ void OnInitialize() override;
+
+ /**
+ * @copydoc Dali::Internal::Actor::OnStageConnectionInternal()
+ */
+ void OnStageConnectionInternal() override;
+
private: // Data
- const SceneGraph::CameraAttachment* mSceneObject; ///< Not owned
+ const SceneGraph::Camera* mSceneObject; ///< Not owned
Vector3 mTarget;
+ Vector2 mCanvasSize;
Dali::Camera::Type mType;
Dali::Camera::ProjectionMode mProjectionMode;
float mFieldOfView;
} // namespace Dali
-#endif // __DALI_INTERNAL_CAMERA_ACTOR_H__
+#endif // DALI_INTERNAL_CAMERA_ACTOR_H