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_UniformSurfaceAndRationalBSplineSurface.ixx>
16 #include <StepGeom_UniformSurface.hxx>
18 #include <StepGeom_RationalBSplineSurface.hxx>
21 StepGeom_UniformSurfaceAndRationalBSplineSurface::StepGeom_UniformSurfaceAndRationalBSplineSurface () {}
23 void StepGeom_UniformSurfaceAndRationalBSplineSurface::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_UniformSurfaceAndRationalBSplineSurface::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_UniformSurface)& aUniformSurface,
47 const Handle(StepGeom_RationalBSplineSurface)& aRationalBSplineSurface)
49 // --- classe own fields ---
50 uniformSurface = aUniformSurface;
51 rationalBSplineSurface = aRationalBSplineSurface;
52 // --- classe inherited fields ---
53 StepGeom_BSplineSurface::Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect);
57 void StepGeom_UniformSurfaceAndRationalBSplineSurface::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_HArray2OfReal)& aWeightsData)
68 // --- classe inherited fields ---
70 StepGeom_BSplineSurface::Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect);
72 // --- ANDOR componant fields ---
74 rationalBSplineSurface = new StepGeom_RationalBSplineSurface();
75 rationalBSplineSurface->Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect, aWeightsData);
77 // --- ANDOR componant fields ---
79 uniformSurface = new StepGeom_UniformSurface();
80 uniformSurface->Init(aName, aUDegree, aVDegree, aControlPointsList, aSurfaceForm, aUClosed, aVClosed, aSelfIntersect);
84 void StepGeom_UniformSurfaceAndRationalBSplineSurface::SetUniformSurface(const Handle(StepGeom_UniformSurface)& aUniformSurface)
86 uniformSurface = aUniformSurface;
89 Handle(StepGeom_UniformSurface) StepGeom_UniformSurfaceAndRationalBSplineSurface::UniformSurface() const
91 return uniformSurface;
94 void StepGeom_UniformSurfaceAndRationalBSplineSurface::SetRationalBSplineSurface(const Handle(StepGeom_RationalBSplineSurface)& aRationalBSplineSurface)
96 rationalBSplineSurface = aRationalBSplineSurface;
99 Handle(StepGeom_RationalBSplineSurface) StepGeom_UniformSurfaceAndRationalBSplineSurface::RationalBSplineSurface() const
101 return rationalBSplineSurface;
104 //--- Specific Methods for AND classe field access ---
107 void StepGeom_UniformSurfaceAndRationalBSplineSurface::SetWeightsData(const Handle(TColStd_HArray2OfReal)& aWeightsData)
109 rationalBSplineSurface->SetWeightsData(aWeightsData);
112 Handle(TColStd_HArray2OfReal) StepGeom_UniformSurfaceAndRationalBSplineSurface::WeightsData() const
114 return rationalBSplineSurface->WeightsData();
117 Standard_Real StepGeom_UniformSurfaceAndRationalBSplineSurface::WeightsDataValue(const Standard_Integer num1,const Standard_Integer num2) const
119 return rationalBSplineSurface->WeightsDataValue(num1,num2);
122 Standard_Integer StepGeom_UniformSurfaceAndRationalBSplineSurface::NbWeightsDataI () const
124 return rationalBSplineSurface->NbWeightsDataI ();
127 Standard_Integer StepGeom_UniformSurfaceAndRationalBSplineSurface::NbWeightsDataJ () const
129 return rationalBSplineSurface->NbWeightsDataJ ();
132 //--- Specific Methods for AND classe field access ---