00001
00002
00003 inline mat& mat::operator=(const mat& m)
00004 {
00005 xx=m.xx; xy=m.xy; xz=m.xz;
00006 yx=m.yx; yy=m.yy; yz=m.yz;
00007 zx=m.zx; zy=m.zy; zz=m.zz;
00008 return *this;
00009 }
00010
00011
00012
00013
00014
00015
00016
00017 inline mat& mat::operator+=(const mat& m)
00018 {
00019 xx+=m.xx; xy+=m.xy; xz+=m.xz;
00020 yx+=m.yx; yy+=m.yy; yz+=m.yz;
00021 zx+=m.zx; zy+=m.zy; zz+=m.zz;
00022 return *this;
00023 }
00024
00025
00026
00027 inline mat& mat::operator-=(const mat& m)
00028 {
00029 xx-=m.xx; xy-=m.xy; xz-=m.xz;
00030 yx-=m.yx; yy-=m.yy; yz-=m.yz;
00031 zx-=m.zx; zy-=m.zy; zz-=m.zz;
00032 return *this;
00033 }
00034
00035
00036
00037 inline mat& mat::operator*=(const mat& m)
00038 {
00039 (*this) =(*this)*m;
00040 return *this;
00041 }
00042
00043
00044
00045
00046
00047
00048
00049 inline mat operator+(const mat& m1, const mat& m2)
00050 {
00051 return mat( m1.xx+m2.xx, m1.xy+m2.xy, m1.xz+m2.xz,
00052 m1.yx+m2.yx, m1.yy+m2.yy, m1.yz+m2.yz,
00053 m1.zx+m2.zx, m1.zy+m2.zy, m1.zz+m2.zz );
00054 }
00055
00056
00057
00058 inline mat operator-(const mat& m1, const mat& m2)
00059 {
00060 return mat( m1.xx-m2.xx, m1.xy-m2.xy, m1.xz-m2.xz,
00061 m1.yx-m2.yx, m1.yy-m2.yy, m1.yz-m2.yz,
00062 m1.zx-m2.zx, m1.zy-m2.zy, m1.zz-m2.zz );
00063 }
00064
00065
00066
00067 inline mat operator*(const mat& m1, const mat& m2)
00068 {
00069 return mat( m1.xx*m2.xx +m1.xy*m2.yx +m1.xz*m2.zx,
00070 m1.xx*m2.xy +m1.xy*m2.yy +m1.xz*m2.zy,
00071 m1.xx*m2.xz +m1.xy*m2.yz +m1.xz*m2.zz,
00072 m1.yx*m2.xx +m1.yy*m2.yx +m1.yz*m2.zx,
00073 m1.yx*m2.xy +m1.yy*m2.yy +m1.yz*m2.zy,
00074 m1.yx*m2.xz +m1.yy*m2.yz +m1.yz*m2.zz,
00075 m1.zx*m2.xx +m1.zy*m2.yx +m1.zz*m2.zx,
00076 m1.zx*m2.xy +m1.zy*m2.yy +m1.zz*m2.zy,
00077 m1.zx*m2.xz +m1.zy*m2.yz +m1.zz*m2.zz );
00078 }