GenGeo  1.1
EllipsoidVol.h
Go to the documentation of this file.
1 
2 // //
3 // Copyright (c) 2007-2014 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 #ifndef __ELLIPSOID_VOL_H
14 #define __ELLIPSOID_VOL_H
15 
16 // --- Project includes ---
17 #include "AVolume3D.h"
18 
19 // --- STL includes ---
20 #include <map>
21 
22 using std::map;
23 
24 class EllipsoidVol : public AVolume3D
25 {
26  protected:
27  double m_lx,m_ly,m_lz;
29 
30  public:
31  EllipsoidVol();
32  EllipsoidVol(const Vector3&,double,double,double);
33  virtual ~EllipsoidVol(){};
34 
35  virtual pair<Vector3,Vector3> getBoundingBox();
36  virtual Vector3 getAPoint(int) const;
37  virtual const map<double,const AGeometricObject*> getClosestObjects(const Vector3&,int) const;
38  virtual bool isIn(const Vector3&) const;
39  virtual bool isIn(const Sphere&);
40  virtual bool isFullyOutside(const Sphere&);
41 
42  friend ostream& operator << (ostream&,const EllipsoidVol&);
43 };
44 
45 #endif // __ELLIPSOID_VOL_H