Initialize libbullet git in 2.0_beta.
[platform/upstream/libbullet.git] / src / BulletMultiThreaded / GpuSoftBodySolvers / OpenCL / OpenCLC10 / PrepareLinks.cl
1 MSTRINGIFY(\r
2 \r
3 \r
4 \r
5 __kernel void \r
6 PrepareLinksKernel( \r
7         const int numLinks,\r
8         __global int2 * g_linksVertexIndices,\r
9         __global float * g_linksMassLSC,\r
10         __global float4 * g_nodesPreviousPosition,\r
11         __global float * g_linksLengthRatio,\r
12         __global float4 * g_linksCurrentLength GUID_ARG)\r
13 {\r
14         int linkID = get_global_id(0);\r
15         if( linkID < numLinks )\r
16         {       \r
17                 \r
18                 int2 nodeIndices = g_linksVertexIndices[linkID];\r
19                 int node0 = nodeIndices.x;\r
20                 int node1 = nodeIndices.y;\r
21                 \r
22                 float4 nodePreviousPosition0 = g_nodesPreviousPosition[node0];\r
23                 float4 nodePreviousPosition1 = g_nodesPreviousPosition[node1];\r
24 \r
25                 float massLSC = g_linksMassLSC[linkID];\r
26                 \r
27                 float4 linkCurrentLength = nodePreviousPosition1 - nodePreviousPosition0;\r
28                 linkCurrentLength.w = 0.f;\r
29                 \r
30                 float linkLengthRatio = dot(linkCurrentLength, linkCurrentLength)*massLSC;\r
31                 linkLengthRatio = 1.0f/linkLengthRatio;\r
32                 \r
33                 g_linksCurrentLength[linkID] = linkCurrentLength;\r
34                 g_linksLengthRatio[linkID]   = linkLengthRatio;         \r
35         }\r
36 }\r
37 \r
38 );