Seperate dali-adaptor & dali-adaptor-uv packages
[platform/core/uifw/dali-toolkit.git] / node-addon / line-mesh.js
1  var window= {
2            x:0,
3            y:0,
4            width:1920,
5            height: 1080,
6            transparent: false,
7            name:'line-mesh-app'
8  };
9
10  var viewMode={
11        'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced,
12        'stereo-base': 65 // Distance in millimeters between left/right cameras typically between (50-70mm)
13  };
14
15  var options= {
16     'window': window,
17     'view-mode': viewMode,
18  }
19
20 // desktop
21 //var dali = require('./build/Release/dali')( options );
22
23 // target
24 var dali = require('dali')( options );
25
26 var daliApp = {};
27
28 daliApp.createMeshActor = function() {
29
30       // Create shader
31       var vertShader =
32                "attribute mediump vec2    aPosition1;\
33                 attribute mediump vec2    aPosition2;\
34                 uniform   mediump mat4    uMvpMatrix;\
35                 uniform   mediump vec3    uSize;\
36                 uniform   mediump float   uMorphAmount;\
37                 void main()\
38                 {\
39                   mediump vec2 morphPosition = mix(aPosition1, aPosition2, uMorphAmount);\
40                   mediump vec4 vertexPosition = vec4(morphPosition, 0.0, 1.0);\
41                   vertexPosition.xyz *= uSize;\
42                   vertexPosition = uMvpMatrix * vertexPosition;\
43                   gl_Position = vertexPosition;\
44                 }";
45
46       var fragShader =
47                "uniform lowp  vec4    uColor;\
48                 uniform sampler2D     sTexture;\
49                 void main()\
50                 {\
51                   gl_FragColor = uColor;\
52                 }";
53
54       var shaderOptions = {
55               vertexShader : vertShader,
56               fragmentShader: fragShader
57           };
58
59       var shader = new dali.Shader(shaderOptions);
60
61       var material = new dali.Material( shader );
62
63       // Create vertex buffer
64       var pentagonVertexFormat ={ "aPosition1" : dali.PROPERTY_VECTOR2 };
65
66       var pentagonVertexData = [    0,     1,
67                                 -0.95,  0.31,
68                                 -0.59, -0.81,
69                                  0.59, -0.81,
70                                  0.95,  0.31];
71
72       var pentagonVertexDataArray = new Float32Array(pentagonVertexData.length);
73       pentagonVertexDataArray.set(pentagonVertexData, 0);
74       var pentagonVertices = new dali.PropertyBuffer(pentagonVertexFormat, 5);
75       pentagonVertices.setData(pentagonVertexDataArray);
76
77       var pentacleVertexFormat ={ "aPosition2" : dali.PROPERTY_VECTOR2};
78
79       var pentacleVertexData = [    0,    -1,
80                                  0.59,  0.81,
81                                 -0.95, -0.31,
82                                  0.95, -0.31,
83                                 -0.59,  0.81];
84
85       var pentacleVertexDataArray = new Float32Array(pentacleVertexData.length);
86       pentacleVertexDataArray.set(pentacleVertexData, 0);
87       var pentacleVertices = new dali.PropertyBuffer(pentacleVertexFormat, 5);
88       pentacleVertices.setData(pentacleVertexDataArray);
89
90       var indexFormat ={ "indices" : dali.PROPERTY_INTEGER };
91
92       var indexData = [0, 1, 1, 2, 2, 3, 3, 4, 4, 0];
93
94       var indexDataArray = new Uint32Array(indexData.length);
95       indexDataArray.set(indexData, 0);
96       var indices = new dali.PropertyBuffer(indexFormat, 10);
97       indices.setData(indexDataArray);
98
99       // Create geometry
100       var geometry = new dali.Geometry();
101       geometry.addVertexBuffer( pentagonVertices );
102       geometry.addVertexBuffer( pentacleVertices );
103       geometry.setIndexBuffer( indices );
104       geometry.setGeometryType( dali.GEOMETRY_LINES );
105
106       var renderer = new dali.Renderer(geometry, material);
107       renderer.depthIndex = 0;
108
109       // Create mesh actor
110       var meshActor = new dali.Actor();
111       meshActor.addRenderer( renderer );
112       meshActor.size = [300, 300, 0];
113       meshActor.parentOrigin = dali.CENTER;
114       meshActor.anchorPoint = dali.CENTER;
115       meshActor.registerAnimatableProperty("uMorphAmount", 0.0);
116
117       dali.stage.add( meshActor );
118
119       // Animate the mesh actor
120       var animation = new dali.Animation(5);
121
122       var keyFramesIndex = [{progress:0.0, value: 0.0}, {progress:1.0, value:1.0}];
123       var animOptions = { alpha:"sin", delay:0, duration:5};
124
125       animation.animateBetween( meshActor, "uMorphAmount", keyFramesIndex, animOptions );
126       animation.setLooping(true);
127       animation.play();
128 }
129
130 function startup()
131 {
132   daliApp.init();
133 }
134
135 daliApp.init = function()
136 {
137   daliApp.createMeshActor();
138 }
139
140
141 startup();
142