ESyS-Particle  2.3
QuaternionPy.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2014 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.opensource.org/licenses/osl-3.0.php //
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
Definition: Quaternion.h:29
Definition: QuaternionPy.h:27
std::string toString() const
Definition: QuaternionPy.cpp:121
Definition: CheckPointable.cpp:16
void exportQuaternion()
Definition: QuaternionPy.cpp:159
boost::python::tuple asAngleAxisPair() const
Definition: QuaternionPy.cpp:152
int getIndex(int i) const
Definition: QuaternionPy.cpp:84
std::ostream & operator<<(std::ostream &oStream, const esys::lsm::QuaternionPy &vec)
Definition: QuaternionPy.cpp:241
Definition: Vec3Py.h:28
Definition: QuaternionPy.h:62
double norm() const
Vec3Py asAngleAxis() const
Definition: QuaternionPy.cpp:147
static boost::python::tuple getinitargs(QuaternionPy const &q)
Definition: QuaternionPy.cpp:142
int len() const
Definition: QuaternionPy.cpp:79
QuaternionPy()
Definition: QuaternionPy.cpp:28
void setItem(int i, double val)
Definition: QuaternionPy.cpp:106
boost::python::list toList() const
Definition: QuaternionPy.cpp:126
double getItem(int i) const
Definition: QuaternionPy.cpp:101
boost::python::tuple toTuple() const
Definition: QuaternionPy.cpp:136