ESyS-Particle  2.3.4
QuaternionPy.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.apache.org/licenses/LICENSE-2.0 //
10 // //
12 
13 #ifndef ESYS_LSMQUATERNIONPY_H
14 #define ESYS_LSMQUATERNIONPY_H
15 
16 #include <boost/python.hpp>
17 #include "Foundation/Quaternion.h"
18 
19 #include <sstream>
20 
21 namespace esys
22 {
23  namespace lsm
24  {
25  class Vec3Py;
26 
27  class QuaternionPy : public Quaternion
28  {
29  public:
30  QuaternionPy();
31 
32  QuaternionPy(double q0, double q1, double q2, double q3);
33 
34  QuaternionPy(const Vec3Py &v);
35 
36  QuaternionPy(const QuaternionPy &q);
37 
38  QuaternionPy(const Quaternion &q);
39 
40  QuaternionPy(const boost::python::object &pyOb);
41 
42  int len() const;
43 
44  double getItem(int i) const;
45 
46  void setItem(int i, double val);
47 
48  double norm() const;
49 
50  Vec3Py asAngleAxis() const;
51 
52  boost::python::tuple asAngleAxisPair() const;
53 
54  std::string toString() const;
55 
56  boost::python::list toList() const;
57 
58  boost::python::tuple toTuple() const;
59 
60  int getIndex(int i) const;
61 
62  class PickleSuite : public boost::python::pickle_suite
63  {
64  public:
65  static
66  boost::python::tuple
67  getinitargs(QuaternionPy const& q);
68  };
69  };
70 
71  void exportQuaternion();
72  }
73 }
74 
75 std::ostream &operator<<(std::ostream &oStream, const esys::lsm::QuaternionPy &vec);
76 
77 #endif //ESYS_LSMQUATERNIONPY_H
Quaternion::set_vector
QUATERNION_INLINE void set_vector(const Vec3 &v)
Definition: Quaternion.h:83
RngPy.h
Util.h
boost::python
Definition: BondInteractionGroupPy.h:22
esys::lsm::exportBoundingSphere
void exportBoundingSphere()
Definition: BoundingSpherePy.cpp:89
Quaternion::return_sca
QUATERNION_INLINE double return_sca() const
Definition: Quaternion.h:81
esys::lsm::QuaternionPy
Definition: QuaternionPy.h:28
esys::lsm::bpu::len
int len(const boost::python::object &pyOb)
Definition: Util.h:30
Vec3Py.h
esys::lsm::Vec3Py
Definition: Vec3Py.h:29
esys::lsm::QuaternionPy::len
int len() const
Definition: QuaternionPy.cpp:79
BOOST_PYTHON_MODULE
BOOST_PYTHON_MODULE(FoundationPy)
Definition: ExportModuleUtil.cpp:21
esys::lsm::QuaternionPy::toList
boost::python::list toList() const
Definition: QuaternionPy.cpp:126
esys::lsm::exportBoundingBox
void exportBoundingBox()
Definition: BoundingBoxPy.cpp:117
Quaternion::asAngleAxis
QUATERNION_INLINE Vec3 asAngleAxis() const
Definition: Quaternion.hpp:311
Quaternion::set_scalar
QUATERNION_INLINE void set_scalar(double d)
Definition: Quaternion.h:84
StringUtil.h
esys::lsm::QuaternionPy::asAngleAxis
Vec3Py asAngleAxis() const
Definition: QuaternionPy.cpp:147
esys::lsm::QuaternionPy::getIndex
int getIndex(int i) const
Definition: QuaternionPy.cpp:84
BoundingBoxPy.h
esys::lsm::QuaternionPy::setItem
void setItem(int i, double val)
Definition: QuaternionPy.cpp:106
esys::lsm::exportQuaternion
void exportQuaternion()
Definition: QuaternionPy.cpp:159
esys
Definition: CheckPointable.cpp:17
Quaternion::normalize
QUATERNION_INLINE void normalize()
Definition: Quaternion.hpp:256
esys::lsm::exportRng
void exportRng()
Definition: RngPy.cpp:29
esys::lsm::StringUtil::toString
std::string toString(const TmplData &data)
Definition: StringUtil.h:128
Quaternion.h
operator<<
std::ostream & operator<<(std::ostream &oStream, const esys::lsm::QuaternionPy &quat)
Definition: QuaternionPy.cpp:241
esys::lsm::QuaternionPy::PickleSuite
Definition: QuaternionPy.h:63
Quaternion::AngleAxisPair
std::pair< double, Vec3 > AngleAxisPair
Definition: Quaternion.h:96
Quaternion
Definition: Quaternion.h:30
Vec3
Definition: vec3.h:47
BoundingSpherePy.h
esys::lsm::QuaternionPy::norm
double norm() const
esys::lsm::QuaternionPy::asAngleAxisPair
boost::python::tuple asAngleAxisPair() const
Definition: QuaternionPy.cpp:152
esys::lsm::QuaternionPy::toString
std::string toString() const
Definition: QuaternionPy.cpp:121
operator<<
std::ostream & operator<<(std::ostream &oStream, const esys::lsm::QuaternionPy &vec)
Definition: QuaternionPy.cpp:241
QuaternionPy.h
Quaternion::return_vec
QUATERNION_INLINE Vec3 return_vec() const
Definition: Quaternion.h:80
esys::lsm::QuaternionPy::toTuple
boost::python::tuple toTuple() const
Definition: QuaternionPy.cpp:136
esys::lsm::QuaternionPy::getItem
double getItem(int i) const
Definition: QuaternionPy.cpp:101
esys::lsm::QuaternionPy::QuaternionPy
QuaternionPy()
Definition: QuaternionPy.cpp:28
esys::lsm::QuaternionPy::PickleSuite::getinitargs
static boost::python::tuple getinitargs(QuaternionPy const &q)
Definition: QuaternionPy.cpp:142
Quaternion::asAngleAxisPair
QUATERNION_INLINE AngleAxisPair asAngleAxisPair() const
Definition: Quaternion.hpp:317
esys::lsm::exportVec3
void exportVec3()
Definition: Vec3Py.cpp:171
esys::lsm
Lattice Solid Model namespace.
Definition: CheckPointable.cpp:19