0023024: Update headers of OCCT files
[occt.git] / src / BRep / BRep_CurveOnClosedSurface.cxx
1 // Created on: 1993-07-06
2 // Created by: Remi LEQUETTE
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2012 OPEN CASCADE SAS
5 //
6 // The content of this file is subject to the Open CASCADE Technology Public
7 // License Version 6.5 (the "License"). You may not use the content of this file
8 // except in compliance with the License. Please obtain a copy of the License
9 // at http://www.opencascade.org and read it completely before using this file.
10 //
11 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 //
14 // The Original Code and all software distributed under the License is
15 // distributed on an "AS IS" basis, without warranty of any kind, and the
16 // Initial Developer hereby disclaims all such warranties, including without
17 // limitation, any warranties of merchantability, fitness for a particular
18 // purpose or non-infringement. Please see the License for the specific terms
19 // and conditions governing the rights and limitations under the License.
20
21
22
23 #include <BRep_CurveOnClosedSurface.ixx>
24 #include <Precision.hxx>
25
26
27
28 //=======================================================================
29 //function : BRep_CurveOnClosedSurface
30 //purpose  : 
31 //=======================================================================
32
33 BRep_CurveOnClosedSurface::BRep_CurveOnClosedSurface
34   (const Handle(Geom2d_Curve)& PC1, 
35    const Handle(Geom2d_Curve)& PC2,
36    const Handle(Geom_Surface)& S, 
37    const TopLoc_Location& L, 
38    const GeomAbs_Shape C) :
39   BRep_CurveOnSurface(PC1,S,L),
40   myPCurve2(PC2),
41   myContinuity(C)
42 {
43 }
44
45
46 //=======================================================================
47 //function : IsCurveOnClosedSurface
48 //purpose  : 
49 //=======================================================================
50
51 Standard_Boolean  BRep_CurveOnClosedSurface::IsCurveOnClosedSurface()const 
52 {
53   return Standard_True;
54 }
55
56 //=======================================================================
57 //function : IsRegularity
58 //purpose  : 
59 //=======================================================================
60
61 Standard_Boolean  BRep_CurveOnClosedSurface::IsRegularity()const 
62 {
63   return Standard_True;
64 }
65
66
67 //=======================================================================
68 //function : IsRegularity
69 //purpose  : 
70 //=======================================================================
71
72 Standard_Boolean  BRep_CurveOnClosedSurface::IsRegularity
73   (const Handle(Geom_Surface)& S1, 
74    const Handle(Geom_Surface)& S2, 
75    const TopLoc_Location& L1, 
76    const TopLoc_Location& L2)const 
77 {
78   return ((Surface()  == S1) &&
79           (Surface()  == S2) &&
80           (Location() == L1) &&
81           (Location() == L2));
82 }
83
84
85
86 //=======================================================================
87 //function : PCurve2
88 //purpose  : 
89 //=======================================================================
90
91 const Handle(Geom2d_Curve)&  BRep_CurveOnClosedSurface::PCurve2()const 
92 {
93   return myPCurve2;
94 }
95
96
97 //=======================================================================
98 //function : Continuity
99 //purpose  : 
100 //=======================================================================
101
102 const GeomAbs_Shape&  BRep_CurveOnClosedSurface::Continuity()const 
103 {
104   return myContinuity;
105 }
106
107 //=======================================================================
108 //function : Surface2
109 //purpose  : 
110 //=======================================================================
111
112 const Handle(Geom_Surface)&  BRep_CurveOnClosedSurface::Surface2()const 
113 {
114   return Surface();
115 }
116
117
118 //=======================================================================
119 //function : Location2
120 //purpose  : 
121 //=======================================================================
122
123 const TopLoc_Location&  BRep_CurveOnClosedSurface::Location2()const 
124 {
125   return Location();
126 }
127
128 //=======================================================================
129 //function : PCurve2
130 //purpose  : 
131 //=======================================================================
132
133 void  BRep_CurveOnClosedSurface::PCurve2(const Handle(Geom2d_Curve)& C)
134 {
135   myPCurve2 = C;
136 }
137
138
139 //=======================================================================
140 //function : Continuity
141 //purpose  : 
142 //=======================================================================
143
144 void BRep_CurveOnClosedSurface::Continuity(const GeomAbs_Shape C)
145 {
146   myContinuity = C;
147 }
148
149
150 //=======================================================================
151 //function : Copy
152 //purpose  : 
153 //=======================================================================
154
155 Handle(BRep_CurveRepresentation) BRep_CurveOnClosedSurface::Copy() const
156 {
157   Handle(BRep_CurveOnClosedSurface) C =
158     new BRep_CurveOnClosedSurface(PCurve(),PCurve2(),
159                                   Surface(),Location(),myContinuity);
160
161   C->SetRange(First(), Last());
162   C->SetUVPoints(myUV1,myUV2);
163   C->SetUVPoints2(myUV21,myUV22);
164
165   return C;
166 }
167
168
169 //=======================================================================
170 //function : Update
171 //purpose  : 
172 //=======================================================================
173
174 void  BRep_CurveOnClosedSurface::Update()
175 {
176   if (!Precision::IsNegativeInfinite(First()))
177     myPCurve2->D0(First(),myUV21);
178   if (!Precision::IsPositiveInfinite(Last()))
179     myPCurve2->D0(Last(),myUV22);
180   BRep_CurveOnSurface::Update();
181 }
182
183