sunrize 1.7.35 → 1.7.37
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 +5 -5
- package/src/Application/Document.js +3 -0
- package/src/Controls/MaterialPreviewPopover.js +1 -1
- package/src/Controls/TexturePreviewPopover.js +2 -2
- package/src/Editors/Console.js +2 -1
- package/src/Editors/OutlineEditor.js +11 -11
- package/src/Editors/ScriptEditor.js +56 -31
- package/src/Tools/Core/X3DNodeTool.js +1 -1
- package/src/Undo/Editor.js +20 -15
- package/src/assets/X3DUOM.xml +22 -10
- package/src/assets/html/application.html +77 -0
- package/src/assets/html/window.html +38 -0
- package/src/assets/themes/default-template.css +0 -7
- package/src/assets/themes/default.css +1433 -0
- package/src/assets/themes/prompt.css +48 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sunrize",
|
|
3
3
|
"productName": "Sunrize X3D Editor",
|
|
4
|
-
"version": "1.7.
|
|
4
|
+
"version": "1.7.37",
|
|
5
5
|
"description": "A Multi-Platform X3D Editor",
|
|
6
6
|
"main": "src/main.js",
|
|
7
7
|
"bin": {
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"jquery-ui-dist": "^1.13.3",
|
|
100
100
|
"jstree": "^3.3.17",
|
|
101
101
|
"material-icons": "^1.13.12",
|
|
102
|
-
"material-symbols": "^0.27.
|
|
102
|
+
"material-symbols": "^0.27.2",
|
|
103
103
|
"md5": "^2.3.0",
|
|
104
104
|
"mime-types": "^2.1.35",
|
|
105
105
|
"monaco-editor": "^0.50.0",
|
|
@@ -108,8 +108,8 @@
|
|
|
108
108
|
"spectrum-colorpicker2": "^2.0.10",
|
|
109
109
|
"string-similarity": "^4.0.4",
|
|
110
110
|
"tweakpane": "^3.1.10",
|
|
111
|
-
"update-electron-app": "^3.
|
|
112
|
-
"x_ite": "^
|
|
113
|
-
"x3d-traverse": "^1.0.
|
|
111
|
+
"update-electron-app": "^3.1.0",
|
|
112
|
+
"x_ite": "^11.0.1",
|
|
113
|
+
"x3d-traverse": "^1.0.7"
|
|
114
114
|
}
|
|
115
115
|
}
|
|
@@ -28,7 +28,7 @@ $.fn.materialPreviewPopover = async function (node)
|
|
|
28
28
|
|
|
29
29
|
const
|
|
30
30
|
browser = canvas .prop ("browser"),
|
|
31
|
-
scene = browser .createScene (browser .getProfile ("Core"));
|
|
31
|
+
scene = await browser .createScene (browser .getProfile ("Core"));
|
|
32
32
|
|
|
33
33
|
scene .setWorldURL (node .getExecutionContext () .worldURL);
|
|
34
34
|
|
|
@@ -52,7 +52,7 @@ $.fn.texturePreviewPopover = async function (node)
|
|
|
52
52
|
|
|
53
53
|
const
|
|
54
54
|
browser = canvas .prop ("browser"),
|
|
55
|
-
scene = browser .createScene (browser .getProfile ("Core"));
|
|
55
|
+
scene = await browser .createScene (browser .getProfile ("Core"));
|
|
56
56
|
|
|
57
57
|
scene .setWorldURL (node .getExecutionContext () .worldURL);
|
|
58
58
|
|
|
@@ -61,7 +61,7 @@ $.fn.texturePreviewPopover = async function (node)
|
|
|
61
61
|
// Create texture node.
|
|
62
62
|
|
|
63
63
|
const
|
|
64
|
-
x3dSyntax = Editor .exportX3D (node .getExecutionContext (), [node]),
|
|
64
|
+
x3dSyntax = await Editor .exportX3D (node .getExecutionContext (), [node]),
|
|
65
65
|
nodes = await Editor .importX3D (scene, x3dSyntax, new UndoManager ()),
|
|
66
66
|
previewNode = nodes [0],
|
|
67
67
|
appearanceNode = browser .currentScene .getExportedNode ("Appearance");
|
package/src/Editors/Console.js
CHANGED
|
@@ -98,9 +98,10 @@ module .exports = class Console extends Interface
|
|
|
98
98
|
this .scriptNode .setup ();
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
// Add strings to exclude here:
|
|
101
102
|
excludes = new Set ([
|
|
102
103
|
"The vm module of Node.js is deprecated in the renderer process and will be removed.",
|
|
103
|
-
"Invalid asm.js: Invalid member of stdlib",
|
|
104
|
+
// "Invalid asm.js: Invalid member of stdlib",
|
|
104
105
|
]);
|
|
105
106
|
|
|
106
107
|
addMessage (event, level, sourceId, line, message)
|
|
@@ -794,17 +794,17 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
794
794
|
Editor .removeImportedNode (importedNode .getExecutionContext (), importedNode .getImportedName ());
|
|
795
795
|
}
|
|
796
796
|
|
|
797
|
-
cutNodes ()
|
|
797
|
+
async cutNodes ()
|
|
798
798
|
{
|
|
799
799
|
UndoManager .shared .beginUndo (_("Cut Nodes"));
|
|
800
800
|
|
|
801
|
-
this .copyNodes ();
|
|
802
|
-
this .deleteNodes ();
|
|
801
|
+
await this .copyNodes ();
|
|
802
|
+
await this .deleteNodes ();
|
|
803
803
|
|
|
804
804
|
UndoManager .shared .endUndo ();
|
|
805
805
|
}
|
|
806
806
|
|
|
807
|
-
copyNodes (deselect)
|
|
807
|
+
async copyNodes (deselect)
|
|
808
808
|
{
|
|
809
809
|
const
|
|
810
810
|
primary = $(".node.primary, .proto.primary, .externproto.primary"),
|
|
@@ -829,7 +829,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
829
829
|
|
|
830
830
|
undoManager .endUndo ();
|
|
831
831
|
|
|
832
|
-
const x3dSyntax = Editor .exportX3D (this .executionContext, nodes, { importedNodes: true });
|
|
832
|
+
const x3dSyntax = await Editor .exportX3D (this .executionContext, nodes, { importedNodes: true });
|
|
833
833
|
|
|
834
834
|
//console .log (x3dSyntax)
|
|
835
835
|
|
|
@@ -841,7 +841,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
841
841
|
this .deselectAll ();
|
|
842
842
|
}
|
|
843
843
|
|
|
844
|
-
copyExternPrototype ()
|
|
844
|
+
async copyExternPrototype ()
|
|
845
845
|
{
|
|
846
846
|
const
|
|
847
847
|
elements = $(".proto.primary, .proto.manually"),
|
|
@@ -849,7 +849,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
849
849
|
|
|
850
850
|
const
|
|
851
851
|
browser = this .executionContext .getBrowser (),
|
|
852
|
-
scene = browser .createScene (),
|
|
852
|
+
scene = await browser .createScene (browser .getProfile ("Full")),
|
|
853
853
|
worldURL = new URL (this .executionContext .worldURL),
|
|
854
854
|
basename = path .basename (worldURL .pathname);
|
|
855
855
|
|
|
@@ -1366,7 +1366,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
1366
1366
|
const
|
|
1367
1367
|
rootNodes = executionContext .rootNodes .copy (),
|
|
1368
1368
|
nodesToImport = [... inlineNode .getInternalScene () .rootNodes] .map (node => node .getValue ()),
|
|
1369
|
-
x3dSyntax = Editor .exportX3D (inlineNode .getInternalScene (), nodesToImport, { importedNodes: true }),
|
|
1369
|
+
x3dSyntax = await Editor .exportX3D (inlineNode .getInternalScene (), nodesToImport, { importedNodes: true }),
|
|
1370
1370
|
nodes = await Editor .importX3D (executionContext, x3dSyntax);
|
|
1371
1371
|
|
|
1372
1372
|
// Remove imported nodes from root nodes.
|
|
@@ -2865,7 +2865,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
2865
2865
|
{
|
|
2866
2866
|
UndoManager .shared .beginUndo (_("Copy Extern Proto »%s«"), sourceExternProto .getName ());
|
|
2867
2867
|
|
|
2868
|
-
await Editor .importX3D (destinationExecutionContext, Editor .exportX3D (sourceExecutionContext, [sourceExternProto]));
|
|
2868
|
+
await Editor .importX3D (destinationExecutionContext, await Editor .exportX3D (sourceExecutionContext, [sourceExternProto]));
|
|
2869
2869
|
|
|
2870
2870
|
const
|
|
2871
2871
|
externprotos = Array .from (destinationExecutionContext .externprotos),
|
|
@@ -2939,7 +2939,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
2939
2939
|
{
|
|
2940
2940
|
UndoManager .shared .beginUndo (_("Copy Prototype »%s«"), sourceProto .getName ());
|
|
2941
2941
|
|
|
2942
|
-
await Editor .importX3D (destinationExecutionContext, Editor .exportX3D (sourceExecutionContext, [sourceProto]));
|
|
2942
|
+
await Editor .importX3D (destinationExecutionContext, await Editor .exportX3D (sourceExecutionContext, [sourceProto]));
|
|
2943
2943
|
|
|
2944
2944
|
const
|
|
2945
2945
|
protos = Array .from (destinationExecutionContext .protos),
|
|
@@ -3044,7 +3044,7 @@ module .exports = class OutlineEditor extends OutlineRouteGraph
|
|
|
3044
3044
|
}
|
|
3045
3045
|
|
|
3046
3046
|
const copiedNodes = sourceNodes .length
|
|
3047
|
-
? await Editor .importX3D (destinationExecutionContext, Editor .exportX3D (this .executionContext, sourceNodes, { importedNodes: true }))
|
|
3047
|
+
? await Editor .importX3D (destinationExecutionContext, await Editor .exportX3D (this .executionContext, sourceNodes, { importedNodes: true }))
|
|
3048
3048
|
: [ ];
|
|
3049
3049
|
|
|
3050
3050
|
if (copiedNodes .length)
|
|
@@ -256,40 +256,63 @@ module .exports = class ScriptEditor extends Interface
|
|
|
256
256
|
|
|
257
257
|
const fields = Array .from (this .node .getUserDefinedFields (), field =>
|
|
258
258
|
{
|
|
259
|
-
|
|
259
|
+
if (field .getAccessType () === X3D .X3DConstants .inputOnly)
|
|
260
|
+
return "";
|
|
261
|
+
|
|
262
|
+
const accessType = [ ];
|
|
263
|
+
|
|
264
|
+
if (field .isInput ())
|
|
265
|
+
accessType .push ("in");
|
|
266
|
+
|
|
267
|
+
if (field .isOutput ())
|
|
268
|
+
accessType .push ("out");
|
|
269
|
+
|
|
270
|
+
let value = "";
|
|
271
|
+
|
|
272
|
+
if (field instanceof X3D .X3DArrayField)
|
|
273
|
+
{
|
|
274
|
+
value += `(${field .length} elements)`;
|
|
275
|
+
}
|
|
276
|
+
else
|
|
260
277
|
{
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
278
|
+
const STRING_MAX = 16;
|
|
279
|
+
|
|
280
|
+
if (field instanceof X3D .SFString)
|
|
281
|
+
value += `"${X3D .SFString .escape (field .valueOf ()) .substring (0, STRING_MAX)}${field .length <= STRING_MAX ? "" : "..."}"`;
|
|
282
|
+
else
|
|
283
|
+
value += String (field);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
let string = "";
|
|
287
|
+
|
|
288
|
+
string += `/** This is the user-defined field ${field .getTypeName ()} [${accessType .join (", ")}] *${field .getName ()}* ${value}. */\n`;
|
|
289
|
+
string += `declare let ${field .getName ()}: `;
|
|
290
|
+
|
|
291
|
+
switch (field .getType ())
|
|
292
|
+
{
|
|
293
|
+
case X3D .X3DConstants .SFNode:
|
|
264
294
|
{
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
{
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
if (types .length)
|
|
279
|
-
return `declare let ${field .getName ()}: X3D .MFNode <${types .join ("|")}|null>;`;
|
|
280
|
-
else
|
|
281
|
-
return `declare let ${field .getName ()}: X3D .MFNode;`;
|
|
282
|
-
}
|
|
283
|
-
default:
|
|
284
|
-
{
|
|
285
|
-
return `declare let ${field .getName ()}: ${
|
|
286
|
-
this .#internalTypes .get (field .getType ()) ?? "X3D ." + field .getTypeName ()
|
|
287
|
-
};`;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
295
|
+
if (field .getValue ())
|
|
296
|
+
string += `X3D .${field .getNodeTypeName ()}Proxy;`;
|
|
297
|
+
else
|
|
298
|
+
string += `X3D .SFNode | null;`;
|
|
299
|
+
}
|
|
300
|
+
case X3D .X3DConstants .MFNode:
|
|
301
|
+
{
|
|
302
|
+
const types = Array .from (new Set (Array .from (field, node => node ? `${node .getNodeTypeName ()}Proxy` : "null")));
|
|
303
|
+
|
|
304
|
+
if (types .length)
|
|
305
|
+
string += `X3D .MFNode <${types .join ("|")}|null>;`;
|
|
306
|
+
else
|
|
307
|
+
string += `X3D .MFNode;`;
|
|
290
308
|
}
|
|
291
309
|
default:
|
|
292
|
-
|
|
310
|
+
{
|
|
311
|
+
string += this .#internalTypes .get (field .getType ()) ?? `X3D .${field .getTypeName ()}`;
|
|
312
|
+
string += "";"";
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
return string;
|
|
293
316
|
}
|
|
294
317
|
});
|
|
295
318
|
|
|
@@ -380,11 +403,13 @@ module .exports = class ScriptEditor extends Interface
|
|
|
380
403
|
bracketPairColorization: { enabled: true },
|
|
381
404
|
});
|
|
382
405
|
|
|
406
|
+
editor .onDidFocusEditorWidget (() => this .setDeclarations (monaco));
|
|
383
407
|
editor .onDidBlurEditorWidget (() => this .apply ());
|
|
384
408
|
|
|
385
409
|
editor .viewState = editor .saveViewState ();
|
|
386
410
|
|
|
387
|
-
element .on ("
|
|
411
|
+
element .on ("mouseenter", () => this .setDeclarations (monaco))
|
|
412
|
+
element .on ("contextmenu", () => this .showContextMenu ());
|
|
388
413
|
element .detach ();
|
|
389
414
|
|
|
390
415
|
// this .debugFindActions (editor)
|
|
@@ -156,7 +156,7 @@ class X3DNodeTool extends X3DBaseTool
|
|
|
156
156
|
{
|
|
157
157
|
const scene = await this .getBrowser () .createX3DFromURL (new X3D .MFString (protoURL));
|
|
158
158
|
|
|
159
|
-
scene .setExecutionContext (
|
|
159
|
+
scene .setExecutionContext (this .getBrowser () .getPrivateScene ());
|
|
160
160
|
scene .setCountPrimitives (false);
|
|
161
161
|
|
|
162
162
|
for (const externproto of scene .externprotos)
|
package/src/Undo/Editor.js
CHANGED
|
@@ -75,7 +75,7 @@ module .exports = class Editor
|
|
|
75
75
|
* @param {Object} options
|
|
76
76
|
* @returns {string} x3dSyntax
|
|
77
77
|
*/
|
|
78
|
-
static exportX3D (executionContext, objects = [ ], { type = "x3d", importedNodes = false, exportedNodes = false } = { })
|
|
78
|
+
static async exportX3D (executionContext, objects = [ ], { type = "x3d", importedNodes = false, exportedNodes = false } = { })
|
|
79
79
|
{
|
|
80
80
|
const
|
|
81
81
|
externprotos = new Set (),
|
|
@@ -84,7 +84,7 @@ module .exports = class Editor
|
|
|
84
84
|
|
|
85
85
|
const
|
|
86
86
|
browser = executionContext .getBrowser (),
|
|
87
|
-
scene = browser .createScene ();
|
|
87
|
+
scene = await browser .createScene (browser .getProfile ("Core"));
|
|
88
88
|
|
|
89
89
|
// Determine protos.
|
|
90
90
|
|
|
@@ -220,6 +220,7 @@ module .exports = class Editor
|
|
|
220
220
|
|
|
221
221
|
// Dispose scene.
|
|
222
222
|
|
|
223
|
+
scene .routes .clear ();
|
|
223
224
|
scene .dispose ();
|
|
224
225
|
nodes .dispose ();
|
|
225
226
|
|
|
@@ -245,7 +246,7 @@ module .exports = class Editor
|
|
|
245
246
|
externprotos = new Map (Array .from (executionContext .externprotos, p => [p .getName (), p])),
|
|
246
247
|
protos = new Map (Array .from (executionContext .protos, p => [p .getName (), p])),
|
|
247
248
|
rootNodes = executionContext .rootNodes .copy (),
|
|
248
|
-
tempScene = browser .createScene (browser .getProfile ("Core"));
|
|
249
|
+
tempScene = await browser .createScene (browser .getProfile ("Core"));
|
|
249
250
|
|
|
250
251
|
scene .setProfile (browser .getProfile ("Full"));
|
|
251
252
|
scene .updateComponent (browser .getComponent ("X_ITE"));
|
|
@@ -398,8 +399,8 @@ module .exports = class Editor
|
|
|
398
399
|
{
|
|
399
400
|
const
|
|
400
401
|
browser = executionContext .getBrowser (),
|
|
401
|
-
scene = browser .createScene (),
|
|
402
|
-
x3dSyntax = this .exportX3D (executionContext, nodes, { importedNodes: true, exportedNodes: true }),
|
|
402
|
+
scene = await browser .createScene (browser .getProfile ("Core")),
|
|
403
|
+
x3dSyntax = await this .exportX3D (executionContext, nodes, { importedNodes: true, exportedNodes: true }),
|
|
403
404
|
loadUrlObjects = browser .getBrowserOption ("LoadUrlObjects");
|
|
404
405
|
|
|
405
406
|
browser .setBrowserOption ("LoadUrlObjects", false);
|
|
@@ -408,6 +409,7 @@ module .exports = class Editor
|
|
|
408
409
|
|
|
409
410
|
await this .importX3D (scene, x3dSyntax, new UndoManager ());
|
|
410
411
|
|
|
412
|
+
this .rewriteURLs (scene, scene, executionContext .worldURL, scene .worldURL, new UndoManager ());
|
|
411
413
|
this .inferProfileAndComponents (scene, new UndoManager ());
|
|
412
414
|
|
|
413
415
|
fs .writeFileSync (filePath, this .getContents (scene, path .extname (filePath)));
|
|
@@ -525,7 +527,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
525
527
|
{
|
|
526
528
|
try
|
|
527
529
|
{
|
|
528
|
-
const filePath =
|
|
530
|
+
const filePath = url .fileURLToPath (new URL (fileURL, oldWorldURL));
|
|
529
531
|
|
|
530
532
|
let relativePath = path .relative (path .dirname (url .fileURLToPath (newWorldURL)), filePath);
|
|
531
533
|
|
|
@@ -537,8 +539,10 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
537
539
|
newURL .push (encodeURI (relativePath));
|
|
538
540
|
continue;
|
|
539
541
|
}
|
|
540
|
-
catch
|
|
541
|
-
{
|
|
542
|
+
catch (error)
|
|
543
|
+
{
|
|
544
|
+
// console .log (error)
|
|
545
|
+
}
|
|
542
546
|
|
|
543
547
|
newURL .push (fileURL);
|
|
544
548
|
}
|
|
@@ -783,9 +787,6 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
783
787
|
|
|
784
788
|
const node = object .getValue ();
|
|
785
789
|
|
|
786
|
-
if (node .getScene () !== scene)
|
|
787
|
-
continue;
|
|
788
|
-
|
|
789
790
|
components .add (node .getComponentInfo () .name);
|
|
790
791
|
}
|
|
791
792
|
|
|
@@ -1350,13 +1351,17 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
1350
1351
|
{
|
|
1351
1352
|
const
|
|
1352
1353
|
browser = executionContext .getBrowser (),
|
|
1353
|
-
scene = browser .createScene (),
|
|
1354
|
-
x3dSyntax = this .exportX3D (executionContext, [proto]);
|
|
1354
|
+
scene = await browser .createScene (browser .getProfile ("Core")),
|
|
1355
|
+
x3dSyntax = await this .exportX3D (executionContext, [proto]);
|
|
1355
1356
|
|
|
1356
1357
|
undoManager .beginUndo (_("Turn Prototype »%s« into Extern Prototype"), proto .getName ());
|
|
1357
1358
|
|
|
1359
|
+
scene .setWorldURL (url .pathToFileURL (filePath));
|
|
1360
|
+
|
|
1358
1361
|
await this .importX3D (scene, x3dSyntax, new UndoManager ());
|
|
1359
|
-
|
|
1362
|
+
|
|
1363
|
+
this .rewriteURLs (scene, scene, executionContext .worldURL, scene .worldURL, new UndoManager ());
|
|
1364
|
+
this .inferProfileAndComponents (scene, new UndoManager ());
|
|
1360
1365
|
|
|
1361
1366
|
fs .writeFileSync (filePath, this .getContents (scene, path .extname (filePath)));
|
|
1362
1367
|
scene .dispose ();
|
|
@@ -1530,7 +1535,7 @@ ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
|
|
|
1530
1535
|
{
|
|
1531
1536
|
const
|
|
1532
1537
|
numProtos = executionContext .protos .length,
|
|
1533
|
-
x3dSyntax = this .exportX3D (externproto .getInternalScene (), [externproto .getProtoDeclaration ()])
|
|
1538
|
+
x3dSyntax = await this .exportX3D (externproto .getInternalScene (), [externproto .getProtoDeclaration ()])
|
|
1534
1539
|
|
|
1535
1540
|
undoManager .beginUndo (_("Turn Extern Prototype »%s« into Prototype"), externproto .getName ())
|
|
1536
1541
|
|
package/src/assets/X3DUOM.xml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<!-- X3D Unified Object Model (X3DUOM) X3dUnifiedObjectModel-4.0.xml -->
|
|
3
3
|
<!-- Online at https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml -->
|
|
4
4
|
<!-- This file contains a listing of all abstract and concrete nodes in version 4.0 of X3D -->
|
|
5
|
-
<!-- Generated 2024-
|
|
5
|
+
<!-- Generated 2024-12-10-08:00 12:33:23.8336395-08:00 -->
|
|
6
6
|
<X3dUnifiedObjectModel xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
|
|
7
7
|
version="4.0"
|
|
8
8
|
xsd:noNamespaceSchemaLocation="X3dUnifiedObjectModel.xsd">
|
|
@@ -9301,6 +9301,10 @@
|
|
|
9301
9301
|
accessType="inputOutput"
|
|
9302
9302
|
default="NULL"
|
|
9303
9303
|
acceptableNodeTypes="X3DTexture2DNode"/>
|
|
9304
|
+
<field name="upVector"
|
|
9305
|
+
type="SFVec3f"
|
|
9306
|
+
accessType="inputOutput"
|
|
9307
|
+
default="0 1 0"/>
|
|
9304
9308
|
<field name="DEF"
|
|
9305
9309
|
type="SFString"
|
|
9306
9310
|
accessType="inputOutput"
|
|
@@ -10434,7 +10438,8 @@
|
|
|
10434
10438
|
type="SFNode"
|
|
10435
10439
|
accessType="inputOutput"
|
|
10436
10440
|
default="NULL"
|
|
10437
|
-
acceptableNodeTypes="X3DMaterialNode"
|
|
10441
|
+
acceptableNodeTypes="X3DMaterialNode"
|
|
10442
|
+
description="Single contained Material, PhysicalMaterial or UnlitMaterial node that can specify visual attributes for lighting response (color types, transparency, etc."/>
|
|
10438
10443
|
<field name="fillProperties"
|
|
10439
10444
|
type="SFNode"
|
|
10440
10445
|
accessType="inputOutput"
|
|
@@ -10462,7 +10467,7 @@
|
|
|
10462
10467
|
accessType="inputOutput"
|
|
10463
10468
|
default="NULL"
|
|
10464
10469
|
acceptableNodeTypes="X3DMaterialNode"
|
|
10465
|
-
description="Single contained Material node that can specify visual attributes for lighting response (color types, transparency, etc."/>
|
|
10470
|
+
description="Single contained Material, PhysicalMaterial, TwoSidedMaterial (deprecated), or UnlitMaterial node that can specify visual attributes for lighting response (color types, transparency, etc."/>
|
|
10466
10471
|
<field name="metadata"
|
|
10467
10472
|
type="SFNode"
|
|
10468
10473
|
accessType="inputOutput"
|
|
@@ -24795,7 +24800,7 @@
|
|
|
24795
24800
|
type="MFInt32"
|
|
24796
24801
|
accessType="initializeOnly"
|
|
24797
24802
|
minInclusive="-1"
|
|
24798
|
-
description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices)."/>
|
|
24803
|
+
description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices), interspersed by -1 if colorlPerVertex=true."/>
|
|
24799
24804
|
<field name="colorPerVertex"
|
|
24800
24805
|
type="SFBool"
|
|
24801
24806
|
accessType="initializeOnly"
|
|
@@ -24860,7 +24865,7 @@
|
|
|
24860
24865
|
type="MFInt32"
|
|
24861
24866
|
accessType="initializeOnly"
|
|
24862
24867
|
minInclusive="-1"
|
|
24863
|
-
description="normalIndex values define the order in which normal vectors are applied to polygons (or vertices).">
|
|
24868
|
+
description="normalIndex values define the order in which normal vectors are applied to polygons (or vertices), interspersed by -1 if normalPerVertex=true.">
|
|
24864
24869
|
<componentInfo name="Geometry3D" level="4"/>
|
|
24865
24870
|
</field>
|
|
24866
24871
|
<field name="normalPerVertex"
|
|
@@ -24873,7 +24878,7 @@
|
|
|
24873
24878
|
type="MFInt32"
|
|
24874
24879
|
accessType="inputOnly"
|
|
24875
24880
|
minInclusive="-1"
|
|
24876
|
-
description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices).">
|
|
24881
|
+
description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices), interspersed by -1 if colorlPerVertex=true.">
|
|
24877
24882
|
<componentInfo name="Geometry3D" level="4"/>
|
|
24878
24883
|
</field>
|
|
24879
24884
|
<field name="set_coordIndex"
|
|
@@ -24885,7 +24890,7 @@
|
|
|
24885
24890
|
type="MFInt32"
|
|
24886
24891
|
accessType="inputOnly"
|
|
24887
24892
|
minInclusive="-1"
|
|
24888
|
-
description="normalIndex values define the order in which normal vectors are applied to polygons (or vertices).">
|
|
24893
|
+
description="normalIndex values define the order in which normal vectors are applied to polygons (or vertices), interspersed by -1 if normalPerVertex=true.">
|
|
24889
24894
|
<componentInfo name="Geometry3D" level="4"/>
|
|
24890
24895
|
</field>
|
|
24891
24896
|
<field name="set_texCoordIndex"
|
|
@@ -24969,7 +24974,7 @@
|
|
|
24969
24974
|
type="MFInt32"
|
|
24970
24975
|
accessType="initializeOnly"
|
|
24971
24976
|
minInclusive="-1"
|
|
24972
|
-
description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices)."/>
|
|
24977
|
+
description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices), interspersed by -1 if colorlPerVertex=true."/>
|
|
24973
24978
|
<field name="colorPerVertex"
|
|
24974
24979
|
type="SFBool"
|
|
24975
24980
|
accessType="initializeOnly"
|
|
@@ -25015,7 +25020,7 @@
|
|
|
25015
25020
|
type="MFInt32"
|
|
25016
25021
|
accessType="inputOnly"
|
|
25017
25022
|
minInclusive="-1"
|
|
25018
|
-
description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices).">
|
|
25023
|
+
description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices), interspersed by -1 if colorlPerVertex=true.">
|
|
25019
25024
|
<componentInfo name="Rendering" level="3"/>
|
|
25020
25025
|
</field>
|
|
25021
25026
|
<field name="set_coordIndex"
|
|
@@ -38524,7 +38529,8 @@
|
|
|
38524
38529
|
<field name="upVector"
|
|
38525
38530
|
type="SFVec3f"
|
|
38526
38531
|
accessType="inputOutput"
|
|
38527
|
-
default="0 0
|
|
38532
|
+
default="0 1 0"
|
|
38533
|
+
inheritedFrom="X3DTextureProjectorNode"
|
|
38528
38534
|
description="upVector describes the roll of the camera by saying which direction is up for the camera's orientation."/>
|
|
38529
38535
|
<field name="DEF"
|
|
38530
38536
|
type="SFString"
|
|
@@ -38683,6 +38689,12 @@
|
|
|
38683
38689
|
acceptableNodeTypes="X3DTexture2DNode"
|
|
38684
38690
|
inheritedFrom="X3DTextureProjectorNode"
|
|
38685
38691
|
description="Single contained texture node (ImageTexture, MovieTexture, PixelTexture, MultiTexture) that maps image(s) to surface geometry."/>
|
|
38692
|
+
<field name="upVector"
|
|
38693
|
+
type="SFVec3f"
|
|
38694
|
+
accessType="inputOutput"
|
|
38695
|
+
default="0 1 0"
|
|
38696
|
+
inheritedFrom="X3DTextureProjectorNode"
|
|
38697
|
+
description="upVector describes the roll of the camera by saying which direction is up for the camera's orientation."/>
|
|
38686
38698
|
<field name="DEF"
|
|
38687
38699
|
type="SFString"
|
|
38688
38700
|
accessType="inputOutput"
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<meta charset="utf-8"/>
|
|
4
|
+
<!-- Theme -->
|
|
5
|
+
<link rel="stylesheet" type="text/css" href="file:///Users/holger/Desktop/X_ITE/sunrize/src/assets/themes/default.css"/>
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<tab-group sortable="true">
|
|
9
|
+
<style>
|
|
10
|
+
.etabs .nav {
|
|
11
|
+
height: var(--window-tabs-height);
|
|
12
|
+
background: var(--background-color);
|
|
13
|
+
box-shadow: none;
|
|
14
|
+
border: none;
|
|
15
|
+
overflow: auto;
|
|
16
|
+
white-space: nowrap;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.etabs .tab {
|
|
20
|
+
background: var(--window-tabs-background-color);
|
|
21
|
+
border-color: var(--border-color) !important;
|
|
22
|
+
padding: 4px 3px !important;
|
|
23
|
+
color: var(--window-tabs-text-color);
|
|
24
|
+
font-family: var(--sans-serif);
|
|
25
|
+
box-shadow: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.etabs .tab:first-child {
|
|
29
|
+
border-left: 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.etabs .tab.active {
|
|
33
|
+
z-index: 1100;
|
|
34
|
+
background: var(--background-color);
|
|
35
|
+
color: var(--window-tabs-highlight-color);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.etabs::before {
|
|
39
|
+
z-index: 1000;
|
|
40
|
+
content: "";
|
|
41
|
+
position: relative;
|
|
42
|
+
display: block;
|
|
43
|
+
height: 1px;
|
|
44
|
+
width: 100%;
|
|
45
|
+
box-shadow: var(--tabs-shadow);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.etabs .buttons {
|
|
49
|
+
border-color: var(--border-color);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.etabs .buttons:hover button,
|
|
53
|
+
.etabs .tab-close button:hover {
|
|
54
|
+
background: none;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.etabs .buttons button:hover,
|
|
58
|
+
.etabs .tab-close:hover button {
|
|
59
|
+
color: var(--system-gray0);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.etabs .tab-close button {
|
|
63
|
+
visibility: hidden;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.etabs .tab.active .tab-close button,
|
|
67
|
+
.etabs .tab:hover .tab-close button {
|
|
68
|
+
visibility: visible;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.etabs .tab-close {
|
|
72
|
+
margin-left: 4px;
|
|
73
|
+
}
|
|
74
|
+
</style>
|
|
75
|
+
</tab-group>
|
|
76
|
+
</body>
|
|
77
|
+
</html>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<meta charset="utf-8"/>
|
|
4
|
+
<link rel="stylesheet" type="text/css" href="file:///Users/holger/Desktop/X_ITE/sunrize/node_modules/jquery-ui-dist/jquery-ui.min.css"/>
|
|
5
|
+
<link rel="stylesheet" type="text/css" href="file:///Users/holger/Desktop/X_ITE/sunrize/node_modules/qtip2/dist/jquery.qtip.min.css"/>
|
|
6
|
+
<link rel="stylesheet" type="text/css" href="file:///Users/holger/Desktop/X_ITE/sunrize/src/assets/themes/default.css"/>
|
|
7
|
+
<link rel="stylesheet" data-name="vs/editor/editor.main" href="file:///Users/holger/Desktop/X_ITE/sunrize/node_modules/monaco-editor/min/vs/editor/editor.main.css">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="vertical-splitter" class="vertical-splitter">
|
|
11
|
+
<div class="vertical-splitter-left">
|
|
12
|
+
<div id="horizontal-splitter" class="horizontal-splitter">
|
|
13
|
+
<div class="horizontal-splitter-top">
|
|
14
|
+
<div id="browser-pane">
|
|
15
|
+
<div id="browser-frame">
|
|
16
|
+
<x3d-canvas
|
|
17
|
+
id="browser"
|
|
18
|
+
debug="false"
|
|
19
|
+
cache="false"
|
|
20
|
+
preserveDrawingBuffer="true"
|
|
21
|
+
splashScreen="false"
|
|
22
|
+
contextMenu="false"
|
|
23
|
+
xrSessionMode="NONE"></x3d-canvas>
|
|
24
|
+
</div>
|
|
25
|
+
<div id="secondary-toolbar" class="toolbar vertical-toolbar large-toolbar secondary-toolbar"></div>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="horizontal-splitter-bottom">
|
|
29
|
+
<div id="footer"></div>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
<div class="vertical-splitter-right">
|
|
34
|
+
<div id="sidebar" class="sidebar"></div>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</body>
|
|
38
|
+
</html>
|