x_ite 10.4.1 → 10.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +4 -4
  2. package/dist/X3DUOM.xml +10 -0
  3. package/dist/assets/components/AnnotationComponent.js +2 -2
  4. package/dist/assets/components/AnnotationComponent.min.js +2 -2
  5. package/dist/assets/components/CADGeometryComponent.js +2 -2
  6. package/dist/assets/components/CADGeometryComponent.min.js +2 -2
  7. package/dist/assets/components/CubeMapTexturingComponent.js +7 -7
  8. package/dist/assets/components/CubeMapTexturingComponent.min.js +2 -2
  9. package/dist/assets/components/DISComponent.js +2 -2
  10. package/dist/assets/components/DISComponent.min.js +2 -2
  11. package/dist/assets/components/EventUtilitiesComponent.js +2 -2
  12. package/dist/assets/components/EventUtilitiesComponent.min.js +2 -2
  13. package/dist/assets/components/Geometry2DComponent.js +2 -2
  14. package/dist/assets/components/Geometry2DComponent.min.js +2 -2
  15. package/dist/assets/components/GeospatialComponent.js +2 -2
  16. package/dist/assets/components/GeospatialComponent.min.js +2 -2
  17. package/dist/assets/components/HAnimComponent.js +2 -2
  18. package/dist/assets/components/HAnimComponent.min.js +2 -2
  19. package/dist/assets/components/KeyDeviceSensorComponent.js +2 -2
  20. package/dist/assets/components/KeyDeviceSensorComponent.min.js +2 -2
  21. package/dist/assets/components/LayoutComponent.js +3 -3
  22. package/dist/assets/components/LayoutComponent.min.js +2 -2
  23. package/dist/assets/components/NURBSComponent.js +88 -76
  24. package/dist/assets/components/NURBSComponent.min.js +2 -2
  25. package/dist/assets/components/ParticleSystemsComponent.js +2 -2
  26. package/dist/assets/components/ParticleSystemsComponent.min.js +2 -2
  27. package/dist/assets/components/PickingComponent.js +2 -2
  28. package/dist/assets/components/PickingComponent.min.js +2 -2
  29. package/dist/assets/components/RigidBodyPhysicsComponent.js +2 -2
  30. package/dist/assets/components/RigidBodyPhysicsComponent.min.js +2 -2
  31. package/dist/assets/components/ScriptingComponent.js +2 -2
  32. package/dist/assets/components/ScriptingComponent.min.js +2 -2
  33. package/dist/assets/components/TextComponent.js +6 -8
  34. package/dist/assets/components/TextComponent.min.js +2 -2
  35. package/dist/assets/components/TextureProjectionComponent.js +14 -8
  36. package/dist/assets/components/TextureProjectionComponent.min.js +2 -2
  37. package/dist/assets/components/Texturing3DComponent.js +16 -16
  38. package/dist/assets/components/Texturing3DComponent.min.js +2 -2
  39. package/dist/assets/components/VolumeRenderingComponent.js +2 -2
  40. package/dist/assets/components/VolumeRenderingComponent.min.js +2 -2
  41. package/dist/assets/components/X_ITEComponent.js +87 -54
  42. package/dist/assets/components/X_ITEComponent.min.js +2 -2
  43. package/dist/example.html +1 -1
  44. package/dist/x_ite.css +1 -1
  45. package/dist/x_ite.d.ts +12 -0
  46. package/dist/x_ite.js +743 -877
  47. package/dist/x_ite.min.js +2 -2
  48. package/dist/x_ite.min.mjs +2 -2
  49. package/dist/x_ite.mjs +743 -877
  50. package/dist/x_ite.zip +0 -0
  51. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
- /* X_ITE v10.4.1 */
2
- const __X_ITE_X3D__ = window [Symbol .for ("X_ITE.X3D-10.4.1")];
1
+ /* X_ITE v10.4.2 */
2
+ const __X_ITE_X3D__ = window [Symbol .for ("X_ITE.X3D-10.4.2")];
3
3
  /******/ (() => { // webpackBootstrap
4
4
  /******/ "use strict";
5
5
  /******/ // The require scope
@@ -499,16 +499,17 @@ var external_X_ITE_X3D_Vector4_default = /*#__PURE__*/__webpack_require__.n(exte
499
499
 
500
500
 
501
501
 
502
- const NURBS = {
502
+ const NURBS =
503
+ {
503
504
  getTessellation (tessellation, dimension)
504
505
  {
505
506
  if (tessellation > 0)
506
- return tessellation + 1;
507
+ return tessellation;
507
508
 
508
509
  if (tessellation < 0)
509
- return -tessellation * dimension + 1;
510
+ return -tessellation * dimension;
510
511
 
511
- return 2 * dimension + 1;
512
+ return 2 * dimension;
512
513
  },
513
514
  getClosed2D (order, knot, weight, controlPoint)
514
515
  {
@@ -526,12 +527,12 @@ const NURBS = {
526
527
 
527
528
  // Check if first and last point are coincident.
528
529
 
529
- if (! controlPoint [0] .equals (controlPoint [dimension - 1]))
530
+ if (!controlPoint [0] .equals (controlPoint [dimension - 1]))
530
531
  return false;
531
532
 
532
533
  // Check if knots are periodic.
533
534
 
534
- if (! this .isPeriodic (order, dimension, knot))
535
+ if (!this .isPeriodic (order, dimension, knot))
535
536
  return false;
536
537
 
537
538
  return true;
@@ -558,12 +559,12 @@ const NURBS = {
558
559
 
559
560
  // Check if first and last point are coincident.
560
561
 
561
- if (! controlPointNode .get1Point (0, firstPoint) .equals (controlPointNode .get1Point (dimension - 1, lastPoint)))
562
+ if (!controlPointNode .get1Point (0, firstPoint) .equals (controlPointNode .get1Point (dimension - 1, lastPoint)))
562
563
  return false;
563
564
 
564
565
  // Check if knots are periodic.
565
566
 
566
- if (! this .isPeriodic (order, dimension, knot))
567
+ if (!this .isPeriodic (order, dimension, knot))
567
568
  return false;
568
569
 
569
570
  return true;
@@ -595,13 +596,13 @@ const NURBS = {
595
596
 
596
597
  // Check if first and last point are coincident.
597
598
 
598
- if (! controlPointNode .get1Point (first, firstPoint) .equals (controlPointNode .get1Point (last, lastPoint)))
599
+ if (!controlPointNode .get1Point (first, firstPoint) .equals (controlPointNode .get1Point (last, lastPoint)))
599
600
  return false;
600
601
  }
601
602
 
602
603
  // Check if knots are periodic.
603
604
 
604
- if (! this .isPeriodic (uOrder, uDimension, uKnot))
605
+ if (!this .isPeriodic (uOrder, uDimension, uKnot))
605
606
  return false;
606
607
 
607
608
  return true;
@@ -633,13 +634,13 @@ const NURBS = {
633
634
 
634
635
  // Check if first and last point are coincident.
635
636
 
636
- if (! controlPointNode .get1Point (first, firstPoint) .equals (controlPointNode .get1Point (last, lastPoint)))
637
+ if (!controlPointNode .get1Point (first, firstPoint) .equals (controlPointNode .get1Point (last, lastPoint)))
637
638
  return false;
638
639
  }
639
640
 
640
641
  // Check if knots are periodic.
641
642
 
642
- if (! this .isPeriodic (vOrder, vDimension, vKnot))
643
+ if (!this .isPeriodic (vOrder, vDimension, vKnot))
643
644
  return false;
644
645
 
645
646
  return true;
@@ -680,9 +681,11 @@ const NURBS = {
680
681
  },
681
682
  getKnots (result, closed, order, dimension, knot)
682
683
  {
683
- const knots = result || [ ];
684
+ const
685
+ length = dimension + order,
686
+ knots = result || [ ];
684
687
 
685
- for (let i = 0, length = knot .length; i < length; ++ i)
688
+ for (let i = 0, l = knot .length; i < l; ++ i)
686
689
  knots [i] = knot [i];
687
690
 
688
691
  knots .length = knot .length;
@@ -692,15 +695,15 @@ const NURBS = {
692
695
 
693
696
  let generateUniform = true;
694
697
 
695
- if (knots .length === dimension + order)
698
+ if (knots .length === length)
696
699
  {
697
700
  generateUniform = false;
698
701
 
699
702
  let consecutiveKnots = 0;
700
703
 
701
- for (let i = 1, length = knots .length; i < length; ++ i)
704
+ for (let i = 1; i < length; ++ i)
702
705
  {
703
- if (knots [i] == knots [i - 1])
706
+ if (knots [i] === knots [i - 1])
704
707
  ++ consecutiveKnots;
705
708
  else
706
709
  consecutiveKnots = 0;
@@ -715,13 +718,39 @@ const NURBS = {
715
718
 
716
719
  if (generateUniform)
717
720
  {
718
- for (let i = 0, length = dimension + order; i < length; ++ i)
719
- knots [i] = i / (length - 1);
721
+ if (closed)
722
+ {
723
+ // Generate periodic uniform knots.
724
+
725
+ for (let i = 0; i < length; ++ i)
726
+ knots [i] = i;
727
+ }
728
+ else
729
+ {
730
+ // Generate pinned uniform knots.
731
+
732
+ let
733
+ i = 0,
734
+ k = 1;
735
+
736
+ for (; i < order; ++ i)
737
+ knots [i] = 0;
738
+
739
+ for (const l = length - order; i < l; ++ i, ++ k)
740
+ knots [i] = k;
741
+
742
+ for (; i < length; ++ i)
743
+ knots [i] = k;
744
+ }
745
+
746
+ knots .length = length;
720
747
  }
721
748
 
722
749
  if (closed)
723
750
  {
724
- for (let i = 1, length = order - 1; i < length; ++ i)
751
+ // Make knots periodic.
752
+
753
+ for (let i = 1, l = order - 1; i < l; ++ i)
725
754
  knots .push (knots .at (-1) + (knots [i] - knots [i - 1]));
726
755
  }
727
756
 
@@ -847,7 +876,7 @@ const NURBS = {
847
876
  {
848
877
  let cp = controlPoints [u];
849
878
 
850
- if (! cp)
879
+ if (!cp)
851
880
  cp = controlPoints [u] = [ ];
852
881
 
853
882
  for (let v = 0; v < vDimension; ++ v)
@@ -887,7 +916,7 @@ const NURBS = {
887
916
  {
888
917
  let cp = controlPoints [u];
889
918
 
890
- if (! cp)
919
+ if (!cp)
891
920
  cp = controlPoints [u] = [ ];
892
921
 
893
922
  for (let v = 0; v < vDimension; ++ v)
@@ -2696,7 +2725,7 @@ Object .assign (Object .setPrototypeOf (NurbsCurve .prototype, NURBS_X3DParametr
2696
2725
  },
2697
2726
  getClosed (order, knot, weight, controlPointNode)
2698
2727
  {
2699
- if (! this ._closed .getValue ())
2728
+ if (!this ._closed .getValue ())
2700
2729
  return false;
2701
2730
 
2702
2731
  return NURBS_NURBS .getClosed (order, knot, weight, controlPointNode);
@@ -2714,7 +2743,7 @@ Object .assign (Object .setPrototypeOf (NurbsCurve .prototype, NURBS_X3DParametr
2714
2743
  if (this ._order .getValue () < 2)
2715
2744
  return [ ];
2716
2745
 
2717
- if (! this .controlPointNode)
2746
+ if (!this .controlPointNode)
2718
2747
  return [ ];
2719
2748
 
2720
2749
  if (this .controlPointNode .getSize () < this ._order .getValue ())
@@ -2741,7 +2770,7 @@ Object .assign (Object .setPrototypeOf (NurbsCurve .prototype, NURBS_X3DParametr
2741
2770
  if (this ._order .getValue () < 2)
2742
2771
  return;
2743
2772
 
2744
- if (! this .controlPointNode)
2773
+ if (!this .controlPointNode)
2745
2774
  return;
2746
2775
 
2747
2776
  if (this .controlPointNode .getSize () < this ._order .getValue ())
@@ -2896,7 +2925,7 @@ Object .assign (Object .setPrototypeOf (NurbsCurve2D .prototype, NURBS_X3DNurbsC
2896
2925
  },
2897
2926
  getClosed (order, knot, weight, controlPoint)
2898
2927
  {
2899
- if (! this ._closed .getValue ())
2928
+ if (!this ._closed .getValue ())
2900
2929
  return false;
2901
2930
 
2902
2931
  return NURBS_NURBS .getClosed2D (order, knot, weight, controlPoint);
@@ -3134,7 +3163,7 @@ Object .assign (Object .setPrototypeOf (NurbsOrientationInterpolator .prototype,
3134
3163
  },
3135
3164
  getClosed (order, knot, weight, controlPointNode)
3136
3165
  {
3137
- return false && 0;
3166
+ return NURBS_NURBS .getClosed (order, knot, weight, controlPointNode);
3138
3167
  },
3139
3168
  getKnots (result, closed, order, dimension, knot)
3140
3169
  {
@@ -3157,7 +3186,7 @@ Object .assign (Object .setPrototypeOf (NurbsOrientationInterpolator .prototype,
3157
3186
  if (this ._order .getValue () < 2)
3158
3187
  return;
3159
3188
 
3160
- if (! this .controlPointNode)
3189
+ if (!this .controlPointNode)
3161
3190
  return;
3162
3191
 
3163
3192
  if (this .controlPointNode .getSize () < this ._order .getValue ())
@@ -3198,20 +3227,18 @@ Object .assign (Object .setPrototypeOf (NurbsOrientationInterpolator .prototype,
3198
3227
  interpolator ._key .length = 0;
3199
3228
  interpolator ._keyValue .length = 0;
3200
3229
 
3230
+ const
3231
+ direction = new (external_X_ITE_X3D_Vector3_default()) (),
3232
+ rotation = new (external_X_ITE_X3D_Rotation4_default()) ();
3233
+
3201
3234
  for (let i = 0, length = points .length - 3; i < length; i += 3)
3202
3235
  {
3203
- const direction = new (external_X_ITE_X3D_Vector3_default()) (points [i + 3] - points [i + 0],
3204
- points [i + 4] - points [i + 1],
3205
- points [i + 5] - points [i + 2]);
3236
+ direction .set (points [i + 3] - points [i + 0],
3237
+ points [i + 4] - points [i + 1],
3238
+ points [i + 5] - points [i + 2]);
3206
3239
 
3207
- interpolator ._key .push (knots [0] + i / (length - 3 + (3 * closed)) * scale);
3208
- interpolator ._keyValue. push (new (external_X_ITE_X3D_Rotation4_default()) ((external_X_ITE_X3D_Vector3_default()).zAxis, direction));
3209
- }
3210
-
3211
- if (closed)
3212
- {
3213
- interpolator ._key .push (knots [0] + scale);
3214
- interpolator ._keyValue. push (interpolator ._keyValue [0]);
3240
+ interpolator ._key .push (i / (length - 3));
3241
+ interpolator ._keyValue. push (rotation .setFromToVec ((external_X_ITE_X3D_Vector3_default()).zAxis, direction));
3215
3242
  }
3216
3243
  },
3217
3244
  });
@@ -3416,7 +3443,7 @@ Object .assign (Object .setPrototypeOf (X3DNurbsSurfaceGeometryNode .prototype,
3416
3443
  if (!this .controlPointNode)
3417
3444
  return;
3418
3445
 
3419
- if (this .controlPointNode .getSize () !== this ._uDimension .getValue () * this ._vDimension .getValue ())
3446
+ if (this .controlPointNode .getSize () < this ._uDimension .getValue () * this ._vDimension .getValue ())
3420
3447
  return;
3421
3448
 
3422
3449
  // Order and dimension are now positive numbers.
@@ -3457,7 +3484,6 @@ Object .assign (Object .setPrototypeOf (X3DNurbsSurfaceGeometryNode .prototype,
3457
3484
  sampleOptions .resolution [1] = this .getVTessellation (vKnots .length);
3458
3485
  sampleOptions .closed [0] = uClosed;
3459
3486
  sampleOptions .closed [1] = vClosed;
3460
- sampleOptions .domain = undefined;
3461
3487
  sampleOptions .haveWeights = !! weights;
3462
3488
  sampleOptions .trimmingContours = this .getTrimmingContours ();
3463
3489
 
@@ -3474,7 +3500,7 @@ Object .assign (Object .setPrototypeOf (X3DNurbsSurfaceGeometryNode .prototype,
3474
3500
  vertexArray .push (points [index], points [index + 1], points [index + 2], 1);
3475
3501
  }
3476
3502
 
3477
- this .buildNurbsTexCoords (uClosed, vClosed, this ._uOrder .getValue (), this ._vOrder .getValue (), uKnots, vKnots, this ._uDimension .getValue (), this ._vDimension .getValue (), surface .domain);
3503
+ this .buildNurbsTexCoords (uClosed, vClosed, this ._uOrder .getValue (), this ._vOrder .getValue (), uKnots, vKnots, this ._uDimension .getValue (), this ._vDimension .getValue ());
3478
3504
  this .generateNormals (faces, points);
3479
3505
  this .setSolid (this ._solid .getValue ());
3480
3506
  this .setCCW (true);
@@ -3482,18 +3508,10 @@ Object .assign (Object .setPrototypeOf (X3DNurbsSurfaceGeometryNode .prototype,
3482
3508
  buildNurbsTexCoords: (() =>
3483
3509
  {
3484
3510
  const
3485
- defaultTexUKnots = [ ],
3486
- defaultTexVKnots = [ ],
3511
+ defaultTexKnots = [0, 0, 5, 5],
3487
3512
  defaultTexControlPoints = [[[0, 0, 0, 1], [0, 1, 0, 1]], [[1, 0, 0, 1], [1, 1, 0, 1]]];
3488
3513
 
3489
- function getDefaultTexKnots (result, knots)
3490
- {
3491
- result [0] = result [1] = knots [0];
3492
- result [2] = result [3] = knots .at (-1);
3493
- return result;
3494
- }
3495
-
3496
- return function (uClosed, vClosed, uOrder, vOrder, uKnots, vKnots, uDimension, vDimension, domain)
3514
+ return function (uClosed, vClosed, uOrder, vOrder, uKnots, vKnots, uDimension, vDimension)
3497
3515
  {
3498
3516
  const sampleOptions = this .sampleOptions;
3499
3517
 
@@ -3522,11 +3540,9 @@ Object .assign (Object .setPrototypeOf (X3DNurbsSurfaceGeometryNode .prototype,
3522
3540
  var
3523
3541
  texUDegree = 1,
3524
3542
  texVDegree = 1,
3525
- texUKnots = getDefaultTexKnots (defaultTexUKnots, uKnots),
3526
- texVKnots = getDefaultTexKnots (defaultTexVKnots, vKnots),
3543
+ texUKnots = defaultTexKnots,
3544
+ texVKnots = defaultTexKnots,
3527
3545
  texControlPoints = defaultTexControlPoints;
3528
-
3529
- sampleOptions .domain = domain;
3530
3546
  }
3531
3547
 
3532
3548
  const texSurface = this .texSurface = (this .texSurface || nurbs_nurbs) ({
@@ -3546,14 +3562,14 @@ Object .assign (Object .setPrototypeOf (X3DNurbsSurfaceGeometryNode .prototype,
3546
3562
  points = texMesh .points,
3547
3563
  texCoordArray = this .getTexCoords ();
3548
3564
 
3565
+ this .getMultiTexCoords () .push (texCoordArray);
3566
+
3549
3567
  for (let i = 0, length = faces .length; i < length; ++ i)
3550
3568
  {
3551
3569
  const index = faces [i] * 4;
3552
3570
 
3553
3571
  texCoordArray .push (points [index], points [index + 1], points [index + 2], points [index + 3]);
3554
3572
  }
3555
-
3556
- this .getMultiTexCoords () .push (this .getTexCoords ());
3557
3573
  };
3558
3574
  })(),
3559
3575
  generateNormals (faces, points)
@@ -3836,7 +3852,7 @@ Object .assign (Object .setPrototypeOf (NurbsPositionInterpolator .prototype, (e
3836
3852
  },
3837
3853
  getClosed (order, knot, weight, controlPointNode)
3838
3854
  {
3839
- return false && 0;
3855
+ return NURBS_NURBS .getClosed (order, knot, weight, controlPointNode);
3840
3856
  },
3841
3857
  getKnots (result, closed, order, dimension, knot)
3842
3858
  {
@@ -3859,7 +3875,7 @@ Object .assign (Object .setPrototypeOf (NurbsPositionInterpolator .prototype, (e
3859
3875
  if (this ._order .getValue () < 2)
3860
3876
  return;
3861
3877
 
3862
- if (! this .controlPointNode)
3878
+ if (!this .controlPointNode)
3863
3879
  return;
3864
3880
 
3865
3881
  if (this .controlPointNode .getSize () < this ._order .getValue ())
@@ -3902,8 +3918,8 @@ Object .assign (Object .setPrototypeOf (NurbsPositionInterpolator .prototype, (e
3902
3918
 
3903
3919
  for (let i = 0, length = points .length; i < length; i += 3)
3904
3920
  {
3905
- interpolator ._key .push (knots [0] + i / (length - 3) * scale);
3906
- interpolator ._keyValue. push (new (external_X_ITE_X3D_Fields_default()).SFVec3f (points [i], points [i + 1], points [i + 2]));
3921
+ interpolator ._key .push (i / (length - 3));
3922
+ interpolator ._keyValue .push (new (external_X_ITE_X3D_Fields_default()).SFVec3f (points [i], points [i + 1], points [i + 2]));
3907
3923
  }
3908
3924
  },
3909
3925
  });
@@ -4480,10 +4496,10 @@ Object .assign (Object .setPrototypeOf (NurbsSweptSurface .prototype, NURBS_X3DP
4480
4496
  },
4481
4497
  build ()
4482
4498
  {
4483
- if (! this .crossSectionCurveNode)
4499
+ if (!this .crossSectionCurveNode)
4484
4500
  return;
4485
4501
 
4486
- if (! this .trajectoryCurveNode)
4502
+ if (!this .trajectoryCurveNode)
4487
4503
  return;
4488
4504
 
4489
4505
  const extrusion = this .extrusion;
@@ -4500,7 +4516,7 @@ Object .assign (Object .setPrototypeOf (NurbsSweptSurface .prototype, NURBS_X3DP
4500
4516
 
4501
4517
  this .getMultiTexCoords () .push (this .getTexCoords ());
4502
4518
 
4503
- if (! this ._ccw .getValue ())
4519
+ if (!this ._ccw .getValue ())
4504
4520
  {
4505
4521
  const normals = this .getNormals ();
4506
4522
 
@@ -4647,10 +4663,10 @@ Object .assign (Object .setPrototypeOf (NurbsSwungSurface .prototype, NURBS_X3DP
4647
4663
  },
4648
4664
  build ()
4649
4665
  {
4650
- if (! this .profileCurveNode)
4666
+ if (!this .profileCurveNode)
4651
4667
  return;
4652
4668
 
4653
- if (! this .trajectoryCurveNode)
4669
+ if (!this .trajectoryCurveNode)
4654
4670
  return;
4655
4671
 
4656
4672
  const extrusion = this .extrusion;
@@ -4667,7 +4683,7 @@ Object .assign (Object .setPrototypeOf (NurbsSwungSurface .prototype, NURBS_X3DP
4667
4683
 
4668
4684
  this .getMultiTexCoords () .push (this .getTexCoords ());
4669
4685
 
4670
- if (! this ._ccw .getValue ())
4686
+ if (!this ._ccw .getValue ())
4671
4687
  {
4672
4688
  const normals = this .getNormals ();
4673
4689
 
@@ -4766,10 +4782,6 @@ function NurbsTextureCoordinate (executionContext)
4766
4782
 
4767
4783
  Object .assign (Object .setPrototypeOf (NurbsTextureCoordinate .prototype, (external_X_ITE_X3D_X3DNode_default()).prototype),
4768
4784
  {
4769
- initialize ()
4770
- {
4771
- external_X_ITE_X3D_X3DNode_default().prototype .initialize .call (this);
4772
- },
4773
4785
  getControlPoints (texWeights)
4774
4786
  {
4775
4787
  const
@@ -4780,7 +4792,7 @@ Object .assign (Object .setPrototypeOf (NurbsTextureCoordinate .prototype, (exte
4780
4792
  {
4781
4793
  let cp = controlPoints [u];
4782
4794
 
4783
- if (! cp)
4795
+ if (!cp)
4784
4796
  cp = controlPoints [u] = [ ];
4785
4797
 
4786
4798
  for (let v = 0, vDimension = this ._vDimension .getValue (); v < vDimension; ++ v)
@@ -4810,7 +4822,7 @@ Object .assign (Object .setPrototypeOf (NurbsTextureCoordinate .prototype, (exte
4810
4822
  if (this ._vDimension .getValue () < this ._vOrder .getValue ())
4811
4823
  return false;
4812
4824
 
4813
- if (this ._controlPoint .length !== this ._uDimension .getValue () * this ._vDimension .getValue ())
4825
+ if (this ._controlPoint .length < this ._uDimension .getValue () * this ._vDimension .getValue ())
4814
4826
  return false;
4815
4827
 
4816
4828
  return true;