Warning, /include/opencascade/ElCLib.lxx is written in an unsupported language. File is not indexed.
0001 // Created on: 1991-12-17
0002 // Created by: Jean-Claude Vauthier
0003 // Copyright (c) 1991-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016
0017 #include <gp_Lin.hxx>
0018 #include <gp_Circ.hxx>
0019 #include <gp_Parab.hxx>
0020 #include <gp_Hypr.hxx>
0021 #include <gp_Elips.hxx>
0022 #include <gp_Lin2d.hxx>
0023 #include <gp_Circ2d.hxx>
0024 #include <gp_Parab2d.hxx>
0025 #include <gp_Hypr2d.hxx>
0026 #include <gp_Elips2d.hxx>
0027
0028
0029 inline gp_Pnt ElCLib::Value (const Standard_Real U, const gp_Lin& L) {
0030
0031 return ElCLib::LineValue (U, L.Position());
0032 }
0033
0034
0035
0036 inline gp_Pnt ElCLib::Value (const Standard_Real U, const gp_Circ& C) {
0037
0038 return ElCLib::CircleValue (U, C.Position(), C.Radius());
0039 }
0040
0041
0042 inline void ElCLib::D1 (
0043 const Standard_Real U, const gp_Lin& L, gp_Pnt& P, gp_Vec& V1) {
0044
0045 ElCLib::LineD1 (U, L.Position(), P, V1);
0046 }
0047
0048
0049 inline void ElCLib::D1 (
0050 const Standard_Real U, const gp_Circ& C, gp_Pnt& P, gp_Vec& V1) {
0051
0052 ElCLib::CircleD1 (U, C.Position(), C.Radius(), P, V1);
0053 }
0054
0055
0056 inline void ElCLib::D2 (
0057 const Standard_Real U, const gp_Circ& C, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2) {
0058
0059 ElCLib::CircleD2 (U, C.Position(), C.Radius(), P, V1, V2);
0060 }
0061
0062
0063 inline void ElCLib::D3 (
0064 const Standard_Real U, const gp_Circ& C,
0065 gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3) {
0066
0067 ElCLib::CircleD3 (U, C.Position(), C.Radius(), P, V1, V2, V3);
0068 }
0069
0070
0071
0072 inline gp_Pnt ElCLib::Value (const Standard_Real U, const gp_Elips& E) {
0073 return ElCLib::EllipseValue (U,
0074 E.Position(),
0075 E.MajorRadius(),
0076 E.MinorRadius());
0077 }
0078
0079
0080 inline void ElCLib::D1 (
0081 const Standard_Real U, const gp_Elips& E, gp_Pnt& P, gp_Vec& V1) {
0082
0083 ElCLib::EllipseD1 (U, E.Position(), E.MajorRadius(), E.MinorRadius(), P, V1);
0084 }
0085
0086
0087
0088 inline void ElCLib::D2 (
0089 const Standard_Real U, const gp_Elips& E, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2) {
0090
0091 ElCLib::EllipseD2 (U,
0092 E.Position(),
0093 E.MajorRadius(),
0094 E.MinorRadius(),
0095 P, V1, V2);
0096 }
0097
0098
0099 inline void ElCLib::D3 (
0100 const Standard_Real U, const gp_Elips& E,
0101 gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3) {
0102
0103 ElCLib::EllipseD3 (U,
0104 E.Position(),
0105 E.MajorRadius(),
0106 E.MinorRadius(),
0107 P, V1, V2, V3);
0108 }
0109
0110
0111
0112 inline gp_Pnt ElCLib::Value (const Standard_Real U, const gp_Hypr& H) {
0113
0114 return ElCLib::HyperbolaValue (U,
0115 H.Position(),
0116 H.MajorRadius(),
0117 H.MinorRadius());
0118 }
0119
0120
0121
0122 inline void ElCLib::D1 (
0123 const Standard_Real U, const gp_Hypr& H, gp_Pnt& P, gp_Vec& V1) {
0124
0125 ElCLib::HyperbolaD1 (U,
0126 H.Position(),
0127 H.MajorRadius(),
0128 H.MinorRadius(),
0129 P, V1);
0130 }
0131
0132
0133 inline void ElCLib::D2 (
0134 const Standard_Real U, const gp_Hypr& H, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2) {
0135
0136 ElCLib::HyperbolaD2 (U,
0137 H.Position(),
0138 H.MajorRadius(),
0139 H.MinorRadius(),
0140 P, V1, V2);
0141 }
0142
0143
0144 inline void ElCLib::D3 (
0145 const Standard_Real U, const gp_Hypr& H,
0146 gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3) {
0147
0148 ElCLib::HyperbolaD3 (U,
0149 H.Position(),
0150 H.MajorRadius(),
0151 H.MinorRadius(),
0152 P, V1, V2, V3);
0153 }
0154
0155
0156
0157 inline gp_Pnt ElCLib::Value (const Standard_Real U, const gp_Parab& Prb) {
0158
0159 return ElCLib::ParabolaValue (U, Prb.Position(), Prb.Focal());
0160 }
0161
0162
0163
0164 inline void ElCLib::D1 (
0165 const Standard_Real U, const gp_Parab& Prb, gp_Pnt& P, gp_Vec& V1) {
0166
0167 ElCLib::ParabolaD1 (U, Prb.Position(), Prb.Focal(), P, V1);
0168 }
0169
0170
0171
0172 inline void ElCLib::D2 (
0173 const Standard_Real U, const gp_Parab& Prb,
0174 gp_Pnt& P, gp_Vec& V1, gp_Vec& V2) {
0175
0176 ElCLib::ParabolaD2 (U, Prb.Position(), Prb.Focal(), P, V1, V2);
0177 }
0178
0179
0180
0181 inline gp_Pnt2d ElCLib::Value (const Standard_Real U, const gp_Lin2d& L) {
0182
0183 return ElCLib::LineValue (U, L.Position());
0184 }
0185
0186
0187 inline gp_Pnt2d ElCLib::Value (const Standard_Real U, const gp_Circ2d& C) {
0188
0189 return ElCLib::CircleValue (U, C.Axis(), C.Radius());
0190 }
0191
0192
0193 inline gp_Pnt2d ElCLib::Value (const Standard_Real U, const gp_Elips2d& E) {
0194
0195 return ElCLib::EllipseValue (U, E.Axis(), E.MajorRadius(), E.MinorRadius());
0196 }
0197
0198
0199 inline gp_Pnt2d ElCLib::Value (const Standard_Real U, const gp_Hypr2d& H) {
0200
0201 return ElCLib::HyperbolaValue (U,
0202 H.Axis(),
0203 H.MajorRadius(),
0204 H.MinorRadius());
0205 }
0206
0207
0208 inline gp_Pnt2d ElCLib::Value (const Standard_Real U, const gp_Parab2d& Prb) {
0209
0210 return ElCLib::ParabolaValue (U, Prb.Axis(), Prb.Focal());
0211 }
0212
0213
0214 inline void ElCLib::D1 (
0215 const Standard_Real U, const gp_Lin2d& L, gp_Pnt2d& P, gp_Vec2d& V1) {
0216
0217 ElCLib::LineD1 (U, L.Position(), P, V1);
0218 }
0219
0220
0221 inline void ElCLib::D1 (
0222 const Standard_Real U, const gp_Circ2d& C, gp_Pnt2d& P, gp_Vec2d& V1) {
0223
0224 ElCLib::CircleD1 (U, C.Axis(), C.Radius(), P, V1);
0225 }
0226
0227
0228 inline void ElCLib::D1 (
0229 const Standard_Real U, const gp_Elips2d& E, gp_Pnt2d& P, gp_Vec2d& V1) {
0230
0231 ElCLib::EllipseD1 (U, E.Axis(), E.MajorRadius(), E.MinorRadius(), P, V1);
0232 }
0233
0234
0235 inline void ElCLib::D1 (
0236 const Standard_Real U, const gp_Hypr2d& H, gp_Pnt2d& P, gp_Vec2d& V1) {
0237 ElCLib::HyperbolaD1 (U, H.Axis(), H.MajorRadius(), H.MinorRadius(), P, V1);
0238 }
0239
0240
0241 inline void ElCLib::D1 (
0242 const Standard_Real U, const gp_Parab2d& Prb, gp_Pnt2d& P, gp_Vec2d& V1) {
0243
0244 ElCLib::ParabolaD1 (U, Prb.Axis(), Prb.Focal(), P, V1);
0245 }
0246
0247
0248 inline void ElCLib::D2 (
0249 const Standard_Real U, const gp_Circ2d& C,
0250 gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2) {
0251
0252 ElCLib::CircleD2 (U, C.Axis(), C.Radius(), P, V1, V2);
0253 }
0254
0255
0256 inline void ElCLib::D2 (
0257 const Standard_Real U, const gp_Elips2d& E,
0258 gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2){
0259
0260 ElCLib::EllipseD2 (U, E.Axis(), E.MajorRadius(), E.MinorRadius(), P, V1, V2);
0261 }
0262
0263
0264 inline void ElCLib::D2 (
0265 const Standard_Real U, const gp_Hypr2d& H,
0266 gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2) {
0267
0268 ElCLib::HyperbolaD2 (U,
0269 H.Axis(),
0270 H.MajorRadius(),
0271 H.MinorRadius(),
0272 P, V1, V2);
0273 }
0274
0275
0276 inline void ElCLib::D2 (
0277 const Standard_Real U, const gp_Parab2d& Prb,
0278 gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2) {
0279
0280 ElCLib::ParabolaD2 (U, Prb.Axis(), Prb.Focal(), P, V1, V2);
0281 }
0282
0283
0284 inline void ElCLib::D3 (
0285 const Standard_Real U, const gp_Circ2d& C,
0286 gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2, gp_Vec2d& V3) {
0287
0288 ElCLib::CircleD3 (U, C.Axis(), C.Radius(), P, V1, V2, V3);
0289 }
0290
0291
0292 inline void ElCLib::D3 (
0293 const Standard_Real U, const gp_Elips2d& E,
0294 gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2, gp_Vec2d& V3) {
0295
0296 ElCLib::EllipseD3 (U,
0297 E.Axis(),
0298 E.MajorRadius(),
0299 E.MinorRadius(),
0300 P, V1, V2, V3);
0301 }
0302
0303
0304 inline void ElCLib::D3 (
0305 const Standard_Real U, const gp_Hypr2d& H,
0306 gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2, gp_Vec2d& V3) {
0307
0308 ElCLib::HyperbolaD3 (U,
0309 H.Axis(),
0310 H.MajorRadius(),
0311 H.MinorRadius(),
0312 P, V1, V2, V3);
0313 }
0314
0315
0316
0317 inline gp_Vec ElCLib::DN (
0318 const Standard_Real U, const gp_Lin& L, const Standard_Integer N) {
0319
0320 return ElCLib::LineDN (U, L.Position(), N);
0321 }
0322
0323
0324 inline gp_Vec ElCLib::DN (
0325 const Standard_Real U, const gp_Circ& C, const Standard_Integer N) {
0326
0327 return ElCLib::CircleDN (U, C.Position(), C.Radius(), N);
0328 }
0329
0330
0331 inline gp_Vec ElCLib::DN (
0332 const Standard_Real U, const gp_Elips& E, const Standard_Integer N) {
0333
0334 return ElCLib::EllipseDN (U,
0335 E.Position(),
0336 E.MajorRadius(),
0337 E.MinorRadius(),
0338 N);
0339 }
0340
0341
0342 inline gp_Vec ElCLib::DN (
0343 const Standard_Real U, const gp_Hypr& H, const Standard_Integer N) {
0344
0345 return ElCLib::HyperbolaDN (U,
0346 H.Position(),
0347 H.MajorRadius(),
0348 H.MinorRadius(),
0349 N);
0350 }
0351
0352 inline gp_Vec ElCLib::DN (
0353 const Standard_Real U, const gp_Parab& Prb, const Standard_Integer N) {
0354
0355 return ElCLib::ParabolaDN (U, Prb.Position(), Prb.Focal(), N);
0356 }
0357
0358
0359 inline gp_Vec2d ElCLib::DN (
0360 const Standard_Real U, const gp_Lin2d& L, const Standard_Integer N) {
0361
0362 return ElCLib::LineDN (U, L.Position(), N);
0363 }
0364
0365
0366 inline gp_Vec2d ElCLib::DN (
0367 const Standard_Real U, const gp_Circ2d& C, const Standard_Integer N) {
0368
0369 return ElCLib::CircleDN (U, C.Axis(), C.Radius(), N);
0370 }
0371
0372
0373 inline gp_Vec2d ElCLib::DN (
0374 const Standard_Real U, const gp_Elips2d& E, const Standard_Integer N){
0375 return ElCLib::EllipseDN (U, E.Axis(), E.MajorRadius(), E.MinorRadius(), N);
0376 }
0377
0378
0379 inline gp_Vec2d ElCLib::DN (
0380 const Standard_Real U, const gp_Hypr2d& H, const Standard_Integer N) {
0381
0382 return ElCLib::HyperbolaDN (U,
0383 H.Axis(),
0384 H.MajorRadius(),
0385 H.MinorRadius(),
0386 N);
0387 }
0388
0389
0390 inline gp_Vec2d ElCLib::DN (
0391 const Standard_Real U, const gp_Parab2d& Prb, const Standard_Integer N){
0392
0393 return ElCLib::ParabolaDN (U, Prb.Axis(), Prb.Focal(), N);
0394 }
0395
0396
0397
0398 inline Standard_Real ElCLib::Parameter (const gp_Lin& L, const gp_Pnt& P) {
0399
0400 return ElCLib::LineParameter (L.Position(), P);
0401 }
0402
0403
0404 inline Standard_Real ElCLib::Parameter (const gp_Circ& C, const gp_Pnt& P) {
0405
0406 return ElCLib::CircleParameter (C.Position(), P);
0407 }
0408
0409
0410 inline Standard_Real ElCLib::Parameter (const gp_Elips& E, const gp_Pnt& P) {
0411
0412 return ElCLib::EllipseParameter (E.Position(),
0413 E.MajorRadius(),
0414 E.MinorRadius(),
0415 P);
0416 }
0417
0418
0419 inline Standard_Real ElCLib::Parameter (const gp_Hypr& H, const gp_Pnt& P) {
0420
0421 return ElCLib::HyperbolaParameter (H.Position(),
0422 H.MajorRadius(),
0423 H.MinorRadius(),
0424 P);
0425 }
0426
0427
0428 inline Standard_Real ElCLib::Parameter (const gp_Parab& Prb, const gp_Pnt& P) {
0429
0430 return ElCLib::ParabolaParameter (Prb.Position(), P);
0431 }
0432
0433
0434
0435 inline Standard_Real ElCLib::Parameter (const gp_Lin2d& L, const gp_Pnt2d& P) {
0436
0437 return ElCLib::LineParameter (L.Position(), P);
0438 }
0439
0440
0441 inline Standard_Real ElCLib::Parameter (
0442 const gp_Circ2d& C, const gp_Pnt2d& P) {
0443
0444 return ElCLib::CircleParameter (C.Axis(), P);
0445 }
0446
0447
0448 inline Standard_Real ElCLib::Parameter (
0449 const gp_Elips2d& E, const gp_Pnt2d& P) {
0450
0451 return ElCLib::EllipseParameter (E.Axis(),
0452 E.MajorRadius(),
0453 E.MinorRadius(),
0454 P);
0455 }
0456
0457
0458 inline Standard_Real ElCLib::Parameter (
0459 const gp_Hypr2d& H, const gp_Pnt2d& P) {
0460
0461 return ElCLib::HyperbolaParameter (H.Axis(),
0462 H.MajorRadius(),
0463 H.MinorRadius(),
0464 P);
0465 }
0466
0467
0468 inline Standard_Real ElCLib::Parameter (
0469 const gp_Parab2d& Prb, const gp_Pnt2d& P) {
0470
0471 return ElCLib::ParabolaParameter (Prb.Axis(), P);
0472 }
0473
0474