CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BoundCylinder.h
Go to the documentation of this file.
1 #ifndef Geom_BoundCylinder_H
2 #define Geom_BoundCylinder_H
3 
19 #include "boost/intrusive_ptr.hpp"
20 
21 class BoundCylinder : public Cylinder, public BoundSurface {
22 public:
23 
26 
30  const RotationType& rot,
31  Scalar radius,
32  const Bounds* bounds,
33  MediumProperties* mp=0) {
34  return BoundCylinderPointer(new BoundCylinder(pos, rot, radius, bounds, mp));
35  }
36 
37 
41  const RotationType& rot,
42  Scalar radius,
43  const Bounds& bounds,
44  MediumProperties* mp=0) {
45  return BoundCylinderPointer(new BoundCylinder(pos, rot, radius, &bounds, mp));
46  }
47 
48  virtual ~BoundCylinder() {}
49 
50  // -- DEPRECATED CONSTRUCTORS
51 
56  const RotationType& rot,
57  Scalar radius,
58  const Bounds& bounds) :
59  Surface( pos,rot ),
60  Cylinder( pos, rot, radius),
61  BoundSurface(pos, rot, bounds)
62  { }
63 
68  const RotationType& rot,
69  Scalar radius,
70  MediumProperties* mp,
71  const Bounds& bounds) :
72  Surface( pos,rot ),
73  Cylinder( pos, rot, radius, mp ),
74  BoundSurface( pos, rot, bounds )
75  { }
76 
79  const RotationType& rot,
80  const Bounds* bounds);
81 
84  const RotationType& rot,
85  const Bounds& bounds);
86 
87 protected:
88  // Private constructor - use build() instead
90  const RotationType& rot,
91  Scalar radius,
92  const Bounds* bounds,
93  MediumProperties* mp=0) :
94  Surface( pos,rot ),
95  Cylinder(pos, rot, radius, mp),
96  BoundSurface(pos, rot, bounds, mp)
97  { }
98 
99 };
100 
101 #endif // Geom_BoundCylinder_H
ConstReferenceCountingPointer< BoundCylinder > ConstBoundCylinderPointer
Definition: BoundCylinder.h:25
ReferenceCountingPointer< BoundCylinder > BoundCylinderPointer
Definition: BoundCylinder.h:24
static BoundCylinderPointer build(const PositionType &pos, const RotationType &rot, Scalar radius, const Bounds *bounds, MediumProperties *mp=0)
Definition: BoundCylinder.h:29
BoundCylinder(const PositionType &pos, const RotationType &rot, Scalar radius, const Bounds &bounds)
Definition: BoundCylinder.h:55
Scalar radius() const
Radius of the cylinder.
Definition: Cylinder.h:55
BoundCylinder(const PositionType &pos, const RotationType &rot, Scalar radius, MediumProperties *mp, const Bounds &bounds)
Definition: BoundCylinder.h:67
const Bounds & bounds() const
Definition: BoundSurface.h:89
static BoundCylinderPointer build(const PositionType &pos, const RotationType &rot, Scalar radius, const Bounds &bounds, MediumProperties *mp=0)
Definition: BoundCylinder.h:40
Point3DBase< float, GlobalTag > PositionType
TkRotation< float > RotationType
Definition: Bounds.h:18
BoundCylinder(const PositionType &pos, const RotationType &rot, Scalar radius, const Bounds *bounds, MediumProperties *mp=0)
Definition: BoundCylinder.h:89
virtual ~BoundCylinder()
Definition: BoundCylinder.h:48