CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/DataFormats/GeometrySurface/interface/BoundPlane.h

Go to the documentation of this file.
00001 #ifndef Geom_BoundPlane_H
00002 #define Geom_BoundPlane_H
00003 
00014 #include "DataFormats/GeometrySurface/interface/Plane.h"
00015 #include "DataFormats/GeometrySurface/interface/BoundSurface.h"
00016 #include "boost/intrusive_ptr.hpp" 
00017 
00018 
00019 class BoundPlane : public Plane, public BoundSurface {
00020 public:
00021   typedef ReferenceCountingPointer<BoundPlane> BoundPlanePointer;
00022   typedef ConstReferenceCountingPointer<BoundPlane> ConstBoundPlanePointer;
00023 
00026   static BoundPlanePointer build(const PositionType& pos,
00027                                     const RotationType& rot,
00028                                     const Bounds* bounds,
00029                                     MediumProperties* mp=0) {
00030     return BoundPlanePointer(new BoundPlane(pos, rot, bounds, mp));
00031   }
00032   
00033 
00036   static BoundPlanePointer build(const PositionType& pos,
00037                                     const RotationType& rot,
00038                                     const Bounds& bounds,
00039                                     MediumProperties* mp=0) {
00040     return BoundPlanePointer(new BoundPlane(pos, rot, bounds, mp));
00041   }
00042 
00043   virtual ~BoundPlane() {}
00044 
00045   // --DEPRECATED CONSTRUCTORS
00046 
00050   BoundPlane( const PositionType& pos, 
00051               const RotationType& rot, 
00052               const Bounds* bounds) :
00053     Surface( pos,rot), Plane( pos, rot), BoundSurface(pos, rot, bounds) {}
00054 
00058   BoundPlane( const PositionType& pos, 
00059               const RotationType& rot, 
00060               const Bounds& bounds) :
00061     Surface( pos,rot), Plane( pos, rot), BoundSurface(pos, rot, bounds) {}
00062 
00066   BoundPlane( const PositionType& pos, 
00067               const RotationType& rot, 
00068               const Bounds* bounds, 
00069               MediumProperties* mp) :
00070     Surface( pos,rot,mp), Plane( pos, rot, mp), BoundSurface(pos, rot, bounds, mp) {}
00071 
00075   BoundPlane( const PositionType& pos, 
00076               const RotationType& rot, 
00077               const Bounds& bounds, 
00078               MediumProperties* mp) :
00079     Surface( pos,rot,mp), Plane( pos, rot, mp), BoundSurface(pos, rot, bounds, mp) {}
00080 
00085   BoundPlane( const PositionType& pos, 
00086               const RotationType& rot);
00087 
00088 
00089 };
00090 
00091 #endif // Geom_BoundPlane_H