*/
void SetAspectRatio( float aspectRatio );
- /**
- * @copydoc Dali::Internal::CameraActor::SetStereoBias
- */
- void SetStereoBias(const Vector2& stereoBias);
-
/**
* @copydoc Dali::Internal::CameraActor::SetLeftClippingPlane
*/
void SetTargetPosition( const Vector3& targetPosition );
/**
+ * Sets the reflection plane
+ * @param[in] plane reflection plane
+ */
+ void SetReflectByPlane( const Vector4& plane );
+
+ /**
+ * Tests whether reflection is used
+ * @return True if used, False otherwise
+ */
+ bool GetReflectionUsed() const
+ {
+ return mUseReflection;
+ }
+
+ /**
* Retrieve the view-matrix; this is double buffered for input handling.
* @param[in] bufferIndex The buffer to read from.
* @return The view-matrix.
*/
void UpdateFrustum( BufferIndex updateBufferIndex, bool normalize = true );
+ /**
+ * Adjust near plane for reflection
+ * @param perspective Perspective matrix
+ * @param clipPlane Clipping plane
+ */
+ void AdjustNearPlaneForPerspective( Matrix& perspective, const Vector4& clipPlane );
+
uint32_t mUpdateViewFlag; ///< This is non-zero if the view matrix requires an update
uint32_t mUpdateProjectionFlag; ///< This is non-zero if the projection matrix requires an update
const Node* mNode; ///< The node this scene graph camera belongs to
float mBottomClippingPlane;
float mNearClippingPlane;
float mFarClippingPlane;
- Vector2 mStereoBias;
Vector3 mTargetPosition;
+ Dali::Matrix mReflectionMtx;
+ Dali::Vector4 mReflectionPlane;
+ Dali::Vector4 mReflectionEye;
+ bool mUseReflection{ false };
+ bool mUseReflectionClip{ false };
+
InheritedMatrix mViewMatrix; ///< The viewMatrix; this is double buffered for input handling.
InheritedMatrix mProjectionMatrix; ///< The projectionMatrix; this is double buffered for input handling.
new (slot) LocalType( &camera, &Camera::SetAspectRatio, parameter );
}
-inline void SetStereoBiasMessage( EventThreadServices& eventThreadServices, const Camera& camera, const Vector2& parameter )
-{
- typedef MessageValue1< Camera, Vector2 > LocalType;
-
- // Reserve some memory inside the message queue
- uint32_t* slot = eventThreadServices.ReserveMessageSlot( sizeof( LocalType ) );
-
- // Construct message in the message queue memory; note that delete should not be called on the return value
- new (slot) LocalType( &camera, &Camera::SetStereoBias, parameter );
-}
-
inline void SetLeftClippingPlaneMessage( EventThreadServices& eventThreadServices, const Camera& camera, float parameter )
{
typedef MessageValue1< Camera, float > LocalType;