CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GeneralNSurfaceDelimitedBounds.h
Go to the documentation of this file.
1 #ifndef GeneralNSurfaceDelimitedBounds_H
2 #define GeneralNSurfaceDelimitedBounds_H
3 
6 
7 #include <vector>
8 
16 class GeneralNSurfaceDelimitedBounds GCC11_FINAL : public Bounds {
17 public:
18 
19  typedef std::pair<const Surface*, SurfaceOrientation::Side> SurfaceAndSide;
20  typedef std::vector<SurfaceAndSide> SurfaceContainer;
21 
23  const std::vector<SurfaceAndSide>& limits) :
24  theLimits( limits), theSurface(surf) {}
25 
26  virtual float length() const { return 0;}
27  virtual float width() const { return 0;}
28  virtual float thickness() const { return 0;}
29 
30 
31  using Bounds::inside;
32 
33  virtual bool inside( const Local3DPoint& lp) const {
34  return myInside(lp,0);
35  }
36 
37  virtual bool inside( const Local3DPoint&, const LocalError&, float scale=1.f) const;
38 
39  virtual Bounds* clone() const {return new GeneralNSurfaceDelimitedBounds(*this);}
40 
41 private:
42 
45 
46  bool myInside( const Local3DPoint& lp, float tolerance) const;
47 
48 };
49 
50 #endif
virtual float thickness() const
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
std::vector< SurfaceAndSide > SurfaceContainer
GeneralNSurfaceDelimitedBounds(const Surface *surf, const std::vector< SurfaceAndSide > &limits)
virtual float length() const
SurfaceContainer theLimits
double f[11][100]
virtual bool inside(const Local3DPoint &lp) const
Determine if the point is inside the bounds.
std::pair< const Surface *, SurfaceOrientation::Side > SurfaceAndSide
Definition: Bounds.h:22
virtual float width() const
virtual Bounds * clone() const
Unlimited (trivial) bounds.