File coordinate_set.hpp

This file contains a class which defines coordinates based on a coordinate system.

Author

Benjamin Lindner ben@benlabs.net

Version

See VERSION in CMakeLists.txt

Copyright

GNU General Public License

Enums

enum CoordinateRepresentation

Defines the three possible coordinate representations

Values:

enumerator CARTESIAN
enumerator SPHERICAL
enumerator CYLINDRICAL
class CoordinateSet
#include <coordinate_set.hpp>

A set of coordinates with an associated representation.

Subclassed by CartesianCoordinateSet, CylindricalCoordinateSet, SphericalCoordinateSet

Public Functions

CoordinateSet()
CoordinateSet(CoordinateSet &cs, IAtomselection *pcs_selection, IAtomselection *psub_selection)
inline size_t size()
inline CoordinateRepresentation get_representation()

Public Members

std::vector<coor2_t> c1
std::vector<coor2_t> c2
std::vector<coor2_t> c3

Protected Functions

template<class Archive>
inline void serialize(Archive &ar, const unsigned int version)

Protected Attributes

size_t m_size
CoordinateRepresentation m_representation

Friends

friend class boost::serialization::access
class CartesianCoordinateSet : public CoordinateSet
#include <coordinate_set.hpp>

Specialized coordinate set which provides additional functions for translation and rotation.

Public Functions

CartesianCoordinateSet()
CartesianCoordinateSet(CartesianCoordinateSet &cs, IAtomselection *pcs_selection, IAtomselection *psub_selection)
CartesianCoordinateSet(Frame &frame, IAtomselection *selection)
void translate(CartesianCoor3D trans)
void translate(CartesianCoor3D trans, IAtomselection *pcs_selection, IAtomselection *psub_selection)
void transform(boost::numeric::ublas::matrix<double> T, IAtomselection *pcs_selection, IAtomselection *psub_selection)
void rotate(CartesianCoor3D axis1, CartesianCoor3D axis2)

Private Functions

template<class Archive>
inline void serialize(Archive &ar, const unsigned int version)

Friends

friend class boost::serialization::access
class SphericalCoordinateSet : public CoordinateSet
#include <coordinate_set.hpp>

Specialized coordinate set for spherical representation

Public Functions

SphericalCoordinateSet()
SphericalCoordinateSet(CartesianCoordinateSet &cs)

Private Functions

template<class Archive>
inline void serialize(Archive &ar, const unsigned int version)

Friends

friend class boost::serialization::access
class CylindricalCoordinateSet : public CoordinateSet
#include <coordinate_set.hpp>

Specialized coordinate set for cylindrical representation.

Public Functions

CylindricalCoordinateSet()
CylindricalCoordinateSet(CartesianCoordinateSet &cs, CartesianCoor3D axis)
inline CartesianCoor3D get_axis()
inline void set_axis(CartesianCoor3D axis)

Private Functions

template<class Archive>
inline void serialize(Archive &ar, const unsigned int version)

Private Members

CartesianCoor3D axis_

Friends

friend class boost::serialization::access