26 #include <boost/operators.hpp>
35 private boost::equality_comparable<Mat3>,
36 private boost::additive1<Mat3>,
37 private boost::multiplicative2<Mat3, Real>
43 this->
set(1.0,0.0,0.0, 0.0,1.0,0.0, 0.0,0.0,1.0);
59 this->
set(i00,i01,i02,i10,i11,i12,i20,i21,i22);
64 this->
set(m(0,0),m(0,1),m(0,2),m(1,0),m(1,1),m(1,2),m(2,0),m(2,1),m(2,2));
69 this->
set(m(0, 0), m(0, 1),
Real(0.0),
70 m(1, 0), m(1, 1),
Real(0.0),
76 this->
set(arr[0],arr[1],arr[2],arr[3],arr[4],arr[5],arr[6],arr[7],arr[8]);
81 this->
set(x, 0.0, 0.0, 0.0, y, 0.0, 0.0, 0.0, z);
84 Real& operator()(std::size_t r, std::size_t c)
90 const Real& operator()(std::size_t r, std::size_t c)
const
99 this->
set(m(0,0),m(0,1),m(0,2),m(1,0),m(1,1),m(1,2),m(2,0),m(2,1),m(2,2));
106 static Mat3 i(1.0,0.0,0.0,
114 return data_[0][0] == rhs.data_[0][0] &&
115 data_[1][0] == rhs.data_[1][0] &&
116 data_[2][0] == rhs.data_[2][0] &&
117 data_[0][1] == rhs.data_[0][1] &&
118 data_[1][1] == rhs.data_[1][1] &&
119 data_[2][1] == rhs.data_[2][1] &&
120 data_[0][2] == rhs.data_[0][2] &&
121 data_[1][2] == rhs.data_[1][2] &&
122 data_[2][2] == rhs.data_[2][2];
127 data_[0][0]+=rhs(0,0);
128 data_[0][1]+=rhs(0,1);
129 data_[0][2]+=rhs(0,2);
130 data_[1][0]+=rhs(1,0);
131 data_[1][1]+=rhs(1,1);
132 data_[1][2]+=rhs(1,2);
133 data_[2][0]+=rhs(2,0);
134 data_[2][1]+=rhs(2,1);
135 data_[2][2]+=rhs(2,2);
140 data_[0][0]-=rhs(0,0);
141 data_[0][1]-=rhs(0,1);
142 data_[0][2]-=rhs(0,2);
143 data_[1][0]-=rhs(1,0);
144 data_[1][1]-=rhs(1,1);
145 data_[1][2]-=rhs(1,2);
146 data_[2][0]-=rhs(2,0);
147 data_[2][1]-=rhs(2,1);
148 data_[2][2]-=rhs(2,2);
180 (*this)=
Mat3((*
this)(0,0)*m(0,0)+(*
this)(0,1)*m(1,0)+(*
this)(0,2)*m(2,0),
181 (*
this)(0,0)*m(0,1)+(*
this)(0,1)*m(1,1)+(*
this)(0,2)*m(2,1),
182 (*
this)(0,0)*m(0,2)+(*
this)(0,1)*m(1,2)+(*
this)(0,2)*m(2,2),
183 (*
this)(1,0)*m(0,0)+(*
this)(1,1)*m(1,0)+(*
this)(1,2)*m(2,0),
184 (*
this)(1,0)*m(0,1)+(*
this)(1,1)*m(1,1)+(*
this)(1,2)*m(2,1),
185 (*
this)(1,0)*m(0,2)+(*
this)(1,1)*m(1,2)+(*
this)(1,2)*m(2,2),
186 (*
this)(2,0)*m(0,0)+(*
this)(2,1)*m(1,0)+(*
this)(2,2)*m(2,0),
187 (*
this)(2,0)*m(0,1)+(*
this)(2,1)*m(1,1)+(*
this)(2,2)*m(2,1),
188 (*
this)(2,0)*m(0,2)+(*
this)(2,1)*m(1,2)+(*
this)(2,2)*m(2,2));
204 data_[0][0]=i00; data_[0][1]=i01; data_[0][2]=i02;
205 data_[1][0]=i10; data_[1][1]=i11; data_[1][2]=i12;
206 data_[2][0]=i20; data_[2][1]=i21; data_[2][2]=i22;