CMS 3D CMS Logo

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 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  float length() const override { return 0;}
27  float width() const override { return 0;}
28  float thickness() const override { return 0;}
29 
30 
31  using Bounds::inside;
32 
33  bool inside( const Local3DPoint& lp) const override {
34  return myInside(lp,0);
35  }
36 
37  bool inside( const Local3DPoint&, const LocalError&, float scale=1.f) const override;
38 
39  Bounds* clone() const override {return new GeneralNSurfaceDelimitedBounds(*this);}
40 
41 private:
42 
43  SurfaceContainer theLimits;
45 
46  bool myInside( const Local3DPoint& lp, float tolerance) const;
47 
48 };
49 
50 #endif
const double tolerance
std::pair< const Surface *, SurfaceOrientation::Side > SurfaceAndSide
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
bool myInside(const Local3DPoint &lp, float tolerance) const
double f[11][100]
std::vector< SurfaceAndSide > SurfaceContainer
bool inside(const Local3DPoint &lp) const override
Determine if the point is inside the bounds.
GeneralNSurfaceDelimitedBounds(const Surface *surf, const std::vector< SurfaceAndSide > &limits)
Definition: Bounds.h:22