Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef OB_TRANSFORM_3D_H
00021 #define OB_TRANSFORM_3D_H
00022
00023 #include <openbabel/math/matrix3x3.h>
00024 #include <list>
00025 #include <string>
00026
00027 namespace OpenBabel
00028 {
00029
00035 class OBAPI transform3d: private matrix3x3, private vector3
00036 {
00037 public:
00038 transform3d(void): matrix3x3(), vector3()
00039 {
00040 }
00041
00042 transform3d(const matrix3x3 &m, const vector3 &v): matrix3x3(m), vector3(v)
00043 {
00044 Normalize();
00045 }
00046
00047 transform3d(double s): matrix3x3(s), vector3()
00048 {
00049 }
00050
00052 transform3d(vector3 row1,vector3 row2,vector3 row3,vector3 translation):
00053 matrix3x3(row1, row2, row3), vector3(translation)
00054 {
00055 Normalize();
00056 }
00057
00059
00060 transform3d(double d[3][3], double t[3]): matrix3x3(d), vector3(t)
00061 {
00062 Normalize();
00063 }
00064
00065 vector3 operator *(const vector3 &) const;
00066
00067 transform3d operator *(const transform3d &) const;
00068
00069 std::string DescribeAsString() const;
00070 std::string DescribeAsValues() const;
00071
00072 void Normalize();
00073 };
00074
00075 typedef std::list<transform3d*>::const_iterator transform3dIterator;
00076
00077 }
00078
00079 #endif // OB_TRANSFORM_3D_H
00080