1 // Copyright (c) 1999-2014 OPEN CASCADE SAS
3 // This file is part of Open CASCADE Technology software library.
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
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.
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
14 #include <StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface.ixx>
16 #include <StepGeom_BSplineSurfaceWithKnots.hxx>
18 #include <StepGeom_RationalBSplineSurface.hxx>
21 StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface () {}
23 void 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)
34 StepGeom_BSplineSurface::Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect);
37 void 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)
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);
57 void 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)
73 // --- classe inherited fields ---
75 StepGeom_BSplineSurface::Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect);
77 // --- ANDOR componant fields ---
79 bSplineSurfaceWithKnots = new StepGeom_BSplineSurfaceWithKnots();
80 bSplineSurfaceWithKnots->Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect, aUMultiplicities, aVMultiplicities, aUKnots, aVKnots, aKnotSpec);
82 // --- ANDOR componant fields ---
84 rationalBSplineSurface = new StepGeom_RationalBSplineSurface();
85 rationalBSplineSurface->Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect, aWeightsData);
89 void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetBSplineSurfaceWithKnots(const Handle(StepGeom_BSplineSurfaceWithKnots)& aBSplineSurfaceWithKnots)
91 bSplineSurfaceWithKnots = aBSplineSurfaceWithKnots;
94 Handle(StepGeom_BSplineSurfaceWithKnots) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::BSplineSurfaceWithKnots() const
96 return bSplineSurfaceWithKnots;
99 void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetRationalBSplineSurface(const Handle(StepGeom_RationalBSplineSurface)& aRationalBSplineSurface)
101 rationalBSplineSurface = aRationalBSplineSurface;
104 Handle(StepGeom_RationalBSplineSurface) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::RationalBSplineSurface() const
106 return rationalBSplineSurface;
109 //--- Specific Methods for AND classe field access ---
112 void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetUMultiplicities(const Handle(TColStd_HArray1OfInteger)& aUMultiplicities)
114 bSplineSurfaceWithKnots->SetUMultiplicities(aUMultiplicities);
117 Handle(TColStd_HArray1OfInteger) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::UMultiplicities() const
119 return bSplineSurfaceWithKnots->UMultiplicities();
122 Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::UMultiplicitiesValue(const Standard_Integer num) const
124 return bSplineSurfaceWithKnots->UMultiplicitiesValue(num);
127 Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbUMultiplicities () const
129 return bSplineSurfaceWithKnots->NbUMultiplicities();
132 void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetVMultiplicities(const Handle(TColStd_HArray1OfInteger)& aVMultiplicities)
134 bSplineSurfaceWithKnots->SetVMultiplicities(aVMultiplicities);
137 Handle(TColStd_HArray1OfInteger) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::VMultiplicities() const
139 return bSplineSurfaceWithKnots->VMultiplicities();
142 Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::VMultiplicitiesValue(const Standard_Integer num) const
144 return bSplineSurfaceWithKnots->VMultiplicitiesValue(num);
147 Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbVMultiplicities () const
149 return bSplineSurfaceWithKnots->NbVMultiplicities();
152 void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetUKnots(const Handle(TColStd_HArray1OfReal)& aUKnots)
154 bSplineSurfaceWithKnots->SetUKnots(aUKnots);
157 Handle(TColStd_HArray1OfReal) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::UKnots() const
159 return bSplineSurfaceWithKnots->UKnots();
162 Standard_Real StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::UKnotsValue(const Standard_Integer num) const
164 return bSplineSurfaceWithKnots->UKnotsValue(num);
167 Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbUKnots () const
169 return bSplineSurfaceWithKnots->NbUKnots();
172 void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetVKnots(const Handle(TColStd_HArray1OfReal)& aVKnots)
174 bSplineSurfaceWithKnots->SetVKnots(aVKnots);
177 Handle(TColStd_HArray1OfReal) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::VKnots() const
179 return bSplineSurfaceWithKnots->VKnots();
182 Standard_Real StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::VKnotsValue(const Standard_Integer num) const
184 return bSplineSurfaceWithKnots->VKnotsValue(num);
187 Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbVKnots () const
189 return bSplineSurfaceWithKnots->NbVKnots();
192 void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetKnotSpec(const StepGeom_KnotType aKnotSpec)
194 bSplineSurfaceWithKnots->SetKnotSpec(aKnotSpec);
197 StepGeom_KnotType StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::KnotSpec() const
199 return bSplineSurfaceWithKnots->KnotSpec();
202 //--- Specific Methods for AND classe field access ---
205 void StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::SetWeightsData(const Handle(TColStd_HArray2OfReal)& aWeightsData)
207 rationalBSplineSurface->SetWeightsData(aWeightsData);
210 Handle(TColStd_HArray2OfReal) StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::WeightsData() const
212 return rationalBSplineSurface->WeightsData();
215 Standard_Real StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::WeightsDataValue(const Standard_Integer num1,const Standard_Integer num2) const
217 return rationalBSplineSurface->WeightsDataValue(num1,num2);
220 Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbWeightsDataI () const
222 return rationalBSplineSurface->NbWeightsDataI ();
225 Standard_Integer StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface::NbWeightsDataJ () const
227 return rationalBSplineSurface->NbWeightsDataJ ();