Revert "[Tizen] Implement partial update"
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / dali-test-suite-utils / mesh-builder.cpp
index 772c892..48bc26b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2016 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.
  * limitations under the License.
  *
  */
-#include "mesh-builder.h"
-
-namespace Dali
-{
-
-void AddVertex( MeshData::VertexContainer& verts, Vector3 V, Vector2 UV )
-{
-  MeshData::Vertex meshVertex;
-  meshVertex.x = V.x;
-  meshVertex.y = V.y;
-  meshVertex.z = V.z;
-  meshVertex.u = UV.x;
-  meshVertex.v = UV.y;
-  verts.push_back(meshVertex);
-}
-
-void SetNormal( MeshData::VertexContainer& verts, size_t vertIdx, Vector3 normal )
-{
-  verts[vertIdx].nX = normal.x;
-  verts[vertIdx].nY = normal.y;
-  verts[vertIdx].nZ = normal.z;
-}
-
-void SetBone( MeshData::VertexContainer& verts, size_t vertIdx, size_t index, size_t boneIndex, float weight)
-{
-  verts[vertIdx].boneIndices[index] = boneIndex;
-  verts[vertIdx].boneWeights[index] = weight;
-}
-
-void SetBones(MeshData::VertexContainer& verts)
-{
-  // Set all verts in one corner to be affected fully by bone 0
-  SetBone(verts, 0, 0, 0, 1.0f);
-  SetBone(verts, 1, 0, 0, 1.0f);
-  SetBone(verts, 2, 0, 0, 1.0f);
-
-  // Set all verts in next corner to be affected by bone 1 and bone 2 equally
-  SetBone(verts, 3, 0, 1, 0.5f);
-  SetBone(verts, 4, 0, 1, 0.5f);
-  SetBone(verts, 5, 0, 1, 0.5f);
-
-  SetBone(verts, 3, 1, 2, 0.5f);
-  SetBone(verts, 4, 1, 2, 0.5f);
-  SetBone(verts, 5, 1, 2, 0.5f);
-}
 
-void ConstructBones(BoneContainer& bones)
-{
-  bones.push_back(Bone("Bone1", Matrix::IDENTITY));
-  bones.push_back(Bone("Bone2", Matrix::IDENTITY));
-  bones.push_back(Bone("Bone3", Matrix::IDENTITY));
-}
+// CLASS HEADER
+#include "mesh-builder.h"
 
-void CopyVertex( MeshData::Vertex& vert, Vector3& vector )
-{
-  vector.x = vert.x;
-  vector.y = vert.y;
-  vector.z = vert.z;
-}
+// EXTERNAL INCLUDES
+#include <dali/devel-api/images/texture-set-image.h>
 
-void AddTriangle( MeshData::VertexContainer& verts,
-                  MeshData::FaceIndices& faces,
-                  size_t v0, size_t v1, size_t v2 )
+namespace Dali
 {
-  faces.push_back(v0);
-  faces.push_back(v1);
-  faces.push_back(v2);
-
-  // Calculate normal...
-  Vector3 vert0, vert1, vert2;
-  CopyVertex(verts[v0], vert0);
-  CopyVertex(verts[v1], vert1);
-  CopyVertex(verts[v2], vert2);
-  Vector3 e0 = vert1 - vert0;
-  Vector3 e1 = vert2 - vert1;
-  Vector3 normal = e0.Cross(e1);
-  normal.Normalize();
-  SetNormal(verts, v0, normal);
-  SetNormal(verts, v1, normal);
-  SetNormal(verts, v2, normal);
-}
 
-void ConstructVertices( MeshData::VertexContainer& vertices, float sz )
+Shader CreateShader()
 {
-  // back
-  AddVertex(vertices, Vector3( 0.0f,  -sz, 0.0f), Vector2(0.50f, 0.50f));        // 0a  0
-  AddVertex(vertices, Vector3( 0.0f,  -sz, 0.0f), Vector2(0.50f, 0.50f));        // 0b  1
-  AddVertex(vertices, Vector3( 0.0f,  -sz, 0.0f), Vector2(0.50f, 0.50f));        // 0c  2
-
-  // left
-  AddVertex(vertices, Vector3(-sz*0.5f, sz*0.3f, sz*0.5f), Vector2(0.25f, 0.50f));  // 1a  3
-  AddVertex(vertices, Vector3(-sz*0.5f, sz*0.3f, sz*0.5f), Vector2(0.25f, 0.50f));  // 1b  4
-  AddVertex(vertices, Vector3(-sz*0.5f, sz*0.3f, sz*0.5f), Vector2(0.25f, 0.50f));  // 1c  5
-
-  // right
-  AddVertex(vertices, Vector3( sz*0.5f, sz*0.3f, sz*0.5f), Vector2(0.50f, 0.25f));  // 2a  6
-  AddVertex(vertices, Vector3( sz*0.5f, sz*0.3f, sz*0.5f), Vector2(0.50f, 0.25f));  // 2b  7
-  AddVertex(vertices, Vector3( sz*0.5f, sz*0.3f, sz*0.5f), Vector2(0.50f, 0.25f));  // 2c  8
-
-  // top
-  AddVertex(vertices, Vector3( 0.0f,   sz*0.3f, -sz*0.7f), Vector2(0.25f, 0.25f)); // 3a  9
-  AddVertex(vertices, Vector3( 0.0f,   sz*0.3f, -sz*0.7f), Vector2(0.25f, 0.25f)); // 3b 10
-  AddVertex(vertices, Vector3( 0.0f,   sz*0.3f, -sz*0.7f), Vector2(0.25f, 0.25f)); // 3c 11
+  return Shader::New( "vertexSrc", "fragmentSrc" );
 }
 
-void ConstructFaces(MeshData::VertexContainer& vertices, MeshData::FaceIndices& faces)
+TextureSet CreateTextureSet()
 {
-  AddTriangle(vertices, faces,  0, 6,  3); // 0, 2, 1  back, right, left (ac)
-  AddTriangle(vertices, faces,  1, 9,  7); // 0, 3, 2  back, top , right (ac)
-  AddTriangle(vertices, faces,  2, 4, 10); // 0, 1, 3  back, left, top   (ac)
-  AddTriangle(vertices, faces, 11, 5,  8); // 3, 1, 2  top, left, right  (ac)
+  return TextureSet::New();
 }
 
-Material ConstructMaterial()
+TextureSet CreateTextureSet( Image image )
 {
-  Material customMaterial = Material::New("CustomMaterial");
-  customMaterial.SetOpacity(.76f);
-  customMaterial.SetDiffuseColor(Vector4(0.8f, 0.0f, 0.4f, 1.0f));
-  customMaterial.SetAmbientColor(Vector4(0.2f, 1.0f, 0.6f, 1.0f));
-  customMaterial.SetSpecularColor(Vector4(0.5f, 0.6f, 0.7f, 1.0f));
-  return customMaterial;
+  TextureSet textureSet = TextureSet::New();
+  TextureSetImage( textureSet, 0u, image );
+  return textureSet;
 }
 
-
-Mesh ConstructMesh( float sz )
+PropertyBuffer CreatePropertyBuffer()
 {
-  MeshData::VertexContainer vertices;
-  MeshData::FaceIndices     faces;
-  ConstructVertices( vertices, sz );
-  ConstructFaces(vertices, faces);
-  Material customMaterial = ConstructMaterial();
+  Property::Map texturedQuadVertexFormat;
+  texturedQuadVertexFormat["aPosition"] = Property::VECTOR2;
+  texturedQuadVertexFormat["aVertexCoord"] = Property::VECTOR2;
 
-  MeshData meshData;
-  BoneContainer bones;
-  meshData.SetData(vertices, faces, bones, customMaterial);
-  meshData.SetHasNormals(true);
-  meshData.SetHasTextureCoords(true);
-
-  Mesh mesh = Mesh::New(meshData);
-  return mesh;
+  PropertyBuffer vertexData = PropertyBuffer::New( texturedQuadVertexFormat );
+  return vertexData;
 }
 
-
-void AddBone(Dali::BoneContainer& bones, const std::string& name, const Dali::Matrix& offsetMatrix)
+Geometry CreateQuadGeometry(void)
 {
-  bones.push_back(Bone(name, offsetMatrix));
+  PropertyBuffer vertexData = CreatePropertyBuffer();
+  const float halfQuadSize = .5f;
+  struct TexturedQuadVertex { Vector2 position; Vector2 textureCoordinates; };
+  TexturedQuadVertex texturedQuadVertexData[4] = {
+    { Vector2(-halfQuadSize, -halfQuadSize), Vector2(0.f, 0.f) },
+    { Vector2( halfQuadSize, -halfQuadSize), Vector2(1.f, 0.f) },
+    { Vector2(-halfQuadSize,  halfQuadSize), Vector2(0.f, 1.f) },
+    { Vector2( halfQuadSize,  halfQuadSize), Vector2(1.f, 1.f) } };
+  vertexData.SetData(texturedQuadVertexData, 4);
+
+  unsigned short indexData[6] = { 0, 3, 1, 0, 2, 3 };
+
+  Geometry geometry = Geometry::New();
+  geometry.AddVertexBuffer( vertexData );
+  geometry.SetIndexBuffer( indexData, sizeof(indexData)/sizeof(indexData[0]) );
+
+  return geometry;
 }
 
-void CreateMeshData(MeshData& meshData)
-{
-  MeshData::VertexContainer vertices;
-  MeshData::FaceIndices faces;
-  Dali::BoneContainer bones;
-  AddBone(bones, "trunk",  Matrix::IDENTITY);
-  AddBone(bones, "branch", Matrix::IDENTITY);
-  AddBone(bones, "twig",   Matrix::IDENTITY);
-  ConstructVertices( vertices, 50 );
-  ConstructFaces(vertices, faces);
-  Material customMaterial = ConstructMaterial();
-  meshData.SetData(vertices, faces, bones, customMaterial);
-  meshData.SetHasNormals(true);
-  meshData.SetHasTextureCoords(true);
-}
 
 
 } // namespace Dali