CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BoundSurface.h
Go to the documentation of this file.
1 #ifndef Geom_BoundSurface_H
2 #define Geom_BoundSurface_H
3 
14 #include <memory>
18 
19 class BoundSurface : public virtual Surface {
20 public:
21 
23  const RotationType& rot,
24  const Bounds* bounds) :
25  Surface( pos, rot ),
26  m_phiSpan( 0., 0.),
27  m_zSpan( 0., 0.),
28  m_rSpan( 0., 0.),
29  theBounds( bounds->clone() )
30  {
31  computeSpan();
32  }
33 
35  const RotationType& rot,
36  const Bounds& bounds) :
37  Surface( pos, rot),
38  m_phiSpan( 0., 0.),
39  m_zSpan( 0., 0.),
40  m_rSpan( 0., 0.),
41  theBounds( bounds.clone())
42  {
43  computeSpan();
44  }
45 
47  const RotationType& rot,
48  const Bounds* bounds,
49  MediumProperties* mp) :
50  Surface( pos, rot, mp),
51  m_phiSpan( 0., 0.),
52  m_zSpan( 0., 0.),
53  m_rSpan( 0., 0.),
54  theBounds( bounds->clone())
55  {
56  computeSpan();
57  }
58 
60  const RotationType& rot,
61  const Bounds& bounds,
62  MediumProperties* mp) :
63  Surface( pos, rot, mp),
64  m_phiSpan( 0., 0.),
65  m_zSpan( 0., 0.),
66  m_rSpan( 0., 0.),
67  theBounds( bounds.clone())
68  {
69  computeSpan();
70  }
71 
72  BoundSurface( const BoundSurface& iToCopy) :
73  Surface( iToCopy ),
74  m_phiSpan( iToCopy.m_phiSpan ),
75  m_zSpan( iToCopy.m_zSpan ),
76  m_rSpan( iToCopy.m_rSpan ),
77  theBounds( iToCopy.theBounds->clone() )
78  {}
79 
80  const BoundSurface& operator=( const BoundSurface& iRHS ) {
81  Surface::operator=( iRHS );
82  m_phiSpan = iRHS.m_phiSpan;
83  m_zSpan = iRHS.m_zSpan;
84  m_rSpan = iRHS.m_rSpan;
85  theBounds.reset( iRHS.theBounds->clone() );
86  return *this;
87  }
88 
89  const Bounds& bounds() const { return *theBounds; }
90 
91  std::pair<float,float> const & phiSpan() const { return m_phiSpan; }
92  std::pair<float,float> const & zSpan() const { return m_zSpan; }
93  std::pair<float,float> const & rSpan() const { return m_rSpan; }
94 
95 protected:
96  friend void boundSpan::computeSpan(BoundSurface& plane);
97  void computeSpan();
98 
99 private:
100 
101  std::pair<float,float> m_phiSpan;
102  std::pair<float,float> m_zSpan;
103  std::pair<float,float> m_rSpan;
104 
105  std::auto_ptr<Bounds> theBounds;
106 };
107 
108 #endif // Geom_BoundSurface_H
std::pair< float, float > const & phiSpan() const
Definition: BoundSurface.h:91
BoundSurface(const BoundSurface &iToCopy)
Definition: BoundSurface.h:72
const BasicReferenceCounted & operator=(const BasicReferenceCounted &)
BoundSurface(const PositionType &pos, const RotationType &rot, const Bounds *bounds, MediumProperties *mp)
Definition: BoundSurface.h:46
BoundSurface(const PositionType &pos, const RotationType &rot, const Bounds *bounds)
Definition: BoundSurface.h:22
BoundSurface(const PositionType &pos, const RotationType &rot, const Bounds &bounds, MediumProperties *mp)
Definition: BoundSurface.h:59
void computeSpan(BoundSurface &plane)
Definition: BoundSpan.cc:10
BoundSurface(const PositionType &pos, const RotationType &rot, const Bounds &bounds)
Definition: BoundSurface.h:34
std::pair< float, float > const & zSpan() const
Definition: BoundSurface.h:92
const Bounds & bounds() const
Definition: BoundSurface.h:89
std::auto_ptr< Bounds > theBounds
Definition: BoundSurface.h:105
std::pair< float, float > const & rSpan() const
Definition: BoundSurface.h:93
std::pair< float, float > m_zSpan
Definition: BoundSurface.h:102
const BoundSurface & operator=(const BoundSurface &iRHS)
Definition: BoundSurface.h:80
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135
void computeSpan()
Definition: BoundSurface.cc:4
std::pair< float, float > m_phiSpan
Definition: BoundSurface.h:101
std::pair< float, float > m_rSpan
Definition: BoundSurface.h:103
Definition: Bounds.h:18