Merge remote-tracking branch 'origin/tizen' into devel/new_mesh 56/39556/1
authorFrancisco Santos <f1.santos@samsung.com>
Mon, 18 May 2015 16:19:43 +0000 (17:19 +0100)
committerFrancisco Santos <f1.santos@samsung.com>
Mon, 18 May 2015 16:19:43 +0000 (17:19 +0100)
Conflicts:
automated-tests/src/dali-internal/utc-Dali-Internal-Mesh.cpp
automated-tests/src/dali/utc-Dali-AnimatableMesh.cpp
automated-tests/src/dali/utc-Dali-MeshActor.cpp
automated-tests/src/dali/utc-Dali-MeshData.cpp
dali/devel-api/actors/mesh-actor.cpp
dali/devel-api/actors/mesh-actor.h
dali/devel-api/dynamics/dynamics-shape.h
dali/devel-api/geometry/animatable-mesh.cpp
dali/devel-api/geometry/animatable-mesh.h
dali/devel-api/geometry/animatable-vertex.cpp
dali/devel-api/geometry/animatable-vertex.h
dali/devel-api/geometry/cloth.cpp
dali/devel-api/geometry/cloth.h
dali/devel-api/geometry/mesh-data.cpp
dali/devel-api/geometry/mesh-data.h
dali/devel-api/geometry/mesh-factory.cpp
dali/devel-api/geometry/mesh-factory.h
dali/devel-api/geometry/mesh.cpp
dali/devel-api/geometry/mesh.h
dali/devel-api/modeling/bone.cpp
dali/devel-api/modeling/bone.h
dali/devel-api/modeling/material.cpp
dali/devel-api/modeling/material.h
dali/integration-api/dynamics/dynamics-body-intf.h
dali/integration-api/dynamics/dynamics-shape-intf.h
dali/internal/event/actor-attachments/mesh-attachment-impl.h
dali/internal/event/actors/mesh-actor-impl.h
dali/internal/event/modeling/animatable-mesh-impl.h
dali/internal/event/modeling/cloth-impl.h
dali/internal/event/modeling/material-impl.h
dali/internal/event/modeling/mesh-impl.cpp
dali/internal/event/modeling/mesh-impl.h
dali/internal/update/dynamics/scene-graph-dynamics-mesh-shape.cpp
dali/internal/update/modeling/internal-mesh-data.h
dali/internal/update/node-attachments/scene-graph-mesh-attachment.h
dali/internal/update/resources/resource-manager.cpp
dali/public-api/actors/renderable-actor.cpp
dali/public-api/actors/renderable-actor.h
dali/public-api/dali-core.h
dali/public-api/file.list

Change-Id: I43f0cad38d302fde14bde4288825d6f15443d43c

37 files changed:
1  2 
automated-tests/src/dali/CMakeLists.txt
automated-tests/src/dali/dali-test-suite-utils/test-dynamics.cpp
automated-tests/src/dali/dali-test-suite-utils/test-dynamics.h
automated-tests/src/dali/utc-Dali-DynamicsShape.cpp
build/tizen/dali-core/Makefile.am
dali/devel-api/dynamics/dynamics-shape.cpp
dali/devel-api/file.list
dali/devel-api/geometry/cloth.cpp
dali/devel-api/geometry/cloth.h
dali/integration-api/dynamics/dynamics-body-intf.h
dali/integration-api/dynamics/dynamics-shape-intf.h
dali/integration-api/resource-types.h
dali/internal/event/actors/actor-impl.cpp
dali/internal/event/actors/actor-impl.h
dali/internal/event/actors/image-actor-impl.cpp
dali/internal/event/common/object-impl.cpp
dali/internal/event/common/object-impl.h
dali/internal/event/common/property-metadata.h
dali/internal/event/common/type-info-impl.cpp
dali/internal/event/dynamics/dynamics-body-config-impl.cpp
dali/internal/event/effects/shader-effect-impl.cpp
dali/internal/event/modeling/cloth-impl.cpp
dali/internal/event/modeling/cloth-impl.h
dali/internal/event/resources/resource-client.cpp
dali/internal/event/resources/resource-client.h
dali/internal/file.list
dali/internal/render/shaders/scene-graph-shader.cpp
dali/internal/update/common/uniform-map.h
dali/internal/update/manager/update-manager.cpp
dali/internal/update/nodes/node.h
dali/internal/update/resources/resource-manager.cpp
dali/internal/update/resources/resource-manager.h
dali/public-api/actors/actor.h
dali/public-api/actors/image-actor.cpp
dali/public-api/actors/image-actor.h
dali/public-api/dali-core.h
dali/public-api/file.list

@@@ -55,8 -58,8 +57,9 @@@ SET(TC_SOURCE
          utc-Dali-PinchGesture.cpp
          utc-Dali-PinchGestureDetector.cpp
          utc-Dali-Pixel.cpp
 +        utc-Dali-PropertyBuffer.cpp
          utc-Dali-PropertyMap.cpp
+         utc-Dali-PropertyArray.cpp
          utc-Dali-PropertyNotification.cpp
          utc-Dali-PropertyValue.cpp
          utc-Dali-Quaternion.cpp
@@@ -98,6 -100,11 +98,11 @@@ void TestDynamicsShape::Initialize( in
    mTrace.PushCall( "DynamicsShape::Initialize", "" );
  }
  
 -void TestDynamicsShape::Initialize( int type, const MeshData::VertexContainer& vertices, const MeshData::FaceIndices& faceIndices )
++void TestDynamicsShape::Initialize( int type, Geometry geometry )
+ {
 -  mTrace.PushCall( "DynamicsShape::Initialize", "mesh" );
++  mTrace.PushCall( "DynamicsShape::Initialize", "" );
+ }
  TestDynamicsBody::TestDynamicsBody( TraceCallStack& trace )
  : mSettings( NULL ),
    mConserveVolume( false ),
@@@ -65,6 -65,13 +65,7 @@@ public
  
  public:
    void Initialize( int type, const Vector3& dimensions );
 -
 -  void Initialize( int type, const MeshData::VertexContainer& vertices, const MeshData::FaceIndices& faceIndices );
 -
 -public:
 -
 -  MeshData::VertexContainer* mVertices;
 -  MeshData::FaceIndices*     mFaces;
++  void Initialize( int type, Geometry geometry );
  
  private:
  
@@@ -202,6 -209,10 +203,10 @@@ public: // From Dali::Integration::Dyna
      mTrace.PushCall( "DynamicsBody::GetTransform", "" );
    }
  
 -  inline void GetSoftVertices( MeshData::VertexContainer& vertices ) const
++  inline void GetSoftVertices( Geometry geometry ) const
+   {
+     mTrace.PushCall( "DynamicsBody::GetSoftVertices", "" );
+   }
  
  private:
    Dali::Integration::DynamicsBodySettings* mSettings;
@@@ -85,12 -114,9 +114,10 @@@ publicapidir = $(devincludepath)/dali/p
  publicapiactorsdir = $(publicapidir)/actors
  publicapianimationdir = $(publicapidir)/animation
  publicapicommondir = $(publicapidir)/common
- publicapidynamicsdir = $(publicapidir)/dynamics
  publicapieventsdir = $(publicapidir)/events
 +publicapigeometrydir = $(publicapidir)/geometry
  publicapiimagesdir = $(publicapidir)/images
  publicapimathdir = $(publicapidir)/math
- publicapimodelingdir = $(publicapidir)/modeling
  publicapiobjectdir = $(publicapidir)/object
  publicapirendertasksdir = $(publicapidir)/render-tasks
  publicapishadereffectsdir = $(publicapidir)/shader-effects
@@@ -103,15 -128,11 +129,12 @@@ publicapi_HEADERS = $(public_api_header
  publicapiactors_HEADERS = $(public_api_core_actors_header_files)
  publicapianimation_HEADERS = $(public_api_core_animation_header_files)
  publicapicommon_HEADERS = $(public_api_core_common_header_files)
- publicapidynamics_HEADERS = $(public_api_core_dynamics_header_files)
  publicapievents_HEADERS = $(public_api_core_events_header_files)
 +publicapigeometry_HEADERS = $(public_api_core_geometry_header_files)
  publicapiimages_HEADERS = $(public_api_core_images_header_files)
  publicapimath_HEADERS = $(public_api_core_math_header_files)
- publicapimodeling_HEADERS = $(public_api_core_modeling_header_files)
  publicapirendertasks_HEADERS = $(public_api_core_render_tasks_header_files)
  publicapiobject_HEADERS = $(public_api_core_object_header_files)
- publicapiscripting_HEADERS = $(public_api_core_scripting_header_files)
  publicapisizenegotiation_HEADERS = $(public_api_core_size_negotiation_header_files)
  publicapishadereffects_HEADERS = $(public_api_core_shader_effects_header_files)
  publicapisignals_HEADERS = $(public_api_core_signals_header_files)
   */
  
  // CLASS HEADER
- #include <dali/public-api/dynamics/dynamics-shape.h>
+ #include <dali/devel-api/dynamics/dynamics-shape.h>
  
  // INTERNAL HEADERS
 -#include <dali/internal/event/modeling/mesh-impl.h>
  
  #ifdef DYNAMICS_SUPPORT
  #include <dali/internal/event/dynamics/dynamics-shape-impl.h>
index 0000000,ee2a960..3023e00
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,84 +1,64 @@@
 -  $(devel_api_src_dir)/actors/mesh-actor.cpp \
+ # Add devel source files here for DALi internal developer files used by Adaptor & Toolkit
+ devel_api_src_files = \
 -  $(devel_api_src_dir)/geometry/animatable-mesh.cpp \
 -  $(devel_api_src_dir)/geometry/animatable-vertex.cpp \
+   $(devel_api_src_dir)/animation/path-constrainer.cpp \
+   $(devel_api_src_dir)/common/hash.cpp \
+   $(devel_api_src_dir)/common/mutex.cpp \
+   $(devel_api_src_dir)/dynamics/dynamics-body.cpp \
+   $(devel_api_src_dir)/dynamics/dynamics-body-config.cpp \
+   $(devel_api_src_dir)/dynamics/dynamics-collision.cpp \
+   $(devel_api_src_dir)/dynamics/dynamics-joint.cpp \
+   $(devel_api_src_dir)/dynamics/dynamics-shape.cpp \
+   $(devel_api_src_dir)/dynamics/dynamics-world.cpp \
+   $(devel_api_src_dir)/dynamics/dynamics-world-config.cpp \
+   $(devel_api_src_dir)/events/hit-test-algorithm.cpp \
 -  $(devel_api_src_dir)/geometry/mesh-data.cpp \
 -  $(devel_api_src_dir)/geometry/mesh-factory.cpp \
 -  $(devel_api_src_dir)/geometry/mesh.cpp \
+   $(devel_api_src_dir)/geometry/cloth.cpp \
 -  $(devel_api_src_dir)/modeling/bone.cpp \
 -  $(devel_api_src_dir)/modeling/material.cpp \
+   $(devel_api_src_dir)/images/atlas.cpp \
+   $(devel_api_src_dir)/images/distance-field.cpp \
 -devel_api_core_actors_header_files =  \
 -  $(devel_api_src_dir)/actors/mesh-actor.h
 -
+   $(devel_api_src_dir)/scripting/scripting.cpp
+ # Add devel header files here DALi internal developer files used by Adaptor & Toolkit
 -  $(devel_api_src_dir)/geometry/animatable-mesh.h \
 -  $(devel_api_src_dir)/geometry/animatable-vertex.h \
 -  $(devel_api_src_dir)/geometry/cloth.h \
 -  $(devel_api_src_dir)/geometry/mesh.h \
 -  $(devel_api_src_dir)/geometry/mesh-data.h \
 -  $(devel_api_src_dir)/geometry/mesh-factory.h
+ devel_api_core_animation_header_files = \
+   $(devel_api_src_dir)/animation/path-constrainer.h
+ devel_api_core_common_header_files = \
+   $(devel_api_src_dir)/common/hash.h \
+   $(devel_api_src_dir)/common/map-wrapper.h \
+   $(devel_api_src_dir)/common/mutex.h \
+   $(devel_api_src_dir)/common/ref-counted-dali-vector.h \
+   $(devel_api_src_dir)/common/scoped-pointer.h \
+   $(devel_api_src_dir)/common/set-wrapper.h
+ devel_api_core_dynamics_header_files = \
+   $(devel_api_src_dir)/dynamics/dynamics.h \
+   $(devel_api_src_dir)/dynamics/dynamics-body.h \
+   $(devel_api_src_dir)/dynamics/dynamics-body-config.h \
+   $(devel_api_src_dir)/dynamics/dynamics-collision.h \
+   $(devel_api_src_dir)/dynamics/dynamics-joint.h \
+   $(devel_api_src_dir)/dynamics/dynamics-shape.h \
+   $(devel_api_src_dir)/dynamics/dynamics-world.h \
+   $(devel_api_src_dir)/dynamics/dynamics-world-config.h
+ devel_api_core_events_header_files = \
+   $(devel_api_src_dir)/events/hit-test-algorithm.h
+ devel_api_core_geometry_header_files = \
 -devel_api_core_modeling_header_files =  \
 -  $(devel_api_src_dir)/modeling/bone.h \
 -  $(devel_api_src_dir)/modeling/material.h
 -
++  $(devel_api_src_dir)/geometry/cloth.h
+ devel_api_core_images_header_files = \
+   $(devel_api_src_dir)/images/atlas.h \
+   $(devel_api_src_dir)/images/distance-field.h \
+   $(devel_api_src_dir)/images/image-operations.h \
+   $(devel_api_src_dir)/images/native-image-interface.h
+ devel_api_core_object_header_files = \
+   $(devel_api_src_dir)/object/type-registry-helper.h
+ devel_api_core_scripting_header_files = \
+   $(devel_api_src_dir)/scripting/scripting.h
index 0000000,bd44087..5f636d4
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,70 +1,68 @@@
 -#include <dali/devel-api/geometry/mesh-factory.h>
+ /*
+  * Copyright (c) 2015 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.
+  * You may obtain a copy of the License at
+  *
+  * http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  *
+  */
+ // CLASS HEADER
+ #include <dali/devel-api/geometry/cloth.h>
+ // INTERNAL INCLUDES
 -: Mesh(handle)
+ #include <dali/internal/event/modeling/cloth-impl.h>
+ namespace Dali
+ {
+ namespace
+ {
+ } // namespace
+ Cloth::Cloth()
+ {
+ }
+ Cloth::~Cloth()
+ {
+ }
+ Cloth::Cloth(const Cloth& handle)
 -  MeshData meshData( MeshFactory::NewPlane(width, height, xSteps, ySteps, textureCoordinates) );
+ {
+ }
+ Cloth& Cloth::operator=(const Cloth& rhs)
+ {
+   BaseHandle::operator=(rhs);
+   return *this;
+ }
+ Cloth Cloth::New( const float width, const float height, const int xSteps, const int ySteps, const Rect<float>& textureCoordinates )
+ {
 -  Internal::ClothIPtr clothPtr = Internal::Cloth::New( meshData );
++  Dali::Geometry geometry;
++  //TODO: MESH_REWORK: create the geometry
 -: Mesh(internal)
++  Internal::ClothIPtr clothPtr = Internal::Cloth::New( GetImplementation(geometry) );
+   return Cloth( clothPtr.Get() );
+ }
+ Cloth Cloth::DownCast( BaseHandle handle )
+ {
+   return Cloth( dynamic_cast<Dali::Internal::Cloth*>(handle.GetObjectPtr()) );
+ }
+ Cloth::Cloth(Internal::Cloth* internal)
+ {
+ }
+ } // namespace Dali
index 0000000,846451a..05558c2
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,113 +1,113 @@@
 -#include <dali/devel-api/geometry/mesh.h>
+ #ifndef __DALI_CLOTH_H__
+ #define __DALI_CLOTH_H__
+ /*
+  * Copyright (c) 2015 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.
+  * You may obtain a copy of the License at
+  *
+  * http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  *
+  */
+ // INTERNAL INCLUDES
+ #include <dali/public-api/math/rect.h>
+ #include <dali/public-api/math/vector4.h>
+ #include <dali/public-api/object/base-handle.h>
 -class DALI_IMPORT_API Cloth : public Mesh
++#include <dali/public-api/object/property-buffer.h>
+ namespace Dali
+ {
+ namespace Internal DALI_INTERNAL
+ {
+ class Cloth;
+ }
+ /**
+  * @brief A Cloth is a specialized mesh that can be used and modified
+  * by the Dynamics engine.
+  */
++class DALI_IMPORT_API Cloth : public BaseHandle
+ {
+ public:
+   /**
+    * @brief Create an initialized plane aligned on the XY axis.
+    *
+    * @param[in] width   The width of the plane
+    * @param[in] height  The height of the plane
+    * @param[in] xSteps  The number of vertices along the X axis
+    * @param[in] ySteps  The number of vertices along the Y axis
+    * @param[in] textureCoordinates  UV coordinates.
+    * @return A handle to a newly allocated Dali resource.
+    */
+   static Cloth New(const float width,
+                    const float height,
+                    const int xSteps,
+                    const int ySteps,
+                    const Rect<float>& textureCoordinates = Rect<float>(0.0f, 0.0f, 1.0f, 1.0f));
+   /**
+    * @brief Create an uninitialized Cloth; this can be initialized with Cloth::New().
+    *
+    * Calling member functions with an uninitialized Dali::Object is not allowed.
+    */
+   Cloth();
+   /**
+    * @brief Destructor
+    *
+    * This is non-virtual since derived Handle types must not contain data or virtual methods.
+    */
+   ~Cloth();
+   /**
+    * @brief This copy constructor is required for (smart) pointer semantics.
+    *
+    * @param [in] handle A reference to the copied handle
+    */
+   Cloth(const Cloth& handle);
+   /**
+    * @brief This assignment operator is required for (smart) pointer semantics.
+    *
+    * @param [in] rhs  A reference to the copied handle
+    * @return A reference to this
+    */
+   Cloth& operator=(const Cloth& rhs);
+   /**
+    * @brief Downcast an Object handle to a Cloth handle.
+    *
+    * If handle points to a Cloth object the downcast produces valid
+    * handle. If not the returned handle is left uninitialized.
+    *
+    * @param[in] handle to an object
+    * @return handle to a Cloth object or an uninitialized handle
+    */
+   static Cloth DownCast( BaseHandle handle );
+ public: // Not intended for application developers
+   /**
+    * @brief This constructor is used by Dali New() methods.
+    *
+    * @param [in] cloth A pointer to a newly allocated Dali resource
+    */
+   explicit DALI_INTERNAL Cloth(Internal::Cloth* cloth);
+ };
+ } // namespace Dali
+ #endif // __DALI_CLOTH_H__
@@@ -20,6 -20,7 +20,7 @@@
  
  // INTERNAL INCLUDES
  #include <dali/public-api/common/dali-common.h>
 -#include <dali/devel-api/geometry/mesh-data.h>
++#include <dali/public-api/geometry/geometry.h>
  
  namespace Dali
  {
@@@ -115,6 -116,12 +116,12 @@@ public
    virtual void SetTransform( const Vector3& position, const Quaternion& rotation ) = 0;
    virtual void GetTransform( Vector3& position, Quaternion& rotation ) = 0;
  
 -  virtual void GetSoftVertices( MeshData::VertexContainer& meshData ) const = 0;
+   /**
+    * Get the vertices and normal from a soft body
+    * @param[in,out] meshData A MeshData object with preallocated space for all the vertices.
+    */
++  virtual void GetSoftVertices( Geometry geometry ) const = 0;
  }; // class DynamicsBody
  
   } //namespace Integration
  
  // INTERNAL INCLUDES
  #include <dali/public-api/common/dali-common.h>
 -#include <dali/devel-api/geometry/mesh-data.h>
++#include <dali/public-api/object/property-buffer.h>
  
  namespace Dali
  {
  
  struct Vector3;
  
++
  namespace Integration
  {
  
@@@ -45,6 -46,10 +47,10 @@@ public
     */
    virtual void Initialize( int type, const Vector3& dimensions ) = 0;
  
 -  virtual void Initialize( int type, const MeshData::VertexContainer& vertices, const MeshData::FaceIndices& faceIndices ) = 0;
+   /**
+    * Initialize the shape
+    */
++  virtual void Initialize( int type, Geometry geometry ) = 0;
  
  }; // class DynamicsShape
  
Simple merge
@@@ -23,9 -23,8 +23,9 @@@
  
  // INTERNAL INCLUDES
  #include <dali/public-api/object/type-registry.h>
- #include <dali/public-api/scripting/scripting.h>
+ #include <dali/devel-api/scripting/scripting.h>
  #include <dali/internal/event/common/property-helper.h>
 +#include <dali/internal/event/effects/shader-effect-impl.h>
  #include <dali/internal/event/images/image-connector.h>
  #include <dali/internal/event/images/nine-patch-image-impl.h>
  
index 0000000,303d161..7a3584d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,48 +1,46 @@@
 - * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ /*
 -#include <dali/internal/event/modeling/mesh-impl.h>
++ * Copyright (c) 2015 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.
+  * You may obtain a copy of the License at
+  *
+  * http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  *
+  */
+ // CLASS HEADER
+ #include <dali/internal/event/modeling/cloth-impl.h>
+ // EXTERNAL INCLUDES
+ #include <stdio.h>
+ // INTERNAL INCLUDES
 -ClothIPtr Cloth::New( const Dali::MeshData& meshData )
+ namespace Dali
+ {
+ namespace Internal
+ {
 -  ClothIPtr cloth( new Cloth( meshData ) );
++ClothIPtr Cloth::New( Geometry& geometry )
+ {
 -Cloth::Cloth( const Dali::MeshData& publicMeshData )
 -: Mesh( publicMeshData, false /* not discardable */, false /* not scalable */ )
++  ClothIPtr cloth( new Cloth( geometry ) );
+   return cloth;
+ }
++Cloth::Cloth( Geometry& geometry )
+ {
+ }
+ Cloth::~Cloth()
+ {
+ }
+ } // namespace Internal
+ } // namespace Dali
index 0000000,d485fbc..5d46bdc
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,93 +1,94 @@@
 -#include <dali/internal/event/modeling/mesh-impl.h>
+ #ifndef __DALI_INTERNAL_CLOTH_H__
+ #define __DALI_INTERNAL_CLOTH_H__
+ /*
+  * Copyright (c) 2014 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.
+  * You may obtain a copy of the License at
+  *
+  * http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  *
+  */
+ // INTERNAL INCLUDES
+ #include <dali/devel-api/geometry/cloth.h>
 -class Cloth : public Mesh
++#include <dali/internal/event/common/object-impl.h>
++#include <dali/internal/event/geometry/geometry-impl.h>
+ namespace Dali
+ {
+ class MeshData;
+ namespace Internal
+ {
+ class Cloth;
+ typedef IntrusivePtr<Cloth> ClothIPtr; ///< smart pointer to a Cloth
+ /**
+  * A single cloth in a 3D model
+  */
 -  static ClothIPtr New( const Dali::MeshData& clothData );
++class Cloth : public BaseObject
+ {
+ public: // construction, destruction and initialisation
+   /**
+    * Create a new cloth.
+    * @param[in] clothData the mesh data
+    * @return A smart-pointer to the newly allocated Cloth.
+    */
 -  Cloth( const Dali::MeshData& clothData );
++  static ClothIPtr New( Geometry& clothData );
+   /**
+    * Construct a new Cloth. This is not discardable or scalable.
+    * @param[in] clothData the mesh data
+    */
++  Cloth( Geometry& clothData );
+ protected:
+   /**
+    * A reference counted object may only be deleted by calling Unreference()
+    */
+   virtual ~Cloth();
+ private:
+   // Undefined
+   Cloth(const Cloth&);
+   // Undefined
+   Cloth& operator=(const Cloth& rhs);
+ };
+ } // namespace Internal
+ // Helpers for public-api forwarding methods
+ inline Internal::Cloth& GetImplementation(Dali::Cloth& cloth)
+ {
+   DALI_ASSERT_ALWAYS( cloth && "Cloth handle is empty" );
+   BaseObject& handle = cloth.GetBaseObject();
+   return static_cast<Internal::Cloth&>(handle);
+ }
+ inline const Internal::Cloth& GetImplementation(const Dali::Cloth& cloth)
+ {
+   DALI_ASSERT_ALWAYS( cloth && "Cloth handle is empty" );
+   const BaseObject& handle = cloth.GetBaseObject();
+   return static_cast<const Internal::Cloth&>(handle);
+ }
+ } // namespace Dali
+ #endif // __DALI_INTERNAL_CLOTH_H__
@@@ -83,6 -80,10 +85,7 @@@ internal_src_files = 
    $(internal_src_dir)/event/images/nine-patch-image-impl.cpp \
    $(internal_src_dir)/event/images/resource-image-impl.cpp \
    $(internal_src_dir)/event/images/native-image-impl.cpp \
 -  $(internal_src_dir)/event/modeling/animatable-mesh-impl.cpp \
+   $(internal_src_dir)/event/modeling/cloth-impl.cpp \
 -  $(internal_src_dir)/event/modeling/material-impl.cpp \
 -  $(internal_src_dir)/event/modeling/mesh-impl.cpp \
    $(internal_src_dir)/event/object/custom-object-internal.cpp \
    $(internal_src_dir)/event/render-tasks/render-task-impl.cpp \
    $(internal_src_dir)/event/render-tasks/render-task-list-impl.cpp \
index e533fdb,0000000..1814bb7
mode 100644,000000..100644
--- /dev/null
@@@ -1,152 -1,0 +1,152 @@@
- #include <dali/public-api/common/hash.h>
 +#ifndef DALI_INTERNAL_SCENE_GRAPH_UNIFORM_MAP_H
 +#define DALI_INTERNAL_SCENE_GRAPH_UNIFORM_MAP_H
 +
 +/*
 + * Copyright (c) 2015 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.
 + * You may obtain a copy of the License at
 + *
 + * http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +
++#include <dali/devel-api/common/hash.h>
 +#include <dali/internal/common/owner-container.h>
 +
 +#include <string>
 +
 +namespace Dali
 +{
 +namespace Internal
 +{
 +class PropertyInputImpl;
 +
 +namespace SceneGraph
 +{
 +
 +/**
 + * The uniform map is used to map a uniform name to a property value.
 + */
 +class UniformPropertyMapping
 +{
 +public:
 +  typedef unsigned long Hash;
 +
 +  /**
 +   * Constructor
 +   */
 +  UniformPropertyMapping( const std::string& theUniformName, const PropertyInputImpl* thePropertyPtr )
 +  : propertyPtr( thePropertyPtr ),
 +    uniformName( theUniformName ),
 +    uniformNameHash( Dali::CalculateHash( theUniformName ) )
 +  {
 +  }
 +
 +  UniformPropertyMapping()
 +  : propertyPtr( NULL ),
 +    uniformName( "" ),
 +    uniformNameHash( 0 )
 +  {
 +  }
 +
 +
 +  const PropertyInputImpl* propertyPtr;
 +  std::string uniformName;
 +  Hash uniformNameHash;
 +};
 +
 +/**
 + * The UniformMap class is used to map uniform names to property values. It is available
 + * in all of the classes responsible for rendering:
 + * Actor, Renderer, Geometry, PropertyBuffer, Material, Sampler, Shader.
 + *
 + * It can be observed for changes to the mapping table.
 + */
 +class UniformMap
 +{
 +public:
 +  class Observer
 +  {
 +  public:
 +    virtual void UniformMappingsChanged(const UniformMap& mappings) = 0;
 +  };
 +
 +  /**
 +   * Constructor
 +   */
 +  UniformMap();
 +
 +  /**
 +   * Destructor
 +   */
 +  ~UniformMap();
 +
 +  /**
 +   * Add an observer that watches for changes in the mappings
 +   */
 +  void AddObserver( Observer& observer );
 +
 +  /**
 +   * Remove an observer
 +   */
 +  void RemoveObserver( Observer& observer );
 +
 +  /**
 +   * Add a map to the mappings table.
 +   */
 +  void Add( UniformPropertyMapping* map );
 +
 +  /**
 +   * Remove a map from the mappings table
 +   */
 +  void Remove( const std::string& uniformName );
 +
 +  /**
 +   * Find a property given the uniform name.
 +   * @return The address of the property if it's in the map, or NULL otherwise.
 +   */
 +  const PropertyInputImpl* Find( const std::string& uniformName );
 +
 +  /**
 +   * Get the count of uniforms in the map
 +   * @return The number of uniform mappings
 +   */
 +  unsigned int Count() const;
 +
 +  /**
 +   * @pre index must be in the range 0 :: Count()-1
 +   * @param[in] index The index of the element to fetch
 +   * @return reference to the element in the map
 +   */
 +  const UniformPropertyMapping& operator[]( unsigned int index ) const;
 +
 +private:
 +  /**
 +   * Helper to call the observers when the mappings have changed
 +   */
 +  void MappingChanged();
 +
 +private:
 +  typedef OwnerContainer< UniformPropertyMapping* > UniformMapContainer;
 +  typedef UniformMapContainer::Iterator UniformMapIter;
 +  typedef Dali::Vector< Observer* > Observers;
 +  typedef Observers::Iterator ObserversIter;
 +
 +  UniformMapContainer mUniformMaps; // Owner container of uniform maps
 +
 +  Observers mObservers;
 +};
 +
 +
 +} // namespace SceneGraph
 +} // namespace Internal
 +} // namespace Dali
 +
 +#endif // DALI_INTERNAL_SCENE_GRAPH_UNIFORM_MAP_H
Simple merge
Simple merge
Simple merge
  #include <dali/public-api/events/touch-event.h>
  #include <dali/public-api/events/touch-point.h>
  
- #include <dali/public-api/images/atlas.h>
 +#include <dali/public-api/geometry/geometry.h>
  #include <dali/public-api/images/buffer-image.h>
- #include <dali/public-api/images/distance-field.h>
  #include <dali/public-api/images/encoded-buffer-image.h>
  #include <dali/public-api/images/frame-buffer-image.h>
  #include <dali/public-api/images/image.h>
  #include <dali/public-api/math/vector2.h>
  #include <dali/public-api/math/vector3.h>
  #include <dali/public-api/math/vector4.h>
--
  #include <dali/public-api/object/any.h>
  #include <dali/public-api/object/base-handle.h>
  #include <dali/public-api/object/base-object.h>
  #include <dali/public-api/signals/signal-slot-observers.h>
  #include <dali/public-api/signals/slot-delegate.h>
  
 +#include <dali/public-api/shader-effects/material.h>
 +#include <dali/public-api/shader-effects/sampler.h>
 +#include <dali/public-api/shader-effects/shader.h>
  #include <dali/public-api/shader-effects/shader-effect.h>
  
  #include <dali/public-api/size-negotiation/relayout-container.h>
  
  #include <dali/public-api/dali-core-version.h>
@@@ -47,9 -38,6 +39,7 @@@ public_api_src_files = 
    $(public_api_src_dir)/events/tap-gesture-detector.cpp \
    $(public_api_src_dir)/events/touch-point.cpp \
    $(public_api_src_dir)/events/touch-event.cpp \
-   $(public_api_src_dir)/images/atlas.cpp \
-   $(public_api_src_dir)/images/distance-field.cpp \
 +  $(public_api_src_dir)/geometry/geometry.cpp \
    $(public_api_src_dir)/images/image.cpp \
    $(public_api_src_dir)/images/pixel.cpp \
    $(public_api_src_dir)/images/buffer-image.cpp \
@@@ -72,7 -60,7 +62,8 @@@
    $(public_api_src_dir)/object/base-object.cpp \
    $(public_api_src_dir)/object/object-registry.cpp \
    $(public_api_src_dir)/object/property.cpp \
+   $(public_api_src_dir)/object/property-array.cpp \
 +  $(public_api_src_dir)/object/property-buffer.cpp \
    $(public_api_src_dir)/object/property-conditions.cpp \
    $(public_api_src_dir)/object/property-input.cpp \
    $(public_api_src_dir)/object/property-map.cpp \
    $(public_api_src_dir)/object/ref-object.cpp \
    $(public_api_src_dir)/render-tasks/render-task.cpp \
    $(public_api_src_dir)/render-tasks/render-task-list.cpp \
 +  $(public_api_src_dir)/shader-effects/material.cpp \
 +  $(public_api_src_dir)/shader-effects/sampler.cpp \
 +  $(public_api_src_dir)/shader-effects/shader.cpp \
    $(public_api_src_dir)/shader-effects/shader-effect.cpp \
-   $(public_api_src_dir)/scripting/scripting.cpp \
    $(public_api_src_dir)/signals/callback.cpp \
    $(public_api_src_dir)/signals/connection-tracker.cpp \
    $(public_api_src_dir)/signals/connection-tracker-interface.cpp \
@@@ -173,13 -144,8 +151,11 @@@ public_api_core_events_header_files = 
    $(public_api_src_dir)/events/touch-point.h \
    $(public_api_src_dir)/events/touch-event.h
  
 +public_api_core_geometry_header_files = \
 +  $(public_api_src_dir)/geometry/geometry.h
 +
  public_api_core_images_header_files = \
-   $(public_api_src_dir)/images/atlas.h \
    $(public_api_src_dir)/images/buffer-image.h \
-   $(public_api_src_dir)/images/distance-field.h \
    $(public_api_src_dir)/images/encoded-buffer-image.h \
    $(public_api_src_dir)/images/frame-buffer-image.h \
    $(public_api_src_dir)/images/image.h \
@@@ -207,15 -171,15 +181,14 @@@ public_api_core_math_header_files = 
    $(public_api_src_dir)/math/vector4.h \
    $(public_api_src_dir)/math/viewport.h
  
 -
--
  public_api_core_object_header_files = \
    $(public_api_src_dir)/object/any.h \
    $(public_api_src_dir)/object/base-handle.h \
    $(public_api_src_dir)/object/base-object.h \
    $(public_api_src_dir)/object/handle.h \
    $(public_api_src_dir)/object/object-registry.h \
-   $(public_api_src_dir)/object/property.h \
+   $(public_api_src_dir)/object/property-array.h \
 +  $(public_api_src_dir)/object/property-buffer.h \
    $(public_api_src_dir)/object/property-conditions.h \
    $(public_api_src_dir)/object/property-index-ranges.h \
    $(public_api_src_dir)/object/property-input.h \
@@@ -234,14 -198,8 +207,11 @@@ public_api_core_render_tasks_header_fil
    $(public_api_src_dir)/render-tasks/render-task-list.h
  
  public_api_core_shader_effects_header_files = \
 +  $(public_api_src_dir)/shader-effects/material.h \
 +  $(public_api_src_dir)/shader-effects/sampler.h \
 +  $(public_api_src_dir)/shader-effects/shader.h \
    $(public_api_src_dir)/shader-effects/shader-effect.h
  
- public_api_core_scripting_header_files = \
-   $(public_api_src_dir)/scripting/scripting.h
  public_api_core_size_negotiation_header_files = \
    $(public_api_src_dir)/size-negotiation/relayout-container.h