42cf5bc1 |
1 | // Created on: 1993-07-05 |
2 | // Created by: Remi LEQUETTE |
3 | // Copyright (c) 1993-1999 Matra Datavision |
4 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
5 | // |
6 | // This file is part of Open CASCADE Technology software library. |
7 | // |
8 | // This library is free software; you can redistribute it and/or modify it under |
9 | // the terms of the GNU Lesser General Public License version 2.1 as published |
10 | // by the Free Software Foundation, with special exception defined in the file |
11 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
12 | // distribution for complete text of the license and disclaimer of any warranty. |
13 | // |
14 | // Alternatively, this file may be used under the terms of Open CASCADE |
15 | // commercial license or contractual agreement. |
16 | |
17 | #ifndef _BRep_CurveRepresentation_HeaderFile |
18 | #define _BRep_CurveRepresentation_HeaderFile |
19 | |
20 | #include <Standard.hxx> |
21 | #include <Standard_Type.hxx> |
22 | |
23 | #include <TopLoc_Location.hxx> |
24 | #include <MMgt_TShared.hxx> |
25 | #include <Standard_Boolean.hxx> |
26 | #include <GeomAbs_Shape.hxx> |
27 | class Standard_DomainError; |
28 | class TopLoc_Location; |
29 | class Geom_Surface; |
30 | class Poly_Triangulation; |
31 | class Geom_Curve; |
32 | class Geom2d_Curve; |
33 | class Poly_Polygon3D; |
34 | class Poly_Polygon2D; |
35 | class Poly_PolygonOnTriangulation; |
36 | |
37 | |
38 | class BRep_CurveRepresentation; |
39 | DEFINE_STANDARD_HANDLE(BRep_CurveRepresentation, MMgt_TShared) |
40 | |
41 | //! Root class for the curve representations. Contains |
42 | //! a location. |
43 | class BRep_CurveRepresentation : public MMgt_TShared |
44 | { |
45 | |
46 | public: |
47 | |
48 | |
49 | //! A 3D curve representation. |
50 | Standard_EXPORT virtual Standard_Boolean IsCurve3D() const; |
51 | |
52 | //! A curve in the parametric space of a surface. |
53 | Standard_EXPORT virtual Standard_Boolean IsCurveOnSurface() const; |
54 | |
55 | //! A continuity between two surfaces. |
56 | Standard_EXPORT virtual Standard_Boolean IsRegularity() const; |
57 | |
58 | //! A curve with two parametric curves on the same |
59 | //! surface. |
60 | Standard_EXPORT virtual Standard_Boolean IsCurveOnClosedSurface() const; |
61 | |
62 | //! Is it a curve in the parametric space of <S> with |
63 | //! location <L>. |
64 | Standard_EXPORT virtual Standard_Boolean IsCurveOnSurface (const Handle(Geom_Surface)& S, const TopLoc_Location& L) const; |
65 | |
66 | //! Is it a regularity between <S1> and <S2> with |
67 | //! location <L1> and <L2>. |
68 | Standard_EXPORT virtual Standard_Boolean IsRegularity (const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2) const; |
69 | |
70 | //! A 3D polygon representation. |
71 | Standard_EXPORT virtual Standard_Boolean IsPolygon3D() const; |
72 | |
73 | //! A representation by an array of nodes on a |
74 | //! triangulation. |
75 | Standard_EXPORT virtual Standard_Boolean IsPolygonOnTriangulation() const; |
76 | |
77 | //! Is it a polygon in the definition of <T> with |
78 | //! location <L>. |
79 | Standard_EXPORT virtual Standard_Boolean IsPolygonOnTriangulation (const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) const; |
80 | |
81 | //! A representation by two arrays of nodes on a |
82 | //! triangulation. |
83 | Standard_EXPORT virtual Standard_Boolean IsPolygonOnClosedTriangulation() const; |
84 | |
85 | //! A polygon in the parametric space of a surface. |
86 | Standard_EXPORT virtual Standard_Boolean IsPolygonOnSurface() const; |
87 | |
88 | //! Is it a polygon in the parametric space of <S> with |
89 | //! location <L>. |
90 | Standard_EXPORT virtual Standard_Boolean IsPolygonOnSurface (const Handle(Geom_Surface)& S, const TopLoc_Location& L) const; |
91 | |
92 | //! Two 2D polygon representations in the parametric |
93 | //! space of a surface. |
94 | Standard_EXPORT virtual Standard_Boolean IsPolygonOnClosedSurface() const; |
95 | |
96 | const TopLoc_Location& Location() const; |
97 | |
98 | void Location (const TopLoc_Location& L); |
99 | |
100 | Standard_EXPORT virtual const Handle(Geom_Curve)& Curve3D() const; |
101 | |
102 | Standard_EXPORT virtual void Curve3D (const Handle(Geom_Curve)& C); |
103 | |
104 | Standard_EXPORT virtual const Handle(Geom_Surface)& Surface() const; |
105 | |
106 | Standard_EXPORT virtual const Handle(Geom2d_Curve)& PCurve() const; |
107 | |
108 | Standard_EXPORT virtual void PCurve (const Handle(Geom2d_Curve)& C); |
109 | |
110 | Standard_EXPORT virtual const Handle(Geom2d_Curve)& PCurve2() const; |
111 | |
112 | Standard_EXPORT virtual void PCurve2 (const Handle(Geom2d_Curve)& C); |
113 | |
114 | Standard_EXPORT virtual const Handle(Poly_Polygon3D)& Polygon3D() const; |
115 | |
116 | Standard_EXPORT virtual void Polygon3D (const Handle(Poly_Polygon3D)& P); |
117 | |
118 | Standard_EXPORT virtual const Handle(Poly_Polygon2D)& Polygon() const; |
119 | |
120 | Standard_EXPORT virtual void Polygon (const Handle(Poly_Polygon2D)& P); |
121 | |
122 | Standard_EXPORT virtual const Handle(Poly_Polygon2D)& Polygon2() const; |
123 | |
124 | Standard_EXPORT virtual void Polygon2 (const Handle(Poly_Polygon2D)& P); |
125 | |
126 | Standard_EXPORT virtual const Handle(Poly_Triangulation)& Triangulation() const; |
127 | |
128 | Standard_EXPORT virtual const Handle(Poly_PolygonOnTriangulation)& PolygonOnTriangulation() const; |
129 | |
130 | Standard_EXPORT virtual void PolygonOnTriangulation (const Handle(Poly_PolygonOnTriangulation)& P); |
131 | |
132 | Standard_EXPORT virtual const Handle(Poly_PolygonOnTriangulation)& PolygonOnTriangulation2() const; |
133 | |
134 | Standard_EXPORT virtual void PolygonOnTriangulation2 (const Handle(Poly_PolygonOnTriangulation)& P2); |
135 | |
136 | Standard_EXPORT virtual const Handle(Geom_Surface)& Surface2() const; |
137 | |
138 | Standard_EXPORT virtual const TopLoc_Location& Location2() const; |
139 | |
140 | Standard_EXPORT virtual const GeomAbs_Shape& Continuity() const; |
141 | |
142 | Standard_EXPORT virtual void Continuity (const GeomAbs_Shape C); |
143 | |
144 | //! Return a copy of this representation. |
145 | Standard_EXPORT virtual Handle(BRep_CurveRepresentation) Copy() const = 0; |
146 | |
147 | |
148 | |
149 | |
92efcf78 |
150 | DEFINE_STANDARD_RTTIEXT(BRep_CurveRepresentation,MMgt_TShared) |
42cf5bc1 |
151 | |
152 | protected: |
153 | |
154 | |
155 | Standard_EXPORT BRep_CurveRepresentation(const TopLoc_Location& L); |
156 | |
157 | TopLoc_Location myLocation; |
158 | |
159 | |
160 | private: |
161 | |
162 | |
163 | |
164 | |
165 | }; |
166 | |
167 | |
168 | #include <BRep_CurveRepresentation.lxx> |
169 | |
170 | |
171 | |
172 | |
173 | |
174 | #endif // _BRep_CurveRepresentation_HeaderFile |