1// Created on: 1995-07-20
2// Created by: Modelistation
3// Copyright (c) 1995-1999 Matra Datavision
4// Copyright (c) 1999-2014 OPEN CASCADE SAS
5//
6// This file is part of Open CASCADE Technology software library.
7//
8// This library is free software; you can redistribute it and/or modify it under
9// the terms of the GNU Lesser General Public License version 2.1 as published
10// by the Free Software Foundation, with special exception defined in the file
11// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12// distribution for complete text of the license and disclaimer of any warranty.
13//
14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
16
17#include <gp_Pnt.hxx>
18#include <gp_Vec.hxx>
19#include <gp_Pln.hxx>
20#include <gp_Cylinder.hxx>
21#include <gp_Cone.hxx>
22#include <gp_Torus.hxx>
23#include <gp_Sphere.hxx>
24#include <gp_Ax1.hxx>
25#include <gp_Dir.hxx>
26#include <Geom_BezierSurface.hxx>
27#include <Geom_BSplineSurface.hxx>
28#include <Adaptor3d_Surface.hxx>
29#include <Adaptor3d_Curve.hxx>
30
31inline Standard_Real BRepApprox_SurfaceTool::FirstUParameter(const BRepAdaptor_Surface& Surf){  return Surf.FirstUParameter(); }
32inline Standard_Real BRepApprox_SurfaceTool::FirstVParameter(const BRepAdaptor_Surface& Surf){  return Surf.FirstVParameter();}
33inline Standard_Real BRepApprox_SurfaceTool::LastUParameter(const BRepAdaptor_Surface& Surf){  return Surf.LastUParameter();}
34inline Standard_Real BRepApprox_SurfaceTool::LastVParameter(const BRepAdaptor_Surface& Surf){  return Surf.LastVParameter();}
35
36inline Standard_Integer BRepApprox_SurfaceTool::NbUIntervals(const BRepAdaptor_Surface& Surf,
37							  const GeomAbs_Shape S){
38  return Surf.NbUIntervals(S);
39}
40
41inline Standard_Integer BRepApprox_SurfaceTool::NbVIntervals(const BRepAdaptor_Surface& Surf,
42							  const GeomAbs_Shape S){
43  return Surf.NbVIntervals(S);
44}
45
46inline void  BRepApprox_SurfaceTool::UIntervals(const BRepAdaptor_Surface& Surf,
47							TColStd_Array1OfReal& Tab,
48							const GeomAbs_Shape S){
49  Surf.UIntervals(Tab,S);
50}
51
52inline void  BRepApprox_SurfaceTool::VIntervals(const BRepAdaptor_Surface& Surf,
53							TColStd_Array1OfReal& Tab,
54							const GeomAbs_Shape S){
55  Surf.VIntervals(Tab,S);
56}
57
58
59inline Handle(Adaptor3d_Surface)  BRepApprox_SurfaceTool::UTrim(const BRepAdaptor_Surface& Surf,
60								   const Standard_Real F,
61								   const Standard_Real L,
62								   const Standard_Real Tol) {
63  return Surf.UTrim(F,L,Tol);
64}
65
66inline Handle(Adaptor3d_Surface) BRepApprox_SurfaceTool::VTrim(const BRepAdaptor_Surface& Surf,
67								  const Standard_Real F,
68								  const Standard_Real L,
69								  const Standard_Real Tol) {
70  return Surf.VTrim(F,L,Tol);
71}
72
73
74
75
76inline Standard_Boolean BRepApprox_SurfaceTool::IsUClosed(const BRepAdaptor_Surface& S)
77{
78  return S.IsUClosed();
79}
80
81inline Standard_Boolean BRepApprox_SurfaceTool::IsVClosed(const BRepAdaptor_Surface& S)
82{
83  return S.IsVClosed();
84}
85
86inline Standard_Boolean BRepApprox_SurfaceTool::IsUPeriodic(const BRepAdaptor_Surface& S)
87{
88  return S.IsUPeriodic();
89}
90
91inline Standard_Real BRepApprox_SurfaceTool::UPeriod(const BRepAdaptor_Surface& S)
92{
93  return S.UPeriod();
94}
95
96inline Standard_Boolean BRepApprox_SurfaceTool::IsVPeriodic(const BRepAdaptor_Surface& S)
97{
98  return S.IsVPeriodic();
99}
100
101inline Standard_Real BRepApprox_SurfaceTool::VPeriod(const BRepAdaptor_Surface& S)
102{
103  return S.VPeriod();
104}
105
106inline gp_Pnt BRepApprox_SurfaceTool::Value(const BRepAdaptor_Surface& S,
107					 const Standard_Real U,
108					 const Standard_Real V )
109{
110  return S.Value(U,V);
111}
112
113inline void BRepApprox_SurfaceTool::D0(const BRepAdaptor_Surface& S,
114				    const Standard_Real U,
115				    const Standard_Real V,
116				    gp_Pnt& P)
117{
118  S.D0(U,V,P);
119}
120
121inline void BRepApprox_SurfaceTool::D1(const BRepAdaptor_Surface& S,
122				    const Standard_Real U,
123				    const Standard_Real V,
124				    gp_Pnt& P,
125				    gp_Vec& D1U,
126				    gp_Vec& D1V)
127{
128  S.D1(U,V,P,D1U,D1V);
129}
130
131inline void BRepApprox_SurfaceTool::D2(const BRepAdaptor_Surface& S,
132				    const Standard_Real U,
133				    const Standard_Real V,
134				    gp_Pnt& P,
135				    gp_Vec& D1U,
136				    gp_Vec& D1V,
137				    gp_Vec& D2U,
138				    gp_Vec& D2V,
139				    gp_Vec& D2UV)
140{
141  S.D2(U,V,P,D1U,D1V,D2U,D2V,D2UV);
142}
143
144inline void BRepApprox_SurfaceTool::D3(const BRepAdaptor_Surface& S,
145				    const Standard_Real U,
146				    const Standard_Real V,
147				    gp_Pnt& P,
148				    gp_Vec& D1U,
149				    gp_Vec& D1V,
150				    gp_Vec& D2U,
151				    gp_Vec& D2V,
152				    gp_Vec& D2UV,
153				    gp_Vec& D3U,
154				    gp_Vec& D3V,
155				    gp_Vec& D3UUV,
156				    gp_Vec& D3UVV)
157{
158  S.D3(U,V,P,D1U,D1V,D2U,D2V,D2UV,D3U,D3V,D3UUV,D3UVV);
159}
160
161inline gp_Vec BRepApprox_SurfaceTool::DN(const BRepAdaptor_Surface& S,
162				      const Standard_Real U,
163				      const Standard_Real V,
164				      const Standard_Integer Nu,
165				      const Standard_Integer Nv)
166{
167  return S.DN(U,V,Nu,Nv);
168}
169
170inline Standard_Real BRepApprox_SurfaceTool::UResolution(const BRepAdaptor_Surface& S,
171						      const Standard_Real R3d)
172{
173  return S.UResolution(R3d);
174}
175
176inline Standard_Real BRepApprox_SurfaceTool::VResolution(const BRepAdaptor_Surface& S,
177						      const Standard_Real R3d)
178{
179  return S.VResolution(R3d);
180}
181
182inline GeomAbs_SurfaceType BRepApprox_SurfaceTool::GetType(const BRepAdaptor_Surface& S )
183{
184  return S.GetType();
185}
186
187inline gp_Pln BRepApprox_SurfaceTool::Plane(const BRepAdaptor_Surface& S)
188{
189  return S.Plane();
190}
191
192inline gp_Cylinder BRepApprox_SurfaceTool::Cylinder(const BRepAdaptor_Surface& S)
193{
194  return S.Cylinder();
195}
196
197inline gp_Cone BRepApprox_SurfaceTool::Cone(const BRepAdaptor_Surface& S)
198{
199  return S.Cone();
200}
201
202inline gp_Sphere BRepApprox_SurfaceTool::Sphere(const BRepAdaptor_Surface& S)
203{
204  return S.Sphere();
205}
206
207inline gp_Torus BRepApprox_SurfaceTool::Torus(const BRepAdaptor_Surface& S)
208{
209  return S.Torus();
210}
211
212
213inline Handle(Geom_BezierSurface) BRepApprox_SurfaceTool::Bezier(const BRepAdaptor_Surface& S) {
214  return(S.Bezier());
215}
216
217inline Handle(Geom_BSplineSurface) BRepApprox_SurfaceTool::BSpline(const BRepAdaptor_Surface& S) {
218  return(S.BSpline());
219}
220
221
222inline gp_Ax1  BRepApprox_SurfaceTool::AxeOfRevolution(const BRepAdaptor_Surface& S) {
223  return(S.AxeOfRevolution());
224}
225
226inline gp_Dir  BRepApprox_SurfaceTool::Direction(const BRepAdaptor_Surface& S) {
227  return(S.Direction());
228}
229
230inline Handle(Adaptor3d_Curve)  BRepApprox_SurfaceTool::BasisCurve(const BRepAdaptor_Surface& S) {
231  return(S.BasisCurve());
232}
233