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