summaryrefslogtreecommitdiff
path: root/inc/BRepLib_MakePolygon.hxx
blob: ff36cd5989f42bdce2f8a02f18cef1cc89d2d927 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _BRepLib_MakePolygon_HeaderFile
#define _BRepLib_MakePolygon_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _TopoDS_Vertex_HeaderFile
#include <TopoDS_Vertex.hxx>
#endif
#ifndef _TopoDS_Edge_HeaderFile
#include <TopoDS_Edge.hxx>
#endif
#ifndef _BRepLib_MakeShape_HeaderFile
#include <BRepLib_MakeShape.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
class StdFail_NotDone;
class gp_Pnt;
class TopoDS_Vertex;
class TopoDS_Edge;
class TopoDS_Wire;


//! Class to build polygonal wires. <br>
//! <br>
//!          A polygonal wire may be build from <br>
//! <br>
//!          - 2,4,3 points. <br>
//! <br>
//!          - 2,3,4 vertices. <br>
//! <br>
//!          - any number of points. <br>
//! <br>
//!          - any number of vertices. <br>
//! <br>
//! <br>
//!          When a point or vertex is added to the  polygon if <br>
//!          it is identic  to the previous  point no  edge  is <br>
//!          built. The method added can be used to test it. <br>
class BRepLib_MakePolygon  : public BRepLib_MakeShape {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  //! Creates an empty MakePolygon. <br>
  Standard_EXPORT   BRepLib_MakePolygon();
  
  Standard_EXPORT   BRepLib_MakePolygon(const gp_Pnt& P1,const gp_Pnt& P2);
  
  Standard_EXPORT   BRepLib_MakePolygon(const gp_Pnt& P1,const gp_Pnt& P2,const gp_Pnt& P3,const Standard_Boolean Close = Standard_False);
  
  Standard_EXPORT   BRepLib_MakePolygon(const gp_Pnt& P1,const gp_Pnt& P2,const gp_Pnt& P3,const gp_Pnt& P4,const Standard_Boolean Close = Standard_False);
  
  Standard_EXPORT   BRepLib_MakePolygon(const TopoDS_Vertex& V1,const TopoDS_Vertex& V2);
  
  Standard_EXPORT   BRepLib_MakePolygon(const TopoDS_Vertex& V1,const TopoDS_Vertex& V2,const TopoDS_Vertex& V3,const Standard_Boolean Close = Standard_False);
  
  Standard_EXPORT   BRepLib_MakePolygon(const TopoDS_Vertex& V1,const TopoDS_Vertex& V2,const TopoDS_Vertex& V3,const TopoDS_Vertex& V4,const Standard_Boolean Close = Standard_False);
  
  Standard_EXPORT     void Add(const gp_Pnt& P) ;
  
  Standard_EXPORT     void Add(const TopoDS_Vertex& V) ;
  //! Returns  True if  the last   vertex  or point  was <br>
//!          succesfully added. <br>
  Standard_EXPORT     Standard_Boolean Added() const;
  
  Standard_EXPORT     void Close() ;
  
  Standard_EXPORT    const TopoDS_Vertex& FirstVertex() const;
  
  Standard_EXPORT    const TopoDS_Vertex& LastVertex() const;
  //! Returns the last edge added to the polygon. <br>
//! <br>
  Standard_EXPORT    const TopoDS_Edge& Edge() const;
Standard_EXPORT operator TopoDS_Edge() const;
  
  Standard_EXPORT    const TopoDS_Wire& Wire() const;
Standard_EXPORT operator TopoDS_Wire() const;





protected:





private:



TopoDS_Vertex myFirstVertex;
TopoDS_Vertex myLastVertex;
TopoDS_Edge myEdge;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif