Use transpose

This commit is contained in:
Irlan 2019-05-23 11:17:32 -03:00
parent 494fa0baa9
commit 5e044795df

View File

@ -239,17 +239,18 @@ static B3_FORCE_INLINE void b3SetK(b3Mat33 K[16], float32 Ke[144])
// a41 a42 a43 // a41 a42 a43
// a51 a52 a53 // a51 a52 a53
// a61 a62 a63 // a61 a62 a63
k21.x.x = Ke[3 + 12 * 0]; //k21.x.x = Ke[3 + 12 * 0];
k21.x.y = Ke[4 + 12 * 0]; //k21.x.y = Ke[4 + 12 * 0];
k21.x.z = Ke[5 + 12 * 0]; //k21.x.z = Ke[5 + 12 * 0];
k21.y.x = Ke[3 + 12 * 1]; //k21.y.x = Ke[3 + 12 * 1];
k21.y.y = Ke[4 + 12 * 1]; //k21.y.y = Ke[4 + 12 * 1];
k21.y.z = Ke[5 + 12 * 1]; //k21.y.z = Ke[5 + 12 * 1];
k21.z.x = Ke[3 + 12 * 2]; //k21.z.x = Ke[3 + 12 * 2];
k21.z.y = Ke[4 + 12 * 2]; //k21.z.y = Ke[4 + 12 * 2];
k21.z.z = Ke[5 + 12 * 2]; //k21.z.z = Ke[5 + 12 * 2];
k21 = b3Transpose(k12);
// k22 // k22
// a44 a45 a46 // a44 a45 a46
@ -303,33 +304,35 @@ static B3_FORCE_INLINE void b3SetK(b3Mat33 K[16], float32 Ke[144])
// a71 a72 a73 // a71 a72 a73
// a81 a82 a83 // a81 a82 a83
// a91 a92 a93 // a91 a92 a93
k31.x.x = Ke[6 + 12 * 0]; //k31.x.x = Ke[6 + 12 * 0];
k31.x.y = Ke[7 + 12 * 0]; //k31.x.y = Ke[7 + 12 * 0];
k31.x.z = Ke[8 + 12 * 0]; //k31.x.z = Ke[8 + 12 * 0];
k31.y.x = Ke[6 + 12 * 1]; //k31.y.x = Ke[6 + 12 * 1];
k31.y.y = Ke[7 + 12 * 1]; //k31.y.y = Ke[7 + 12 * 1];
k31.y.z = Ke[8 + 12 * 1]; //k31.y.z = Ke[8 + 12 * 1];
k31.z.x = Ke[6 + 12 * 2]; //k31.z.x = Ke[6 + 12 * 2];
k31.z.y = Ke[7 + 12 * 2]; //k31.z.y = Ke[7 + 12 * 2];
k31.z.z = Ke[8 + 12 * 2]; //k31.z.z = Ke[8 + 12 * 2];
k31 = b3Transpose(k13);
// k32 // k32
// a74 a75 a76 // a74 a75 a76
// a84 a85 a86 // a84 a85 a86
// a94 a95 a96 // a94 a95 a96
k32.x.x = Ke[6 + 12 * 3]; //k32.x.x = Ke[6 + 12 * 3];
k32.x.y = Ke[7 + 12 * 3]; //k32.x.y = Ke[7 + 12 * 3];
k32.x.z = Ke[8 + 12 * 3]; //k32.x.z = Ke[8 + 12 * 3];
k32.y.x = Ke[6 + 12 * 4]; //k32.y.x = Ke[6 + 12 * 4];
k32.y.y = Ke[7 + 12 * 4]; //k32.y.y = Ke[7 + 12 * 4];
k32.y.z = Ke[8 + 12 * 4]; //k32.y.z = Ke[8 + 12 * 4];
k32.z.x = Ke[6 + 12 * 5]; //k32.z.x = Ke[6 + 12 * 5];
k32.z.y = Ke[7 + 12 * 5]; //k32.z.y = Ke[7 + 12 * 5];
k32.z.z = Ke[8 + 12 * 5]; //k32.z.z = Ke[8 + 12 * 5];
k32 = b3Transpose(k23);
// k33 // k33
// a77 a78 a79 // a77 a78 a79
@ -367,49 +370,52 @@ static B3_FORCE_INLINE void b3SetK(b3Mat33 K[16], float32 Ke[144])
// a10_1 a10_2 a10_3 // a10_1 a10_2 a10_3
// a11_1 a11_2 a11_3 // a11_1 a11_2 a11_3
// a12_1 a12_2 a12_3 // a12_1 a12_2 a12_3
k41.x.x = Ke[9 + 12 * 0]; //k41.x.x = Ke[9 + 12 * 0];
k41.x.y = Ke[10 + 12 * 0]; //k41.x.y = Ke[10 + 12 * 0];
k41.x.z = Ke[11 + 12 * 0]; //k41.x.z = Ke[11 + 12 * 0];
k41.y.x = Ke[9 + 12 * 1]; //k41.y.x = Ke[9 + 12 * 1];
k41.y.y = Ke[10 + 12 * 1]; //k41.y.y = Ke[10 + 12 * 1];
k41.y.z = Ke[11 + 12 * 1]; //k41.y.z = Ke[11 + 12 * 1];
k41.z.x = Ke[9 + 12 * 2]; //k41.z.x = Ke[9 + 12 * 2];
k41.z.y = Ke[10 + 12 * 2]; //k41.z.y = Ke[10 + 12 * 2];
k41.z.z = Ke[11 + 12 * 2]; //k41.z.z = Ke[11 + 12 * 2];
k41 = b3Transpose(k14);
// k42 // k42
// a10_4 a10_5 a10_6 // a10_4 a10_5 a10_6
// a11_4 a11_5 a11_6 // a11_4 a11_5 a11_6
// a12_4 a12_5 a12_6 // a12_4 a12_5 a12_6
k42.x.x = Ke[9 + 12 * 3]; //k42.x.x = Ke[9 + 12 * 3];
k42.x.y = Ke[10 + 12 * 3]; //k42.x.y = Ke[10 + 12 * 3];
k42.x.z = Ke[11 + 12 * 3]; //k42.x.z = Ke[11 + 12 * 3];
k42.y.x = Ke[9 + 12 * 4]; //k42.y.x = Ke[9 + 12 * 4];
k42.y.y = Ke[10 + 12 * 4]; //k42.y.y = Ke[10 + 12 * 4];
k42.y.z = Ke[11 + 12 * 4]; //k42.y.z = Ke[11 + 12 * 4];
k42.z.x = Ke[9 + 12 * 5]; //k42.z.x = Ke[9 + 12 * 5];
k42.z.y = Ke[10 + 12 * 5]; //k42.z.y = Ke[10 + 12 * 5];
k42.z.z = Ke[11 + 12 * 5]; //k42.z.z = Ke[11 + 12 * 5];
k42 = b3Transpose(k24);
// k43 // k43
// a10_7 a10_8 a10_9 // a10_7 a10_8 a10_9
// a11_7 a11_8 a11_9 // a11_7 a11_8 a11_9
// a12_7 a12_8 a12_9 // a12_7 a12_8 a12_9
k43.x.x = Ke[9 + 12 * 6]; //k43.x.x = Ke[9 + 12 * 6];
k43.x.y = Ke[10 + 12 * 6]; //k43.x.y = Ke[10 + 12 * 6];
k43.x.z = Ke[11 + 12 * 6]; //k43.x.z = Ke[11 + 12 * 6];
k43.y.x = Ke[9 + 12 * 7]; //k43.y.x = Ke[9 + 12 * 7];
k43.y.y = Ke[10 + 12 * 7]; //k43.y.y = Ke[10 + 12 * 7];
k43.y.z = Ke[11 + 12 * 7]; //k43.y.z = Ke[11 + 12 * 7];
k43.z.x = Ke[9 + 12 * 8]; //k43.z.x = Ke[9 + 12 * 8];
k43.z.y = Ke[10 + 12 * 8]; //k43.z.y = Ke[10 + 12 * 8];
k43.z.z = Ke[11 + 12 * 8]; //k43.z.z = Ke[11 + 12 * 8];
k43 = b3Transpose(k34);
// k44 // k44
// a10_10 a10_11 a10_12 // a10_10 a10_11 a10_12
@ -427,6 +433,7 @@ static B3_FORCE_INLINE void b3SetK(b3Mat33 K[16], float32 Ke[144])
k44.z.y = Ke[10 + 12 * 11]; k44.z.y = Ke[10 + 12 * 11];
k44.z.z = Ke[11 + 12 * 11]; k44.z.z = Ke[11 + 12 * 11];
} }
b3SoftBody::b3SoftBody(const b3SoftBodyDef& def) b3SoftBody::b3SoftBody(const b3SoftBodyDef& def)
{ {
B3_ASSERT(def.mesh); B3_ASSERT(def.mesh);