0023948: Wrong intersection between a surface of revolution and a plane.
[occt.git] / src / StepGeom / StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface.cxx
CommitLineData
973c2be1 1// Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 2//
973c2be1 3// This file is part of Open CASCADE Technology software library.
b311480e 4//
d5f74e42 5// This library is free software; you can redistribute it and/or modify it under
6// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 7// by the Free Software Foundation, with special exception defined in the file
8// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9// distribution for complete text of the license and disclaimer of any warranty.
b311480e 10//
973c2be1 11// Alternatively, this file may be used under the terms of Open CASCADE
12// commercial license or contractual agreement.
b311480e 13
7fd59977 14#include <StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface.ixx>
15
16#include <StepGeom_BSplineSurfaceWithKnots.hxx>
17
18#include <StepGeom_RationalBSplineSurface.hxx>
19
20
21StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface () {}
22
23void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::Init(
24 const Handle(TCollection_HAsciiString)& aName,
25 const Standard_Integer aUDegree,
26 const Standard_Integer aVDegree,
27 const Handle(StepGeom_HArray2OfCartesianPoint)& aControlPointsList,
28 const StepGeom_BSplineSurfaceForm aSurfaceForm,
29 const StepData_Logical aUClosed,
30 const StepData_Logical aVClosed,
31 const StepData_Logical aSelfIntersect)
32{
33
34 StepGeom_BSplineSurface::Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect);
35}
36
37void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::Init(
38 const Handle(TCollection_HAsciiString)& aName,
39 const Standard_Integer aUDegree,
40 const Standard_Integer aVDegree,
41 const Handle(StepGeom_HArray2OfCartesianPoint)& aControlPointsList,
42 const StepGeom_BSplineSurfaceForm aSurfaceForm,
43 const StepData_Logical aUClosed,
44 const StepData_Logical aVClosed,
45 const StepData_Logical aSelfIntersect,
46 const Handle(StepGeom_BSplineSurfaceWithKnots)& aBSplineSurfaceWithKnots,
47 const Handle(StepGeom_RationalBSplineSurface)& aRationalBSplineSurface)
48{
49 // --- classe own fields ---
50 bSplineSurfaceWithKnots = aBSplineSurfaceWithKnots;
51 rationalBSplineSurface = aRationalBSplineSurface;
52 // --- classe inherited fields ---
53 StepGeom_BSplineSurface::Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect);
54}
55
56
57void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::Init(
58 const Handle(TCollection_HAsciiString)& aName,
59 const Standard_Integer aUDegree,
60 const Standard_Integer aVDegree,
61 const Handle(StepGeom_HArray2OfCartesianPoint)& aControlPointsList,
62 const StepGeom_BSplineSurfaceForm aSurfaceForm,
63 const StepData_Logical aUClosed,
64 const StepData_Logical aVClosed,
65 const StepData_Logical aSelfIntersect,
66 const Handle(TColStd_HArray1OfInteger)& aUMultiplicities,
67 const Handle(TColStd_HArray1OfInteger)& aVMultiplicities,
68 const Handle(TColStd_HArray1OfReal)& aUKnots,
69 const Handle(TColStd_HArray1OfReal)& aVKnots,
70 const StepGeom_KnotType aKnotSpec,
71 const Handle(TColStd_HArray2OfReal)& aWeightsData)
72{
73 // --- classe inherited fields ---
74
75 StepGeom_BSplineSurface::Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect);
76
77 // --- ANDOR componant fields ---
78
79 bSplineSurfaceWithKnots = new StepGeom_BSplineSurfaceWithKnots();
80 bSplineSurfaceWithKnots->Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect, aUMultiplicities, aVMultiplicities, aUKnots, aVKnots, aKnotSpec);
81
82 // --- ANDOR componant fields ---
83
84 rationalBSplineSurface = new StepGeom_RationalBSplineSurface();
85 rationalBSplineSurface->Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect, aWeightsData);
86}
87
88
89void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetBSplineSurfaceWithKnots(const Handle(StepGeom_BSplineSurfaceWithKnots)& aBSplineSurfaceWithKnots)
90{
91 bSplineSurfaceWithKnots = aBSplineSurfaceWithKnots;
92}
93
94Handle(StepGeom_BSplineSurfaceWithKnots) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::BSplineSurfaceWithKnots() const
95{
96 return bSplineSurfaceWithKnots;
97}
98
99void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetRationalBSplineSurface(const Handle(StepGeom_RationalBSplineSurface)& aRationalBSplineSurface)
100{
101 rationalBSplineSurface = aRationalBSplineSurface;
102}
103
104Handle(StepGeom_RationalBSplineSurface) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::RationalBSplineSurface() const
105{
106 return rationalBSplineSurface;
107}
108
109 //--- Specific Methods for AND classe field access ---
110
111
112void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetUMultiplicities(const Handle(TColStd_HArray1OfInteger)& aUMultiplicities)
113{
114 bSplineSurfaceWithKnots->SetUMultiplicities(aUMultiplicities);
115}
116
117Handle(TColStd_HArray1OfInteger) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::UMultiplicities() const
118{
119 return bSplineSurfaceWithKnots->UMultiplicities();
120}
121
122Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::UMultiplicitiesValue(const Standard_Integer num) const
123{
124 return bSplineSurfaceWithKnots->UMultiplicitiesValue(num);
125}
126
127Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbUMultiplicities () const
128{
129 return bSplineSurfaceWithKnots->NbUMultiplicities();
130}
131
132void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetVMultiplicities(const Handle(TColStd_HArray1OfInteger)& aVMultiplicities)
133{
134 bSplineSurfaceWithKnots->SetVMultiplicities(aVMultiplicities);
135}
136
137Handle(TColStd_HArray1OfInteger) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::VMultiplicities() const
138{
139 return bSplineSurfaceWithKnots->VMultiplicities();
140}
141
142Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::VMultiplicitiesValue(const Standard_Integer num) const
143{
144 return bSplineSurfaceWithKnots->VMultiplicitiesValue(num);
145}
146
147Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbVMultiplicities () const
148{
149 return bSplineSurfaceWithKnots->NbVMultiplicities();
150}
151
152void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetUKnots(const Handle(TColStd_HArray1OfReal)& aUKnots)
153{
154 bSplineSurfaceWithKnots->SetUKnots(aUKnots);
155}
156
157Handle(TColStd_HArray1OfReal) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::UKnots() const
158{
159 return bSplineSurfaceWithKnots->UKnots();
160}
161
162Standard_Real StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::UKnotsValue(const Standard_Integer num) const
163{
164 return bSplineSurfaceWithKnots->UKnotsValue(num);
165}
166
167Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbUKnots () const
168{
169 return bSplineSurfaceWithKnots->NbUKnots();
170}
171
172void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetVKnots(const Handle(TColStd_HArray1OfReal)& aVKnots)
173{
174 bSplineSurfaceWithKnots->SetVKnots(aVKnots);
175}
176
177Handle(TColStd_HArray1OfReal) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::VKnots() const
178{
179 return bSplineSurfaceWithKnots->VKnots();
180}
181
182Standard_Real StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::VKnotsValue(const Standard_Integer num) const
183{
184 return bSplineSurfaceWithKnots->VKnotsValue(num);
185}
186
187Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbVKnots () const
188{
189 return bSplineSurfaceWithKnots->NbVKnots();
190}
191
192void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetKnotSpec(const StepGeom_KnotType aKnotSpec)
193{
194 bSplineSurfaceWithKnots->SetKnotSpec(aKnotSpec);
195}
196
197StepGeom_KnotType StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::KnotSpec() const
198{
199 return bSplineSurfaceWithKnots->KnotSpec();
200}
201
202 //--- Specific Methods for AND classe field access ---
203
204
205void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetWeightsData(const Handle(TColStd_HArray2OfReal)& aWeightsData)
206{
207 rationalBSplineSurface->SetWeightsData(aWeightsData);
208}
209
210Handle(TColStd_HArray2OfReal) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::WeightsData() const
211{
212 return rationalBSplineSurface->WeightsData();
213}
214
215Standard_Real StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::WeightsDataValue(const Standard_Integer num1,const Standard_Integer num2) const
216{
217 return rationalBSplineSurface->WeightsDataValue(num1,num2);
218}
219
220Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbWeightsDataI () const
221{
222 return rationalBSplineSurface->NbWeightsDataI ();
223}
224
225Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbWeightsDataJ () const
226{
227 return rationalBSplineSurface->NbWeightsDataJ ();
228}