Revert "[Tizen] Add screen and client rotation itself function"
[platform/core/uifw/dali-core.git] / dali / internal / event / actors / camera-actor-impl.h
index 3cd8d59..1694ba3 100644 (file)
@@ -1,8 +1,8 @@
-#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) 2014 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.
  */
 
 // INTERNAL INCLUES
-#include <dali/public-api/object/ref-object.h>
 #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/actor-attachments/actor-attachment-declarations.h>
 
 namespace Dali
 {
@@ -31,8 +29,13 @@ namespace Dali
 namespace Internal
 {
 
+namespace SceneGraph
+{
+class Camera;
+}
+
 /**
- * An actor with a conveniently pre-attached CameraAttachment.
+ * An actor with Camera.
  */
 class CameraActor : public Actor
 {
@@ -50,18 +53,14 @@ public:
   static CameraActorPtr New( const Size& size );
 
   /**
-   * @copydoc Dali::Actor::OnInitialize
+   * @copydoc Dali::CameraActor::SetTargetPosition
    */
-  void OnInitialize();
+  void SetTarget( const Vector3& targetPosition );
 
   /**
-   * Retrieve the camera attachment.
-   * @return The attachment.
+   * @copydoc Dali::CameraActor::GetTargetPosition
    */
-  CameraAttachment& GetCameraAttachment()
-  {
-    return *mCameraAttachment;
-  }
+  Vector3 GetTarget() const;
 
   /**
    * @copydoc Dali::CameraActor::SetType
@@ -91,7 +90,7 @@ public:
   /**
    * @copydoc Dali::CameraActor::GetFieldOfView
    */
-  float GetFieldOfView( ) const;
+  float GetFieldOfView() const;
 
   /**
    * @copydoc Dali::CameraActor::SetAspectRatio
@@ -101,7 +100,7 @@ public:
   /**
    * @copydoc Dali::CameraActor::GetAspectRatio
    */
-  float GetAspectRatio( ) const;
+  float GetAspectRatio() const;
 
   /**
    * @copydoc Dali::CameraActor::SetNearClippingPlane
@@ -111,7 +110,7 @@ public:
   /**
    * @copydoc Dali::CameraActor::GetNearClippingPlane
    */
-  float GetNearClippingPlane( ) const;
+  float GetNearClippingPlane() const;
 
   /**
    * @copydoc Dali::CameraActor::SetFarClippingPlane
@@ -121,22 +120,32 @@ public:
   /**
    * @copydoc Dali::CameraActor::GetFarClippingPlane
    */
-  float GetFarClippingPlane( ) const;
+  float GetFarClippingPlane() const;
 
   /**
-   * @copydoc Dali::CameraActor::SetTargetPosition
+   * @param leftClippingPlane to use
    */
-  void SetTargetPosition( const Vector3& targetPosition );
+  void SetLeftClippingPlane( float leftClippingPlane );
 
   /**
-   * @copydoc Dali::CameraActor::GetTargetPosition
+   * @param rightClippingPlane to use
+   */
+  void SetRightClippingPlane( float rightClippingPlane );
+
+  /**
+   * @param topClippingPlane to use
+   */
+  void SetTopClippingPlane( float topClippingPlane );
+
+  /**
+   * @param bottomClippingPlane to use
    */
-  Vector3 GetTargetPosition() const;
+  void SetBottomClippingPlane( float bottomClippingPlane );
 
   /**
    * @copydoc Dali::CameraActor::SetInvertYAxis
    */
-  void SetInvertYAxis(bool invertYAxis);
+  void SetInvertYAxis( bool invertYAxis );
 
   /**
    * @copydoc Dali::CameraActor::GetCurrentInvertYAxis
@@ -145,9 +154,8 @@ public:
 
   /**
    * @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);
@@ -181,83 +189,70 @@ public:
    */
   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()
-   */
-  virtual bool IsDefaultPropertyAConstraintInput( Property::Index index ) const;
-
   /**
-   * copydoc Dali::Internal::Object
+   * Return the scene graph camera (for RenderTask)
+   * @return The scene graph camera.
    */
-  virtual Property::Type GetDefaultPropertyType( Property::Index index ) const;
+  const SceneGraph::Camera* GetCamera() const;
 
-  /**
-   * 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
+   * copydoc Dali::Internal::Object::GetDefaultPropertyCurrentValue()
    */
-  virtual bool IsDefaultPropertyWritable( Property::Index index ) const ;
-
-  /**
-   * @copydoc Dali::Internal::Object::GetSceneObjectAnimatableProperty()
-   */
-  virtual const SceneGraph::PropertyBase* GetSceneObjectAnimatableProperty( Property::Index index ) const;
+  virtual Property::Value GetDefaultPropertyCurrentValue( Property::Index index ) const;
 
   /**
    * @copydoc Dali::Internal::Object::GetSceneObjectInputProperty()
    */
   virtual const PropertyInputImpl* GetSceneObjectInputProperty( Property::Index index ) const;
 
-protected:
+private:
 
   /**
-   * Protected constructor; see also CameraActor::New()
+   * 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();
 
-private:
 
-  CameraAttachmentPtr mCameraAttachment;
+  /**
+   * @copydoc Dali::Internal::Actor::OnInitialize()
+   */
+  virtual void OnInitialize();
+
+
+private: // Data
+
+  const SceneGraph::Camera* mSceneObject; ///< Not owned
+
+  Vector3            mTarget;
+  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;
 
 };
 
@@ -285,4 +280,4 @@ inline const Internal::CameraActor& GetImplementation(const Dali::CameraActor& c
 
 } // namespace Dali
 
-#endif // __DALI_INTERNAL_CAMERA_ACTOR_H__
+#endif // DALI_INTERNAL_CAMERA_ACTOR_H