diff options
Diffstat (limited to 'utils/hacks/TreeGraphs/Graphics/Geometry/mat3.py')
-rw-r--r-- | utils/hacks/TreeGraphs/Graphics/Geometry/mat3.py | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/utils/hacks/TreeGraphs/Graphics/Geometry/mat3.py b/utils/hacks/TreeGraphs/Graphics/Geometry/mat3.py index b8705a32..c25d7e50 100644 --- a/utils/hacks/TreeGraphs/Graphics/Geometry/mat3.py +++ b/utils/hacks/TreeGraphs/Graphics/Geometry/mat3.py @@ -1,40 +1,40 @@ -import vec3,mat2 - -def identity(): - return ((1.0, 0.0, 0.0), - (0.0, 1.0, 0.0), - (0.0, 0.0, 1.0)) - -def fromscale(scale): - x,y,z= scale - x,y,z= float(x),float(y),float(z) - return (( x, 0.0, 0.0), - (0.0, y, 0.0), - (0.0, 0.0, z)) -def fromscaleN(n): - return fromscale((n,n,n)) - -def mul(a,b): - b_trans= zip(* b) - return tuple([transmulvec3(b_trans, a_r) for a_r in a]) - - # multiple vector v by a transposed matrix -def transmulvec3(m_trans,v): - return tuple([vec3.dot(v, m_c) for m_c in m_trans]) - -def mulvec3(m,v): - return transmulvec3(zip(* m), v) - -def mulN(m,N): - return tuple([vec3.mulN(v,N) for v in m]) - -def det(m): - ((m00,m01,m02), - (m10,m11,m12), - (m20,m21,m22))= m - - a= m00 * mat2.det( ((m11, m12), (m21, m22)) ); - b= m10 * mat2.det( ((m01, m02), (m21, m22)) ); - c= m20 * mat2.det( ((m01, m02), (m11, m12)) ); - - return a-b+c +import vec3,mat2 + +def identity(): + return ((1.0, 0.0, 0.0), + (0.0, 1.0, 0.0), + (0.0, 0.0, 1.0)) + +def fromscale(scale): + x,y,z= scale + x,y,z= float(x),float(y),float(z) + return (( x, 0.0, 0.0), + (0.0, y, 0.0), + (0.0, 0.0, z)) +def fromscaleN(n): + return fromscale((n,n,n)) + +def mul(a,b): + b_trans= zip(* b) + return tuple([transmulvec3(b_trans, a_r) for a_r in a]) + + # multiple vector v by a transposed matrix +def transmulvec3(m_trans,v): + return tuple([vec3.dot(v, m_c) for m_c in m_trans]) + +def mulvec3(m,v): + return transmulvec3(zip(* m), v) + +def mulN(m,N): + return tuple([vec3.mulN(v,N) for v in m]) + +def det(m): + ((m00,m01,m02), + (m10,m11,m12), + (m20,m21,m22))= m + + a= m00 * mat2.det( ((m11, m12), (m21, m22)) ); + b= m10 * mat2.det( ((m01, m02), (m21, m22)) ); + c= m20 * mat2.det( ((m01, m02), (m11, m12)) ); + + return a-b+c |