Revision eaf57f1c
Added by Leszek Koltunski almost 5 years ago
src/main/java/org/distorted/library/type/Dynamic4D.java | ||
---|---|---|
63 | 63 |
|
64 | 64 |
if( q>1 ) |
65 | 65 |
{ |
66 |
tmp1.tangent[0] = mConvexity*(nx+px/q);
|
|
67 |
tmp1.tangent[1] = mConvexity*(ny+py/q);
|
|
68 |
tmp1.tangent[2] = mConvexity*(nz+pz/q);
|
|
69 |
tmp1.tangent[3] = mConvexity*(nw+pw/q);
|
|
66 |
tmp1.tangent[0] = nx+px/q;
|
|
67 |
tmp1.tangent[1] = ny+py/q;
|
|
68 |
tmp1.tangent[2] = nz+pz/q;
|
|
69 |
tmp1.tangent[3] = nw+pw/q;
|
|
70 | 70 |
} |
71 | 71 |
else |
72 | 72 |
{ |
73 |
tmp1.tangent[0] = mConvexity*(px+nx*q);
|
|
74 |
tmp1.tangent[1] = mConvexity*(py+ny*q);
|
|
75 |
tmp1.tangent[2] = mConvexity*(pz+nz*q);
|
|
76 |
tmp1.tangent[3] = mConvexity*(pw+nw*q);
|
|
73 |
tmp1.tangent[0] = px+nx*q;
|
|
74 |
tmp1.tangent[1] = py+ny*q;
|
|
75 |
tmp1.tangent[2] = pz+nz*q;
|
|
76 |
tmp1.tangent[3] = pw+nw*q;
|
|
77 | 77 |
} |
78 | 78 |
} |
79 | 79 |
else |
... | ... | |
151 | 151 |
tmp1.cached[2] = curr.z; |
152 | 152 |
tmp1.cached[3] = curr.w; |
153 | 153 |
|
154 |
tmp1.a[0] = 2*curr.x + tmp1.tangent[0] - 2*next.x + tmp2.tangent[0];
|
|
155 |
tmp1.b[0] = -3*curr.x - 2*tmp1.tangent[0] + 3*next.x - tmp2.tangent[0];
|
|
156 |
tmp1.c[0] = tmp1.tangent[0];
|
|
154 |
tmp1.a[0] = mConvexity*( 2*curr.x + tmp1.tangent[0] - 2*next.x + tmp2.tangent[0]);
|
|
155 |
tmp1.b[0] = mConvexity*(-3*curr.x - 2*tmp1.tangent[0] + 3*next.x - tmp2.tangent[0]);
|
|
156 |
tmp1.c[0] = mConvexity*(tmp1.tangent[0]) + (1.0f-mConvexity)*(next.x-curr.x);
|
|
157 | 157 |
tmp1.d[0] = curr.x; |
158 | 158 |
|
159 |
tmp1.a[1] = 2*curr.y + tmp1.tangent[1] - 2*next.y + tmp2.tangent[1];
|
|
160 |
tmp1.b[1] = -3*curr.y - 2*tmp1.tangent[1] + 3*next.y - tmp2.tangent[1];
|
|
161 |
tmp1.c[1] = tmp1.tangent[1];
|
|
159 |
tmp1.a[1] = mConvexity*( 2*curr.y + tmp1.tangent[1] - 2*next.y + tmp2.tangent[1]);
|
|
160 |
tmp1.b[1] = mConvexity*(-3*curr.y - 2*tmp1.tangent[1] + 3*next.y - tmp2.tangent[1]);
|
|
161 |
tmp1.c[1] = mConvexity*(tmp1.tangent[1]) + (1.0f-mConvexity)*(next.y-curr.y);
|
|
162 | 162 |
tmp1.d[1] = curr.y; |
163 | 163 |
|
164 |
tmp1.a[2] = 2*curr.z + tmp1.tangent[2] - 2*next.z + tmp2.tangent[2];
|
|
165 |
tmp1.b[2] = -3*curr.z - 2*tmp1.tangent[2] + 3*next.z - tmp2.tangent[2];
|
|
166 |
tmp1.c[2] = tmp1.tangent[2];
|
|
164 |
tmp1.a[2] = mConvexity*( 2*curr.z + tmp1.tangent[2] - 2*next.z + tmp2.tangent[2]);
|
|
165 |
tmp1.b[2] = mConvexity*(-3*curr.z - 2*tmp1.tangent[2] + 3*next.z - tmp2.tangent[2]);
|
|
166 |
tmp1.c[2] = mConvexity*(tmp1.tangent[2]) + (1.0f-mConvexity)*(next.z-curr.z);
|
|
167 | 167 |
tmp1.d[2] = curr.z; |
168 | 168 |
|
169 |
tmp1.a[3] = 2*curr.w + tmp1.tangent[3] - 2*next.w + tmp2.tangent[3];
|
|
170 |
tmp1.b[3] = -3*curr.w - 2*tmp1.tangent[3] + 3*next.w - tmp2.tangent[3];
|
|
171 |
tmp1.c[3] = tmp1.tangent[3];
|
|
169 |
tmp1.a[3] = mConvexity*( 2*curr.w + tmp1.tangent[3] - 2*next.w + tmp2.tangent[3]);
|
|
170 |
tmp1.b[3] = mConvexity*(-3*curr.w - 2*tmp1.tangent[3] + 3*next.w - tmp2.tangent[3]);
|
|
171 |
tmp1.c[3] = mConvexity*(tmp1.tangent[3]) + (1.0f-mConvexity)*(next.w-curr.w);
|
|
172 | 172 |
tmp1.d[3] = curr.w; |
173 | 173 |
} |
174 | 174 |
} |
Also available in: Unified diff
Modify the 'convexity' param in Dynamics.
This finally satisfies the requirements of the 'Spin' effect in MagicCube: achieving constant speed ( by setting a 1D Dynamic's convexity to 0)