x_ite 8.3.2 → 8.4.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.
- 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 +64 -75
- 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 +3986 -1366
- 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/field-services-and-objects.md +24 -4
- package/docs/_posts/reference/prototype-services.md +24 -4
- package/docs/_posts/reference/scene-services.md +18 -2
- package/docs/_posts/what's-new.md +32 -4
- 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 +45 -19
- package/src/x_ite/Base/X3DObject.js +29 -20
- package/src/x_ite/Base/X3DObjectArrayField.js +71 -26
- package/src/x_ite/Base/X3DTypedArrayField.js +108 -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 +682 -210
- package/src/x_ite/Components/Core/X3DPrototypeInstance.js +484 -100
- package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +18 -43
- package/src/x_ite/Components/HAnim/HAnimHumanoid.js +27 -26
- package/src/x_ite/Components/HAnim/HAnimJoint.js +19 -31
- package/src/x_ite/Components/Rendering/X3DGeometryNode.js +6 -3
- 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 +51 -22
- package/src/x_ite/Configuration/ProfileInfo.js +10 -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 +69 -26
- package/src/x_ite/Execution/X3DExecutionContext.js +78 -55
- package/src/x_ite/Execution/X3DExportedNode.js +75 -28
- package/src/x_ite/Execution/X3DImportedNode.js +227 -67
- package/src/x_ite/Execution/X3DScene.js +437 -117
- package/src/x_ite/Fields/ArrayFields.js +105 -55
- package/src/x_ite/Fields/SFBool.js +14 -6
- package/src/x_ite/Fields/SFColor.js +35 -12
- package/src/x_ite/Fields/SFColorRGBA.js +2 -0
- package/src/x_ite/Fields/SFDouble.js +17 -10
- package/src/x_ite/Fields/SFFloat.js +17 -10
- package/src/x_ite/Fields/SFImage.js +93 -8
- package/src/x_ite/Fields/SFInt32.js +14 -6
- package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +38 -13
- package/src/x_ite/Fields/SFNode.js +59 -21
- package/src/x_ite/Fields/SFRotation.js +38 -13
- package/src/x_ite/Fields/SFString.js +14 -7
- package/src/x_ite/Fields/SFTime.js +14 -6
- package/src/x_ite/Fields/SFVecPrototypeTemplate.js +39 -13
- package/src/x_ite/InputOutput/FileLoader.js +1 -1
- package/src/x_ite/InputOutput/Generator.js +178 -17
- package/src/x_ite/Parser/JSONParser.js +1 -1
- 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 +182 -64
- package/src/x_ite/Prototype/X3DProtoDeclaration.js +314 -93
- package/src/x_ite/Rendering/X3DRenderObject.js +6 -1
- package/src/x_ite/Routing/X3DRoute.js +104 -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
|
@@ -108,7 +108,7 @@ SupportedProfiles .addProfile ({
|
|
|
108
108
|
SupportedComponents .get ("ParticleSystems"),
|
|
109
109
|
SupportedComponents .get ("Picking"),
|
|
110
110
|
SupportedComponents .get ("PointingDeviceSensor"),
|
|
111
|
-
SupportedComponents .get ("
|
|
111
|
+
SupportedComponents .get ("TextureProjector"),
|
|
112
112
|
SupportedComponents .get ("Rendering"),
|
|
113
113
|
SupportedComponents .get ("RigidBodyPhysics"),
|
|
114
114
|
SupportedComponents .get ("Scripting"),
|
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
******************************************************************************/
|
|
47
47
|
|
|
48
48
|
import X3DObject from "../Base/X3DObject.js";
|
|
49
|
-
import Generator from "../InputOutput/Generator.js";
|
|
50
49
|
|
|
51
50
|
function UnitInfo (category, name, conversionFactor)
|
|
52
51
|
{
|
|
@@ -66,35 +65,79 @@ UnitInfo .prototype = Object .assign (Object .create (X3DObject .prototype),
|
|
|
66
65
|
{
|
|
67
66
|
return "UnitInfo";
|
|
68
67
|
},
|
|
69
|
-
toVRMLStream: function (
|
|
68
|
+
toVRMLStream: function (generator)
|
|
70
69
|
{
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
70
|
+
generator .string += "UNIT";
|
|
71
|
+
generator .string += generator .Space ();
|
|
72
|
+
generator .string += this .category;
|
|
73
|
+
generator .string += generator .Space ();
|
|
74
|
+
generator .string += this .name;
|
|
75
|
+
generator .string += generator .Space ();
|
|
76
|
+
generator .string += this .conversionFactor;
|
|
78
77
|
},
|
|
79
|
-
toXMLStream: function (
|
|
78
|
+
toXMLStream: function (generator)
|
|
80
79
|
{
|
|
81
|
-
|
|
80
|
+
generator .string += generator .Indent ();
|
|
81
|
+
generator .string += "<unit";
|
|
82
|
+
generator .string += generator .Space ();
|
|
83
|
+
generator .string += "category='";
|
|
84
|
+
generator .string += this .category;
|
|
85
|
+
generator .string += "'";
|
|
86
|
+
generator .string += generator .Space ();
|
|
87
|
+
generator .string += "name='";
|
|
88
|
+
generator .string += generator .XMLEncode (this .name);
|
|
89
|
+
generator .string += "'";
|
|
90
|
+
generator .string += generator .Space ();
|
|
91
|
+
generator .string += "conversionFactor='";
|
|
92
|
+
generator .string += this .conversionFactor;
|
|
93
|
+
generator .string += "'";
|
|
94
|
+
generator .string += "/>";
|
|
95
|
+
},
|
|
96
|
+
toJSONStream: function (generator, _throw)
|
|
97
|
+
{
|
|
98
|
+
if (this .conversionFactor === 1)
|
|
99
|
+
throw new Error ("conversionFactor is 1");
|
|
100
|
+
|
|
101
|
+
generator .string += generator .Indent ();
|
|
102
|
+
|
|
103
|
+
generator .string += '{';
|
|
104
|
+
generator .string += generator .TidyBreak ();
|
|
105
|
+
generator .string += generator .IncIndent ();
|
|
106
|
+
|
|
107
|
+
generator .string += generator .Indent ();
|
|
108
|
+
generator .string += '"';
|
|
109
|
+
generator .string += "@category";
|
|
110
|
+
generator .string += '"';
|
|
111
|
+
generator .string += ':';
|
|
112
|
+
generator .string += generator .TidySpace ();
|
|
113
|
+
generator .string += '"';
|
|
114
|
+
generator .string += this .category;
|
|
115
|
+
generator .string += '"';
|
|
116
|
+
generator .string += ',';
|
|
117
|
+
generator .string += generator .TidyBreak ();
|
|
118
|
+
|
|
119
|
+
generator .string += generator .Indent ();
|
|
120
|
+
generator .string += '"';
|
|
121
|
+
generator .string += "@name";
|
|
122
|
+
generator .string += '"';
|
|
123
|
+
generator .string += ':';
|
|
124
|
+
generator .string += generator .TidySpace ();
|
|
125
|
+
generator .string += generator .JSONEncode (this .name);
|
|
126
|
+
generator .string += ',';
|
|
127
|
+
generator .string += generator .TidyBreak ();
|
|
128
|
+
|
|
129
|
+
generator .string += generator .Indent ();
|
|
130
|
+
generator .string += '"';
|
|
131
|
+
generator .string += "@conversionFactor";
|
|
132
|
+
generator .string += '"';
|
|
133
|
+
generator .string += ':';
|
|
134
|
+
generator .string += generator .TidySpace ();
|
|
135
|
+
generator .string += generator .DoublePrecision (this .conversionFactor);
|
|
136
|
+
generator .string += generator .TidyBreak ();
|
|
82
137
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
stream .string += "category='";
|
|
87
|
-
stream .string += this .category;
|
|
88
|
-
stream .string += "'";
|
|
89
|
-
stream .string += " ";
|
|
90
|
-
stream .string += "name='";
|
|
91
|
-
stream .string += generator .XMLEncode (this .name);
|
|
92
|
-
stream .string += "'";
|
|
93
|
-
stream .string += " ";
|
|
94
|
-
stream .string += "conversionFactor='";
|
|
95
|
-
stream .string += this .conversionFactor;
|
|
96
|
-
stream .string += "'";
|
|
97
|
-
stream .string += "/>";
|
|
138
|
+
generator .string += generator .DecIndent ();
|
|
139
|
+
generator .string += generator .Indent ();
|
|
140
|
+
generator .string += '}';
|
|
98
141
|
},
|
|
99
142
|
});
|
|
100
143
|
|
|
@@ -59,7 +59,6 @@ import RouteArray from "../Routing/RouteArray.js";
|
|
|
59
59
|
import X3DRoute from "../Routing/X3DRoute.js";
|
|
60
60
|
import X3DCast from "../Base/X3DCast.js";
|
|
61
61
|
import X3DConstants from "../Base/X3DConstants.js";
|
|
62
|
-
import Generator from "../InputOutput/Generator.js";
|
|
63
62
|
import SFNodeCache from "../Fields/SFNodeCache.js";
|
|
64
63
|
import Algorithm from "../../standard/Math/Algorithm.js";
|
|
65
64
|
|
|
@@ -79,9 +78,14 @@ function X3DExecutionContext (executionContext)
|
|
|
79
78
|
|
|
80
79
|
this .addType (X3DConstants .X3DExecutionContext)
|
|
81
80
|
|
|
82
|
-
this .addChildObjects ("rootNodes",
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
this .addChildObjects ("rootNodes", new Fields .MFNode (),
|
|
82
|
+
"worldInfos", new Fields .MFNode (),
|
|
83
|
+
"sceneGraph_changed", new Fields .SFTime (),
|
|
84
|
+
"namedNodes_changed", new Fields .SFTime (),
|
|
85
|
+
"importedNodes_changed", new Fields .SFTime (),
|
|
86
|
+
"protos_changed", new Fields .SFTime (),
|
|
87
|
+
"externprotos_changed", new Fields .SFTime (),
|
|
88
|
+
"routes_changed", new Fields .SFTime ())
|
|
85
89
|
|
|
86
90
|
this ._rootNodes .setAccessType (X3DConstants .initializeOnly);
|
|
87
91
|
this ._rootNodes .addCloneCount (1);
|
|
@@ -91,13 +95,6 @@ function X3DExecutionContext (executionContext)
|
|
|
91
95
|
this [_protos] = new ProtoDeclarationArray ();
|
|
92
96
|
this [_externprotos] = new ExternProtoDeclarationArray ();
|
|
93
97
|
this [_routes] = new RouteArray ();
|
|
94
|
-
|
|
95
|
-
this .addChildObjects ("namedNodes_changed", new Fields .SFTime (),
|
|
96
|
-
"importedNodes_changed", new Fields .SFTime (),
|
|
97
|
-
"protos_changed", new Fields .SFTime (),
|
|
98
|
-
"externprotos_changed", new Fields .SFTime (),
|
|
99
|
-
"routes_changed", new Fields .SFTime ())
|
|
100
|
-
|
|
101
98
|
}
|
|
102
99
|
|
|
103
100
|
X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
@@ -327,8 +324,6 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
|
|
|
327
324
|
|
|
328
325
|
this [_importedNodes] .add (importedName, importedNode);
|
|
329
326
|
|
|
330
|
-
importedNode .setup ();
|
|
331
|
-
|
|
332
327
|
this ._importedNodes_changed = this .getBrowser () .getCurrentTime ();
|
|
333
328
|
},
|
|
334
329
|
removeImportedNode: function (importedName)
|
|
@@ -761,21 +756,19 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
|
|
|
761
756
|
this ._worldInfos .splice (i, 1);
|
|
762
757
|
}
|
|
763
758
|
},
|
|
764
|
-
toVRMLStream: function (
|
|
759
|
+
toVRMLStream: function (generator)
|
|
765
760
|
{
|
|
766
|
-
const generator = Generator .Get (stream);
|
|
767
|
-
|
|
768
761
|
generator .PushExecutionContext (this);
|
|
769
762
|
generator .EnterScope ();
|
|
770
763
|
generator .ImportedNodes (this .getImportedNodes ());
|
|
771
764
|
|
|
772
765
|
// Output extern protos
|
|
773
766
|
|
|
774
|
-
this .getExternProtoDeclarations () .toVRMLStream (
|
|
767
|
+
this .getExternProtoDeclarations () .toVRMLStream (generator);
|
|
775
768
|
|
|
776
769
|
// Output protos
|
|
777
770
|
|
|
778
|
-
this .getProtoDeclarations () .toVRMLStream (
|
|
771
|
+
this .getProtoDeclarations () .toVRMLStream (generator);
|
|
779
772
|
|
|
780
773
|
// Output root nodes
|
|
781
774
|
|
|
@@ -785,38 +778,28 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
|
|
|
785
778
|
{
|
|
786
779
|
const rootNode = rootNodes [i];
|
|
787
780
|
|
|
788
|
-
|
|
781
|
+
generator .string += generator .Indent ();
|
|
789
782
|
|
|
790
783
|
if (rootNode)
|
|
791
|
-
rootNode .toVRMLStream (
|
|
784
|
+
rootNode .toVRMLStream (generator);
|
|
792
785
|
else
|
|
793
|
-
|
|
786
|
+
generator .string += "NULL";
|
|
794
787
|
|
|
795
|
-
|
|
788
|
+
generator .string += generator .TidyBreak ();
|
|
796
789
|
|
|
797
790
|
if (i !== length - 1)
|
|
798
|
-
|
|
791
|
+
generator .string += generator .TidyBreak ();
|
|
799
792
|
}
|
|
800
793
|
|
|
801
794
|
// Output imported nodes
|
|
802
795
|
|
|
803
796
|
const importedNodes = this .getImportedNodes ();
|
|
804
797
|
|
|
805
|
-
if (importedNodes .
|
|
798
|
+
if (importedNodes .length)
|
|
806
799
|
{
|
|
807
|
-
|
|
800
|
+
generator .string += generator .TidyBreak ();
|
|
808
801
|
|
|
809
|
-
importedNodes .
|
|
810
|
-
{
|
|
811
|
-
try
|
|
812
|
-
{
|
|
813
|
-
importedNode .toVRMLStream (stream);
|
|
814
|
-
|
|
815
|
-
stream .string += "\n";
|
|
816
|
-
}
|
|
817
|
-
catch (error)
|
|
818
|
-
{ }
|
|
819
|
-
});
|
|
802
|
+
importedNodes .toVRMLStream (generator);
|
|
820
803
|
}
|
|
821
804
|
|
|
822
805
|
// Output routes
|
|
@@ -825,29 +808,27 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
|
|
|
825
808
|
|
|
826
809
|
if (routes .length)
|
|
827
810
|
{
|
|
828
|
-
|
|
811
|
+
generator .string += generator .TidyBreak ();
|
|
829
812
|
|
|
830
|
-
routes .toVRMLStream (
|
|
813
|
+
routes .toVRMLStream (generator);
|
|
831
814
|
}
|
|
832
815
|
|
|
833
816
|
generator .LeaveScope ();
|
|
834
817
|
generator .PopExecutionContext ();
|
|
835
818
|
},
|
|
836
|
-
toXMLStream: function (
|
|
819
|
+
toXMLStream: function (generator)
|
|
837
820
|
{
|
|
838
|
-
const generator = Generator .Get (stream);
|
|
839
|
-
|
|
840
821
|
generator .PushExecutionContext (this);
|
|
841
822
|
generator .EnterScope ();
|
|
842
823
|
generator .ImportedNodes (this .getImportedNodes ());
|
|
843
824
|
|
|
844
825
|
// Output extern protos
|
|
845
826
|
|
|
846
|
-
this .getExternProtoDeclarations () .toXMLStream (
|
|
827
|
+
this .getExternProtoDeclarations () .toXMLStream (generator);
|
|
847
828
|
|
|
848
829
|
// Output protos
|
|
849
830
|
|
|
850
|
-
this .getProtoDeclarations () .toXMLStream (
|
|
831
|
+
this .getProtoDeclarations () .toXMLStream (generator);
|
|
851
832
|
|
|
852
833
|
// Output root nodes
|
|
853
834
|
|
|
@@ -855,30 +836,72 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
|
|
|
855
836
|
|
|
856
837
|
if (rootNodes .length)
|
|
857
838
|
{
|
|
858
|
-
rootNodes .toXMLStream (
|
|
839
|
+
rootNodes .toXMLStream (generator);
|
|
859
840
|
|
|
860
|
-
|
|
841
|
+
generator .string += generator .TidyBreak ();
|
|
861
842
|
}
|
|
862
843
|
|
|
863
844
|
// Output imported nodes
|
|
864
845
|
|
|
865
|
-
|
|
846
|
+
this .getImportedNodes () .toXMLStream (generator);
|
|
847
|
+
|
|
848
|
+
// Output routes
|
|
849
|
+
|
|
850
|
+
this .getRoutes () .toXMLStream (generator);
|
|
851
|
+
|
|
852
|
+
generator .LeaveScope ();
|
|
853
|
+
generator .PopExecutionContext ();
|
|
854
|
+
},
|
|
855
|
+
toJSONStream: function (generator)
|
|
856
|
+
{
|
|
857
|
+
generator .PushExecutionContext (this);
|
|
858
|
+
generator .EnterScope ();
|
|
859
|
+
generator .ImportedNodes (this .getImportedNodes ());
|
|
860
|
+
|
|
866
861
|
|
|
867
|
-
|
|
862
|
+
// Extern proto declarations
|
|
863
|
+
|
|
864
|
+
this .getExternProtoDeclarations () .toJSONStream (generator, true);
|
|
865
|
+
|
|
866
|
+
|
|
867
|
+
// Proto declarations
|
|
868
|
+
|
|
869
|
+
this .getProtoDeclarations () .toJSONStream (generator, true);
|
|
870
|
+
|
|
871
|
+
|
|
872
|
+
// Root nodes
|
|
873
|
+
|
|
874
|
+
if (this .getRootNodes () .length)
|
|
868
875
|
{
|
|
869
|
-
|
|
876
|
+
for (const rootNode of this .getRootNodes ())
|
|
870
877
|
{
|
|
871
|
-
|
|
878
|
+
generator .string += generator .Indent ();
|
|
872
879
|
|
|
873
|
-
|
|
880
|
+
if (rootNode)
|
|
881
|
+
{
|
|
882
|
+
rootNode .toJSONStream (generator);
|
|
883
|
+
}
|
|
884
|
+
else
|
|
885
|
+
{
|
|
886
|
+
generator .string += generator .Indent ();
|
|
887
|
+
generator .string += "null";
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
generator .string += ',';
|
|
891
|
+
generator .string += generator .TidyBreak ();
|
|
874
892
|
}
|
|
875
|
-
|
|
876
|
-
{ }
|
|
877
|
-
});
|
|
893
|
+
}
|
|
878
894
|
|
|
879
|
-
// Output routes
|
|
880
895
|
|
|
881
|
-
|
|
896
|
+
// Imported nodes
|
|
897
|
+
|
|
898
|
+
this .getImportedNodes () .toJSONStream (generator, true);
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
// Routes
|
|
902
|
+
|
|
903
|
+
this .getRoutes () .toJSONStream (generator, true);
|
|
904
|
+
|
|
882
905
|
|
|
883
906
|
generator .LeaveScope ();
|
|
884
907
|
generator .PopExecutionContext ();
|
|
@@ -47,7 +47,6 @@
|
|
|
47
47
|
|
|
48
48
|
import X3DObject from "../Base/X3DObject.js";
|
|
49
49
|
import SFNodeCache from "../Fields/SFNodeCache.js";
|
|
50
|
-
import Generator from "../InputOutput/Generator.js";
|
|
51
50
|
|
|
52
51
|
const
|
|
53
52
|
_exportedName = Symbol (),
|
|
@@ -72,47 +71,95 @@ X3DExportedNode .prototype = Object .assign (Object .create (X3DObject .prototyp
|
|
|
72
71
|
{
|
|
73
72
|
return this [_localNode];
|
|
74
73
|
},
|
|
75
|
-
toVRMLStream: function (
|
|
74
|
+
toVRMLStream: function (generator)
|
|
76
75
|
{
|
|
77
|
-
const
|
|
78
|
-
generator = Generator .Get (stream),
|
|
79
|
-
localName = generator .LocalName (this [_localNode]);
|
|
76
|
+
const localName = generator .LocalName (this [_localNode]);
|
|
80
77
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
generator .string += generator .Indent ();
|
|
79
|
+
generator .string += "EXPORT";
|
|
80
|
+
generator .string += generator .Space ();
|
|
81
|
+
generator .string += localName;
|
|
85
82
|
|
|
86
83
|
if (this [_exportedName] !== localName)
|
|
87
84
|
{
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
85
|
+
generator .string += generator .Space ();
|
|
86
|
+
generator .string += "AS";
|
|
87
|
+
generator .string += generator .Space ();
|
|
88
|
+
generator .string += this [_exportedName];
|
|
92
89
|
}
|
|
93
90
|
},
|
|
94
|
-
toXMLStream: function (
|
|
91
|
+
toXMLStream: function (generator)
|
|
95
92
|
{
|
|
96
|
-
const
|
|
97
|
-
generator = Generator .Get (stream),
|
|
98
|
-
localName = generator .LocalName (this [_localNode]);
|
|
93
|
+
const localName = generator .LocalName (this [_localNode]);
|
|
99
94
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
95
|
+
generator .string += generator .Indent ();
|
|
96
|
+
generator .string += "<EXPORT";
|
|
97
|
+
generator .string += generator .Space ();
|
|
98
|
+
generator .string += "localDEF='";
|
|
99
|
+
generator .string += generator .XMLEncode (localName);
|
|
100
|
+
generator .string += "'";
|
|
106
101
|
|
|
107
102
|
if (this [_exportedName] !== localName)
|
|
108
103
|
{
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
104
|
+
generator .string += generator .Space ();
|
|
105
|
+
generator .string += "AS='";
|
|
106
|
+
generator .string += generator .XMLEncode (this [_exportedName]);
|
|
107
|
+
generator .string += "'";
|
|
113
108
|
}
|
|
114
109
|
|
|
115
|
-
|
|
110
|
+
generator .string += "/>";
|
|
111
|
+
},
|
|
112
|
+
toJSONStream: function (generator)
|
|
113
|
+
{
|
|
114
|
+
const localName = generator .LocalName (this [_localNode]);
|
|
115
|
+
|
|
116
|
+
generator .string += generator .Indent ();
|
|
117
|
+
generator .string += '{';
|
|
118
|
+
generator .string += generator .TidySpace ();
|
|
119
|
+
generator .string += '"';
|
|
120
|
+
generator .string += "EXPORT";
|
|
121
|
+
generator .string += '"';
|
|
122
|
+
generator .string += ':';
|
|
123
|
+
generator .string += generator .TidyBreak ();
|
|
124
|
+
generator .string += generator .IncIndent ();
|
|
125
|
+
generator .string += generator .Indent ();
|
|
126
|
+
generator .string += '{';
|
|
127
|
+
generator .string += generator .TidyBreak ();
|
|
128
|
+
generator .string += generator .IncIndent ();
|
|
129
|
+
|
|
130
|
+
generator .string += generator .Indent ();
|
|
131
|
+
generator .string += '"';
|
|
132
|
+
generator .string += "@localDEF";
|
|
133
|
+
generator .string += '"';
|
|
134
|
+
generator .string += ':';
|
|
135
|
+
generator .string += generator .TidySpace ();
|
|
136
|
+
generator .string += generator .JSONEncode (localName);
|
|
137
|
+
|
|
138
|
+
if (this [_exportedName] !== localName)
|
|
139
|
+
{
|
|
140
|
+
generator .string += ',';
|
|
141
|
+
generator .string += generator .TidyBreak ();
|
|
142
|
+
generator .string += generator .Indent ();
|
|
143
|
+
generator .string += '"';
|
|
144
|
+
generator .string += "@AS";
|
|
145
|
+
generator .string += '"';
|
|
146
|
+
generator .string += ':';
|
|
147
|
+
generator .string += generator .TidySpace ();
|
|
148
|
+
generator .string += generator .JSONEncode (this [_exportedName]);
|
|
149
|
+
generator .string += generator .TidyBreak ();
|
|
150
|
+
}
|
|
151
|
+
else
|
|
152
|
+
{
|
|
153
|
+
generator .string += generator .TidyBreak ();
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
generator .string += generator .DecIndent ();
|
|
157
|
+
generator .string += generator .Indent ();
|
|
158
|
+
generator .string += '}';
|
|
159
|
+
generator .string += generator .TidyBreak ();
|
|
160
|
+
generator .string += generator .DecIndent ();
|
|
161
|
+
generator .string += generator .Indent ();
|
|
162
|
+
generator .string += '}';
|
|
116
163
|
},
|
|
117
164
|
});
|
|
118
165
|
|