+ * The book page class
+ */
+ struct Page
+ {
+ /**
+ * Constructor
+ */
+ Page();
+ /**
+ * Destructor
+ */
+ ~Page(){};
+
+ /**
+ * Set the page texture content
+ * @param[in] texture The content of the page.
+ */
+ void SetTexture( Texture texture );
+
+ /**
+ * Apply an effect onto the page actor.
+ * @param[in] newShader The shader for rendering effect.
+ */
+ void UseEffect(Shader newShader);
+
+ /**
+ * Apply an effect onto the page actor.
+ * @param[in] newShader The shader for rendering effect.
+ * @param[in] geometry The geometry for rendering effect.
+ */
+ void UseEffect(Shader newShader, Geometry geometry);
+
+ /**
+ * Change the page turning direction.
+ */
+ void ChangeTurnDirection();
+
+ /**
+ * Set the pan displacement property
+ * @param[in] value The property value
+ */
+ void SetPanDisplacement(float value);
+
+ /**
+ * Set the pan center property
+ * @param[in] value The property value
+ */
+ void SetPanCenter( const Vector2& value );
+
+ /**
+ * Set the original center property to be used by shader
+ * @param[in] value The property value
+ */
+ void SetOriginalCenter( const Vector2& value );
+
+ /**
+ * Set the current center property to be used by shader
+ * @param[in] value The property value
+ */
+ void SetCurrentCenter( const Vector2& value );
+
+ Actor actor; ///< The page actor
+ Shader shader; ///< The shader used by the actor
+ TextureSet textureSet; ///< The set of textures used by the actor
+ Renderer renderer; ///< The renderer of the actor
+ bool isTurnBack; ///< The turning direction
+ Property::Index propertyPanDisplacement; ///< The horizontal displacement of the pan
+ Property::Index propertyPanCenter; ///< The current pan position
+ Property::Index propertyOriginalCenter; ///< The original center to be used by the shader
+ Property::Index propertyCurrentCenter; ///< The current center to be used by the shader
+ Property::Index propertyTurnDirection; ///< The turning direction property
+ };
+
+
+protected:
+
+ /**