Molassembler  3.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
CoordinateSystemTransformation.h
Go to the documentation of this file.
1 
8 #ifndef INCLUDE_MOLASSEMBLER_SHAPES_COORDINATE_SYSTEM_TRANSFORMATION_H
9 #define INCLUDE_MOLASSEMBLER_SHAPES_COORDINATE_SYSTEM_TRANSFORMATION_H
10 #include <Eigen/Geometry>
11 #include <Eigen/Core>
12 
13 #include "Molassembler/Export.h"
14 
15 namespace Scine {
16 namespace Molassembler {
17 namespace Shapes {
18 
22 struct MASM_EXPORT CoordinateSystem {
24  Eigen::Vector3d x, y, z;
25 
38  CoordinateSystem(const Eigen::Vector3d& a, const Eigen::Vector3d& b);
39 
41  static CoordinateSystem random();
42 
44  bool isRightHanded() const;
45 
46  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
47 };
48 
60 MASM_EXPORT Eigen::Matrix3d rotationMatrix(const CoordinateSystem& a, const CoordinateSystem& b);
61 
62 } // namespace Shapes
63 } // namespace Molassembler
64 } // namespace Scine
65 
66 #endif
Eigen::Vector3d x
Axes.
Definition: CoordinateSystemTransformation.h:24
Coordinate system axis data class.
Definition: CoordinateSystemTransformation.h:22
Eigen::Matrix3d rotationMatrix(const CoordinateSystem &a, const CoordinateSystem &b)
Gives the rotation matrix tranforming points between coordinate systems.