source: trunk/environments/g4py/source/geometry/pyG4TwistedTubs.cc @ 1358

Last change on this file since 1358 was 1337, checked in by garnier, 14 years ago

tag geant4.9.4 beta 1 + modifs locales

File size: 7.1 KB
Line 
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// $Id: pyG4TwistedTubs.cc,v 1.2 2007/07/13 04:57:51 kmura Exp $
27// $Name: geant4-09-04-beta-01 $
28// ====================================================================
29//   pyG4TwistedTubs.cc
30//
31//                                         2007 Q
32// ====================================================================
33#include <boost/python.hpp>
34#include "G4TwistedTubs.hh"
35
36using namespace boost::python;
37
38
39// ====================================================================
40// thin wrappers
41// ====================================================================
42namespace pyG4TwistedTubs {
43
44// GetEndInnerRadius
45G4double (G4TwistedTubs::*f1_GetEndInnerRadius)(G4int) const
46  = &G4TwistedTubs::GetEndInnerRadius;
47G4double (G4TwistedTubs::*f2_GetEndInnerRadius)(G4int) const
48  = &G4TwistedTubs::GetEndInnerRadius;
49
50// GetOuterRadius
51G4double (G4TwistedTubs::*f1_GetEndOuterRadius)(G4int) const
52  = &G4TwistedTubs::GetEndOuterRadius;
53G4double (G4TwistedTubs::*f2_GetEndOuterRadius)() const
54  = &G4TwistedTubs::GetEndOuterRadius;
55
56
57// Create Solid
58G4TwistedTubs* f1_CreateTwistedTubs(const G4String& name,
59                                    G4double  twistedangle,
60                                    G4double  endinnerrad,
61                                    G4double  endouterrad,
62                                    G4double  halfzlen,
63                                    G4double  dphi)
64{
65  return new G4TwistedTubs(name, twistedangle, endinnerrad,
66                           endouterrad, halfzlen, dphi);
67}
68
69G4TwistedTubs* f2_CreateTwistedTubs(const G4String& name,
70                                    G4double  twistedangle,
71                                    G4double  endinnerrad,
72                                    G4double  endouterrad,
73                                    G4double  halfzlen,
74                                    G4int     nseg,
75                                    G4double  totphi)
76{
77  return new G4TwistedTubs(name, twistedangle, endinnerrad,
78                           endouterrad, halfzlen, nseg, totphi);
79}
80
81G4TwistedTubs* f3_CreateTwistedTubs(const G4String& name,
82                                    G4double  twistedangle,
83                                    G4double  innerrad,
84                                    G4double  outerrad,
85                                    G4double  negativeEndz,
86                                    G4double  positiveEndz,
87                                    G4double  dphi)
88{
89  return new G4TwistedTubs(name, twistedangle, innerrad, outerrad,
90                           negativeEndz, positiveEndz, dphi);
91}
92
93G4TwistedTubs* f4_CreateTwistedTubs(const G4String& name,
94                                    G4double  twistedangle,
95                                    G4double  innerrad,
96                                    G4double  outerrad,
97                                    G4double  negativeEndz,
98                                    G4double  positiveEndz,
99                                    G4int     nseg,
100                                    G4double  totphi)
101{
102  return new G4TwistedTubs(name, twistedangle, innerrad, outerrad,
103                           negativeEndz, positiveEndz, nseg, totphi);
104}
105
106
107}
108
109using namespace pyG4TwistedTubs;
110
111// ====================================================================
112// module definition
113// ====================================================================
114void export_G4TwistedTubs()
115{
116  class_<G4TwistedTubs, G4TwistedTubs*, bases<G4VSolid> >
117    ("G4TwistedTubs", "twisted tube solid class", no_init)
118    // constructors
119    .def(init<const G4String&, G4double, G4double, G4double, 
120                               G4double, G4double>())
121    .def(init<const G4String&, G4double, G4double, G4double, 
122                               G4double, G4int, G4double>())
123    .def(init<const G4String&, G4double, G4double, G4double, 
124                               G4double, G4double, G4double>())
125    .def(init<const G4String&, G4double, G4double, G4double, 
126                               G4double, G4double, G4int, G4double>())
127    // ---
128    .def("GetDPhi",            &G4TwistedTubs::GetDPhi)
129    .def("GetPhiTwist",        &G4TwistedTubs::GetPhiTwist)
130    .def("GetInnerRadius",     &G4TwistedTubs::GetInnerRadius)
131    .def("GetOuterRadius",     &G4TwistedTubs::GetOuterRadius)
132    .def("GetInnerStereo",     &G4TwistedTubs::GetInnerStereo)
133    .def("GetOuterStereo",     &G4TwistedTubs::GetOuterStereo)
134    .def("GetZHalfLength",     &G4TwistedTubs::GetZHalfLength)
135    .def("GetKappa",           &G4TwistedTubs::GetKappa)
136    .def("GetTanInnerStereo",  &G4TwistedTubs::GetTanInnerStereo)
137    .def("GetTanInnerStereo2", &G4TwistedTubs::GetTanInnerStereo2)
138    .def("GetTanOuterStereo",  &G4TwistedTubs::GetTanOuterStereo)
139    .def("GetTanOuterStereo2", &G4TwistedTubs::GetTanOuterStereo2)
140    .def("GetEndZ",            &G4TwistedTubs::GetEndZ)
141    .def("GetEndPhi",          &G4TwistedTubs::GetEndPhi)
142    .def("GetEndInnerRadius",  f1_GetEndInnerRadius)
143    .def("GetEndInnerRadius",  f2_GetEndInnerRadius)
144    .def("GetEndOuterRadius",  f1_GetEndOuterRadius)
145    .def("GetEndOuterRadius",  f2_GetEndOuterRadius)
146    // operators
147    .def(self_ns::str(self))
148    ;
149
150    // Create solid
151    def("CreateTwistedTubs", f1_CreateTwistedTubs,
152        return_value_policy<manage_new_object>());
153    def("CreateTwistedTubs", f2_CreateTwistedTubs,
154        return_value_policy<manage_new_object>());
155    def("CreateTwistedTubs", f3_CreateTwistedTubs,
156        return_value_policy<manage_new_object>());
157    def("CreateTwistedTubs", f4_CreateTwistedTubs,
158        return_value_policy<manage_new_object>());
159
160}
161
Note: See TracBrowser for help on using the repository browser.