MURE
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Tube.hxx
Go to the documentation of this file.
1 #ifndef _TUBE_HXX_
2 #define _TUBE_HXX_
3 
9 #include <vector>
10 #include "MureHeaders.hxx"
11 
13 
21 class Tube : public Node
22 {
23 public :
25 
32  Tube(double HalfHeight=0.005,double Rout=0.01, double Rin=0.,double Signe=-1);
33 
35 
48  Tube(double X, double Y, double Z, double dX, double dY, double dZ, double HalfHeight,double Rout, double Rin=0.,double Signe=-1);
49  Tube(const Tube &t);
50 
51  Shape_ptr Clone(int count=0);
52  virtual void Copy(Shape_ptr S);
53  unsigned IsTube() {return fTube;}
54 
61  Shape_ptr GetTopPlane(){return GetLeaf(2);}
62  Shape_ptr GetInCylinder() {if (fRin>0) return GetLeaf(3); else return Shape_ptr(0);}
63  double GetHalfHeight(){return fHalfHeight;}
64  double GetInnerRadius(){return fRin;}
65  double GetOuterRadius(){return fRout;}
66 
67 
72  unsigned Inclus(Shape_ptr OtherShape);
73  unsigned Disjoint(Shape_ptr OtherShape);
74 
75 
80  double GetVirtualSphereRadius();
81  double *GetVirtualSphereCenter();
82  void CalculNot();
84  void SetSidePlanesOpen();
85 
87 
88 protected :
89  bool IsSameAxis(Tube* tube);
90  bool IsSameAxis(Cylinder* cyl);
91 
92  double fRout;
93  double fRin;
94  double fHalfHeight;
95 
96 };
97 
98 #endif
Shape_ptr GetTopPlane()
return top Plane that cut the cylinder
Definition: Tube.hxx:61
unsigned Inclus(Shape_ptr OtherShape)
+1 this is included in OtherShape, 0 not included or don&#39;t know.
Definition: Tube.cxx:209
Node allows to construct Union or Intersection of Shape.
Definition: Node.hxx:24
Shape_ptr GetInCylinder()
return the inner Cylinder when exists, otherwise 0
Definition: Tube.hxx:62
void CalculNot()
Allocates and calculs the complement of Shape.
Definition: Tube.cxx:168
A Tube is a finite Cylinder with a hole inside (like a pipe).
Definition: Tube.hxx:21
double fHalfHeight
Half height of the Tube.
Definition: Tube.hxx:94
double fRin
inner radius of the Tube
Definition: Tube.hxx:93
double * GetVirtualSphereCenter()
returns the center of a Sphere containing the Shape
Definition: Tube.cxx:542
Shape_ptr Clone(int count=0)
Clone a Shape.
Definition: Tube.cxx:472
double GetHalfHeight()
return the Half Height of the Tube.
Definition: Tube.hxx:63
Infinite cylinder Shape.
Definition: Cylinder.hxx:20
Tube(double HalfHeight=0.005, double Rout=0.01, double Rin=0., double Signe=-1)
Normal Constructor.
Definition: Tube.cxx:5
unsigned Disjoint(Shape_ptr OtherShape)
+1 this is disjointed in OtherShape, 0 not included or don&#39;t know.
Definition: Tube.cxx:391
virtual void Copy(Shape_ptr S)
Copy all attributs of a Shape S (but not attributs of the father classes).
Definition: Tube.cxx:521
File including all headers.
bool IsSameAxis(Tube *tube)
whether or not 2 tubes have same z-axis
Definition: Tube.cxx:413
void SetTopBottomPlanesOpen()
The top/bottom planes are NOT mirrors.
Definition: Tube.cxx:547
double GetOuterRadius()
return the outer radius of the Tube.
Definition: Tube.hxx:65
Reference_ptr< Shape > Shape_ptr
Definition: MCNPSource.hxx:17
unsigned IsTube()
1 if Shape is a Tube
Definition: Tube.hxx:53
double GetInnerRadius()
return the inner radius of the Tube.
Definition: Tube.hxx:64
void SetSidePlanesOpen()
The side planes are NOT mirrors.
Definition: Tube.cxx:554
Shape_ptr GetLeaf(int i)
returns the i-th leaf (Shape) of a Node
Definition: Node.hxx:46
Shape_ptr GetBottomPlane()
return bottom Plane that cut the cylinder
Definition: Tube.hxx:60
double fRout
outer radius of the Tube
Definition: Tube.hxx:92
double GetVirtualSphereRadius()
returns the radius of a Sphere containing the Shape
Definition: Tube.cxx:532
bool fTube
true if the Node is a Tube
Definition: Node.hxx:181
Shape_ptr GetOutCylinder()
return the outer Cylinder
Definition: Tube.hxx:59

MURE Project, documentation generated by Doxygen 1.8.5 - Mon Nov 17 2014