Changeset 124
- Timestamp:
- 11/22/07 03:28:03 (1 year ago)
- Files:
-
- trunk/Helix/helix/linalgebra.d (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Helix/helix/linalgebra.d
r123 r124 132 132 struct Vector2 133 133 { 134 enum { length = 2u } 135 134 136 align(1) 135 137 { … … 409 411 struct Vector3 410 412 { 413 enum { length = 3u } 414 411 415 align(1) 412 416 { … … 739 743 struct Vector4 740 744 { 745 enum { length = 4u } 746 741 747 align(1) 742 748 { … … 1538 1544 struct Matrix22 1539 1545 { 1540 privatealign(1) union1546 align(1) union 1541 1547 { 1542 1548 struct … … 1669 1675 bool isOrthogonal(int relprec = defrelprec, int absprec = defabsprec) 1670 1676 { 1671 return equal( cross(v[0],v[1]),0, relprec, absprec);1677 return equal(abs(cross(v[0],v[1])),1.0, relprec, absprec); 1672 1678 } 1673 1679 … … 1786 1792 void invert() 1787 1793 { 1788 *this = inverse(); 1794 real idet = 1.0/(m00 * m11 - m01 * m10); 1795 swap(m00,m11); 1796 m10 = -m10; 1797 m01 = -m01; 1798 (*this) *= idet; 1789 1799 } 1790 1800 … … 1869 1879 */ 1870 1880 void polarDecomposition(out Matrix22 Q, out Matrix22 S) 1871 out { assert(Q.isRotation()); } 1881 out { assert(Q.isRotation(), 1882 "(postcondition) Q not a rotation:\n" ~ Q.toString); } 1872 1883 body 1873 1884 { … … 2084 2095 struct Matrix33 2085 2096 { 2086 privatealign(1) union2097 align(1) union 2087 2098 { 2088 2099 struct … … 2748 2759 struct Matrix44 2749 2760 { 2750 privatealign (1) union2761 align (1) union 2751 2762 { 2752 2763 struct
