1// Created by: Jean-Claude Vauthier 2// Copyright (c) 1995-1999 Matra Datavision 3// Copyright (c) 1999-2014 OPEN CASCADE SAS 4// 5// This file is part of Open CASCADE Technology software library. 6// 7// This library is free software; you can redistribute it and/or modify it under 8// the terms of the GNU Lesser General Public License version 2.1 as published 9// by the Free Software Foundation, with special exception defined in the file 10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 11// distribution for complete text of the license and disclaimer of any warranty. 12// 13// Alternatively, this file may be used under the terms of Open CASCADE 14// commercial license or contractual agreement. 15 16#include <gp_Pln.hxx> 17#include <gp_Sphere.hxx> 18#include <gp_Torus.hxx> 19#include <gp_Cylinder.hxx> 20#include <gp_Cone.hxx> 21#include <gp_Ax3.hxx> 22 23 24inline gp_Pnt ElSLib::Value (const Standard_Real U, const Standard_Real V, const gp_Pln& Pl) { 25 26 return ElSLib::PlaneValue (U, V, Pl.Position()); 27} 28 29 30inline gp_Pnt ElSLib::Value (const Standard_Real U, const Standard_Real V, const gp_Cone& C) { 31 32 return ElSLib::ConeValue (U, V, C.Position(), C.RefRadius(), C.SemiAngle()); 33} 34 35 36inline gp_Pnt ElSLib::Value (const Standard_Real U, const Standard_Real V, const gp_Cylinder& C) { 37 38 return ElSLib::CylinderValue (U, V, C.Position(), C.Radius()); 39} 40 41 42inline gp_Pnt ElSLib::Value (const Standard_Real U, const Standard_Real V, const gp_Sphere& S) { 43 44 return ElSLib::SphereValue (U, V, S.Position(), S.Radius()); 45} 46 47 48inline gp_Pnt ElSLib::Value (const Standard_Real U, const Standard_Real V, const gp_Torus& T) { 49 50 return ElSLib::TorusValue (U, V, T.Position(), T.MajorRadius(), T.MinorRadius()); 51} 52 53 54 55inline gp_Vec ElSLib::DN (const Standard_Real U, const Standard_Real V, const gp_Pln& Pl, const Standard_Integer Nu, const Standard_Integer Nv) { 56 57 return ElSLib::PlaneDN (U, V, Pl.Position(), Nu, Nv); 58} 59 60 61inline gp_Vec ElSLib::DN (const Standard_Real U, const Standard_Real V, const gp_Cone& C, const Standard_Integer Nu, const Standard_Integer Nv) { 62 63 return ElSLib::ConeDN (U, V, C.Position(), C.RefRadius(), C.SemiAngle(), Nu, Nv); 64} 65 66 67inline gp_Vec ElSLib::DN (const Standard_Real U, const Standard_Real V, const gp_Cylinder& C, const Standard_Integer Nu, const Standard_Integer Nv) { 68 69 return ElSLib::CylinderDN (U, V, C.Position(), C.Radius(), Nu, Nv); 70} 71 72 73inline gp_Vec ElSLib::DN (const Standard_Real U, const Standard_Real V, const gp_Sphere& S, const Standard_Integer Nu, const Standard_Integer Nv) { 74 75 return ElSLib::SphereDN (U, V, S.Position(), S.Radius(), Nu, Nv); 76} 77 78 79inline gp_Vec ElSLib::DN (const Standard_Real U, const Standard_Real V, const gp_Torus& T, const Standard_Integer Nu, const Standard_Integer Nv) { 80 81 return ElSLib::TorusDN (U, V, T.Position(), T.MajorRadius(), T.MinorRadius(), Nu, Nv); 82} 83 84 85 86 87inline void ElSLib::D0 (const Standard_Real U, const Standard_Real V, const gp_Pln& Pl, gp_Pnt& P) { 88 89 ElSLib::PlaneD0 (U, V, Pl.Position(), P); 90} 91 92inline void ElSLib::D0 (const Standard_Real U, const Standard_Real V, const gp_Cone& C, gp_Pnt& P) { 93 94 ElSLib::ConeD0 (U, V, C.Position(), C.RefRadius(), C.SemiAngle(), P); 95} 96 97inline void ElSLib::D0 (const Standard_Real U, const Standard_Real V, const gp_Cylinder& C, gp_Pnt& P) { 98 99 ElSLib::CylinderD0 (U, V, C.Position(), C.Radius(), P); 100} 101 102inline void ElSLib::D0 (const Standard_Real U, const Standard_Real V, const gp_Sphere& S, gp_Pnt& P) { 103 104 ElSLib::SphereD0 (U, V, S.Position(), S.Radius(), P); 105} 106 107inline void ElSLib::D0 (const Standard_Real U, const Standard_Real V, const gp_Torus& T, gp_Pnt& P) { 108 109 ElSLib::TorusD0 (U, V, T.Position(), T.MajorRadius(), T.MinorRadius(), P); 110} 111 112 113 114inline void ElSLib::D1 (const Standard_Real U, const Standard_Real V, const gp_Pln& Pl, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv) { 115 116 ElSLib::PlaneD1 (U, V, Pl.Position(), P, Vu, Vv); 117} 118 119 120inline void ElSLib::D1 (const Standard_Real U, const Standard_Real V, const gp_Cone& C, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv) { 121 122 ElSLib::ConeD1 (U, V, C.Position(), C.RefRadius(), C.SemiAngle(), P, Vu, Vv); 123} 124 125 126inline void ElSLib::D1 (const Standard_Real U, const Standard_Real V, const gp_Cylinder& C, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv) { 127 128 ElSLib::CylinderD1 (U, V, C.Position(), C.Radius(), P, Vu, Vv); 129} 130 131 132inline void ElSLib::D1 (const Standard_Real U, const Standard_Real V, const gp_Sphere& S, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv) { 133 134 ElSLib::SphereD1 (U, V, S.Position(), S.Radius(), P, Vu, Vv); 135} 136 137 138inline void ElSLib::D1 (const Standard_Real U, const Standard_Real V, const gp_Torus& T, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv) { 139 140 ElSLib::TorusD1 (U, V, T.Position(), T.MajorRadius(), T.MinorRadius(), P, Vu, Vv); 141} 142 143 144 145inline void ElSLib::D2 (const Standard_Real U, const Standard_Real V, const gp_Cone& C, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv, gp_Vec& Vuu, gp_Vec& Vvv, gp_Vec& Vuv) { 146 147 ElSLib::ConeD2 (U, V, C.Position(), C.RefRadius(), C.SemiAngle(), P, Vu, Vv, Vuu, Vvv, Vuv); 148} 149 150 151inline void ElSLib::D2 (const Standard_Real U, const Standard_Real V, const gp_Cylinder& C, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv, gp_Vec& Vuu, gp_Vec& Vvv, gp_Vec& Vuv) { 152 153 ElSLib::CylinderD2 (U, V, C.Position(), C.Radius(), P, Vu, Vv, Vuu, Vvv, Vuv); 154} 155 156 157inline void ElSLib::D2 (const Standard_Real U, const Standard_Real V, const gp_Sphere& S, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv, gp_Vec& Vuu, gp_Vec& Vvv, gp_Vec& Vuv) { 158 159 ElSLib::SphereD2 (U, V, S.Position(), S.Radius(), P, Vu, Vv, Vuu, Vvv, Vuv); 160} 161 162 163inline void ElSLib::D2 (const Standard_Real U, const Standard_Real V, const gp_Torus& T, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv, gp_Vec& Vuu, gp_Vec& Vvv, gp_Vec& Vuv) { 164 165 ElSLib::TorusD2 (U, V, T.Position(), T.MajorRadius(), T.MinorRadius(), P, Vu, Vv, Vuu, Vvv, Vuv); 166} 167 168 169 170 171inline void ElSLib::D3 (const Standard_Real U, const Standard_Real V, const gp_Cone& C, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv, gp_Vec& Vuu, gp_Vec& Vvv, gp_Vec& Vuv, gp_Vec& Vuuu, gp_Vec& Vvvv, gp_Vec& Vuuv, gp_Vec& Vuvv) { 172 173 ElSLib::ConeD3 (U, V, C.Position(), C.RefRadius(), C.SemiAngle(), P, Vu, Vv, Vuu, Vvv, Vuv, Vuuu, Vvvv, Vuuv, Vuvv); 174} 175 176 177inline void ElSLib::D3 (const Standard_Real U, const Standard_Real V, const gp_Cylinder& C, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv, gp_Vec& Vuu, gp_Vec& Vvv, gp_Vec& Vuv, gp_Vec& Vuuu, gp_Vec& Vvvv, gp_Vec& Vuuv, gp_Vec& Vuvv) { 178 179 ElSLib::CylinderD3 (U, V, C.Position(), C.Radius(), P, Vu, Vv, Vuu, Vvv, Vuv,Vuuu, Vvvv, Vuuv, Vuvv); 180} 181 182 183inline void ElSLib::D3 (const Standard_Real U, const Standard_Real V, const gp_Sphere& S, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv, gp_Vec& Vuu, gp_Vec& Vvv, gp_Vec& Vuv, gp_Vec& Vuuu, gp_Vec& Vvvv, gp_Vec& Vuuv, gp_Vec& Vuvv) { 184 185 ElSLib::SphereD3 (U, V, S.Position(), S.Radius(), P, Vu, Vv, Vuu, Vvv, Vuv, Vuuu, Vvvv, Vuuv, Vuvv); 186} 187 188 189inline void ElSLib::D3 (const Standard_Real U, const Standard_Real V, const gp_Torus& T, gp_Pnt& P, gp_Vec& Vu, gp_Vec& Vv, gp_Vec& Vuu, gp_Vec& Vvv, gp_Vec& Vuv, gp_Vec& Vuuu, gp_Vec& Vvvv, gp_Vec& Vuuv, gp_Vec& Vuvv) { 190 191 ElSLib::TorusD3 (U, V, T.Position(), T.MajorRadius(), T.MinorRadius(), P, Vu, Vv, Vuu, Vvv, Vuv, Vuuu, Vvvv, Vuuv, Vuvv); 192} 193 194 195 196 197inline void ElSLib::Parameters(const gp_Pln& Pl, 198 const gp_Pnt& P, 199 Standard_Real& U, 200 Standard_Real& V) { 201 202 ElSLib::PlaneParameters(Pl.Position(),P,U,V); 203} 204 205 206inline void ElSLib::Parameters(const gp_Cylinder& C, 207 const gp_Pnt& P, 208 Standard_Real& U, 209 Standard_Real& V) { 210 211 ElSLib::CylinderParameters(C.Position(),C.Radius(),P,U,V); 212} 213 214 215inline void ElSLib::Parameters(const gp_Cone& C, 216 const gp_Pnt& P, 217 Standard_Real& U, 218 Standard_Real& V) { 219 220 ElSLib::ConeParameters(C.Position(),C.RefRadius(),C.SemiAngle(),P,U,V); 221} 222 223 224inline void ElSLib::Parameters(const gp_Sphere& S, 225 const gp_Pnt& P, 226 Standard_Real& U, 227 Standard_Real& V) { 228 229 ElSLib::SphereParameters(S.Position(),S.Radius(),P,U,V); 230} 231 232 233inline void ElSLib::Parameters(const gp_Torus& T, 234 const gp_Pnt& P, 235 Standard_Real& U, 236 Standard_Real& V) { 237 238 ElSLib::TorusParameters(T.Position(),T.MajorRadius(),T.MinorRadius(),P,U,V); 239} 240 241 242