IQueryGeometry.hpp
1 #pragma once
2 
3 
4 #include "DM/config.hpp"
5 #include "DM/Handle.hpp"
6 #include "DM/ObjectBase.hpp"
7 #include "DM/IGeometry.hpp"
8 #include "DM/IQueryBase.hpp"
9 
10 #include <limits>
11 #include <assert.h>
12 
13 
14 DM_NAMESPACE_BEGIN
15 
16 /// \brief Base class of all query geometry objects
17 class DM_API IQueryGeometry : public IQueryBase
18 {
19 protected:
20  virtual ~IQueryGeometry() {}
21 
22 public:
23  /// get geometry type (kind of runtime type information)
24  virtual GeometryType geometryType() const = 0;
25 
26  virtual GeometryHandle geometryFromRefPt(double x, double y, double z = 0) const;
27  virtual GeometryHandle geometryFromRefPt(const IGeometry &pt) const = 0;
28 
29  virtual RangeType area() const = 0;
30  virtual RangeType volume() const = 0;
31 };
32 
34 
35 
36 DM_NAMESPACE_END
Base class of all query geometry objects.
Definition: IQueryGeometry.hpp:17
range class for query geometry objects
Definition: IQueryBase.hpp:14
GeometryType
Definition: IGeometry.hpp:11
Base class of all query objects.
Definition: IQueryBase.hpp:67
Base class of all geometry objects.
Definition: IGeometry.hpp:26
Smart pointer class using reference counting with support for DM objects (see ObjectBase)
Definition: Handle.hpp:75