sunrize 2.1.8 → 2.1.10
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/package.json +22 -14
- package/src/Application/ActionKeys.js +1 -1
- package/src/Application/DataStorage.js +1 -1
- package/src/Application/Document.js +1 -1
- package/src/Application/Footer.js +15 -15
- package/src/Application/Hierarchy.js +1 -1
- package/src/Application/Registry.js +1 -1
- package/src/Application/Selection.js +1 -1
- package/src/Application/Sidebar.js +16 -16
- package/src/Application/Tabs.js +2 -2
- package/src/Bits/MimeTypes.js +1 -1
- package/src/Controls/AnimationPropertiesPopover.js +3 -3
- package/src/Controls/Dialog.js +2 -2
- package/src/Controls/EditNodePopover.js +1 -1
- package/src/Controls/EditUserDefinedFieldPopover.js +13 -45
- package/src/Controls/ExportNodePopover.js +1 -1
- package/src/Controls/ImportNodePopover.js +1 -1
- package/src/Controls/RenameNodeInput.js +1 -1
- package/src/Controls/Splitter.js +2 -2
- package/src/Controls/Tabs.js +25 -25
- package/src/Controls/TexturePreviewPopover.js +3 -3
- package/src/Controls/VideoPreviewPopover.js +3 -3
- package/src/Editors/AnimationEditor.js +10 -10
- package/src/Editors/AnimationMemberList.js +1 -1
- package/src/Editors/FileManager.js +7 -7
- package/src/Editors/Library.js +2 -2
- package/src/Editors/OutlineEditor.js +37 -37
- package/src/Editors/OutlineRouteGraph.js +2 -2
- package/src/Editors/OutlineView.js +99 -97
- package/src/Editors/Panel.js +17 -10
- package/src/Editors/SceneProperties.js +8 -8
- package/src/Editors/ScriptEditor.js +7 -7
- package/src/Editors/Units.js +1 -1
- package/src/Parser/AudioParser.js +1 -1
- package/src/Parser/ImageParser.js +1 -1
- package/src/Parser/VideoParser.js +1 -1
- package/src/Tools/CADGeometry/CADAssemblyTool.js +4 -4
- package/src/Tools/CADGeometry/CADFaceTool.js +4 -4
- package/src/Tools/CADGeometry/CADLayerTool.js +4 -4
- package/src/Tools/CADGeometry/CADPartTool.js +4 -4
- package/src/Tools/Core/X3DBaseTool.js +1 -1
- package/src/Tools/Core/X3DNodeTool.js +3 -1
- package/src/Tools/Core/X3DPrototypeInstanceTool.js +1 -1
- package/src/Tools/Grouping/GroupTool.js +1 -1
- package/src/Tools/Grouping/StaticGroupTool.js +4 -4
- package/src/Tools/Grouping/SwitchTool.js +4 -4
- package/src/Tools/Grouping/TransformTool.js +4 -4
- package/src/Tools/Grouping/X3DTransformNodeTool.js +1 -1
- package/src/Tools/HAnim/HAnimHumanoidTool.js +4 -4
- package/src/Tools/HAnim/HAnimJointTool.js +4 -4
- package/src/Tools/HAnim/HAnimSegmentTool.js +4 -4
- package/src/Tools/HAnim/HAnimSiteTool.js +4 -4
- package/src/Tools/Layering/LayerTool.js +3 -3
- package/src/Tools/Layering/ViewportTool.js +1 -1
- package/src/Tools/Networking/AnchorTool.js +4 -4
- package/src/Tools/Networking/InlineGeometryTool.js +1 -1
- package/src/Tools/Networking/InlineTool.js +4 -4
- package/src/Undo/Editor.js +68 -68
- package/src/Undo/UndoManager.js +1 -1
- package/src/assets/X3DUOM.xml +30 -50
- package/src/assets/images/OutlineEditor/Fields/MFQuaternion.svg +199 -0
- package/src/assets/images/OutlineEditor/Fields/SFQuaternion.svg +199 -0
package/src/Undo/Editor.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict"
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
const
|
|
4
4
|
$ = require ("jquery"),
|
|
@@ -9,7 +9,7 @@ const
|
|
|
9
9
|
X3D = require ("../X3D"),
|
|
10
10
|
Traverse = require ("x3d-traverse"),
|
|
11
11
|
UndoManager = require ("./UndoManager"),
|
|
12
|
-
_ = require ("../Application/GetText")
|
|
12
|
+
_ = require ("../Application/GetText");
|
|
13
13
|
|
|
14
14
|
module .exports = class Editor
|
|
15
15
|
{
|
|
@@ -21,7 +21,7 @@ module .exports = class Editor
|
|
|
21
21
|
/**
|
|
22
22
|
* X3D Id
|
|
23
23
|
*/
|
|
24
|
-
static Id = /(?:^[^\x30-\x39\x00-\x20\x22\x23\x27\x2b\x2c\x2d\x2e\x5b\x5c\x5d\x7b\x7d\x7f]{1}[^\x00-\x20\x22\x23\x27\x2c\x2e\x5b\x5c\x5d\x7b\x7d\x7f]*$|^$)
|
|
24
|
+
static Id = /(?:^[^\x30-\x39\x00-\x20\x22\x23\x27\x2b\x2c\x2d\x2e\x5b\x5c\x5d\x7b\x7d\x7f]{1}[^\x00-\x20\x22\x23\x27\x2c\x2e\x5b\x5c\x5d\x7b\x7d\x7f]*$|^$)/;
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
*
|
|
@@ -83,7 +83,7 @@ module .exports = class Editor
|
|
|
83
83
|
|
|
84
84
|
// Determine protos.
|
|
85
85
|
|
|
86
|
-
const protoNodes = new Set ()
|
|
86
|
+
const protoNodes = new Set ();
|
|
87
87
|
|
|
88
88
|
for (const object of Traverse .traverse (objects, Traverse .PROTO_DECLARATIONS | Traverse .PROTO_DECLARATION_BODY | Traverse .ROOT_NODES | Traverse .PROTOTYPE_INSTANCES))
|
|
89
89
|
{
|
|
@@ -436,19 +436,19 @@ module .exports = class Editor
|
|
|
436
436
|
{
|
|
437
437
|
case ".x3d":
|
|
438
438
|
default:
|
|
439
|
-
return scene .toXMLString ()
|
|
439
|
+
return scene .toXMLString ();
|
|
440
440
|
case ".x3dz":
|
|
441
|
-
return zlib .gzipSync (scene .toXMLString ({ style: "CLEAN" }))
|
|
441
|
+
return zlib .gzipSync (scene .toXMLString ({ style: "CLEAN" }));
|
|
442
442
|
case ".x3dv":
|
|
443
|
-
return scene .toVRMLString ()
|
|
443
|
+
return scene .toVRMLString ();
|
|
444
444
|
case ".x3dvz":
|
|
445
|
-
return zlib .gzipSync (scene .toVRMLString ({ style: "CLEAN" }))
|
|
445
|
+
return zlib .gzipSync (scene .toVRMLString ({ style: "CLEAN" }));
|
|
446
446
|
case ".x3dj":
|
|
447
|
-
return scene .toJSONString ()
|
|
447
|
+
return scene .toJSONString ();
|
|
448
448
|
case ".x3djz":
|
|
449
|
-
return zlib .gzipSync (scene .toJSONString ({ style: "CLEAN" }))
|
|
449
|
+
return zlib .gzipSync (scene .toJSONString ({ style: "CLEAN" }));
|
|
450
450
|
case ".html":
|
|
451
|
-
return this .getHTML (scene)
|
|
451
|
+
return this .getHTML (scene);
|
|
452
452
|
}
|
|
453
453
|
}
|
|
454
454
|
|
|
@@ -535,7 +535,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
535
535
|
<p>Made with <a href="https://create3000.github.io/sunrize/" target="_blank">Sunrize X3D Editor</a>. If local files are not loaded <a href="https://create3000.github.io/x_ite/setup-a-localhost-server">consider setup a localhost server</a> or use <a href="https://create3000.github.io/x_ite/dom-integration">DOM integration methods</a>.</p>
|
|
536
536
|
</body>
|
|
537
537
|
</html>
|
|
538
|
-
|
|
538
|
+
`;
|
|
539
539
|
}
|
|
540
540
|
|
|
541
541
|
static absoluteURL = new RegExp ("^(?:[a-z]+:|//)", "i");
|
|
@@ -550,7 +550,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
550
550
|
*/
|
|
551
551
|
static rewriteURLs (executionContext, objects, oldWorldURL, newWorldURL, undoManager = UndoManager .shared)
|
|
552
552
|
{
|
|
553
|
-
undoManager .beginUndo (_("Rewrite URLs"))
|
|
553
|
+
undoManager .beginUndo (_("Rewrite URLs"));
|
|
554
554
|
|
|
555
555
|
for (const object of Traverse .traverse (objects, Traverse .EXTERNPROTO_DECLARATIONS | Traverse .PROTO_DECLARATIONS | Traverse .PROTO_DECLARATION_BODY | Traverse .ROOT_NODES))
|
|
556
556
|
{
|
|
@@ -637,19 +637,19 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
637
637
|
static isParentContext (parentContext, childContext)
|
|
638
638
|
{
|
|
639
639
|
if (parentContext === childContext)
|
|
640
|
-
return false
|
|
640
|
+
return false;
|
|
641
641
|
|
|
642
|
-
let executionContext = childContext
|
|
642
|
+
let executionContext = childContext;
|
|
643
643
|
|
|
644
644
|
while (!(executionContext instanceof X3D .X3DScene))
|
|
645
645
|
{
|
|
646
646
|
if (executionContext === parentContext)
|
|
647
|
-
return true
|
|
647
|
+
return true;
|
|
648
648
|
|
|
649
|
-
executionContext = executionContext .getExecutionContext ()
|
|
649
|
+
executionContext = executionContext .getExecutionContext ();
|
|
650
650
|
}
|
|
651
651
|
|
|
652
|
-
return executionContext === parentContext
|
|
652
|
+
return executionContext === parentContext;
|
|
653
653
|
}
|
|
654
654
|
|
|
655
655
|
/**
|
|
@@ -860,15 +860,15 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
860
860
|
const
|
|
861
861
|
unit = scene .getUnit (category),
|
|
862
862
|
oldName = unit .name,
|
|
863
|
-
oldConversionFactor = unit .conversionFactor
|
|
863
|
+
oldConversionFactor = unit .conversionFactor;
|
|
864
864
|
|
|
865
|
-
undoManager .beginUndo (_("Update Unit Category »%s«"), category)
|
|
865
|
+
undoManager .beginUndo (_("Update Unit Category »%s«"), category);
|
|
866
866
|
|
|
867
|
-
scene .updateUnit (category, name, conversionFactor)
|
|
867
|
+
scene .updateUnit (category, name, conversionFactor);
|
|
868
868
|
|
|
869
869
|
undoManager .registerUndo (() =>
|
|
870
870
|
{
|
|
871
|
-
this .updateUnit (scene, category, oldName, oldConversionFactor, undoManager)
|
|
871
|
+
this .updateUnit (scene, category, oldName, oldConversionFactor, undoManager);
|
|
872
872
|
});
|
|
873
873
|
|
|
874
874
|
undoManager .endUndo ();
|
|
@@ -1179,23 +1179,23 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
1179
1179
|
{
|
|
1180
1180
|
const
|
|
1181
1181
|
oldProtos = new Map (Array .from (executionContext .protos, p => [p .getName (), p])),
|
|
1182
|
-
proto = new X3D .X3DProtoDeclaration (executionContext)
|
|
1182
|
+
proto = new X3D .X3DProtoDeclaration (executionContext);
|
|
1183
1183
|
|
|
1184
|
-
undoManager .beginUndo (_("Add Proto Declaration »%s«"), name)
|
|
1184
|
+
undoManager .beginUndo (_("Add Proto Declaration »%s«"), name);
|
|
1185
1185
|
|
|
1186
|
-
proto .setup ()
|
|
1187
|
-
executionContext .updateProtoDeclaration (name, proto)
|
|
1186
|
+
proto .setup ();
|
|
1187
|
+
executionContext .updateProtoDeclaration (name, proto);
|
|
1188
1188
|
|
|
1189
1189
|
undoManager .registerUndo (() =>
|
|
1190
1190
|
{
|
|
1191
|
-
this .setProtoDeclarations (executionContext, oldProtos, undoManager)
|
|
1191
|
+
this .setProtoDeclarations (executionContext, oldProtos, undoManager);
|
|
1192
1192
|
});
|
|
1193
1193
|
|
|
1194
|
-
this .requestUpdateInstances (executionContext, undoManager)
|
|
1194
|
+
this .requestUpdateInstances (executionContext, undoManager);
|
|
1195
1195
|
|
|
1196
1196
|
undoManager .endUndo ();
|
|
1197
1197
|
|
|
1198
|
-
return proto
|
|
1198
|
+
return proto;
|
|
1199
1199
|
}
|
|
1200
1200
|
|
|
1201
1201
|
/**
|
|
@@ -1207,21 +1207,21 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
1207
1207
|
*/
|
|
1208
1208
|
static updateProtoDeclaration (executionContext, name, proto, undoManager = UndoManager .shared)
|
|
1209
1209
|
{
|
|
1210
|
-
const oldName = proto .getName ()
|
|
1210
|
+
const oldName = proto .getName ();
|
|
1211
1211
|
|
|
1212
|
-
undoManager .beginUndo (_("Update Proto Declaration »%s«"), name)
|
|
1212
|
+
undoManager .beginUndo (_("Update Proto Declaration »%s«"), name);
|
|
1213
1213
|
|
|
1214
|
-
executionContext .updateProtoDeclaration (name, proto)
|
|
1214
|
+
executionContext .updateProtoDeclaration (name, proto);
|
|
1215
1215
|
|
|
1216
1216
|
undoManager .registerUndo (() =>
|
|
1217
1217
|
{
|
|
1218
1218
|
if (oldName)
|
|
1219
|
-
this .updateProtoDeclaration (executionContext, oldName, proto, undoManager)
|
|
1219
|
+
this .updateProtoDeclaration (executionContext, oldName, proto, undoManager);
|
|
1220
1220
|
else
|
|
1221
|
-
this .removeProtoDeclaration (executionContext, name, undoManager)
|
|
1221
|
+
this .removeProtoDeclaration (executionContext, name, undoManager);
|
|
1222
1222
|
});
|
|
1223
1223
|
|
|
1224
|
-
this .requestUpdateInstances (executionContext, undoManager)
|
|
1224
|
+
this .requestUpdateInstances (executionContext, undoManager);
|
|
1225
1225
|
|
|
1226
1226
|
undoManager .endUndo ();
|
|
1227
1227
|
}
|
|
@@ -1234,18 +1234,18 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
1234
1234
|
*/
|
|
1235
1235
|
static removeProtoDeclaration (executionContext, name, undoManager = UndoManager .shared)
|
|
1236
1236
|
{
|
|
1237
|
-
const oldProtos = new Map (Array .from (executionContext .protos, p => [p .getName (), p]))
|
|
1237
|
+
const oldProtos = new Map (Array .from (executionContext .protos, p => [p .getName (), p]));
|
|
1238
1238
|
|
|
1239
|
-
undoManager .beginUndo (_("Remove Proto Declaration »%s«"), name)
|
|
1239
|
+
undoManager .beginUndo (_("Remove Proto Declaration »%s«"), name);
|
|
1240
1240
|
|
|
1241
|
-
executionContext .removeProtoDeclaration (name)
|
|
1241
|
+
executionContext .removeProtoDeclaration (name);
|
|
1242
1242
|
|
|
1243
1243
|
undoManager .registerUndo (() =>
|
|
1244
1244
|
{
|
|
1245
|
-
this .setProtoDeclarations (executionContext, oldProtos, undoManager)
|
|
1245
|
+
this .setProtoDeclarations (executionContext, oldProtos, undoManager);
|
|
1246
1246
|
});
|
|
1247
1247
|
|
|
1248
|
-
this .requestUpdateInstances (executionContext, undoManager)
|
|
1248
|
+
this .requestUpdateInstances (executionContext, undoManager);
|
|
1249
1249
|
|
|
1250
1250
|
undoManager .endUndo ();
|
|
1251
1251
|
}
|
|
@@ -1541,39 +1541,39 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
1541
1541
|
*/
|
|
1542
1542
|
static getNextAvailableProtoNode (executionContext, protoNode)
|
|
1543
1543
|
{
|
|
1544
|
-
const name = protoNode instanceof X3D .X3DProtoDeclarationNode ? protoNode .getName () : protoNode
|
|
1544
|
+
const name = protoNode instanceof X3D .X3DProtoDeclarationNode ? protoNode .getName () : protoNode;
|
|
1545
1545
|
|
|
1546
1546
|
if (protoNode instanceof X3D .X3DProtoDeclaration)
|
|
1547
1547
|
{
|
|
1548
|
-
const externproto = executionContext .externprotos .get (name)
|
|
1548
|
+
const externproto = executionContext .externprotos .get (name);
|
|
1549
1549
|
|
|
1550
1550
|
if (externproto)
|
|
1551
|
-
return externproto
|
|
1551
|
+
return externproto;
|
|
1552
1552
|
}
|
|
1553
1553
|
|
|
1554
|
-
const proto = executionContext .getOuterNode ()
|
|
1554
|
+
const proto = executionContext .getOuterNode ();
|
|
1555
1555
|
|
|
1556
1556
|
if (!(proto instanceof X3D .X3DProtoDeclaration))
|
|
1557
|
-
return null
|
|
1557
|
+
return null;
|
|
1558
1558
|
|
|
1559
|
-
executionContext = proto .getExecutionContext ()
|
|
1559
|
+
executionContext = proto .getExecutionContext ();
|
|
1560
1560
|
|
|
1561
|
-
const index = executionContext .protos .indexOf (proto)
|
|
1561
|
+
const index = executionContext .protos .indexOf (proto);
|
|
1562
1562
|
|
|
1563
1563
|
for (let i = 0; i < index; ++ i)
|
|
1564
1564
|
{
|
|
1565
|
-
const proto = executionContext .protos [i]
|
|
1565
|
+
const proto = executionContext .protos [i];
|
|
1566
1566
|
|
|
1567
1567
|
if (proto .getName () === name)
|
|
1568
|
-
return proto
|
|
1568
|
+
return proto;
|
|
1569
1569
|
}
|
|
1570
1570
|
|
|
1571
|
-
const externproto = executionContext .externprotos .get (name)
|
|
1571
|
+
const externproto = executionContext .externprotos .get (name);
|
|
1572
1572
|
|
|
1573
1573
|
if (externproto)
|
|
1574
|
-
return externproto
|
|
1574
|
+
return externproto;
|
|
1575
1575
|
|
|
1576
|
-
return this .getNextAvailableProtoNode (executionContext, name)
|
|
1576
|
+
return this .getNextAvailableProtoNode (executionContext, name);
|
|
1577
1577
|
}
|
|
1578
1578
|
|
|
1579
1579
|
/**
|
|
@@ -2422,22 +2422,22 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
2422
2422
|
static addReference (proto, protoField, node, field, undoManager = UndoManager .shared)
|
|
2423
2423
|
{
|
|
2424
2424
|
node = node .valueOf ();
|
|
2425
|
-
field = typeof field === "string" ? node .getField (field) : field
|
|
2425
|
+
field = typeof field === "string" ? node .getField (field) : field;
|
|
2426
2426
|
|
|
2427
2427
|
const
|
|
2428
2428
|
instance = node .getType () .includes (X3D .X3DConstants .X3DPrototypeInstance),
|
|
2429
|
-
name = field .getName ()
|
|
2429
|
+
name = field .getName ();
|
|
2430
2430
|
|
|
2431
|
-
undoManager .beginUndo (_("Add Reference from »%s« to »%s«"), protoField .getName (), field .getName ())
|
|
2431
|
+
undoManager .beginUndo (_("Add Reference from »%s« to »%s«"), protoField .getName (), field .getName ());
|
|
2432
2432
|
|
|
2433
|
-
field .addReference (protoField)
|
|
2433
|
+
field .addReference (protoField);
|
|
2434
2434
|
|
|
2435
2435
|
undoManager .registerUndo (() =>
|
|
2436
2436
|
{
|
|
2437
|
-
this .removeReference (proto, protoField, node, instance ? name : field, undoManager)
|
|
2437
|
+
this .removeReference (proto, protoField, node, instance ? name : field, undoManager);
|
|
2438
2438
|
});
|
|
2439
2439
|
|
|
2440
|
-
this .requestUpdateInstances (proto, undoManager)
|
|
2440
|
+
this .requestUpdateInstances (proto, undoManager);
|
|
2441
2441
|
|
|
2442
2442
|
undoManager .endUndo ();
|
|
2443
2443
|
}
|
|
@@ -2452,22 +2452,22 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
2452
2452
|
static removeReference (proto, protoField, node, field, undoManager = UndoManager .shared)
|
|
2453
2453
|
{
|
|
2454
2454
|
node = node .valueOf ();
|
|
2455
|
-
field = typeof field === "string" ? node .getField (field) : field
|
|
2455
|
+
field = typeof field === "string" ? node .getField (field) : field;
|
|
2456
2456
|
|
|
2457
2457
|
const
|
|
2458
2458
|
instance = node .getType () .includes (X3D .X3DConstants .X3DPrototypeInstance),
|
|
2459
|
-
name = field .getName ()
|
|
2459
|
+
name = field .getName ();
|
|
2460
2460
|
|
|
2461
|
-
undoManager .beginUndo (_("Remove Reference from »%s« to »%s«"), protoField .getName (), field .getName ())
|
|
2461
|
+
undoManager .beginUndo (_("Remove Reference from »%s« to »%s«"), protoField .getName (), field .getName ());
|
|
2462
2462
|
|
|
2463
|
-
field .removeReference (protoField)
|
|
2463
|
+
field .removeReference (protoField);
|
|
2464
2464
|
|
|
2465
2465
|
undoManager .registerUndo (() =>
|
|
2466
2466
|
{
|
|
2467
|
-
this .addReference (proto, protoField, node, instance ? name : field, undoManager)
|
|
2467
|
+
this .addReference (proto, protoField, node, instance ? name : field, undoManager);
|
|
2468
2468
|
});
|
|
2469
2469
|
|
|
2470
|
-
this .requestUpdateInstances (proto, undoManager)
|
|
2470
|
+
this .requestUpdateInstances (proto, undoManager);
|
|
2471
2471
|
|
|
2472
2472
|
undoManager .endUndo ();
|
|
2473
2473
|
}
|
|
@@ -2860,7 +2860,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
2860
2860
|
{
|
|
2861
2861
|
case X3D .X3DConstants .DirectionalLight:
|
|
2862
2862
|
return new X3D .Box3 (X3D .Vector3 .ONE, innerNode .getMetaData ("DirectionalLight/location", new X3D .Vector3 ()))
|
|
2863
|
-
.multLeft (
|
|
2863
|
+
.multLeft (X3D .Matrix4 .fromRotation (X3D .Rotation4 .fromVectors (X3D .Vector3 .Z_AXIS, innerNode ._direction .getValue ())))
|
|
2864
2864
|
.multRight (modelMatrix);
|
|
2865
2865
|
case X3D .X3DConstants .PointLight:
|
|
2866
2866
|
return new X3D .Box3 (X3D .Vector3 .ONE, innerNode ._location .getValue ())
|
|
@@ -2869,7 +2869,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
2869
2869
|
case X3D .X3DConstants .Sound:
|
|
2870
2870
|
case X3D .X3DConstants .X3DTextureProjectorNode:
|
|
2871
2871
|
return new X3D .Box3 (X3D .Vector3 .ONE, innerNode ._location .getValue ())
|
|
2872
|
-
.multLeft (
|
|
2872
|
+
.multLeft (X3D .Matrix4 .fromRotation (X3D .Rotation4 .fromVectors (X3D .Vector3 .Z_AXIS, innerNode ._direction .getValue ())))
|
|
2873
2873
|
.multRight (modelMatrix);
|
|
2874
2874
|
case X3D .X3DConstants .X3DBoundedObject:
|
|
2875
2875
|
return innerNode .getBBox (new X3D .Box3 ()) .multRight (modelMatrix);
|
|
@@ -2881,7 +2881,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
2881
2881
|
.multRight (modelMatrix);
|
|
2882
2882
|
case X3D .X3DConstants .X3DViewpointNode:
|
|
2883
2883
|
return new X3D .Box3 (X3D .Vector3 .ONE, innerNode ._position .getValue ())
|
|
2884
|
-
.multLeft (
|
|
2884
|
+
.multLeft (X3D .Matrix4 .fromRotation (innerNode ._orientation .getValue ()))
|
|
2885
2885
|
.multRight (modelMatrix);
|
|
2886
2886
|
case X3D .X3DConstants .X3DLayerNode:
|
|
2887
2887
|
return innerNode .getBBox (new X3D .Box3 ());
|
|
@@ -3032,7 +3032,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
3032
3032
|
{
|
|
3033
3033
|
const
|
|
3034
3034
|
node = object instanceof X3D .SFNode ? object .getValue () : object,
|
|
3035
|
-
fields = node instanceof X3D .X3DExecutionContext ? [node .getRootNodes ()] : node .getFields ()
|
|
3035
|
+
fields = node instanceof X3D .X3DExecutionContext ? [node .getRootNodes ()] : node .getFields ();
|
|
3036
3036
|
|
|
3037
3037
|
for (const field of fields)
|
|
3038
3038
|
{
|
package/src/Undo/UndoManager.js
CHANGED
|
@@ -53,7 +53,7 @@ module .exports = class UndoManager
|
|
|
53
53
|
if (this .undoIndex < 0)
|
|
54
54
|
this .undoLabel = _("Undo");
|
|
55
55
|
else
|
|
56
|
-
this .undoLabel = util .format (_("Undo %s"), this .undoList [this .undoIndex] .description)
|
|
56
|
+
this .undoLabel = util .format (_("Undo %s"), this .undoList [this .undoIndex] .description);
|
|
57
57
|
|
|
58
58
|
this .redoLabel = util .format (_("Redo %s"), undoItem .description);
|
|
59
59
|
|
package/src/assets/X3DUOM.xml
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
<!-- X3D Unified Object Model (X3DUOM) X3dUnifiedObjectModel-4.1.xml -->
|
|
3
3
|
<!-- Online at https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.1.xml -->
|
|
4
4
|
<!-- This file contains a listing of all abstract and concrete nodes in version 4.1 of X3D -->
|
|
5
|
-
<!-- Generated 2026-06-
|
|
6
|
-
<X3dUnifiedObjectModel xmlns:xsd="
|
|
5
|
+
<!-- Generated 2026-06-21-07:00 21:40:54.6369714-07:00 -->
|
|
6
|
+
<X3dUnifiedObjectModel xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
|
|
7
7
|
version="4.1"
|
|
8
8
|
xsd:noNamespaceSchemaLocation="https://www.web3d.org/specifications/X3dUnifiedObjectModel.xsd">
|
|
9
9
|
<SimpleTypeEnumerations>
|
|
@@ -66,15 +66,15 @@
|
|
|
66
66
|
<enumeration value=""BOUNCE"" appinfo="The bounce field value is used."/>
|
|
67
67
|
<enumeration value=""USER_FRICTION""
|
|
68
68
|
appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used."/>
|
|
69
|
-
<enumeration value=""
|
|
69
|
+
<enumeration value=""FRICTION_COEFFICIENT_2""
|
|
70
70
|
appinfo="Apply frictionCoefficients values"/>
|
|
71
71
|
<enumeration value=""ERROR_REDUCTION"" appinfo="Apply softnessErrorCorrection value"/>
|
|
72
72
|
<enumeration value=""CONSTANT_FORCE"" appinfo="Apply softnessConstantForceMix value"/>
|
|
73
|
-
<enumeration value=""
|
|
74
|
-
<enumeration value=""
|
|
73
|
+
<enumeration value=""SPEED_1"" appinfo="Apply first component of surfaceSpeed array"/>
|
|
74
|
+
<enumeration value=""SPEED_2""
|
|
75
75
|
appinfo="Apply second component of surfaceSpeed array"/>
|
|
76
|
-
<enumeration value=""
|
|
77
|
-
<enumeration value=""
|
|
76
|
+
<enumeration value=""SLIP_1"" appinfo="Apply first component of slipFactors array"/>
|
|
77
|
+
<enumeration value=""SLIP_2"" appinfo="Apply second component of slipFactors array"/>
|
|
78
78
|
</SimpleType>
|
|
79
79
|
<SimpleType name="bboxSizeType"
|
|
80
80
|
baseType="SFVec3f"
|
|
@@ -601,6 +601,9 @@
|
|
|
601
601
|
<enumeration value="MFInt32" appinfo="Multiple Field (list) 32-bit integer"/>
|
|
602
602
|
<enumeration value="SFNode" appinfo="Single Field (singleton) node"/>
|
|
603
603
|
<enumeration value="MFNode" appinfo="Multiple Field (list) nodes"/>
|
|
604
|
+
<enumeration value="SFQuaternion"
|
|
605
|
+
appinfo="Single Field (singleton) quaternion value"/>
|
|
606
|
+
<enumeration value="MFQuaternion" appinfo="Multiple Field (list) quaternion values"/>
|
|
604
607
|
<enumeration value="SFRotation"
|
|
605
608
|
appinfo="Single Field (singleton) rotation value using 3-tuple axis, radian angle"/>
|
|
606
609
|
<enumeration value="MFRotation"
|
|
@@ -5070,9 +5073,9 @@
|
|
|
5070
5073
|
</InterfaceDefinition>
|
|
5071
5074
|
</FieldType>
|
|
5072
5075
|
<FieldType type="SFQuaternion"
|
|
5073
|
-
tupleSize="
|
|
5076
|
+
tupleSize="4"
|
|
5074
5077
|
isArray="false"
|
|
5075
|
-
defaultValue="0.0 0.0 0.0
|
|
5078
|
+
defaultValue="0.0 0.0 0.0 0.0"
|
|
5076
5079
|
regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*">
|
|
5077
5080
|
<InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/fieldTypes.html#SFQuaternionAndMFQuaternion"
|
|
5078
5081
|
appinfo="SFQuaternion is a 4-tuple set of double-precision floating-point values, specifying a 3D homogeneous vector. Warning: comma characters within singleton values do not pass strict XML validation.">
|
|
@@ -5080,7 +5083,7 @@
|
|
|
5080
5083
|
</InterfaceDefinition>
|
|
5081
5084
|
</FieldType>
|
|
5082
5085
|
<FieldType type="MFQuaternion"
|
|
5083
|
-
tupleSize="
|
|
5086
|
+
tupleSize="4"
|
|
5084
5087
|
isArray="true"
|
|
5085
5088
|
defaultValue=""
|
|
5086
5089
|
regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*">
|
|
@@ -5112,7 +5115,7 @@
|
|
|
5112
5115
|
<FieldType type="SFString"
|
|
5113
5116
|
tupleSize="1"
|
|
5114
5117
|
isArray="false"
|
|
5115
|
-
defaultValue="
|
|
5118
|
+
defaultValue=""
|
|
5116
5119
|
regex="(\s|\S)*">
|
|
5117
5120
|
<InterfaceDefinition specificationUrl="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/fieldTypes.html#SFStringAndMFString"
|
|
5118
5121
|
appinfo="SFString defines a single string encoded with the UTF-8 universal character set.">
|
|
@@ -13974,18 +13977,18 @@
|
|
|
13974
13977
|
<enumeration value=""BOUNCE"" appinfo="The bounce field value is used."/>
|
|
13975
13978
|
<enumeration value=""USER_FRICTION""
|
|
13976
13979
|
appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used."/>
|
|
13977
|
-
<enumeration value=""
|
|
13980
|
+
<enumeration value=""FRICTION_COEFFICIENT_2""
|
|
13978
13981
|
appinfo="Apply frictionCoefficients values."/>
|
|
13979
13982
|
<enumeration value=""ERROR_REDUCTION""
|
|
13980
13983
|
appinfo="Apply softnessErrorCorrection value."/>
|
|
13981
13984
|
<enumeration value=""CONSTANT_FORCE""
|
|
13982
13985
|
appinfo="Apply softnessConstantForceMix value."/>
|
|
13983
|
-
<enumeration value=""
|
|
13986
|
+
<enumeration value=""SPEED_1""
|
|
13984
13987
|
appinfo="Apply first component of surfaceSpeed array."/>
|
|
13985
|
-
<enumeration value=""
|
|
13988
|
+
<enumeration value=""SPEED_2""
|
|
13986
13989
|
appinfo="Apply second component of surfaceSpeed array."/>
|
|
13987
|
-
<enumeration value=""
|
|
13988
|
-
<enumeration value=""
|
|
13990
|
+
<enumeration value=""SLIP_1"" appinfo="Apply first component of slipFactors array."/>
|
|
13991
|
+
<enumeration value=""SLIP_2"" appinfo="Apply second component of slipFactors array."/>
|
|
13989
13992
|
</field>
|
|
13990
13993
|
<field name="bboxCenter"
|
|
13991
13994
|
type="SFVec3f"
|
|
@@ -15275,18 +15278,18 @@
|
|
|
15275
15278
|
<enumeration value=""BOUNCE"" appinfo="The bounce field value is used."/>
|
|
15276
15279
|
<enumeration value=""USER_FRICTION""
|
|
15277
15280
|
appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used."/>
|
|
15278
|
-
<enumeration value=""
|
|
15281
|
+
<enumeration value=""FRICTION_COEFFICIENT_2""
|
|
15279
15282
|
appinfo="Apply frictionCoefficients values."/>
|
|
15280
15283
|
<enumeration value=""ERROR_REDUCTION""
|
|
15281
15284
|
appinfo="Apply softnessErrorCorrection value."/>
|
|
15282
15285
|
<enumeration value=""CONSTANT_FORCE""
|
|
15283
15286
|
appinfo="Apply softnessConstantForceMix value."/>
|
|
15284
|
-
<enumeration value=""
|
|
15287
|
+
<enumeration value=""SPEED_1""
|
|
15285
15288
|
appinfo="Apply first component of surfaceSpeed array."/>
|
|
15286
|
-
<enumeration value=""
|
|
15289
|
+
<enumeration value=""SPEED_2""
|
|
15287
15290
|
appinfo="Apply second component of surfaceSpeed array."/>
|
|
15288
|
-
<enumeration value=""
|
|
15289
|
-
<enumeration value=""
|
|
15291
|
+
<enumeration value=""SLIP_1"" appinfo="Apply first component of slipFactors array."/>
|
|
15292
|
+
<enumeration value=""SLIP_2"" appinfo="Apply second component of slipFactors array."/>
|
|
15290
15293
|
</field>
|
|
15291
15294
|
<field name="body1"
|
|
15292
15295
|
type="SFNode"
|
|
@@ -18893,19 +18896,9 @@
|
|
|
18893
18896
|
inheritedFrom="X3DUrlObject"
|
|
18894
18897
|
description="Author-provided prose that describes intended purpose of the url asset."/>
|
|
18895
18898
|
<field name="family"
|
|
18896
|
-
type="
|
|
18899
|
+
type="SFString"
|
|
18897
18900
|
accessType="inputOutput"
|
|
18898
|
-
|
|
18899
|
-
simpleType="fontFamilyValues"
|
|
18900
|
-
baseType="MFString"
|
|
18901
|
-
description="Array of quoted font family names in preference order, browsers use the first supported family.">
|
|
18902
|
-
<enumeration value=""SANS""
|
|
18903
|
-
appinfo="default font family for sans-serif font such as Helvetica."/>
|
|
18904
|
-
<enumeration value=""SERIF""
|
|
18905
|
-
appinfo="default font family for serif font such as Times-Roman."/>
|
|
18906
|
-
<enumeration value=""TYPEWRITER""
|
|
18907
|
-
appinfo="default font family for a fixed-pitch font such as Courier."/>
|
|
18908
|
-
</field>
|
|
18901
|
+
description="The family field provides an identifying alias for the font in the associated file, if that file only contains a single font family (possibly with multiple styles)."/>
|
|
18909
18902
|
<field name="IS"
|
|
18910
18903
|
type="SFNode"
|
|
18911
18904
|
accessType="inputOutput"
|
|
@@ -19409,7 +19402,7 @@
|
|
|
19409
19402
|
type="SFBool"
|
|
19410
19403
|
accessType="inputOutput"
|
|
19411
19404
|
default="true"
|
|
19412
|
-
description="indicates whether this
|
|
19405
|
+
description="indicates whether this GaussianSplats node is a target for pointer events, if FALSE then it is ignored during pointer picking."/>
|
|
19413
19406
|
<field name="positions"
|
|
19414
19407
|
type="MFVec3f"
|
|
19415
19408
|
accessType="inputOutput"
|
|
@@ -31903,11 +31896,6 @@
|
|
|
31903
31896
|
default="true"
|
|
31904
31897
|
inheritedFrom="X3DShapeNode"
|
|
31905
31898
|
description="The castShadow field defines whether this Shape casts shadows as produced by lighting nodes."/>
|
|
31906
|
-
<field name="castShadow"
|
|
31907
|
-
type="SFBool"
|
|
31908
|
-
accessType="inputOutput"
|
|
31909
|
-
default="true"
|
|
31910
|
-
description="The castShadow field defines whether this Shape casts shadows as produced by lighting nodes."/>
|
|
31911
31899
|
<field name="color"
|
|
31912
31900
|
synonym="colorRamp"
|
|
31913
31901
|
type="SFNode"
|
|
@@ -35044,17 +35032,6 @@
|
|
|
35044
35032
|
acceptableNodeTypes="TextureProperties"
|
|
35045
35033
|
inheritedFrom="X3DTexture2DNode"
|
|
35046
35034
|
description="Optional single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images."/>
|
|
35047
|
-
<field name="update"
|
|
35048
|
-
type="SFString"
|
|
35049
|
-
accessType="inputOutput"
|
|
35050
|
-
default="NONE"
|
|
35051
|
-
additionalEnumerationValuesAllowed="false"
|
|
35052
|
-
simpleType="generatedCubeMapTextureUpdateChoices"
|
|
35053
|
-
baseType="xs:NMTOKEN">
|
|
35054
|
-
<enumeration value="NONE" appinfo="no further texture updates are rendered."/>
|
|
35055
|
-
<enumeration value="NEXT_FRAME_ONLY" appinfo="render texture once at end of frame."/>
|
|
35056
|
-
<enumeration value="ALWAYS" appinfo="texture to be rendered every frame."/>
|
|
35057
|
-
</field>
|
|
35058
35035
|
<field name="updateInterval"
|
|
35059
35036
|
type="SFTime"
|
|
35060
35037
|
accessType="inputOutput"
|
|
@@ -43534,6 +43511,9 @@
|
|
|
43534
43511
|
<enumeration value="MFInt32" appinfo="Multiple Field (list) 32-bit integer."/>
|
|
43535
43512
|
<enumeration value="SFNode" appinfo="Single Field (singleton) node."/>
|
|
43536
43513
|
<enumeration value="MFNode" appinfo="Multiple Field (list) nodes."/>
|
|
43514
|
+
<enumeration value="SFQuaternion"
|
|
43515
|
+
appinfo="Single Field (singleton) quaternion value."/>
|
|
43516
|
+
<enumeration value="MFQuaternion" appinfo="Multiple Field (list) quaternion values."/>
|
|
43537
43517
|
<enumeration value="SFRotation"
|
|
43538
43518
|
appinfo="Single Field (singleton) rotation value using 3-tuple axis, radian angle."/>
|
|
43539
43519
|
<enumeration value="MFRotation"
|