File indexing completed on 2026-09-18 09:20:06
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _ElSLib_HeaderFile
0018 #define _ElSLib_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <gp_Pnt.hxx>
0025 #include <gp_Vec.hxx>
0026 class gp_Pnt;
0027 class gp_Pln;
0028 class gp_Cone;
0029 class gp_Cylinder;
0030 class gp_Sphere;
0031 class gp_Torus;
0032 class gp_Vec;
0033 class gp_Ax3;
0034 class gp_Lin;
0035 class gp_Circ;
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055 class ElSLib
0056 {
0057 public:
0058 DEFINE_STANDARD_ALLOC
0059
0060
0061
0062
0063 static gp_Pnt Value(const double U, const double V, const gp_Pln& Pl);
0064
0065 static gp_Pnt Value(const double U, const double V, const gp_Cone& C);
0066
0067 static gp_Pnt Value(const double U, const double V, const gp_Cylinder& C);
0068
0069 static gp_Pnt Value(const double U, const double V, const gp_Sphere& S);
0070
0071 static gp_Pnt Value(const double U, const double V, const gp_Torus& T);
0072
0073
0074
0075
0076
0077
0078 static gp_Vec DN(const double U, const double V, const gp_Pln& Pl, const int Nu, const int Nv);
0079
0080 static gp_Vec DN(const double U, const double V, const gp_Cone& C, const int Nu, const int Nv);
0081
0082 static gp_Vec DN(const double U,
0083 const double V,
0084 const gp_Cylinder& C,
0085 const int Nu,
0086 const int Nv);
0087
0088 static gp_Vec DN(const double U, const double V, const gp_Sphere& S, const int Nu, const int Nv);
0089
0090 static gp_Vec DN(const double U, const double V, const gp_Torus& T, const int Nu, const int Nv);
0091
0092
0093
0094
0095 static void D0(const double U, const double V, const gp_Pln& Pl, gp_Pnt& P);
0096
0097 static void D0(const double U, const double V, const gp_Cone& C, gp_Pnt& P);
0098
0099 static void D0(const double U, const double V, const gp_Cylinder& C, gp_Pnt& P);
0100
0101 static void D0(const double U, const double V, const gp_Sphere& S, gp_Pnt& P);
0102
0103 static void D0(const double U, const double V, const gp_Torus& T, gp_Pnt& P);
0104
0105
0106
0107
0108
0109
0110 static void D1(const double U,
0111 const double V,
0112 const gp_Pln& Pl,
0113 gp_Pnt& P,
0114 gp_Vec& Vu,
0115 gp_Vec& Vv);
0116
0117 static void D1(const double U,
0118 const double V,
0119 const gp_Cone& C,
0120 gp_Pnt& P,
0121 gp_Vec& Vu,
0122 gp_Vec& Vv);
0123
0124 static void D1(const double U,
0125 const double V,
0126 const gp_Cylinder& C,
0127 gp_Pnt& P,
0128 gp_Vec& Vu,
0129 gp_Vec& Vv);
0130
0131 static void D1(const double U,
0132 const double V,
0133 const gp_Sphere& S,
0134 gp_Pnt& P,
0135 gp_Vec& Vu,
0136 gp_Vec& Vv);
0137
0138 static void D1(const double U,
0139 const double V,
0140 const gp_Torus& T,
0141 gp_Pnt& P,
0142 gp_Vec& Vu,
0143 gp_Vec& Vv);
0144
0145
0146
0147
0148
0149
0150
0151 static void D2(const double U,
0152 const double V,
0153 const gp_Cone& C,
0154 gp_Pnt& P,
0155 gp_Vec& Vu,
0156 gp_Vec& Vv,
0157 gp_Vec& Vuu,
0158 gp_Vec& Vvv,
0159 gp_Vec& Vuv);
0160
0161 static void D2(const double U,
0162 const double V,
0163 const gp_Cylinder& C,
0164 gp_Pnt& P,
0165 gp_Vec& Vu,
0166 gp_Vec& Vv,
0167 gp_Vec& Vuu,
0168 gp_Vec& Vvv,
0169 gp_Vec& Vuv);
0170
0171 static void D2(const double U,
0172 const double V,
0173 const gp_Sphere& S,
0174 gp_Pnt& P,
0175 gp_Vec& Vu,
0176 gp_Vec& Vv,
0177 gp_Vec& Vuu,
0178 gp_Vec& Vvv,
0179 gp_Vec& Vuv);
0180
0181 static void D2(const double U,
0182 const double V,
0183 const gp_Torus& T,
0184 gp_Pnt& P,
0185 gp_Vec& Vu,
0186 gp_Vec& Vv,
0187 gp_Vec& Vuu,
0188 gp_Vec& Vvv,
0189 gp_Vec& Vuv);
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200 static void D3(const double U,
0201 const double V,
0202 const gp_Cone& C,
0203 gp_Pnt& P,
0204 gp_Vec& Vu,
0205 gp_Vec& Vv,
0206 gp_Vec& Vuu,
0207 gp_Vec& Vvv,
0208 gp_Vec& Vuv,
0209 gp_Vec& Vuuu,
0210 gp_Vec& Vvvv,
0211 gp_Vec& Vuuv,
0212 gp_Vec& Vuvv);
0213
0214 static void D3(const double U,
0215 const double V,
0216 const gp_Cylinder& C,
0217 gp_Pnt& P,
0218 gp_Vec& Vu,
0219 gp_Vec& Vv,
0220 gp_Vec& Vuu,
0221 gp_Vec& Vvv,
0222 gp_Vec& Vuv,
0223 gp_Vec& Vuuu,
0224 gp_Vec& Vvvv,
0225 gp_Vec& Vuuv,
0226 gp_Vec& Vuvv);
0227
0228 static void D3(const double U,
0229 const double V,
0230 const gp_Sphere& S,
0231 gp_Pnt& P,
0232 gp_Vec& Vu,
0233 gp_Vec& Vv,
0234 gp_Vec& Vuu,
0235 gp_Vec& Vvv,
0236 gp_Vec& Vuv,
0237 gp_Vec& Vuuu,
0238 gp_Vec& Vvvv,
0239 gp_Vec& Vuuv,
0240 gp_Vec& Vuvv);
0241
0242
0243
0244
0245
0246
0247
0248
0249
0250 static void D3(const double U,
0251 const double V,
0252 const gp_Torus& T,
0253 gp_Pnt& P,
0254 gp_Vec& Vu,
0255 gp_Vec& Vv,
0256 gp_Vec& Vuu,
0257 gp_Vec& Vvv,
0258 gp_Vec& Vuv,
0259 gp_Vec& Vuuu,
0260 gp_Vec& Vvvv,
0261 gp_Vec& Vuuv,
0262 gp_Vec& Vuvv);
0263
0264 Standard_EXPORT static gp_Pnt PlaneValue(const double U, const double V, const gp_Ax3& Pos);
0265
0266 Standard_EXPORT static gp_Pnt CylinderValue(const double U,
0267 const double V,
0268 const gp_Ax3& Pos,
0269 const double Radius);
0270
0271 Standard_EXPORT static gp_Pnt ConeValue(const double U,
0272 const double V,
0273 const gp_Ax3& Pos,
0274 const double Radius,
0275 const double SAngle);
0276
0277 Standard_EXPORT static gp_Pnt SphereValue(const double U,
0278 const double V,
0279 const gp_Ax3& Pos,
0280 const double Radius);
0281
0282 Standard_EXPORT static gp_Pnt TorusValue(const double U,
0283 const double V,
0284 const gp_Ax3& Pos,
0285 const double MajorRadius,
0286 const double MinorRadius);
0287
0288 Standard_EXPORT static gp_Vec PlaneDN(const double U,
0289 const double V,
0290 const gp_Ax3& Pos,
0291 const int Nu,
0292 const int Nv);
0293
0294 Standard_EXPORT static gp_Vec CylinderDN(const double U,
0295 const double V,
0296 const gp_Ax3& Pos,
0297 const double Radius,
0298 const int Nu,
0299 const int Nv);
0300
0301 Standard_EXPORT static gp_Vec ConeDN(const double U,
0302 const double V,
0303 const gp_Ax3& Pos,
0304 const double Radius,
0305 const double SAngle,
0306 const int Nu,
0307 const int Nv);
0308
0309 Standard_EXPORT static gp_Vec SphereDN(const double U,
0310 const double V,
0311 const gp_Ax3& Pos,
0312 const double Radius,
0313 const int Nu,
0314 const int Nv);
0315
0316 Standard_EXPORT static gp_Vec TorusDN(const double U,
0317 const double V,
0318 const gp_Ax3& Pos,
0319 const double MajorRadius,
0320 const double MinorRadius,
0321 const int Nu,
0322 const int Nv);
0323
0324 Standard_EXPORT static void PlaneD0(const double U, const double V, const gp_Ax3& Pos, gp_Pnt& P);
0325
0326 Standard_EXPORT static void ConeD0(const double U,
0327 const double V,
0328 const gp_Ax3& Pos,
0329 const double Radius,
0330 const double SAngle,
0331 gp_Pnt& P);
0332
0333 Standard_EXPORT static void CylinderD0(const double U,
0334 const double V,
0335 const gp_Ax3& Pos,
0336 const double Radius,
0337 gp_Pnt& P);
0338
0339 Standard_EXPORT static void SphereD0(const double U,
0340 const double V,
0341 const gp_Ax3& Pos,
0342 const double Radius,
0343 gp_Pnt& P);
0344
0345 Standard_EXPORT static void TorusD0(const double U,
0346 const double V,
0347 const gp_Ax3& Pos,
0348 const double MajorRadius,
0349 const double MinorRadius,
0350 gp_Pnt& P);
0351
0352 Standard_EXPORT static void PlaneD1(const double U,
0353 const double V,
0354 const gp_Ax3& Pos,
0355 gp_Pnt& P,
0356 gp_Vec& Vu,
0357 gp_Vec& Vv);
0358
0359 Standard_EXPORT static void ConeD1(const double U,
0360 const double V,
0361 const gp_Ax3& Pos,
0362 const double Radius,
0363 const double SAngle,
0364 gp_Pnt& P,
0365 gp_Vec& Vu,
0366 gp_Vec& Vv);
0367
0368 Standard_EXPORT static void CylinderD1(const double U,
0369 const double V,
0370 const gp_Ax3& Pos,
0371 const double Radius,
0372 gp_Pnt& P,
0373 gp_Vec& Vu,
0374 gp_Vec& Vv);
0375
0376 Standard_EXPORT static void SphereD1(const double U,
0377 const double V,
0378 const gp_Ax3& Pos,
0379 const double Radius,
0380 gp_Pnt& P,
0381 gp_Vec& Vu,
0382 gp_Vec& Vv);
0383
0384 Standard_EXPORT static void TorusD1(const double U,
0385 const double V,
0386 const gp_Ax3& Pos,
0387 const double MajorRadius,
0388 const double MinorRadius,
0389 gp_Pnt& P,
0390 gp_Vec& Vu,
0391 gp_Vec& Vv);
0392
0393 Standard_EXPORT static void ConeD2(const double U,
0394 const double V,
0395 const gp_Ax3& Pos,
0396 const double Radius,
0397 const double SAngle,
0398 gp_Pnt& P,
0399 gp_Vec& Vu,
0400 gp_Vec& Vv,
0401 gp_Vec& Vuu,
0402 gp_Vec& Vvv,
0403 gp_Vec& Vuv);
0404
0405 Standard_EXPORT static void CylinderD2(const double U,
0406 const double V,
0407 const gp_Ax3& Pos,
0408 const double Radius,
0409 gp_Pnt& P,
0410 gp_Vec& Vu,
0411 gp_Vec& Vv,
0412 gp_Vec& Vuu,
0413 gp_Vec& Vvv,
0414 gp_Vec& Vuv);
0415
0416 Standard_EXPORT static void SphereD2(const double U,
0417 const double V,
0418 const gp_Ax3& Pos,
0419 const double Radius,
0420 gp_Pnt& P,
0421 gp_Vec& Vu,
0422 gp_Vec& Vv,
0423 gp_Vec& Vuu,
0424 gp_Vec& Vvv,
0425 gp_Vec& Vuv);
0426
0427 Standard_EXPORT static void TorusD2(const double U,
0428 const double V,
0429 const gp_Ax3& Pos,
0430 const double MajorRadius,
0431 const double MinorRadius,
0432 gp_Pnt& P,
0433 gp_Vec& Vu,
0434 gp_Vec& Vv,
0435 gp_Vec& Vuu,
0436 gp_Vec& Vvv,
0437 gp_Vec& Vuv);
0438
0439 Standard_EXPORT static void ConeD3(const double U,
0440 const double V,
0441 const gp_Ax3& Pos,
0442 const double Radius,
0443 const double SAngle,
0444 gp_Pnt& P,
0445 gp_Vec& Vu,
0446 gp_Vec& Vv,
0447 gp_Vec& Vuu,
0448 gp_Vec& Vvv,
0449 gp_Vec& Vuv,
0450 gp_Vec& Vuuu,
0451 gp_Vec& Vvvv,
0452 gp_Vec& Vuuv,
0453 gp_Vec& Vuvv);
0454
0455 Standard_EXPORT static void CylinderD3(const double U,
0456 const double V,
0457 const gp_Ax3& Pos,
0458 const double Radius,
0459 gp_Pnt& P,
0460 gp_Vec& Vu,
0461 gp_Vec& Vv,
0462 gp_Vec& Vuu,
0463 gp_Vec& Vvv,
0464 gp_Vec& Vuv,
0465 gp_Vec& Vuuu,
0466 gp_Vec& Vvvv,
0467 gp_Vec& Vuuv,
0468 gp_Vec& Vuvv);
0469
0470 Standard_EXPORT static void SphereD3(const double U,
0471 const double V,
0472 const gp_Ax3& Pos,
0473 const double Radius,
0474 gp_Pnt& P,
0475 gp_Vec& Vu,
0476 gp_Vec& Vv,
0477 gp_Vec& Vuu,
0478 gp_Vec& Vvv,
0479 gp_Vec& Vuv,
0480 gp_Vec& Vuuu,
0481 gp_Vec& Vvvv,
0482 gp_Vec& Vuuv,
0483 gp_Vec& Vuvv);
0484
0485
0486
0487
0488 Standard_EXPORT static void TorusD3(const double U,
0489 const double V,
0490 const gp_Ax3& Pos,
0491 const double MajorRadius,
0492 const double MinorRadius,
0493 gp_Pnt& P,
0494 gp_Vec& Vu,
0495 gp_Vec& Vv,
0496 gp_Vec& Vuu,
0497 gp_Vec& Vvv,
0498 gp_Vec& Vuv,
0499 gp_Vec& Vuuu,
0500 gp_Vec& Vvvv,
0501 gp_Vec& Vuuv,
0502 gp_Vec& Vuvv);
0503
0504
0505
0506
0507 static void Parameters(const gp_Pln& Pl, const gp_Pnt& P, double& U, double& V);
0508
0509
0510
0511
0512 static void Parameters(const gp_Cylinder& C, const gp_Pnt& P, double& U, double& V);
0513
0514
0515
0516
0517
0518 static void Parameters(const gp_Cone& C, const gp_Pnt& P, double& U, double& V);
0519
0520
0521
0522
0523
0524 static void Parameters(const gp_Sphere& S, const gp_Pnt& P, double& U, double& V);
0525
0526
0527
0528
0529
0530
0531 static void Parameters(const gp_Torus& T, const gp_Pnt& P, double& U, double& V);
0532
0533
0534
0535
0536 Standard_EXPORT static void PlaneParameters(const gp_Ax3& Pos,
0537 const gp_Pnt& P,
0538 double& U,
0539 double& V);
0540
0541
0542
0543
0544 Standard_EXPORT static void CylinderParameters(const gp_Ax3& Pos,
0545 const double Radius,
0546 const gp_Pnt& P,
0547 double& U,
0548 double& V);
0549
0550
0551
0552
0553
0554 Standard_EXPORT static void ConeParameters(const gp_Ax3& Pos,
0555 const double Radius,
0556 const double SAngle,
0557 const gp_Pnt& P,
0558 double& U,
0559 double& V);
0560
0561
0562
0563
0564
0565 Standard_EXPORT static void SphereParameters(const gp_Ax3& Pos,
0566 const double Radius,
0567 const gp_Pnt& P,
0568 double& U,
0569 double& V);
0570
0571
0572
0573
0574
0575
0576 Standard_EXPORT static void TorusParameters(const gp_Ax3& Pos,
0577 const double MajorRadius,
0578 const double MinorRadius,
0579 const gp_Pnt& P,
0580 double& U,
0581 double& V);
0582
0583
0584 Standard_EXPORT static gp_Lin PlaneUIso(const gp_Ax3& Pos, const double U);
0585
0586
0587 Standard_EXPORT static gp_Lin CylinderUIso(const gp_Ax3& Pos,
0588 const double Radius,
0589 const double U);
0590
0591
0592 Standard_EXPORT static gp_Lin ConeUIso(const gp_Ax3& Pos,
0593 const double Radius,
0594 const double SAngle,
0595 const double U);
0596
0597
0598
0599 Standard_EXPORT static gp_Circ SphereUIso(const gp_Ax3& Pos, const double Radius, const double U);
0600
0601
0602 Standard_EXPORT static gp_Circ TorusUIso(const gp_Ax3& Pos,
0603 const double MajorRadius,
0604 const double MinorRadius,
0605 const double U);
0606
0607
0608 Standard_EXPORT static gp_Lin PlaneVIso(const gp_Ax3& Pos, const double V);
0609
0610
0611 Standard_EXPORT static gp_Circ CylinderVIso(const gp_Ax3& Pos,
0612 const double Radius,
0613 const double V);
0614
0615
0616 Standard_EXPORT static gp_Circ ConeVIso(const gp_Ax3& Pos,
0617 const double Radius,
0618 const double SAngle,
0619 const double V);
0620
0621
0622
0623 Standard_EXPORT static gp_Circ SphereVIso(const gp_Ax3& Pos, const double Radius, const double V);
0624
0625
0626 Standard_EXPORT static gp_Circ TorusVIso(const gp_Ax3& Pos,
0627 const double MajorRadius,
0628 const double MinorRadius,
0629 const double V);
0630 };
0631
0632 #include <ElSLib.lxx>
0633
0634 #endif