x_ite 11.2.3 → 11.3.0

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 (95) hide show
  1. package/README.md +4 -4
  2. package/dist/assets/components/AnnotationComponent.js +3 -3
  3. package/dist/assets/components/AnnotationComponent.min.js +2 -2
  4. package/dist/assets/components/CADGeometryComponent.js +97 -39
  5. package/dist/assets/components/CADGeometryComponent.min.js +2 -2
  6. package/dist/assets/components/CubeMapTexturingComponent.js +4 -4
  7. package/dist/assets/components/CubeMapTexturingComponent.min.js +2 -2
  8. package/dist/assets/components/DISComponent.js +2 -2
  9. package/dist/assets/components/DISComponent.min.js +2 -2
  10. package/dist/assets/components/EventUtilitiesComponent.js +2 -2
  11. package/dist/assets/components/EventUtilitiesComponent.min.js +2 -2
  12. package/dist/assets/components/Geometry2DComponent.js +2 -2
  13. package/dist/assets/components/Geometry2DComponent.min.js +2 -2
  14. package/dist/assets/components/GeospatialComponent.js +90 -125
  15. package/dist/assets/components/GeospatialComponent.min.js +2 -2
  16. package/dist/assets/components/HAnimComponent.js +16 -13
  17. package/dist/assets/components/HAnimComponent.min.js +2 -2
  18. package/dist/assets/components/KeyDeviceSensorComponent.js +2 -2
  19. package/dist/assets/components/KeyDeviceSensorComponent.min.js +2 -2
  20. package/dist/assets/components/LayoutComponent.js +2 -2
  21. package/dist/assets/components/LayoutComponent.min.js +2 -2
  22. package/dist/assets/components/NURBSComponent.js +2 -2
  23. package/dist/assets/components/NURBSComponent.min.js +2 -2
  24. package/dist/assets/components/ParticleSystemsComponent.js +37 -96
  25. package/dist/assets/components/ParticleSystemsComponent.min.js +2 -2
  26. package/dist/assets/components/PickingComponent.js +78 -81
  27. package/dist/assets/components/PickingComponent.min.js +2 -2
  28. package/dist/assets/components/RigidBodyPhysicsComponent.js +244 -291
  29. package/dist/assets/components/RigidBodyPhysicsComponent.min.js +2 -2
  30. package/dist/assets/components/ScriptingComponent.js +2 -2
  31. package/dist/assets/components/ScriptingComponent.min.js +2 -2
  32. package/dist/assets/components/TextComponent.js +2 -2
  33. package/dist/assets/components/TextComponent.min.js +2 -2
  34. package/dist/assets/components/TextureProjectionComponent.js +2 -2
  35. package/dist/assets/components/TextureProjectionComponent.min.js +2 -2
  36. package/dist/assets/components/Texturing3DComponent.js +104 -104
  37. package/dist/assets/components/Texturing3DComponent.min.js +2 -2
  38. package/dist/assets/components/VolumeRenderingComponent.js +14 -9
  39. package/dist/assets/components/VolumeRenderingComponent.min.js +2 -2
  40. package/dist/assets/components/WebXRComponent.js +2 -2
  41. package/dist/assets/components/WebXRComponent.min.js +2 -2
  42. package/dist/assets/components/X_ITEComponent.js +5 -65
  43. package/dist/assets/components/X_ITEComponent.min.js +2 -2
  44. package/dist/assets/hatching/1.png +0 -0
  45. package/dist/assets/hatching/10.png +0 -0
  46. package/dist/assets/hatching/11.png +0 -0
  47. package/dist/assets/hatching/12.png +0 -0
  48. package/dist/assets/hatching/13.png +0 -0
  49. package/dist/assets/hatching/14.png +0 -0
  50. package/dist/assets/hatching/15.png +0 -0
  51. package/dist/assets/hatching/16.png +0 -0
  52. package/dist/assets/hatching/17.png +0 -0
  53. package/dist/assets/hatching/18.png +0 -0
  54. package/dist/assets/hatching/19.png +0 -0
  55. package/dist/assets/hatching/2.png +0 -0
  56. package/dist/assets/hatching/3.png +0 -0
  57. package/dist/assets/hatching/4.png +0 -0
  58. package/dist/assets/hatching/5.png +0 -0
  59. package/dist/assets/hatching/6.png +0 -0
  60. package/dist/assets/hatching/7.png +0 -0
  61. package/dist/assets/hatching/8.png +0 -0
  62. package/dist/assets/hatching/9.png +0 -0
  63. package/dist/assets/images/ExamineViewer.png +0 -0
  64. package/dist/assets/images/FlyViewer.png +0 -0
  65. package/dist/assets/images/NoneViewer.png +0 -0
  66. package/dist/assets/images/PlaneViewer.png +0 -0
  67. package/dist/assets/images/PrimitiveQuality.png +0 -0
  68. package/dist/assets/images/Shading.png +0 -0
  69. package/dist/assets/images/TextureQuality.png +0 -0
  70. package/dist/assets/images/Time.png +0 -0
  71. package/dist/assets/images/Viewpoint.png +0 -0
  72. package/dist/assets/images/WalkViewer.png +0 -0
  73. package/dist/assets/images/go-next.png +0 -0
  74. package/dist/assets/images/gtk-fullscreen.png +0 -0
  75. package/dist/assets/images/gtk-leave-fullscreen.png +0 -0
  76. package/dist/assets/images/gtk-zoom-fit.png +0 -0
  77. package/dist/assets/images/gtk-zoom-in.png +0 -0
  78. package/dist/assets/images/help-about.png +0 -0
  79. package/dist/assets/images/icon.bw.png +0 -0
  80. package/dist/assets/images/icon.png +0 -0
  81. package/dist/assets/images/logo.128.png +0 -0
  82. package/dist/assets/images/logo.bw.png +0 -0
  83. package/dist/assets/images/logo.png +0 -0
  84. package/dist/assets/lib/lut_charlie.png +0 -0
  85. package/dist/assets/lib/lut_ggx.png +0 -0
  86. package/dist/assets/lib/lut_sheen_E.png +0 -0
  87. package/dist/assets/linetype/linetypes.png +0 -0
  88. package/dist/example.html +1 -1
  89. package/dist/x_ite.css +1 -1
  90. package/dist/x_ite.js +56211 -55975
  91. package/dist/x_ite.min.js +2 -2
  92. package/dist/x_ite.min.mjs +2 -2
  93. package/dist/x_ite.mjs +56157 -55921
  94. package/dist/x_ite.zip +0 -0
  95. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- /* X_ITE v11.2.3 */
2
- const __X_ITE_X3D__ = window [Symbol .for ("X_ITE.X3D-11.2.3")];
1
+ /* X_ITE v11.3.0 */
2
+ const __X_ITE_X3D__ = window [Symbol .for ("X_ITE.X3D-11.3.0")];
3
3
  /******/ (() => { // webpackBootstrap
4
4
  /******/ var __webpack_modules__ = ({
5
5
 
@@ -618,6 +618,9 @@ var external_X_ITE_X3D_X3DChildNode_default = /*#__PURE__*/__webpack_require__.n
618
618
  ;// external "__X_ITE_X3D__ .X3DBoundedObject"
619
619
  const external_X_ITE_X3D_X3DBoundedObject_namespaceObject = __X_ITE_X3D__ .X3DBoundedObject;
620
620
  var external_X_ITE_X3D_X3DBoundedObject_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DBoundedObject_namespaceObject);
621
+ ;// external "__X_ITE_X3D__ .TraverseType"
622
+ const external_X_ITE_X3D_TraverseType_namespaceObject = __X_ITE_X3D__ .TraverseType;
623
+ var external_X_ITE_X3D_TraverseType_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_TraverseType_namespaceObject);
621
624
  ;// ./src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js
622
625
  /*******************************************************************************
623
626
  *
@@ -675,6 +678,8 @@ var external_X_ITE_X3D_X3DBoundedObject_default = /*#__PURE__*/__webpack_require
675
678
 
676
679
 
677
680
 
681
+
682
+
678
683
  function X3DNBodyCollidableNode (executionContext)
679
684
  {
680
685
  external_X_ITE_X3D_X3DChildNode_default().call (this, executionContext);
@@ -682,8 +687,14 @@ function X3DNBodyCollidableNode (executionContext)
682
687
 
683
688
  this .addType ((external_X_ITE_X3D_X3DConstants_default()).X3DNBodyCollidableNode);
684
689
 
685
- this .addChildObjects ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "body", new (external_X_ITE_X3D_Fields_default()).SFNode (),
686
- (external_X_ITE_X3D_X3DConstants_default()).outputOnly, "compoundShape_changed", new (external_X_ITE_X3D_Fields_default()).SFTime ());
690
+ this .addChildObjects ((external_X_ITE_X3D_X3DConstants_default()).outputOnly, "body", new (external_X_ITE_X3D_Fields_default()).SFNode (),
691
+ (external_X_ITE_X3D_X3DConstants_default()).outputOnly, "compoundShape", new (external_X_ITE_X3D_Fields_default()).SFTime (),
692
+ (external_X_ITE_X3D_X3DConstants_default()).outputOnly, "rebuild", new (external_X_ITE_X3D_Fields_default()).SFTime ());
693
+
694
+ this .setPointingObject (true);
695
+ this .setCollisionObject (true);
696
+ this .setShadowObject (true);
697
+ this .setVisibleObject (true);
687
698
 
688
699
  // Units
689
700
 
@@ -691,9 +702,9 @@ function X3DNBodyCollidableNode (executionContext)
691
702
 
692
703
  // Members
693
704
 
694
- this .compoundShape = new AmmoClass .btCompoundShape ()
695
- this .offset = new (external_X_ITE_X3D_Vector3_default()) ();
696
- this .matrix = new (external_X_ITE_X3D_Matrix4_default()) ();
705
+ this .compoundShape = new AmmoClass .btCompoundShape ()
706
+ this .offset = new (external_X_ITE_X3D_Vector3_default()) ();
707
+ this .matrix = new (external_X_ITE_X3D_Matrix4_default()) ();
697
708
  }
698
709
 
699
710
  Object .assign (Object .setPrototypeOf (X3DNBodyCollidableNode .prototype, (external_X_ITE_X3D_X3DChildNode_default()).prototype),
@@ -704,10 +715,19 @@ Object .assign (Object .setPrototypeOf (X3DNBodyCollidableNode .prototype, (exte
704
715
  external_X_ITE_X3D_X3DChildNode_default().prototype .initialize .call (this);
705
716
  external_X_ITE_X3D_X3DBoundedObject_default().prototype .initialize .call (this);
706
717
 
718
+ this ._rebuild .addInterest ("set_child__", this);
719
+
707
720
  this .addInterest ("eventsProcessed", this);
708
721
 
709
722
  this .eventsProcessed ();
710
723
  },
724
+ getBBox (bbox, shadows)
725
+ {
726
+ if (this .isDefaultBBoxSize ())
727
+ return this .visibleNode ?.getBBox (bbox, shadows) .multRight (this .matrix) ?? bbox .set ();
728
+
729
+ return bbox .set (this ._bboxSize .getValue (), this ._bboxCenter .getValue ());
730
+ },
711
731
  getLocalTransform: (() =>
712
732
  {
713
733
  var
@@ -717,7 +737,7 @@ Object .assign (Object .setPrototypeOf (X3DNBodyCollidableNode .prototype, (exte
717
737
 
718
738
  return function ()
719
739
  {
720
- m .assign (this .getMatrix ());
740
+ m .assign (this .matrix);
721
741
  m .translate (this .offset);
722
742
 
723
743
  //this .localTransform .setFromOpenGLMatrix (m);
@@ -757,6 +777,106 @@ Object .assign (Object .setPrototypeOf (X3DNBodyCollidableNode .prototype, (exte
757
777
  {
758
778
  return this .matrix;
759
779
  },
780
+ getChild ()
781
+ {
782
+ return this .childNode;
783
+ },
784
+ setChild (childNode)
785
+ {
786
+ // Remove node.
787
+
788
+ if (this .childNode)
789
+ {
790
+ const childNode = this .childNode;
791
+
792
+ childNode ._isPointingObject .removeInterest ("requestRebuild", this);
793
+ childNode ._isCameraObject .removeInterest ("requestRebuild", this);
794
+ childNode ._isPickableObject .removeInterest ("requestRebuild", this);
795
+ childNode ._isCollisionObject .removeInterest ("requestRebuild", this);
796
+ childNode ._isShadowObject .removeInterest ("requestRebuild", this);
797
+ childNode ._isVisibleObject .removeInterest ("requestRebuild", this);
798
+
799
+ if (external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DBoundedObject, childNode))
800
+ {
801
+ childNode ._display .removeInterest ("requestRebuild", this);
802
+ childNode ._bboxDisplay .removeInterest ("requestRebuild", this);
803
+ }
804
+ }
805
+
806
+ // Clear node.
807
+
808
+ this .childNode = null;
809
+ this .pointingNode = null;
810
+ this .cameraObject = null;
811
+ this .pickableObject = null;
812
+ this .collisionObject = null;
813
+ this .shadowObject = null;
814
+ this .visibleNode = null;
815
+ this .boundedObject = null;
816
+
817
+ // Add node.
818
+
819
+ if (childNode)
820
+ {
821
+ childNode ._isPointingObject .addInterest ("requestRebuild", this);
822
+ childNode ._isCameraObject .addInterest ("requestRebuild", this);
823
+ childNode ._isPickableObject .addInterest ("requestRebuild", this);
824
+ childNode ._isCollisionObject .addInterest ("requestRebuild", this);
825
+ childNode ._isShadowObject .addInterest ("requestRebuild", this);
826
+ childNode ._isVisibleObject .addInterest ("requestRebuild", this);
827
+
828
+ this .childNode = childNode;
829
+
830
+ if (childNode .isVisible ())
831
+ {
832
+ if (childNode .isPointingObject ())
833
+ this .pointingNode = childNode;
834
+
835
+ if (childNode .isCameraObject ())
836
+ this .cameraObject = childNode;
837
+
838
+ if (childNode .isPickableObject ())
839
+ this .pickableObject = childNode;
840
+
841
+ if (childNode .isCollisionObject ())
842
+ this .collisionObject = childNode;
843
+
844
+ if (childNode .isShadowObject ())
845
+ this .shadowObject = childNode;
846
+
847
+ if (childNode .isVisibleObject ())
848
+ this .visibleNode = childNode;
849
+ }
850
+
851
+ if (external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DBoundedObject, childNode))
852
+ {
853
+ childNode ._display .addInterest ("requestRebuild", this);
854
+ childNode ._bboxDisplay .addInterest ("requestRebuild", this);
855
+
856
+ if (childNode .isBBoxVisible ())
857
+ this .boundedObject = childNode;
858
+ }
859
+
860
+ delete this .traverse;
861
+ }
862
+ else
863
+ {
864
+ this .traverse = Function .prototype;
865
+ }
866
+
867
+ this .setPointingObject (this .pointingNode);
868
+ this .setCameraObject (this .cameraObject);
869
+ this .setPickableObject (this .pickableObject);
870
+ this .setCollisionObject (this .collisionObject);
871
+ this .setShadowObject (this .shadowObject);
872
+ this .setVisibleObject (this .visibleNode);
873
+ },
874
+ requestRebuild ()
875
+ {
876
+ this ._rebuild .addEvent ();
877
+ },
878
+ set_child__ ()
879
+ { },
760
880
  eventsProcessed ()
761
881
  {
762
882
  this .matrix .set (this ._translation .getValue (),
@@ -765,6 +885,61 @@ Object .assign (Object .setPrototypeOf (X3DNBodyCollidableNode .prototype, (exte
765
885
  if (this .compoundShape .getNumChildShapes ())
766
886
  this .compoundShape .updateChildTransform (0, this .getLocalTransform (), true);
767
887
  },
888
+ traverse (type, renderObject)
889
+ {
890
+ const modelViewMatrix = renderObject .getModelViewMatrix ();
891
+
892
+ modelViewMatrix .push ();
893
+ modelViewMatrix .multLeft (this .matrix);
894
+
895
+ switch (type)
896
+ {
897
+ case (external_X_ITE_X3D_TraverseType_default()).POINTER:
898
+ {
899
+ this .pointingNode ?.traverse (type, renderObject);
900
+ break;
901
+ }
902
+ case (external_X_ITE_X3D_TraverseType_default()).CAMERA:
903
+ {
904
+ this .cameraObject ?.traverse (type, renderObject);
905
+ break;
906
+ }
907
+ case (external_X_ITE_X3D_TraverseType_default()).PICKING:
908
+ {
909
+ const
910
+ browser = this .getBrowser (),
911
+ pickingHierarchy = browser .getPickingHierarchy ();
912
+
913
+ pickingHierarchy .push (this);
914
+
915
+ if (browser .getPickable () .at (-1))
916
+ this .visibleNode ?.traverse (type, renderObject);
917
+ else
918
+ this .pickableObject ?.traverse (type, renderObject);
919
+
920
+ pickingHierarchy .pop ();
921
+ break;
922
+ }
923
+ case (external_X_ITE_X3D_TraverseType_default()).COLLISION:
924
+ {
925
+ this .collisionObject ?.traverse (type, renderObject);
926
+ break;
927
+ }
928
+ case (external_X_ITE_X3D_TraverseType_default()).SHADOW:
929
+ {
930
+ this .shadowObject ?.traverse (type, renderObject);
931
+ break;
932
+ }
933
+ case (external_X_ITE_X3D_TraverseType_default()).DISPLAY:
934
+ {
935
+ this .visibleNode ?.traverse (type, renderObject);
936
+ this .boundedObject ?.displayBBox (type, renderObject);
937
+ break;
938
+ }
939
+ }
940
+
941
+ modelViewMatrix .pop ();
942
+ },
768
943
  dispose ()
769
944
  {
770
945
  external_X_ITE_X3D_X3DBoundedObject_default().prototype .dispose .call (this);
@@ -778,9 +953,6 @@ const X3DNBodyCollidableNode_default_ = X3DNBodyCollidableNode;
778
953
  ;
779
954
 
780
955
  /* harmony default export */ const RigidBodyPhysics_X3DNBodyCollidableNode = (external_X_ITE_X3D_Namespace_default().add ("X3DNBodyCollidableNode", X3DNBodyCollidableNode_default_));
781
- ;// external "__X_ITE_X3D__ .TraverseType"
782
- const external_X_ITE_X3D_TraverseType_namespaceObject = __X_ITE_X3D__ .TraverseType;
783
- var external_X_ITE_X3D_TraverseType_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_TraverseType_namespaceObject);
784
956
  ;// ./src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js
785
957
  /*******************************************************************************
786
958
  *
@@ -837,7 +1009,6 @@ var external_X_ITE_X3D_TraverseType_default = /*#__PURE__*/__webpack_require__.n
837
1009
 
838
1010
 
839
1011
 
840
-
841
1012
  function CollidableOffset (executionContext)
842
1013
  {
843
1014
  RigidBodyPhysics_X3DNBodyCollidableNode .call (this, executionContext);
@@ -852,153 +1023,45 @@ Object .assign (Object .setPrototypeOf (CollidableOffset .prototype, RigidBodyPh
852
1023
  RigidBodyPhysics_X3DNBodyCollidableNode .prototype .initialize .call (this);
853
1024
 
854
1025
  this ._enabled .addInterest ("set_collidableGeometry__", this);
855
- this ._collidable .addInterest ("set_collidable__", this);
1026
+ this ._collidable .addInterest ("requestRebuild", this);
856
1027
 
857
- this .set_collidable__ ();
1028
+ this .set_child__ ();
858
1029
  },
859
- getBBox (bbox, shadows)
1030
+ set_child__ ()
860
1031
  {
861
- if (this .isDefaultBBoxSize ())
862
- return this .visibleNode ?.getBBox (bbox, shadows) .multRight (this .getMatrix ()) ?? bbox .set ();
1032
+ // Remove node.
863
1033
 
864
- return bbox .set (this ._bboxSize .getValue (), this ._bboxCenter .getValue ());
865
- },
866
- set_collidable__ ()
867
- {
868
- if (this .collidableNode)
1034
+ if (this .getChild ())
869
1035
  {
870
- this .collidableNode .removeInterest ("addNodeEvent", this);
871
- this .collidableNode ._compoundShape_changed .removeFieldInterest (this ._compoundShape_changed);
1036
+ const collidableNode = this .getChild ();
872
1037
 
873
- this .collidableNode ._isCameraObject .removeFieldInterest (this ._isCameraObject);
874
- this .collidableNode ._isPickableObject .removeFieldInterest (this ._isPickableObject);
875
-
876
- this .collidableNode ._display .removeInterest ("set_display__", this);
877
- this .collidableNode ._bboxDisplay .removeInterest ("set_bboxDisplay__", this);
1038
+ collidableNode .removeInterest ("addNodeEvent", this);
1039
+ collidableNode ._compoundShape .removeFieldInterest (this ._compoundShape);
878
1040
  }
879
1041
 
880
- this .collidableNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DNBodyCollidableNode, this ._collidable);
881
-
882
- if (this .collidableNode)
883
- {
884
- this .collidableNode .addInterest ("addNodeEvent", this);
885
- this .collidableNode ._compoundShape_changed .addFieldInterest (this ._compoundShape_changed);
886
-
887
- this .collidableNode ._isCameraObject .addFieldInterest (this ._isCameraObject);
888
- this .collidableNode ._isPickableObject .addFieldInterest (this ._isPickableObject);
1042
+ // Add node.
889
1043
 
890
- this .collidableNode ._display .addInterest ("set_display__", this);
891
- this .collidableNode ._bboxDisplay .addInterest ("set_bboxDisplay__", this);
1044
+ const collidableNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DNBodyCollidableNode, this ._collidable);
892
1045
 
893
- this .setCameraObject (this .collidableNode .isCameraObject ());
894
- this .setPickableObject (this .collidableNode .isPickableObject ());
1046
+ this .setChild (collidableNode);
895
1047
 
896
- delete this .traverse;
897
- }
898
- else
1048
+ if (collidableNode)
899
1049
  {
900
- this .setCameraObject (false);
901
- this .setPickableObject (false);
902
-
903
- this .traverse = Function .prototype;
1050
+ collidableNode .addInterest ("addNodeEvent", this);
1051
+ collidableNode ._compoundShape .addFieldInterest (this ._compoundShape);
904
1052
  }
905
1053
 
906
- this .set_display__ ();
907
- this .set_bboxDisplay__ ();
908
1054
  this .set_collidableGeometry__ ();
909
1055
  },
910
- set_cameraObject__ ()
911
- {
912
- this .setCameraObject (this .visibleNode ?.isCameraObject ());
913
- },
914
- set_display__ ()
915
- {
916
- if (this .collidableNode)
917
- this .visibleNode = this .collidableNode ._display .getValue () ? this .collidableNode : null;
918
- else
919
- this .visibleNode = this .collidableNode;
920
-
921
- this .set_cameraObject__ ();
922
- },
923
- set_bboxDisplay__ ()
924
- {
925
- if (this .collidableNode)
926
- this .boundedObject = this .collidableNode ._bboxDisplay .getValue () ? this .collidableNode : null;
927
- else
928
- this .boundedObject = null;
929
- },
930
1056
  set_collidableGeometry__ ()
931
1057
  {
932
1058
  if (this .getCompoundShape () .getNumChildShapes ())
933
1059
  this .getCompoundShape () .removeChildShapeByIndex (0);
934
1060
 
935
- if (this .collidableNode && this ._enabled .getValue ())
936
- this .getCompoundShape () .addChildShape (this .getLocalTransform (), this .collidableNode .getCompoundShape ());
1061
+ if (this .getChild () && this ._enabled .getValue ())
1062
+ this .getCompoundShape () .addChildShape (this .getLocalTransform (), this .getChild () .getCompoundShape ());
937
1063
 
938
- this ._compoundShape_changed = this .getBrowser () .getCurrentTime ();
939
- },
940
- traverse (type, renderObject)
941
- {
942
- switch (type)
943
- {
944
- case (external_X_ITE_X3D_TraverseType_default()).POINTER:
945
- case (external_X_ITE_X3D_TraverseType_default()).CAMERA:
946
- case (external_X_ITE_X3D_TraverseType_default()).SHADOW:
947
- {
948
- const modelViewMatrix = renderObject .getModelViewMatrix ();
949
-
950
- modelViewMatrix .push ();
951
- modelViewMatrix .multLeft (this .getMatrix ());
952
-
953
- this .visibleNode ?.traverse (type, renderObject);
954
-
955
- modelViewMatrix .pop ();
956
- return;
957
- }
958
- case (external_X_ITE_X3D_TraverseType_default()).PICKING:
959
- {
960
- const
961
- browser = this .getBrowser (),
962
- pickingHierarchy = browser .getPickingHierarchy (),
963
- modelViewMatrix = renderObject .getModelViewMatrix ();
964
-
965
- pickingHierarchy .push (this);
966
- modelViewMatrix .push ();
967
- modelViewMatrix .multLeft (this .getMatrix ());
968
-
969
- this .visibleNode ?.traverse (type, renderObject);
970
-
971
- modelViewMatrix .pop ();
972
- pickingHierarchy .pop ();
973
- break;
974
- }
975
- case (external_X_ITE_X3D_TraverseType_default()).COLLISION:
976
- {
977
- const modelViewMatrix = renderObject .getModelViewMatrix ();
978
-
979
- modelViewMatrix .push ();
980
- modelViewMatrix .multLeft (this .getMatrix ());
981
-
982
- this .visibleNode ?.traverse (type, renderObject);
983
-
984
- modelViewMatrix .pop ();
985
- break;
986
- }
987
- case (external_X_ITE_X3D_TraverseType_default()).DISPLAY:
988
- {
989
- const modelViewMatrix = renderObject .getModelViewMatrix ();
990
-
991
- modelViewMatrix .push ();
992
- modelViewMatrix .multLeft (this .getMatrix ());
993
-
994
- this .visibleNode ?.traverse (type, renderObject);
995
-
996
- this .boundedObject ?.displayBBox (type, renderObject);
997
-
998
- modelViewMatrix .pop ();
999
- return;
1000
- }
1001
- }
1064
+ this ._compoundShape = this .getBrowser () .getCurrentTime ();
1002
1065
  },
1003
1066
  });
1004
1067
 
@@ -1083,13 +1146,14 @@ const CollidableOffset_default_ = CollidableOffset;
1083
1146
 
1084
1147
 
1085
1148
 
1086
-
1087
1149
  function CollidableShape (executionContext)
1088
1150
  {
1089
1151
  RigidBodyPhysics_X3DNBodyCollidableNode .call (this, executionContext);
1090
1152
 
1091
1153
  this .addType ((external_X_ITE_X3D_X3DConstants_default()).CollidableShape);
1092
1154
 
1155
+ // Private properties
1156
+
1093
1157
  this .convex = false;
1094
1158
  }
1095
1159
 
@@ -1100,39 +1164,32 @@ Object .assign (Object .setPrototypeOf (CollidableShape .prototype, RigidBodyPhy
1100
1164
  RigidBodyPhysics_X3DNBodyCollidableNode .prototype .initialize .call (this);
1101
1165
 
1102
1166
  this ._enabled .addInterest ("set_collidableGeometry__", this);
1103
- this ._shape .addInterest ("set_shape__", this);
1167
+ this ._shape .addInterest ("requestRebuild", this);
1104
1168
 
1105
- this .set_shape__ ();
1169
+ this .set_child__ ();
1106
1170
  },
1107
- getBBox (bbox, shadows)
1171
+ isConvex ()
1108
1172
  {
1109
- if (this .isDefaultBBoxSize ())
1110
- return this .visibleNode ?.getBBox (bbox, shadows) .multRight (this .getMatrix ()) ?? bbox .set ();
1111
-
1112
- return bbox .set (this ._bboxSize .getValue (), this ._bboxCenter .getValue ());
1173
+ return this .convex;
1113
1174
  },
1114
1175
  setConvex (value)
1115
1176
  {
1116
1177
  this .convex = value;
1117
1178
  },
1118
- getConvex ()
1119
- {
1120
- return this .convex;
1121
- },
1122
1179
  createConvexGeometry: (() =>
1123
1180
  {
1124
- var p = new AmmoClass .btVector3 ();
1181
+ const p = new AmmoClass .btVector3 ();
1125
1182
 
1126
1183
  return function ()
1127
1184
  {
1128
- var vertices = this .geometryNode .getVertices () .getValue ();
1185
+ const vertices = this .geometryNode .getVertices () .getValue ();
1129
1186
 
1130
1187
  if (vertices .length === 0)
1131
1188
  return null;
1132
1189
 
1133
- var convexHull = new AmmoClass .btConvexHullShape ();
1190
+ const convexHull = new AmmoClass .btConvexHullShape ();
1134
1191
 
1135
- for (var i = 0, length = vertices .length; i < length; i += 4)
1192
+ for (let i = 0, length = vertices .length; i < length; i += 4)
1136
1193
  {
1137
1194
  p .setValue (vertices [i], vertices [i + 1], vertices [i + 2]);
1138
1195
  convexHull .addPoint (p, false);
@@ -1145,21 +1202,21 @@ Object .assign (Object .setPrototypeOf (CollidableShape .prototype, RigidBodyPhy
1145
1202
  })(),
1146
1203
  createConcaveGeometry: (() =>
1147
1204
  {
1148
- var
1205
+ const
1149
1206
  p1 = new AmmoClass .btVector3 (),
1150
1207
  p2 = new AmmoClass .btVector3 (),
1151
1208
  p3 = new AmmoClass .btVector3 ();
1152
1209
 
1153
1210
  return function ()
1154
1211
  {
1155
- var vertices = this .geometryNode .getVertices () .getValue ();
1212
+ const vertices = this .geometryNode .getVertices () .getValue ();
1156
1213
 
1157
1214
  if (vertices .length === 0)
1158
1215
  return null;
1159
1216
 
1160
1217
  this .triangleMesh = new AmmoClass .btTriangleMesh ();
1161
1218
 
1162
- for (var i = 0, length = vertices .length; i < length; i += 12)
1219
+ for (let i = 0, length = vertices .length; i < length; i += 12)
1163
1220
  {
1164
1221
  p1 .setValue (vertices [i], vertices [i + 1], vertices [i + 2]);
1165
1222
  p2 .setValue (vertices [i + 4], vertices [i + 5], vertices [i + 6]);
@@ -1171,76 +1228,35 @@ Object .assign (Object .setPrototypeOf (CollidableShape .prototype, RigidBodyPhy
1171
1228
  return new AmmoClass .btBvhTriangleMeshShape (this .triangleMesh, false);
1172
1229
  };
1173
1230
  })(),
1174
- set_shape__ ()
1231
+ set_child__ ()
1175
1232
  {
1176
- if (this .shapeNode)
1177
- {
1178
- this .shapeNode ._isCameraObject .removeFieldInterest (this ._isCameraObject);
1179
- this .shapeNode ._isPickableObject .removeFieldInterest (this ._isPickableObject);
1233
+ // Remove node.
1180
1234
 
1181
- this .shapeNode ._display .removeInterest ("set_display__", this);
1182
- this .shapeNode ._bboxDisplay .removeInterest ("set_bboxDisplay__", this);
1235
+ if (this .getChild ())
1236
+ {
1237
+ const shapeNode = this .getChild ();
1183
1238
 
1184
- this .shapeNode ._geometry .removeInterest ("set_geometry__", this);
1239
+ shapeNode ._geometry .removeInterest ("set_geometry__", this);
1185
1240
  }
1186
1241
 
1187
- this .shapeNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).Shape, this ._shape);
1242
+ // Add node.
1188
1243
 
1189
- if (this .shapeNode)
1190
- {
1191
- this .shapeNode ._isCameraObject .addFieldInterest (this ._isCameraObject);
1192
- this .shapeNode ._isPickableObject .addFieldInterest (this ._isPickableObject);
1244
+ const shapeNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).Shape, this ._shape);
1193
1245
 
1194
- this .shapeNode ._display .addInterest ("set_display__", this);
1195
- this .shapeNode ._bboxDisplay .addInterest ("set_bboxDisplay__", this);
1246
+ this .setChild (shapeNode);
1196
1247
 
1197
- this .shapeNode ._geometry .addInterest ("set_geometry__", this);
1198
-
1199
- this .setCameraObject (this .shapeNode .isCameraObject ());
1200
- this .setPickableObject (this .shapeNode .isPickableObject ());
1201
-
1202
- delete this .traverse;
1203
- }
1204
- else
1248
+ if (shapeNode)
1205
1249
  {
1206
- this .setCameraObject (false);
1207
- this .setPickableObject (false);
1208
-
1209
- this .traverse = Function .prototype;
1250
+ shapeNode ._geometry .addInterest ("set_geometry__", this);
1210
1251
  }
1211
1252
 
1212
- this .set_display__ ();
1213
- this .set_bboxDisplay__ ();
1214
1253
  this .set_geometry__ ();
1215
1254
  },
1216
- set_cameraObject__ ()
1217
- {
1218
- this .setCameraObject (this .visibleNode ?.isCameraObject ());
1219
- },
1220
- set_display__ ()
1221
- {
1222
- if (this .shapeNode)
1223
- this .visibleNode = this .shapeNode ._display .getValue () ? this .shapeNode : null;
1224
- else
1225
- this .visibleNode = this .shapeNode;
1226
-
1227
- this .set_cameraObject__ ();
1228
- },
1229
- set_bboxDisplay__ ()
1230
- {
1231
- if (this .shapeNode)
1232
- this .boundedObject = this .shapeNode ._bboxDisplay .getValue () ? this .shapeNode : null;
1233
- else
1234
- this .boundedObject = null;
1235
- },
1236
1255
  set_geometry__ ()
1237
1256
  {
1238
1257
  this .geometryNode ?._rebuild .removeInterest ("set_collidableGeometry__", this);
1239
1258
 
1240
- if (this .shapeNode)
1241
- this .geometryNode = this .shapeNode .getGeometry ();
1242
- else
1243
- this .geometryNode = null;
1259
+ this .geometryNode = this .getChild () ?.getGeometry () ?? null;
1244
1260
 
1245
1261
  this .geometryNode ?._rebuild .addInterest ("set_collidableGeometry__", this);
1246
1262
 
@@ -1248,13 +1264,13 @@ Object .assign (Object .setPrototypeOf (CollidableShape .prototype, RigidBodyPhy
1248
1264
  },
1249
1265
  set_collidableGeometry__: (() =>
1250
1266
  {
1251
- var
1267
+ const
1252
1268
  localScaling = new AmmoClass .btVector3 (),
1253
1269
  defaultScaling = new AmmoClass .btVector3 (1, 1, 1);
1254
1270
 
1255
1271
  return function ()
1256
1272
  {
1257
- var ls = this .getCompoundShape () .getLocalScaling ();
1273
+ const ls = this .getCompoundShape () .getLocalScaling ();
1258
1274
  localScaling .setValue (ls .x (), ls .y (), ls .z ());
1259
1275
 
1260
1276
  this .removeCollidableGeometry ();
@@ -1263,15 +1279,15 @@ Object .assign (Object .setPrototypeOf (CollidableShape .prototype, RigidBodyPhy
1263
1279
 
1264
1280
  if (this ._enabled .getValue () && this .geometryNode && this .geometryNode .getGeometryType () > 1)
1265
1281
  {
1266
- var type = this .geometryNode .getType ();
1282
+ const type = this .geometryNode .getType ();
1267
1283
 
1268
- for (var t = type .length - 1; t >= 0; -- t)
1284
+ for (let t = type .length - 1; t >= 0; -- t)
1269
1285
  {
1270
1286
  switch (type [t])
1271
1287
  {
1272
1288
  case (external_X_ITE_X3D_X3DConstants_default()).Box:
1273
1289
  {
1274
- var
1290
+ const
1275
1291
  box = this .geometryNode,
1276
1292
  size = box ._size .getValue ();
1277
1293
 
@@ -1280,7 +1296,7 @@ Object .assign (Object .setPrototypeOf (CollidableShape .prototype, RigidBodyPhy
1280
1296
  }
1281
1297
  case (external_X_ITE_X3D_X3DConstants_default()).Cone:
1282
1298
  {
1283
- var cone = this .geometryNode;
1299
+ const cone = this .geometryNode;
1284
1300
 
1285
1301
  if (cone ._side .getValue () && cone ._bottom .getValue ())
1286
1302
  this .collisionShape = new AmmoClass .btConeShape (cone ._bottomRadius .getValue (), cone ._height .getValue ());
@@ -1291,7 +1307,7 @@ Object .assign (Object .setPrototypeOf (CollidableShape .prototype, RigidBodyPhy
1291
1307
  }
1292
1308
  case (external_X_ITE_X3D_X3DConstants_default()).Cylinder:
1293
1309
  {
1294
- var
1310
+ const
1295
1311
  cylinder = this .geometryNode,
1296
1312
  radius = cylinder ._radius .getValue (),
1297
1313
  height1_2 = cylinder ._height .getValue () * 0.5;
@@ -1305,19 +1321,19 @@ Object .assign (Object .setPrototypeOf (CollidableShape .prototype, RigidBodyPhy
1305
1321
  }
1306
1322
  case (external_X_ITE_X3D_X3DConstants_default()).ElevationGrid:
1307
1323
  {
1308
- var elevationGrid = this .geometryNode;
1324
+ const elevationGrid = this .geometryNode;
1309
1325
 
1310
1326
  if (elevationGrid ._xDimension .getValue () > 1 && elevationGrid ._zDimension .getValue () > 1)
1311
1327
  {
1312
- var
1313
- min = Number .POSITIVE_INFINITY,
1314
- max = Number .NEGATIVE_INFINITY,
1315
- heightField = this .heightField = AmmoClass ._malloc (4 * elevationGrid ._xDimension .getValue () * elevationGrid ._zDimension .getValue ()),
1316
- i4 = 0;
1328
+ const heightField = this .heightField = AmmoClass ._malloc (4 * elevationGrid ._xDimension .getValue () * elevationGrid ._zDimension .getValue ());
1317
1329
 
1318
- for (var i = 0, length = elevationGrid ._height .length; i < length; ++ i)
1330
+ let
1331
+ min = Number .POSITIVE_INFINITY,
1332
+ max = Number .NEGATIVE_INFINITY;
1333
+
1334
+ for (let i = 0, i4 = 0, length = elevationGrid ._height .length; i < length; ++ i)
1319
1335
  {
1320
- var value = elevationGrid ._height [i];
1336
+ const value = elevationGrid ._height [i];
1321
1337
 
1322
1338
  min = Math .min (min, value);
1323
1339
  max = Math .max (max, value);
@@ -1348,7 +1364,7 @@ Object .assign (Object .setPrototypeOf (CollidableShape .prototype, RigidBodyPhy
1348
1364
  }
1349
1365
  case (external_X_ITE_X3D_X3DConstants_default()).Sphere:
1350
1366
  {
1351
- var sphere = this .geometryNode;
1367
+ const sphere = this .geometryNode;
1352
1368
 
1353
1369
  this .collisionShape = new AmmoClass .btSphereShape (sphere ._radius .getValue ());
1354
1370
  break;
@@ -1382,7 +1398,7 @@ Object .assign (Object .setPrototypeOf (CollidableShape .prototype, RigidBodyPhy
1382
1398
  this .getCompoundShape () .setLocalScaling (localScaling);
1383
1399
 
1384
1400
  this .addNodeEvent ();
1385
- this ._compoundShape_changed = this .getBrowser () .getCurrentTime ();
1401
+ this ._compoundShape = this .getBrowser () .getCurrentTime ();
1386
1402
  };
1387
1403
  })(),
1388
1404
  removeCollidableGeometry ()
@@ -1406,69 +1422,6 @@ Object .assign (Object .setPrototypeOf (CollidableShape .prototype, RigidBodyPhy
1406
1422
  this .triangleMesh = null;
1407
1423
  }
1408
1424
  },
1409
- traverse (type, renderObject)
1410
- {
1411
- switch (type)
1412
- {
1413
- case (external_X_ITE_X3D_TraverseType_default()).POINTER:
1414
- case (external_X_ITE_X3D_TraverseType_default()).CAMERA:
1415
- case (external_X_ITE_X3D_TraverseType_default()).SHADOW:
1416
- {
1417
- const modelViewMatrix = renderObject .getModelViewMatrix ();
1418
-
1419
- modelViewMatrix .push ();
1420
- modelViewMatrix .multLeft (this .getMatrix ());
1421
-
1422
- this .visibleNode ?.traverse (type, renderObject);
1423
-
1424
- modelViewMatrix .pop ();
1425
- return;
1426
- }
1427
- case (external_X_ITE_X3D_TraverseType_default()).PICKING:
1428
- {
1429
- const
1430
- browser = this .getBrowser (),
1431
- pickingHierarchy = browser .getPickingHierarchy (),
1432
- modelViewMatrix = renderObject .getModelViewMatrix ();
1433
-
1434
- pickingHierarchy .push (this);
1435
- modelViewMatrix .push ();
1436
- modelViewMatrix .multLeft (this .getMatrix ());
1437
-
1438
- this .visibleNode ?.traverse (type, renderObject);
1439
-
1440
- modelViewMatrix .pop ();
1441
- pickingHierarchy .pop ();
1442
- return;
1443
- }
1444
- case (external_X_ITE_X3D_TraverseType_default()).COLLISION:
1445
- {
1446
- const modelViewMatrix = renderObject .getModelViewMatrix ();
1447
-
1448
- modelViewMatrix .push ();
1449
- modelViewMatrix .multLeft (this .getMatrix ());
1450
-
1451
- this .visibleNode ?.traverse (type, renderObject);
1452
-
1453
- modelViewMatrix .pop ();
1454
- return;
1455
- }
1456
- case (external_X_ITE_X3D_TraverseType_default()).DISPLAY:
1457
- {
1458
- const modelViewMatrix = renderObject .getModelViewMatrix ();
1459
-
1460
- modelViewMatrix .push ();
1461
- modelViewMatrix .multLeft (this .getMatrix ());
1462
-
1463
- this .visibleNode ?.traverse (type, renderObject);
1464
-
1465
- this .boundedObject ?.displayBBox (type, renderObject);
1466
-
1467
- modelViewMatrix .pop ();
1468
- return;
1469
- }
1470
- }
1471
- },
1472
1425
  dispose ()
1473
1426
  {
1474
1427
  this .removeCollidableGeometry ();
@@ -3171,7 +3124,7 @@ Object .assign (Object .setPrototypeOf (RigidBody .prototype, (external_X_ITE_X3
3171
3124
  var geometryNode = geometryNodes [i];
3172
3125
 
3173
3126
  geometryNode .removeInterest ("addEvent", this ._transform);
3174
- geometryNode ._compoundShape_changed .removeInterest ("set_compoundShape__", this);
3127
+ geometryNode ._compoundShape .removeInterest ("set_compoundShape__", this);
3175
3128
 
3176
3129
  geometryNode .setBody (null);
3177
3130
 
@@ -3211,7 +3164,7 @@ Object .assign (Object .setPrototypeOf (RigidBody .prototype, (external_X_ITE_X3
3211
3164
  var geometryNode = geometryNodes [i];
3212
3165
 
3213
3166
  geometryNode .addInterest ("addEvent", this ._transform);
3214
- geometryNode ._compoundShape_changed .addInterest ("set_compoundShape__", this);
3167
+ geometryNode ._compoundShape .addInterest ("set_compoundShape__", this);
3215
3168
 
3216
3169
  geometryNode ._translation .addFieldInterest (this ._position);
3217
3170
  geometryNode ._rotation .addFieldInterest (this ._orientation);