///////////////////////////////////////////////////////////// // // // Copyright (c) 2007-2014 by The University of Queensland // // Centre for Geoscience Computing // // http://earth.uq.edu.au/centre-geoscience-computing // // // // Primary Business: Brisbane, Queensland, Australia // // Licensed under the Open Software License version 3.0 // // http://www.opensource.org/licenses/osl-3.0.php // // // ///////////////////////////////////////////////////////////// #ifndef __CIRCLE_VOL_H #define __CIRCLE_VOL_H // --- Project includes --- #include "AVolume2D.h" #include "../geometry/SphereIn.h" // --- STL includes --- #include using std::map; class CircleVol : public AVolume2D { protected: SphereIn m_sph; public: CircleVol(); CircleVol(const Vector3&,double); virtual ~CircleVol(){}; virtual pair getBoundingBox(); virtual Vector3 getAPoint(int) const; virtual Line2D getClosestPlane(const Vector3&); virtual const map getClosestPlanes(const Vector3&,int) const; virtual const map getClosestObjects(const Vector3&,int) const; virtual bool isIn(const Vector3&) const; virtual bool isIn(const Sphere&); friend ostream& operator << (ostream&,const CircleVol&); }; #endif // __CIRCLE_VOL_H