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