00001 #ifndef BoundVolume_H 00002 #define BoundVolume_H 00003 00004 #include "DataFormats/GeometrySurface/interface/GloballyPositioned.h" 00005 00006 class VolumeBoundary; 00007 class PropagationDirection; 00008 00009 class BoundVolume : public GloballyPositioned<float> { 00010 public: 00011 00012 BoundVolume( const PositionType& pos, const RotationType& rot) : 00013 GloballyPositioned<float>( pos, rot) {} 00014 00015 // virtual vector<const VolumeBoundary*> bounds() const = 0; 00016 00017 virtual const VolumeBoundary* 00018 closestBoundary( const LocalPoint& pos, const LocalVector& momentum, 00019 PropagationDirection dir) const = 0; 00020 00021 virtual const VolumeBoundary* 00022 nextBoundary( const LocalPoint& pos, const LocalVector& momentum, 00023 PropagationDirection dir) const = 0; 00024 00025 }; 00026 00027 #endif