Geant4-11
pyG4TwoVector.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// ====================================================================
27// pyG4TwoVector.cc
28//
29// 2007 Q
30// ====================================================================
31#include <boost/python.hpp>
32#include "G4Version.hh"
33#include "G4TwoVector.hh"
34
35using namespace boost::python;
36using namespace CLHEP;
37
38typedef G4TwoVector XXX; // ...
39
40// ====================================================================
41// thin wrappers
42// ====================================================================
43namespace pyG4TwoVector {
44
45BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_isNear, isNear, 1, 2)
46BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_isParallel, isParallel, 1, 2)
47BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_isOrthogonal, isOrthogonal, 1, 2)
48
49}
50
51using namespace pyG4TwoVector;
52
53// ====================================================================
54// module definition
55// ====================================================================
57{
58 class_<G4TwoVector>("G4TwoVector", "general 2-vector")
59 // constructors
60 .def(init<G4double>())
61 .def(init<G4double, G4double>())
62 .def(init<const XXX&>())
63
64 // property
65 .add_property("x", &XXX::x, &XXX::setX)
66 .add_property("y", &XXX::y, &XXX::setY)
67
68 // methods
69 .def("set", &XXX::set)
70 .def("phi", &XXX::phi)
71 .def("mag", &XXX::mag)
72 .def("mag2", &XXX::mag2)
73 .def("r", &XXX::r)
74 .def("setPhi", &XXX::setPhi)
75 .def("setMag", &XXX::setMag)
76 .def("setR", &XXX::setR)
77 .def("setPolar", &XXX::setPolar)
78 .def("howNear", &XXX::howNear)
79 .def("isNear", &XXX::isNear, f_isNear())
80 .def("howParallel", &XXX::howParallel)
81 .def("isParallel", &XXX::isParallel, f_isParallel())
82 .def("howOrthogonal", &XXX::howOrthogonal)
83 .def("isOrthogonal", &XXX::isOrthogonal, f_isOrthogonal())
84 .def("unit", &XXX::unit)
85 .def("orthogonal", &XXX::orthogonal)
86 .def("dot", &XXX::dot)
87 .def("angle", &XXX::angle)
88 .def("rotate", &XXX::rotate)
89
90 // operators
91 .def(self_ns::str(self))
92 .def(self == self)
93 .def(self != self)
94 .def(self += self)
95 .def(self -= self)
96 .def(self - self)
97 .def(self + self)
98 .def(self * self)
99 .def(self * G4double())
100 .def(self / G4double())
101 .def(G4double() * self)
102 .def(self *= G4double())
103 .def(self > self)
104 .def(self < self)
105 .def(self >= self)
106 .def(self <= self)
107 ;
108}
static const G4double angle[DIMMOTT]
double G4double
Definition: G4Types.hh:83
double phi() const
Definition: RotationE.cc:67
HepRotation & rotate(double delta, const Hep3Vector &axis)
Definition: Rotation.cc:42
HepRotation & set(const Hep3Vector &axis, double delta)
Definition: RotationA.cc:23
bool isNear(const HepRotation &r, double epsilon=Hep4RotationInterface::tolerance) const
Definition: RotationP.cc:41
double howNear(const HepRotation &r) const
Definition: RotationP.cc:37
void setPhi(double phi)
Definition: RotationE.cc:259
Definition: DoubConv.h:17
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ClearWaitingStack, ClearWaitingStack, 0, 1) BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetNWaitingTrack
void export_G4TwoVector()
G4TwoVector XXX