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