00001 #ifndef vnl_double_2x3_h_
00002 #define vnl_double_2x3_h_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <vnl/vnl_matrix_fixed.h>
00016 #include <vnl/vnl_double_3.h>
00017
00018 class vnl_double_2x3 : public vnl_matrix_fixed<double, 2, 3> {
00019 typedef vnl_matrix_fixed<double, 2, 3> Base;
00020 public:
00021
00022 vnl_double_2x3() {}
00023 vnl_double_2x3(const vnl_double_3& row1, const vnl_double_3& row2) {
00024 vnl_matrix<double>& M = *this;
00025 M(0,0) = row1[0]; M(0,1) = row1[1]; M(0,2) = row1[2];
00026 M(1,0) = row2[0]; M(1,1) = row2[1]; M(1,2) = row2[2];
00027 }
00028
00029 vnl_double_2x3(double r00, double r01, double r02,
00030 double r10, double r11, double r12) {
00031 vnl_matrix<double>& M = *this;
00032 M(0,0) = r00; M(0,1) = r01; M(0,2) = r02;
00033 M(1,0) = r10; M(1,1) = r11; M(1,2) = r12;
00034 }
00035
00036 vnl_double_2x3(Base const& M) :
00037 Base(M) { }
00038 };
00039
00040 #endif // vnl_double_2x3_h_