IPolygonFactory.hpp
1 #pragma once
2 
3 #include "DM/config.hpp"
4 #include "DM/Handle.hpp"
5 #include "DM/IPolygon.hpp"
6 #include "DM/AutoLink.hpp" //enable autolink
7 
8 DM_NAMESPACE_BEGIN
9 
10 /// \brief factory interface for creating polygon objects
11 class DM_API IPolygonFactory : public ObjectBase
12 {
13 public:
14  static IPolygonFactory* New();
15 
16 protected:
17  virtual ~IPolygonFactory() {}
18 
19 public:
20  virtual void clear() = 0;
21 
22  virtual IPolygonFactory& addPoint(const IPoint &pt) = 0;
23  virtual IPolygonFactory& addPoint(PointHandle pt) = 0;
24  virtual IPolygonFactory& addPoint(double x, double y) = 0;
25  virtual IPolygonFactory& addPoint(double x, double y, double z) = 0;
26 
27  virtual IPolygonFactory& closePart() = 0;
28 
29  virtual PolygonHandle getPolygon(Orientation ori = Orientation::undefined, bool clear = true) = 0;
30 };
31 
33 
34 
35 DM_NAMESPACE_END
Orientation
orientation enum
Definition: ColumnTypes.hpp:148
factory interface for creating polygon objects
Definition: IPolygonFactory.hpp:11
Smart pointer class using reference counting with support for DM objects (see ObjectBase)
Definition: Handle.hpp:75
Definition: M/c++_api/inc/DM/ObjectBase.hpp:8
3d point object
Definition: IPoint.hpp:14