x_ite 8.3.2 → 8.3.3
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.
- package/.github/workflows/pages-deploy.yml +1 -1
- package/.vscode/settings.json +2 -1
- package/dist/LICENSE.md +4 -4
- package/dist/assets/components/Annotation.js +13 -13
- package/dist/assets/components/Annotation.min.js +1 -1
- package/dist/assets/components/CADGeometry.js +13 -13
- package/dist/assets/components/CADGeometry.min.js +1 -1
- package/dist/assets/components/CubeMapTexturing.js +25 -25
- package/dist/assets/components/CubeMapTexturing.min.js +1 -1
- package/dist/assets/components/DIS.js +13 -13
- package/dist/assets/components/DIS.min.js +1 -1
- package/dist/assets/components/EventUtilities.js +9 -9
- package/dist/assets/components/EventUtilities.min.js +1 -1
- package/dist/assets/components/Geometry2D.js +19 -19
- package/dist/assets/components/Geometry2D.min.js +1 -1
- package/dist/assets/components/Geospatial.js +33 -33
- package/dist/assets/components/Geospatial.min.js +1 -1
- package/dist/assets/components/HAnim.js +61 -74
- package/dist/assets/components/HAnim.min.js +1 -1
- package/dist/assets/components/KeyDeviceSensor.js +8 -8
- package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
- package/dist/assets/components/Layout.js +27 -27
- package/dist/assets/components/Layout.min.js +1 -1
- package/dist/assets/components/NURBS.js +24 -24
- package/dist/assets/components/NURBS.min.js +1 -1
- package/dist/assets/components/ParticleSystems.js +23 -23
- package/dist/assets/components/ParticleSystems.min.js +1 -1
- package/dist/assets/components/Picking.js +19 -19
- package/dist/assets/components/Picking.min.js +1 -1
- package/dist/assets/components/RigidBodyPhysics.js +17 -17
- package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
- package/dist/assets/components/Scripting.js +28 -28
- package/dist/assets/components/Scripting.min.js +1 -1
- package/dist/assets/components/Text.js +24 -24
- package/dist/assets/components/Text.min.js +1 -1
- package/dist/assets/components/{ProjectiveTextureMapping.js → TextureProjector.js} +39 -39
- package/dist/assets/components/TextureProjector.min.js +1 -0
- package/dist/assets/components/Texturing3D.js +27 -27
- package/dist/assets/components/Texturing3D.min.js +1 -1
- package/dist/assets/components/VolumeRendering.js +19 -19
- package/dist/assets/components/VolumeRendering.min.js +1 -1
- package/dist/assets/components/X_ITE.js +9 -9
- package/dist/assets/components/X_ITE.min.js +1 -1
- package/dist/x_ite.css +1 -1
- package/dist/x_ite.js +1492 -1291
- package/dist/x_ite.min.js +1 -1
- package/dist/x_ite.zip +0 -0
- package/docs/Gemfile +1 -4
- package/docs/_config.yml +3 -3
- package/docs/_posts/getting-started.md +147 -441
- package/docs/_posts/reference/scene-services.md +13 -2
- package/docs/_posts/what's-new.md +21 -3
- package/docs/_tabs/playground.html +36 -40
- package/docs/assets/css/style.scss +18 -0
- package/package.json +1 -1
- package/src/assets/components/{ProjectiveTextureMapping.js → TextureProjector.js} +5 -5
- package/src/examples.js +1 -1
- package/src/tests.js +5 -5
- package/src/x_ite/Base/X3DInfoArray.js +21 -21
- package/src/x_ite/Base/X3DObject.js +29 -20
- package/src/x_ite/Base/X3DObjectArrayField.js +27 -26
- package/src/x_ite/Base/X3DTypedArrayField.js +34 -32
- package/src/x_ite/Browser/DOMIntegration.js +4 -3
- package/src/x_ite/Browser/VERSION.js +1 -1
- package/src/x_ite/Browser/X3DBrowser.js +43 -28
- package/src/x_ite/Components/Core/X3DNode.js +196 -187
- package/src/x_ite/Components/Core/X3DPrototypeInstance.js +113 -90
- package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +18 -43
- package/src/x_ite/Components/HAnim/HAnimHumanoid.js +24 -25
- package/src/x_ite/Components/HAnim/HAnimJoint.js +19 -31
- package/src/x_ite/Components/Sound/X3DSoundProcessingNode.js +14 -1
- package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +0 -1
- package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/TextureProjector.js +1 -1
- package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/TextureProjectorParallel.js +1 -1
- package/src/x_ite/Components/{ProjectiveTextureMapping → TextureProjector}/X3DTextureProjectorNode.js +0 -0
- package/src/x_ite/Components/Time/TimeSensor.js +5 -0
- package/src/x_ite/Components/Time/X3DTimeDependentNode.js +1 -0
- package/src/x_ite/Configuration/ComponentInfo.js +20 -23
- package/src/x_ite/Configuration/ProfileInfo.js +6 -6
- package/src/x_ite/Configuration/SupportedComponents.js +22 -20
- package/src/x_ite/Configuration/SupportedProfiles.js +1 -1
- package/src/x_ite/Configuration/UnitInfo.js +24 -27
- package/src/x_ite/Execution/X3DExecutionContext.js +28 -59
- package/src/x_ite/Execution/X3DExportedNode.js +23 -28
- package/src/x_ite/Execution/X3DImportedNode.js +63 -67
- package/src/x_ite/Execution/X3DScene.js +98 -117
- package/src/x_ite/Fields/ArrayFields.js +57 -55
- package/src/x_ite/Fields/SFBool.js +6 -6
- package/src/x_ite/Fields/SFColor.js +10 -12
- package/src/x_ite/Fields/SFDouble.js +7 -10
- package/src/x_ite/Fields/SFFloat.js +7 -10
- package/src/x_ite/Fields/SFImage.js +33 -8
- package/src/x_ite/Fields/SFInt32.js +6 -6
- package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +13 -13
- package/src/x_ite/Fields/SFNode.js +42 -19
- package/src/x_ite/Fields/SFRotation.js +13 -13
- package/src/x_ite/Fields/SFString.js +6 -7
- package/src/x_ite/Fields/SFTime.js +6 -6
- package/src/x_ite/Fields/SFVecPrototypeTemplate.js +10 -10
- package/src/x_ite/InputOutput/FileLoader.js +1 -1
- package/src/x_ite/InputOutput/Generator.js +117 -17
- package/src/x_ite/Parser/VRMLParser.js +24 -27
- package/src/x_ite/Parser/X3DParser.js +0 -4
- package/src/x_ite/Parser/XMLParser.js +2 -2
- package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +59 -64
- package/src/x_ite/Prototype/X3DProtoDeclaration.js +86 -93
- package/src/x_ite/Rendering/X3DRenderObject.js +6 -1
- package/src/x_ite/Routing/X3DRoute.js +37 -40
- package/src/x_ite.html +1 -1
- package/x_ite.min.html +1 -1
- package/dist/assets/components/ProjectiveTextureMapping.min.js +0 -1
- package/docs/Gemfile.lock +0 -116
|
@@ -49,7 +49,6 @@ import X3DChildObject from "../../Base/X3DChildObject.js";
|
|
|
49
49
|
import X3DNode from "./X3DNode.js";
|
|
50
50
|
import X3DExecutionContext from "../../Execution/X3DExecutionContext.js";
|
|
51
51
|
import X3DConstants from "../../Base/X3DConstants.js";
|
|
52
|
-
import Generator from "../../InputOutput/Generator.js";
|
|
53
52
|
|
|
54
53
|
const
|
|
55
54
|
_protoNode = Symbol (),
|
|
@@ -86,6 +85,23 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
|
|
|
86
85
|
},
|
|
87
86
|
getContainerField: function ()
|
|
88
87
|
{
|
|
88
|
+
// Determine container field from proto.
|
|
89
|
+
|
|
90
|
+
// const proto = this [_protoNode];
|
|
91
|
+
|
|
92
|
+
// if (! proto .isExternProto)
|
|
93
|
+
// {
|
|
94
|
+
// const rootNodes = proto .getBody () .getRootNodes ();
|
|
95
|
+
|
|
96
|
+
// if (rootNodes .length)
|
|
97
|
+
// {
|
|
98
|
+
// const rootNode = rootNodes [0];
|
|
99
|
+
|
|
100
|
+
// if (rootNode)
|
|
101
|
+
// return rootNode .getValue () .getContainerField ();
|
|
102
|
+
// }
|
|
103
|
+
// }
|
|
104
|
+
|
|
89
105
|
return "children";
|
|
90
106
|
},
|
|
91
107
|
initialize: function ()
|
|
@@ -361,11 +377,9 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
|
|
|
361
377
|
}
|
|
362
378
|
}
|
|
363
379
|
},
|
|
364
|
-
toXMLStream: function (
|
|
380
|
+
toXMLStream: function (generator)
|
|
365
381
|
{
|
|
366
|
-
const
|
|
367
|
-
generator = Generator .Get (stream),
|
|
368
|
-
sharedNode = generator .IsSharedNode (this);
|
|
382
|
+
const sharedNode = generator .IsSharedNode (this);
|
|
369
383
|
|
|
370
384
|
generator .EnterScope ();
|
|
371
385
|
|
|
@@ -375,16 +389,16 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
|
|
|
375
389
|
{
|
|
376
390
|
if (generator .ExistsNode (this))
|
|
377
391
|
{
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
392
|
+
generator .string += generator .Indent ();
|
|
393
|
+
generator .string += "<ProtoInstance";
|
|
394
|
+
generator .string += generator .Space ();
|
|
395
|
+
generator .string += "name='";
|
|
396
|
+
generator .string += generator .XMLEncode (this .getTypeName ());
|
|
397
|
+
generator .string += "'";
|
|
398
|
+
generator .string += generator .Space ();
|
|
399
|
+
generator .string += "USE='";
|
|
400
|
+
generator .string += generator .XMLEncode (name);
|
|
401
|
+
generator .string += "'";
|
|
388
402
|
|
|
389
403
|
const containerField = generator .ContainerField ();
|
|
390
404
|
|
|
@@ -392,35 +406,35 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
|
|
|
392
406
|
{
|
|
393
407
|
if (containerField .getName () !== this .getContainerField ())
|
|
394
408
|
{
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
409
|
+
generator .string += generator .Space ();
|
|
410
|
+
generator .string += "containerField='";
|
|
411
|
+
generator .string += generator .XMLEncode (containerField .getName ());
|
|
412
|
+
generator .string += "'";
|
|
399
413
|
}
|
|
400
414
|
}
|
|
401
415
|
|
|
402
|
-
|
|
416
|
+
generator .string += "/>";
|
|
403
417
|
|
|
404
418
|
generator .LeaveScope ();
|
|
405
419
|
return;
|
|
406
420
|
}
|
|
407
421
|
}
|
|
408
422
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
423
|
+
generator .string += generator .Indent ();
|
|
424
|
+
generator .string += "<ProtoInstance";
|
|
425
|
+
generator .string += generator .Space ();
|
|
426
|
+
generator .string += "name='";
|
|
427
|
+
generator .string += generator .XMLEncode (this .getTypeName ());
|
|
428
|
+
generator .string += "'";
|
|
415
429
|
|
|
416
430
|
if (name .length)
|
|
417
431
|
{
|
|
418
432
|
generator .AddNode (this);
|
|
419
433
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
434
|
+
generator .string += generator .Space ();
|
|
435
|
+
generator .string += "DEF='";
|
|
436
|
+
generator .string += generator .XMLEncode (name);
|
|
437
|
+
generator .string += "'";
|
|
424
438
|
}
|
|
425
439
|
|
|
426
440
|
const containerField = generator .ContainerField ();
|
|
@@ -429,10 +443,10 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
|
|
|
429
443
|
{
|
|
430
444
|
if (containerField .getName () !== this .getContainerField ())
|
|
431
445
|
{
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
446
|
+
generator .string += generator .Space ();
|
|
447
|
+
generator .string += "containerField='";
|
|
448
|
+
generator .string += generator .XMLEncode (containerField .getName ());
|
|
449
|
+
generator .string += "'";
|
|
436
450
|
}
|
|
437
451
|
}
|
|
438
452
|
|
|
@@ -440,11 +454,12 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
|
|
|
440
454
|
|
|
441
455
|
if (fields .length === 0)
|
|
442
456
|
{
|
|
443
|
-
|
|
457
|
+
generator .string += "/>";
|
|
444
458
|
}
|
|
445
459
|
else
|
|
446
460
|
{
|
|
447
|
-
|
|
461
|
+
generator .string += ">";
|
|
462
|
+
generator .string += generator .TidyBreak ();
|
|
448
463
|
|
|
449
464
|
generator .IncIndent ();
|
|
450
465
|
|
|
@@ -485,33 +500,36 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
|
|
|
485
500
|
{
|
|
486
501
|
case X3DConstants .MFNode:
|
|
487
502
|
{
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
503
|
+
generator .string += generator .Indent ();
|
|
504
|
+
generator .string += "<fieldValue";
|
|
505
|
+
generator .string += generator .Space ();
|
|
506
|
+
generator .string += "name='";
|
|
507
|
+
generator .string += generator .XMLEncode (field .getName ());
|
|
508
|
+
generator .string += "'";
|
|
494
509
|
|
|
495
510
|
if (field .length === 0)
|
|
496
511
|
{
|
|
497
|
-
|
|
512
|
+
generator .string += "/>";
|
|
513
|
+
generator .string += generator .TidyBreak ();
|
|
498
514
|
}
|
|
499
515
|
else
|
|
500
516
|
{
|
|
501
517
|
generator .PushContainerField (field);
|
|
502
518
|
|
|
503
|
-
|
|
519
|
+
generator .string += ">";
|
|
520
|
+
generator .string += generator .TidyBreak ();
|
|
504
521
|
|
|
505
522
|
generator .IncIndent ();
|
|
506
523
|
|
|
507
|
-
field .toXMLStream (
|
|
524
|
+
field .toXMLStream (generator);
|
|
508
525
|
|
|
509
|
-
|
|
526
|
+
generator .string += generator .TidyBreak ();
|
|
510
527
|
|
|
511
528
|
generator .DecIndent ();
|
|
512
529
|
|
|
513
|
-
|
|
514
|
-
|
|
530
|
+
generator .string += generator .Indent ();
|
|
531
|
+
generator .string += "</fieldValue>";
|
|
532
|
+
generator .string += generator .TidyBreak ();
|
|
515
533
|
|
|
516
534
|
generator .PopContainerField ();
|
|
517
535
|
}
|
|
@@ -524,24 +542,26 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
|
|
|
524
542
|
{
|
|
525
543
|
generator .PushContainerField (field);
|
|
526
544
|
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
545
|
+
generator .string += generator .Indent ();
|
|
546
|
+
generator .string += "<fieldValue";
|
|
547
|
+
generator .string += generator .Space ();
|
|
548
|
+
generator .string += "name='";
|
|
549
|
+
generator .string += generator .XMLEncode (field .getName ());
|
|
550
|
+
generator .string += "'";
|
|
551
|
+
generator .string += ">";
|
|
552
|
+
generator .string += generator .TidyBreak ();
|
|
534
553
|
|
|
535
554
|
generator .IncIndent ();
|
|
536
555
|
|
|
537
|
-
field .toXMLStream (
|
|
556
|
+
field .toXMLStream (generator);
|
|
538
557
|
|
|
539
|
-
|
|
558
|
+
generator .string += generator .TidyBreak ();
|
|
540
559
|
|
|
541
560
|
generator .DecIndent ();
|
|
542
561
|
|
|
543
|
-
|
|
544
|
-
|
|
562
|
+
generator .string += generator .Indent ();
|
|
563
|
+
generator .string += "</fieldValue>";
|
|
564
|
+
generator .string += generator .TidyBreak ();
|
|
545
565
|
|
|
546
566
|
generator .PopContainerField ();
|
|
547
567
|
break;
|
|
@@ -551,19 +571,20 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
|
|
|
551
571
|
}
|
|
552
572
|
default:
|
|
553
573
|
{
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
field .toXMLStream (
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
574
|
+
generator .string += generator .Indent ();
|
|
575
|
+
generator .string += "<fieldValue";
|
|
576
|
+
generator .string += generator .Space ();
|
|
577
|
+
generator .string += "name='";
|
|
578
|
+
generator .string += generator .XMLEncode (field .getName ());
|
|
579
|
+
generator .string += "'";
|
|
580
|
+
generator .string += generator .Space ();
|
|
581
|
+
generator .string += "value='";
|
|
582
|
+
|
|
583
|
+
field .toXMLStream (generator);
|
|
584
|
+
|
|
585
|
+
generator .string += "'";
|
|
586
|
+
generator .string += "/>";
|
|
587
|
+
generator .string += generator .TidyBreak ();
|
|
567
588
|
break;
|
|
568
589
|
}
|
|
569
590
|
}
|
|
@@ -576,9 +597,9 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
|
|
|
576
597
|
|
|
577
598
|
if (references .length && ! sharedNode)
|
|
578
599
|
{
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
600
|
+
generator .string += generator .Indent ();
|
|
601
|
+
generator .string += "<IS>";
|
|
602
|
+
generator .string += generator .TidyBreak ();
|
|
582
603
|
|
|
583
604
|
generator .IncIndent ();
|
|
584
605
|
|
|
@@ -588,30 +609,32 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
|
|
|
588
609
|
|
|
589
610
|
protoFields .forEach (function (protoField)
|
|
590
611
|
{
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
612
|
+
generator .string += generator .Indent ();
|
|
613
|
+
generator .string += "<connect";
|
|
614
|
+
generator .string += generator .Space ();
|
|
615
|
+
generator .string += "nodeField='";
|
|
616
|
+
generator .string += generator .XMLEncode (field .getName ());
|
|
617
|
+
generator .string += "'";
|
|
618
|
+
generator .string += generator .Space ();
|
|
619
|
+
generator .string += "protoField='";
|
|
620
|
+
generator .string += generator .XMLEncode (protoField .getName ());
|
|
621
|
+
generator .string += "'";
|
|
622
|
+
generator .string += "/>";
|
|
623
|
+
generator .string += generator .TidyBreak ();
|
|
602
624
|
});
|
|
603
625
|
}
|
|
604
626
|
|
|
605
627
|
generator .DecIndent ();
|
|
606
628
|
|
|
607
|
-
|
|
608
|
-
|
|
629
|
+
generator .string += generator .Indent ();
|
|
630
|
+
generator .string += "</IS>";
|
|
631
|
+
generator .string += generator .TidyBreak ();
|
|
609
632
|
}
|
|
610
633
|
|
|
611
634
|
generator .DecIndent ();
|
|
612
635
|
|
|
613
|
-
|
|
614
|
-
|
|
636
|
+
generator .string += generator .Indent ();
|
|
637
|
+
generator .string += "</ProtoInstance>";
|
|
615
638
|
}
|
|
616
639
|
|
|
617
640
|
generator .LeaveScope ();
|
|
@@ -57,9 +57,7 @@ function X3DTransformMatrix3DNode (executionContext)
|
|
|
57
57
|
|
|
58
58
|
this .addType (X3DConstants .X3DTransformMatrix3DNode);
|
|
59
59
|
|
|
60
|
-
this .matrix
|
|
61
|
-
this .getBBox = this .getGetGroupBBox ();
|
|
62
|
-
this .traverse = this .getGroupTraverse ();
|
|
60
|
+
this .matrix = new Matrix4 ();
|
|
63
61
|
}
|
|
64
62
|
|
|
65
63
|
X3DTransformMatrix3DNode .prototype = Object .assign (Object .create (X3DGroupingNode .prototype),
|
|
@@ -71,15 +69,15 @@ X3DTransformMatrix3DNode .prototype = Object .assign (Object .create (X3DGroupin
|
|
|
71
69
|
{
|
|
72
70
|
this .matrix .identity ();
|
|
73
71
|
|
|
74
|
-
this .getBBox = this .
|
|
75
|
-
this .traverse = this .
|
|
72
|
+
this .getBBox = this .getSubBBox;
|
|
73
|
+
this .traverse = this .groupTraverse;
|
|
76
74
|
}
|
|
77
75
|
else
|
|
78
76
|
{
|
|
79
77
|
this .matrix .assign (matrix);
|
|
80
78
|
|
|
81
|
-
this .getBBox
|
|
82
|
-
this .traverse
|
|
79
|
+
delete this .getBBox;
|
|
80
|
+
delete this .traverse;
|
|
83
81
|
}
|
|
84
82
|
},
|
|
85
83
|
getMatrix: function ()
|
|
@@ -92,56 +90,33 @@ X3DTransformMatrix3DNode .prototype = Object .assign (Object .create (X3DGroupin
|
|
|
92
90
|
{
|
|
93
91
|
this .matrix .identity ();
|
|
94
92
|
|
|
95
|
-
this .getBBox = this .
|
|
96
|
-
this .traverse = this .
|
|
93
|
+
this .getBBox = this .getSubBBox;
|
|
94
|
+
this .traverse = this .groupTraverse;
|
|
97
95
|
}
|
|
98
96
|
else
|
|
99
97
|
{
|
|
100
98
|
this .matrix .set (t, r, s, so, c);
|
|
101
99
|
|
|
102
|
-
this .getBBox
|
|
103
|
-
this .traverse
|
|
100
|
+
delete this .getBBox;
|
|
101
|
+
delete this .traverse;
|
|
104
102
|
}
|
|
105
103
|
},
|
|
106
|
-
|
|
104
|
+
getBBox: function getBBox (bbox, shadows)
|
|
107
105
|
{
|
|
108
|
-
|
|
109
|
-
{
|
|
110
|
-
return this .getSubBBox (bbox, shadows) .multRight (this .matrix);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return function ()
|
|
114
|
-
{
|
|
115
|
-
return getBBox;
|
|
116
|
-
};
|
|
117
|
-
})(),
|
|
118
|
-
getGetGroupBBox: function ()
|
|
119
|
-
{
|
|
120
|
-
return X3DGroupingNode .prototype .getBBox;
|
|
106
|
+
return this .getSubBBox (bbox, shadows) .multRight (this .matrix);
|
|
121
107
|
},
|
|
122
|
-
|
|
108
|
+
traverse: function (type, renderObject)
|
|
123
109
|
{
|
|
124
|
-
|
|
125
|
-
{
|
|
126
|
-
const modelViewMatrix = renderObject .getModelViewMatrix ();
|
|
127
|
-
|
|
128
|
-
modelViewMatrix .push ();
|
|
129
|
-
modelViewMatrix .multLeft (this .matrix);
|
|
110
|
+
const modelViewMatrix = renderObject .getModelViewMatrix ();
|
|
130
111
|
|
|
131
|
-
|
|
112
|
+
modelViewMatrix .push ();
|
|
113
|
+
modelViewMatrix .multLeft (this .matrix);
|
|
132
114
|
|
|
133
|
-
|
|
134
|
-
}
|
|
115
|
+
X3DGroupingNode .prototype .traverse .call (this, type, renderObject);
|
|
135
116
|
|
|
136
|
-
|
|
137
|
-
{
|
|
138
|
-
return traverse;
|
|
139
|
-
};
|
|
140
|
-
})(),
|
|
141
|
-
getGroupTraverse: function ()
|
|
142
|
-
{
|
|
143
|
-
return X3DGroupingNode .prototype .traverse;
|
|
117
|
+
modelViewMatrix .pop ();
|
|
144
118
|
},
|
|
119
|
+
groupTraverse: X3DGroupingNode .prototype .traverse,
|
|
145
120
|
});
|
|
146
121
|
|
|
147
122
|
export default X3DTransformMatrix3DNode;
|
|
@@ -159,6 +159,8 @@ HAnimHumanoid .prototype = Object .assign (Object .create (X3DChildNode .prototy
|
|
|
159
159
|
this ._scale .addFieldInterest (this .transformNode ._scale);
|
|
160
160
|
this ._scaleOrientation .addFieldInterest (this .transformNode ._scaleOrientation);
|
|
161
161
|
this ._center .addFieldInterest (this .transformNode ._center);
|
|
162
|
+
this ._visible .addFieldInterest (this .transformNode ._visible);
|
|
163
|
+
this ._bboxDisplay .addFieldInterest (this .transformNode ._bboxDisplay);
|
|
162
164
|
this ._bboxSize .addFieldInterest (this .transformNode ._bboxSize);
|
|
163
165
|
this ._bboxCenter .addFieldInterest (this .transformNode ._bboxCenter);
|
|
164
166
|
|
|
@@ -167,6 +169,8 @@ HAnimHumanoid .prototype = Object .assign (Object .create (X3DChildNode .prototy
|
|
|
167
169
|
this .transformNode ._scale = this ._scale;
|
|
168
170
|
this .transformNode ._scaleOrientation = this ._scaleOrientation;
|
|
169
171
|
this .transformNode ._center = this ._center;
|
|
172
|
+
this .transformNode ._visible = this ._visible;
|
|
173
|
+
this .transformNode ._bboxDisplay = this ._bboxDisplay;
|
|
170
174
|
this .transformNode ._bboxSize = this ._bboxSize;
|
|
171
175
|
this .transformNode ._bboxCenter = this ._bboxCenter;
|
|
172
176
|
this .transformNode ._children = [ this .viewpointsNode, this .skeletonNode, this .skinNode ];
|
|
@@ -200,13 +204,13 @@ HAnimHumanoid .prototype = Object .assign (Object .create (X3DChildNode .prototy
|
|
|
200
204
|
},
|
|
201
205
|
set_joints__: function ()
|
|
202
206
|
{
|
|
203
|
-
|
|
207
|
+
const jointNodes = this .jointNodes;
|
|
204
208
|
|
|
205
209
|
jointNodes .length = 0;
|
|
206
210
|
|
|
207
|
-
for (
|
|
211
|
+
for (const node of this ._joints)
|
|
208
212
|
{
|
|
209
|
-
|
|
213
|
+
const jointNode = X3DCast (X3DConstants .HAnimJoint, node);
|
|
210
214
|
|
|
211
215
|
if (jointNode)
|
|
212
216
|
jointNodes .push (jointNode);
|
|
@@ -232,12 +236,14 @@ HAnimHumanoid .prototype = Object .assign (Object .create (X3DChildNode .prototy
|
|
|
232
236
|
},
|
|
233
237
|
traverse: function (type, renderObject)
|
|
234
238
|
{
|
|
239
|
+
renderObject .getJoints () .length = 0;
|
|
240
|
+
|
|
235
241
|
this .transformNode .traverse (type, renderObject);
|
|
236
242
|
this .skinning (type, renderObject);
|
|
237
243
|
},
|
|
238
244
|
skinning: (function ()
|
|
239
245
|
{
|
|
240
|
-
|
|
246
|
+
const
|
|
241
247
|
invModelMatrix = new Matrix4 (),
|
|
242
248
|
vector = new Vector3 (0, 0, 0),
|
|
243
249
|
rest = new Vector3 (0, 0, 0),
|
|
@@ -252,8 +258,8 @@ HAnimHumanoid .prototype = Object .assign (Object .create (X3DChildNode .prototy
|
|
|
252
258
|
if (! this .skinCoordNode)
|
|
253
259
|
return;
|
|
254
260
|
|
|
255
|
-
|
|
256
|
-
jointNodes = this .jointNodes,
|
|
261
|
+
const
|
|
262
|
+
jointNodes = this .jointNodes .length ? this .jointNodes : renderObject .getJoints (),
|
|
257
263
|
skinNormalNode = this .skinNormalNode,
|
|
258
264
|
skinCoordNode = this .skinCoordNode,
|
|
259
265
|
restNormalNode = this .restNormalNode,
|
|
@@ -272,32 +278,25 @@ HAnimHumanoid .prototype = Object .assign (Object .create (X3DChildNode .prototy
|
|
|
272
278
|
|
|
273
279
|
// Apply joint transformations.
|
|
274
280
|
|
|
275
|
-
for (
|
|
281
|
+
for (const jointNode of jointNodes)
|
|
276
282
|
{
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
if (skinCoordIndexLength === 0)
|
|
282
|
-
continue;
|
|
283
|
-
|
|
284
|
-
var
|
|
285
|
-
jointMatrix = jointNode .getModelMatrix () .multRight (invModelMatrix),
|
|
286
|
-
displacerNodes = jointNode .getDisplacers ();
|
|
283
|
+
const
|
|
284
|
+
skinCoordIndexLength = jointNode ._skinCoordIndex .length,
|
|
285
|
+
jointMatrix = jointNode .getModelMatrix () .multRight (invModelMatrix),
|
|
286
|
+
displacerNodes = jointNode .getDisplacers ();
|
|
287
287
|
|
|
288
|
-
for (
|
|
288
|
+
for (const displacerNode of displacerNodes)
|
|
289
289
|
{
|
|
290
|
-
|
|
291
|
-
displacerNode = displacerNodes [d],
|
|
290
|
+
const
|
|
292
291
|
coordIndex = displacerNode ._coordIndex .getValue (),
|
|
293
292
|
coordIndexLength = displacerNode ._coordIndex .length,
|
|
294
293
|
weight = displacerNode ._weight .getValue (),
|
|
295
294
|
displacements = displacerNode ._displacements .getValue (),
|
|
296
295
|
displacementsLength = displacerNode ._displacements .length;
|
|
297
296
|
|
|
298
|
-
for (
|
|
297
|
+
for (let i = 0; i < coordIndexLength; ++ i)
|
|
299
298
|
{
|
|
300
|
-
|
|
299
|
+
const
|
|
301
300
|
i3 = i * 3,
|
|
302
301
|
index = coordIndex [i],
|
|
303
302
|
displacement = i < displacementsLength ? point .set (displacements [i3], displacements [i3 + 1], displacements [i3 + 2]) : point .assign (Vector3 .Zero);
|
|
@@ -308,15 +307,15 @@ HAnimHumanoid .prototype = Object .assign (Object .create (X3DChildNode .prototy
|
|
|
308
307
|
}
|
|
309
308
|
}
|
|
310
309
|
|
|
311
|
-
|
|
310
|
+
const
|
|
312
311
|
normalMatrix = skinNormalNode ? jointMatrix .submatrix .transpose () .inverse () : null,
|
|
313
312
|
skinCoordIndex = jointNode ._skinCoordIndex .getValue (),
|
|
314
313
|
skinCoordWeight = jointNode ._skinCoordWeight .getValue (),
|
|
315
314
|
skinCoordWeightLength = jointNode ._skinCoordWeight .length;
|
|
316
315
|
|
|
317
|
-
for (
|
|
316
|
+
for (let i = 0; i < skinCoordIndexLength; ++ i)
|
|
318
317
|
{
|
|
319
|
-
|
|
318
|
+
const
|
|
320
319
|
index = skinCoordIndex [i],
|
|
321
320
|
weight = i < skinCoordWeightLength ? skinCoordWeight [i] : 1;
|
|
322
321
|
|
|
@@ -133,54 +133,42 @@ HAnimJoint .prototype = Object .assign (Object .create (X3DTransformNode .protot
|
|
|
133
133
|
|
|
134
134
|
displacerNodes .length = 0;
|
|
135
135
|
|
|
136
|
-
for (
|
|
136
|
+
for (const node of this ._displacers)
|
|
137
137
|
{
|
|
138
|
-
const displacerNode = X3DCast (X3DConstants .HAnimDisplacer,
|
|
138
|
+
const displacerNode = X3DCast (X3DConstants .HAnimDisplacer, node);
|
|
139
139
|
|
|
140
140
|
if (displacerNode)
|
|
141
141
|
displacerNodes .push (displacerNode);
|
|
142
142
|
}
|
|
143
143
|
},
|
|
144
|
-
|
|
144
|
+
traverse: function traverse (type, renderObject)
|
|
145
145
|
{
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
function traverse (type, renderObject)
|
|
146
|
+
if (type === TraverseType .CAMERA)
|
|
149
147
|
{
|
|
150
|
-
if (
|
|
151
|
-
|
|
148
|
+
if (this ._skinCoordIndex .length)
|
|
149
|
+
{
|
|
150
|
+
renderObject .getJoints () .push (this);
|
|
152
151
|
|
|
153
|
-
|
|
152
|
+
this .modelMatrix .assign (this .getMatrix ()) .multRight (renderObject .getModelViewMatrix () .get ());
|
|
153
|
+
}
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
X3DTransformNode .prototype .traverse .call (this, type, renderObject);
|
|
157
|
+
},
|
|
158
|
+
groupTraverse: function (type, renderObject)
|
|
159
|
+
{
|
|
160
|
+
if (type === TraverseType .CAMERA)
|
|
157
161
|
{
|
|
158
162
|
if (this ._skinCoordIndex .length)
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
return base;
|
|
162
|
-
};
|
|
163
|
-
})(),
|
|
164
|
-
getGroupTraverse: (function ()
|
|
165
|
-
{
|
|
166
|
-
const base = X3DTransformNode .prototype .getGroupTraverse ();
|
|
163
|
+
{
|
|
164
|
+
renderObject .getJoints () .push (this);
|
|
167
165
|
|
|
168
|
-
function traverse (type, renderObject)
|
|
169
|
-
{
|
|
170
|
-
if (type === TraverseType .CAMERA)
|
|
171
166
|
this .modelMatrix .assign (renderObject .getModelViewMatrix () .get ());
|
|
172
|
-
|
|
173
|
-
base .call (this, type, renderObject);
|
|
167
|
+
}
|
|
174
168
|
}
|
|
175
169
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
if (this ._skinCoordIndex .length)
|
|
179
|
-
return traverse;
|
|
180
|
-
|
|
181
|
-
return base;
|
|
182
|
-
};
|
|
183
|
-
})(),
|
|
170
|
+
X3DTransformNode .prototype .groupTraverse .call (this, type, renderObject);
|
|
171
|
+
},
|
|
184
172
|
});
|
|
185
173
|
|
|
186
174
|
export default HAnimJoint;
|
|
@@ -45,19 +45,32 @@
|
|
|
45
45
|
*
|
|
46
46
|
******************************************************************************/
|
|
47
47
|
|
|
48
|
+
import X3DChildNode from "../Core/X3DChildNode.js";
|
|
48
49
|
import X3DTimeDependentNode from "../Time/X3DTimeDependentNode.js";
|
|
49
50
|
import X3DConstants from "../../Base/X3DConstants.js";
|
|
50
51
|
|
|
51
52
|
function X3DSoundProcessingNode (executionContext)
|
|
52
53
|
{
|
|
54
|
+
X3DChildNode .call (this, executionContext);
|
|
53
55
|
X3DTimeDependentNode .call (this, executionContext);
|
|
54
56
|
|
|
55
57
|
this .addType (X3DConstants .X3DSoundProcessingNode);
|
|
56
58
|
}
|
|
57
59
|
|
|
58
|
-
X3DSoundProcessingNode .prototype = Object .assign (Object .create (
|
|
60
|
+
X3DSoundProcessingNode .prototype = Object .assign (Object .create (X3DChildNode .prototype),
|
|
61
|
+
X3DTimeDependentNode .prototype,
|
|
59
62
|
{
|
|
60
63
|
constructor: X3DSoundProcessingNode,
|
|
64
|
+
initialize: function ()
|
|
65
|
+
{
|
|
66
|
+
X3DChildNode .prototype .initialize .call (this);
|
|
67
|
+
X3DTimeDependentNode .prototype .initialize .call (this);
|
|
68
|
+
},
|
|
69
|
+
dispose: function ()
|
|
70
|
+
{
|
|
71
|
+
X3DTimeDependentNode .prototype .dispose .call (this);
|
|
72
|
+
X3DChildNode .prototype .dispose .call (this);
|
|
73
|
+
},
|
|
61
74
|
});
|
|
62
75
|
|
|
63
76
|
export default X3DSoundProcessingNode;
|