7fd59977 |
1 | // File: BRep_CurveOnClosedSurface.cxx |
2 | // Created: Tue Jul 6 19:21:18 1993 |
3 | // Author: Remi LEQUETTE |
4 | // <rle@phylox> |
5 | |
6 | |
7 | #include <BRep_CurveOnClosedSurface.ixx> |
8 | #include <Precision.hxx> |
9 | |
10 | |
11 | |
12 | //======================================================================= |
13 | //function : BRep_CurveOnClosedSurface |
14 | //purpose : |
15 | //======================================================================= |
16 | |
17 | BRep_CurveOnClosedSurface::BRep_CurveOnClosedSurface |
18 | (const Handle(Geom2d_Curve)& PC1, |
19 | const Handle(Geom2d_Curve)& PC2, |
20 | const Handle(Geom_Surface)& S, |
21 | const TopLoc_Location& L, |
22 | const GeomAbs_Shape C) : |
23 | BRep_CurveOnSurface(PC1,S,L), |
24 | myPCurve2(PC2), |
25 | myContinuity(C) |
26 | { |
27 | } |
28 | |
29 | |
30 | //======================================================================= |
31 | //function : IsCurveOnClosedSurface |
32 | //purpose : |
33 | //======================================================================= |
34 | |
35 | Standard_Boolean BRep_CurveOnClosedSurface::IsCurveOnClosedSurface()const |
36 | { |
37 | return Standard_True; |
38 | } |
39 | |
40 | //======================================================================= |
41 | //function : IsRegularity |
42 | //purpose : |
43 | //======================================================================= |
44 | |
45 | Standard_Boolean BRep_CurveOnClosedSurface::IsRegularity()const |
46 | { |
47 | return Standard_True; |
48 | } |
49 | |
50 | |
51 | //======================================================================= |
52 | //function : IsRegularity |
53 | //purpose : |
54 | //======================================================================= |
55 | |
56 | Standard_Boolean BRep_CurveOnClosedSurface::IsRegularity |
57 | (const Handle(Geom_Surface)& S1, |
58 | const Handle(Geom_Surface)& S2, |
59 | const TopLoc_Location& L1, |
60 | const TopLoc_Location& L2)const |
61 | { |
62 | return ((Surface() == S1) && |
63 | (Surface() == S2) && |
64 | (Location() == L1) && |
65 | (Location() == L2)); |
66 | } |
67 | |
68 | |
69 | |
70 | //======================================================================= |
71 | //function : PCurve2 |
72 | //purpose : |
73 | //======================================================================= |
74 | |
75 | const Handle(Geom2d_Curve)& BRep_CurveOnClosedSurface::PCurve2()const |
76 | { |
77 | return myPCurve2; |
78 | } |
79 | |
80 | |
81 | //======================================================================= |
82 | //function : Continuity |
83 | //purpose : |
84 | //======================================================================= |
85 | |
86 | const GeomAbs_Shape& BRep_CurveOnClosedSurface::Continuity()const |
87 | { |
88 | return myContinuity; |
89 | } |
90 | |
91 | //======================================================================= |
92 | //function : Surface2 |
93 | //purpose : |
94 | //======================================================================= |
95 | |
96 | const Handle(Geom_Surface)& BRep_CurveOnClosedSurface::Surface2()const |
97 | { |
98 | return Surface(); |
99 | } |
100 | |
101 | |
102 | //======================================================================= |
103 | //function : Location2 |
104 | //purpose : |
105 | //======================================================================= |
106 | |
107 | const TopLoc_Location& BRep_CurveOnClosedSurface::Location2()const |
108 | { |
109 | return Location(); |
110 | } |
111 | |
112 | //======================================================================= |
113 | //function : PCurve2 |
114 | //purpose : |
115 | //======================================================================= |
116 | |
117 | void BRep_CurveOnClosedSurface::PCurve2(const Handle(Geom2d_Curve)& C) |
118 | { |
119 | myPCurve2 = C; |
120 | } |
121 | |
122 | |
123 | //======================================================================= |
124 | //function : Continuity |
125 | //purpose : |
126 | //======================================================================= |
127 | |
128 | void BRep_CurveOnClosedSurface::Continuity(const GeomAbs_Shape C) |
129 | { |
130 | myContinuity = C; |
131 | } |
132 | |
133 | |
134 | //======================================================================= |
135 | //function : Copy |
136 | //purpose : |
137 | //======================================================================= |
138 | |
139 | Handle(BRep_CurveRepresentation) BRep_CurveOnClosedSurface::Copy() const |
140 | { |
141 | Handle(BRep_CurveOnClosedSurface) C = |
142 | new BRep_CurveOnClosedSurface(PCurve(),PCurve2(), |
143 | Surface(),Location(),myContinuity); |
144 | |
145 | C->SetRange(First(), Last()); |
146 | C->SetUVPoints(myUV1,myUV2); |
147 | C->SetUVPoints2(myUV21,myUV22); |
148 | |
149 | return C; |
150 | } |
151 | |
152 | |
153 | //======================================================================= |
154 | //function : Update |
155 | //purpose : |
156 | //======================================================================= |
157 | |
158 | void BRep_CurveOnClosedSurface::Update() |
159 | { |
160 | if (!Precision::IsNegativeInfinite(First())) |
161 | myPCurve2->D0(First(),myUV21); |
162 | if (!Precision::IsPositiveInfinite(Last())) |
163 | myPCurve2->D0(Last(),myUV22); |
164 | BRep_CurveOnSurface::Update(); |
165 | } |
166 | |
167 | |