@thanhthbm/scene-editor 0.1.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/README.md +169 -0
- package/dist/index.css +921 -0
- package/dist/index.js +14076 -0
- package/package.json +49 -0
- package/src/editor/css/main.css +1030 -0
- package/src/editor/js/Animation.js +618 -0
- package/src/editor/js/AnimationResizer.js +73 -0
- package/src/editor/js/Command.js +40 -0
- package/src/editor/js/Config.js +86 -0
- package/src/editor/js/Editor.js +1006 -0
- package/src/editor/js/EditorControls.js +489 -0
- package/src/editor/js/GLTFImportDialog.js +112 -0
- package/src/editor/js/History.js +321 -0
- package/src/editor/js/Loader.js +1162 -0
- package/src/editor/js/LoaderUtils.js +90 -0
- package/src/editor/js/Menubar.Add.js +559 -0
- package/src/editor/js/Menubar.Edit.js +155 -0
- package/src/editor/js/Menubar.File.js +585 -0
- package/src/editor/js/Menubar.Help.js +73 -0
- package/src/editor/js/Menubar.Render.js +858 -0
- package/src/editor/js/Menubar.Status.js +51 -0
- package/src/editor/js/Menubar.View.js +193 -0
- package/src/editor/js/Menubar.js +29 -0
- package/src/editor/js/Player.js +53 -0
- package/src/editor/js/Resizer.js +65 -0
- package/src/editor/js/Script.js +532 -0
- package/src/editor/js/Selector.js +129 -0
- package/src/editor/js/Sidebar.Geometry.BoxGeometry.js +121 -0
- package/src/editor/js/Sidebar.Geometry.BufferGeometry.js +124 -0
- package/src/editor/js/Sidebar.Geometry.CapsuleGeometry.js +109 -0
- package/src/editor/js/Sidebar.Geometry.CircleGeometry.js +97 -0
- package/src/editor/js/Sidebar.Geometry.CylinderGeometry.js +121 -0
- package/src/editor/js/Sidebar.Geometry.DodecahedronGeometry.js +73 -0
- package/src/editor/js/Sidebar.Geometry.ExtrudeGeometry.js +196 -0
- package/src/editor/js/Sidebar.Geometry.IcosahedronGeometry.js +73 -0
- package/src/editor/js/Sidebar.Geometry.LatheGeometry.js +98 -0
- package/src/editor/js/Sidebar.Geometry.Modifiers.js +73 -0
- package/src/editor/js/Sidebar.Geometry.OctahedronGeometry.js +74 -0
- package/src/editor/js/Sidebar.Geometry.PlaneGeometry.js +97 -0
- package/src/editor/js/Sidebar.Geometry.RingGeometry.js +121 -0
- package/src/editor/js/Sidebar.Geometry.ShapeGeometry.js +76 -0
- package/src/editor/js/Sidebar.Geometry.SphereGeometry.js +133 -0
- package/src/editor/js/Sidebar.Geometry.TetrahedronGeometry.js +74 -0
- package/src/editor/js/Sidebar.Geometry.TextGeometry.js +136 -0
- package/src/editor/js/Sidebar.Geometry.TorusGeometry.js +109 -0
- package/src/editor/js/Sidebar.Geometry.TorusKnotGeometry.js +121 -0
- package/src/editor/js/Sidebar.Geometry.TubeGeometry.js +135 -0
- package/src/editor/js/Sidebar.Geometry.js +471 -0
- package/src/editor/js/Sidebar.Material.BooleanProperty.js +60 -0
- package/src/editor/js/Sidebar.Material.ColorProperty.js +87 -0
- package/src/editor/js/Sidebar.Material.ConstantProperty.js +62 -0
- package/src/editor/js/Sidebar.Material.MapProperty.js +277 -0
- package/src/editor/js/Sidebar.Material.NumberProperty.js +60 -0
- package/src/editor/js/Sidebar.Material.Program.js +73 -0
- package/src/editor/js/Sidebar.Material.RangeValueProperty.js +63 -0
- package/src/editor/js/Sidebar.Material.js +751 -0
- package/src/editor/js/Sidebar.Object.js +892 -0
- package/src/editor/js/Sidebar.Project.App.js +218 -0
- package/src/editor/js/Sidebar.Project.Materials.js +82 -0
- package/src/editor/js/Sidebar.Project.Renderer.js +193 -0
- package/src/editor/js/Sidebar.Project.Resources.js +242 -0
- package/src/editor/js/Sidebar.Project.js +21 -0
- package/src/editor/js/Sidebar.Properties.js +73 -0
- package/src/editor/js/Sidebar.Scene.js +643 -0
- package/src/editor/js/Sidebar.Script.js +129 -0
- package/src/editor/js/Sidebar.Settings.History.js +146 -0
- package/src/editor/js/Sidebar.Settings.Shortcuts.js +198 -0
- package/src/editor/js/Sidebar.Settings.js +58 -0
- package/src/editor/js/Sidebar.js +41 -0
- package/src/editor/js/Storage.js +98 -0
- package/src/editor/js/Strings.js +2718 -0
- package/src/editor/js/TextureParametersDialog.js +293 -0
- package/src/editor/js/Toolbar.js +75 -0
- package/src/editor/js/Viewport.Controls.js +98 -0
- package/src/editor/js/Viewport.Info.js +144 -0
- package/src/editor/js/Viewport.Pathtracer.js +27 -0
- package/src/editor/js/Viewport.ViewHelper.js +41 -0
- package/src/editor/js/Viewport.XR.js +7 -0
- package/src/editor/js/Viewport.js +982 -0
- package/src/editor/js/commands/AddObjectCommand.js +68 -0
- package/src/editor/js/commands/AddScriptCommand.js +75 -0
- package/src/editor/js/commands/Commands.js +24 -0
- package/src/editor/js/commands/MoveObjectCommand.js +117 -0
- package/src/editor/js/commands/MultiCmdsCommand.js +85 -0
- package/src/editor/js/commands/RemoveObjectCommand.js +88 -0
- package/src/editor/js/commands/RemoveScriptCommand.js +81 -0
- package/src/editor/js/commands/SetColorCommand.js +73 -0
- package/src/editor/js/commands/SetGeometryCommand.js +86 -0
- package/src/editor/js/commands/SetGeometryValueCommand.js +70 -0
- package/src/editor/js/commands/SetMaterialColorCommand.js +87 -0
- package/src/editor/js/commands/SetMaterialCommand.js +80 -0
- package/src/editor/js/commands/SetMaterialMapCommand.js +144 -0
- package/src/editor/js/commands/SetMaterialRangeCommand.js +92 -0
- package/src/editor/js/commands/SetMaterialValueCommand.js +91 -0
- package/src/editor/js/commands/SetMaterialVectorCommand.js +88 -0
- package/src/editor/js/commands/SetPositionCommand.js +84 -0
- package/src/editor/js/commands/SetRotationCommand.js +84 -0
- package/src/editor/js/commands/SetScaleCommand.js +84 -0
- package/src/editor/js/commands/SetSceneCommand.js +104 -0
- package/src/editor/js/commands/SetScriptValueCommand.js +80 -0
- package/src/editor/js/commands/SetShadowValueCommand.js +73 -0
- package/src/editor/js/commands/SetTextureParametersCommand.js +143 -0
- package/src/editor/js/commands/SetUuidCommand.js +70 -0
- package/src/editor/js/commands/SetValueCommand.js +75 -0
- package/src/editor/js/libs/acorn/acorn.js +3236 -0
- package/src/editor/js/libs/acorn/acorn_loose.js +1299 -0
- package/src/editor/js/libs/acorn/walk.js +344 -0
- package/src/editor/js/libs/app/index.html +51 -0
- package/src/editor/js/libs/app.js +14 -0
- package/src/editor/js/libs/codemirror/addon/dialog.css +32 -0
- package/src/editor/js/libs/codemirror/addon/dialog.js +163 -0
- package/src/editor/js/libs/codemirror/addon/show-hint.css +36 -0
- package/src/editor/js/libs/codemirror/addon/show-hint.js +529 -0
- package/src/editor/js/libs/codemirror/addon/tern.css +87 -0
- package/src/editor/js/libs/codemirror/addon/tern.js +750 -0
- package/src/editor/js/libs/codemirror/codemirror.css +344 -0
- package/src/editor/js/libs/codemirror/codemirror.js +9849 -0
- package/src/editor/js/libs/codemirror/mode/glsl.js +233 -0
- package/src/editor/js/libs/codemirror/mode/javascript.js +959 -0
- package/src/editor/js/libs/codemirror/theme/monokai.css +41 -0
- package/src/editor/js/libs/esprima.js +6401 -0
- package/src/editor/js/libs/jsonlint.js +453 -0
- package/src/editor/js/libs/signals.min.js +14 -0
- package/src/editor/js/libs/tern-threejs/build-defs.js +233 -0
- package/src/editor/js/libs/ternjs/comment.js +87 -0
- package/src/editor/js/libs/ternjs/def.js +588 -0
- package/src/editor/js/libs/ternjs/doc_comment.js +401 -0
- package/src/editor/js/libs/ternjs/infer.js +1635 -0
- package/src/editor/js/libs/ternjs/polyfill.js +80 -0
- package/src/editor/js/libs/ternjs/signal.js +26 -0
- package/src/editor/js/libs/ternjs/tern.js +993 -0
- package/src/editor/js/libs/ui.js +1305 -0
- package/src/editor/js/libs/ui.three.js +946 -0
- package/src/events.js +273 -0
- package/src/index.js +284 -0
- package/src/presets/machines.js +239 -0
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}(g.acorn || (g.acorn = {})).walk = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } };
|
|
5
|
+
|
|
6
|
+
// AST walker module for Mozilla Parser API compatible trees
|
|
7
|
+
|
|
8
|
+
// A simple walk is one where you simply specify callbacks to be
|
|
9
|
+
// called on specific nodes. The last two arguments are optional. A
|
|
10
|
+
// simple use would be
|
|
11
|
+
//
|
|
12
|
+
// walk.simple(myTree, {
|
|
13
|
+
// Expression: function(node) { ... }
|
|
14
|
+
// });
|
|
15
|
+
//
|
|
16
|
+
// to do something with all expressions. All Parser API node types
|
|
17
|
+
// can be used to identify node types, as well as Expression,
|
|
18
|
+
// Statement, and ScopeBody, which denote categories of nodes.
|
|
19
|
+
//
|
|
20
|
+
// The base argument can be used to pass a custom (recursive)
|
|
21
|
+
// walker, and state can be used to give this walked an initial
|
|
22
|
+
// state.
|
|
23
|
+
|
|
24
|
+
exports.simple = simple;
|
|
25
|
+
|
|
26
|
+
// An ancestor walk builds up an array of ancestor nodes (including
|
|
27
|
+
// the current node) and passes them to the callback as the state parameter.
|
|
28
|
+
exports.ancestor = ancestor;
|
|
29
|
+
|
|
30
|
+
// A recursive walk is one where your functions override the default
|
|
31
|
+
// walkers. They can modify and replace the state parameter that's
|
|
32
|
+
// threaded through the walk, and can opt how and whether to walk
|
|
33
|
+
// their child nodes (by calling their third argument on these
|
|
34
|
+
// nodes).
|
|
35
|
+
exports.recursive = recursive;
|
|
36
|
+
|
|
37
|
+
// Find a node with a given start, end, and type (all are optional,
|
|
38
|
+
// null can be used as wildcard). Returns a {node, state} object, or
|
|
39
|
+
// undefined when it doesn't find a matching node.
|
|
40
|
+
exports.findNodeAt = findNodeAt;
|
|
41
|
+
|
|
42
|
+
// Find the innermost node of a given type that contains the given
|
|
43
|
+
// position. Interface similar to findNodeAt.
|
|
44
|
+
exports.findNodeAround = findNodeAround;
|
|
45
|
+
|
|
46
|
+
// Find the outermost matching node after a given position.
|
|
47
|
+
exports.findNodeAfter = findNodeAfter;
|
|
48
|
+
|
|
49
|
+
// Find the outermost matching node before a given position.
|
|
50
|
+
exports.findNodeBefore = findNodeBefore;
|
|
51
|
+
|
|
52
|
+
// Used to create a custom walker. Will fill in all missing node
|
|
53
|
+
// type properties with the defaults.
|
|
54
|
+
exports.make = make;
|
|
55
|
+
Object.defineProperty(exports, "__esModule", {
|
|
56
|
+
value: true
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
function simple(node, visitors, base, state) {
|
|
60
|
+
if (!base) base = exports.base;(function c(node, st, override) {
|
|
61
|
+
var type = override || node.type,
|
|
62
|
+
found = visitors[type];
|
|
63
|
+
base[type](node, st, c);
|
|
64
|
+
if (found) found(node, st);
|
|
65
|
+
})(node, state);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function ancestor(node, visitors, base, state) {
|
|
69
|
+
if (!base) base = exports.base;
|
|
70
|
+
if (!state) state = [];(function c(node, st, override) {
|
|
71
|
+
var type = override || node.type,
|
|
72
|
+
found = visitors[type];
|
|
73
|
+
if (node != st[st.length - 1]) {
|
|
74
|
+
st = st.slice();
|
|
75
|
+
st.push(node);
|
|
76
|
+
}
|
|
77
|
+
base[type](node, st, c);
|
|
78
|
+
if (found) found(node, st);
|
|
79
|
+
})(node, state);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function recursive(node, state, funcs, base) {
|
|
83
|
+
var visitor = funcs ? exports.make(funcs, base) : base;(function c(node, st, override) {
|
|
84
|
+
visitor[override || node.type](node, st, c);
|
|
85
|
+
})(node, state);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function makeTest(test) {
|
|
89
|
+
if (typeof test == "string") {
|
|
90
|
+
return function (type) {
|
|
91
|
+
return type == test;
|
|
92
|
+
};
|
|
93
|
+
} else if (!test) {
|
|
94
|
+
return function () {
|
|
95
|
+
return true;
|
|
96
|
+
};
|
|
97
|
+
} else {
|
|
98
|
+
return test;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
var Found = function Found(node, state) {
|
|
103
|
+
_classCallCheck(this, Found);
|
|
104
|
+
|
|
105
|
+
this.node = node;this.state = state;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
function findNodeAt(node, start, end, test, base, state) {
|
|
109
|
+
test = makeTest(test);
|
|
110
|
+
if (!base) base = exports.base;
|
|
111
|
+
try {
|
|
112
|
+
;(function c(node, st, override) {
|
|
113
|
+
var type = override || node.type;
|
|
114
|
+
if ((start == null || node.start <= start) && (end == null || node.end >= end)) base[type](node, st, c);
|
|
115
|
+
if (test(type, node) && (start == null || node.start == start) && (end == null || node.end == end)) throw new Found(node, st);
|
|
116
|
+
})(node, state);
|
|
117
|
+
} catch (e) {
|
|
118
|
+
if (e instanceof Found) {
|
|
119
|
+
return e;
|
|
120
|
+
}throw e;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function findNodeAround(node, pos, test, base, state) {
|
|
125
|
+
test = makeTest(test);
|
|
126
|
+
if (!base) base = exports.base;
|
|
127
|
+
try {
|
|
128
|
+
;(function c(node, st, override) {
|
|
129
|
+
var type = override || node.type;
|
|
130
|
+
if (node.start > pos || node.end < pos) {
|
|
131
|
+
return;
|
|
132
|
+
}base[type](node, st, c);
|
|
133
|
+
if (test(type, node)) throw new Found(node, st);
|
|
134
|
+
})(node, state);
|
|
135
|
+
} catch (e) {
|
|
136
|
+
if (e instanceof Found) {
|
|
137
|
+
return e;
|
|
138
|
+
}throw e;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function findNodeAfter(node, pos, test, base, state) {
|
|
143
|
+
test = makeTest(test);
|
|
144
|
+
if (!base) base = exports.base;
|
|
145
|
+
try {
|
|
146
|
+
;(function c(node, st, override) {
|
|
147
|
+
if (node.end < pos) {
|
|
148
|
+
return;
|
|
149
|
+
}var type = override || node.type;
|
|
150
|
+
if (node.start >= pos && test(type, node)) throw new Found(node, st);
|
|
151
|
+
base[type](node, st, c);
|
|
152
|
+
})(node, state);
|
|
153
|
+
} catch (e) {
|
|
154
|
+
if (e instanceof Found) {
|
|
155
|
+
return e;
|
|
156
|
+
}throw e;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function findNodeBefore(node, pos, test, base, state) {
|
|
161
|
+
test = makeTest(test);
|
|
162
|
+
if (!base) base = exports.base;
|
|
163
|
+
var max = undefined;(function c(node, st, override) {
|
|
164
|
+
if (node.start > pos) {
|
|
165
|
+
return;
|
|
166
|
+
}var type = override || node.type;
|
|
167
|
+
if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node)) max = new Found(node, st);
|
|
168
|
+
base[type](node, st, c);
|
|
169
|
+
})(node, state);
|
|
170
|
+
return max;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function make(funcs, base) {
|
|
174
|
+
if (!base) base = exports.base;
|
|
175
|
+
var visitor = {};
|
|
176
|
+
for (var type in base) visitor[type] = base[type];
|
|
177
|
+
for (var type in funcs) visitor[type] = funcs[type];
|
|
178
|
+
return visitor;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
function skipThrough(node, st, c) {
|
|
182
|
+
c(node, st);
|
|
183
|
+
}
|
|
184
|
+
function ignore(_node, _st, _c) {}
|
|
185
|
+
|
|
186
|
+
// Node walkers.
|
|
187
|
+
|
|
188
|
+
var base = {};
|
|
189
|
+
|
|
190
|
+
exports.base = base;
|
|
191
|
+
base.Program = base.BlockStatement = function (node, st, c) {
|
|
192
|
+
for (var i = 0; i < node.body.length; ++i) {
|
|
193
|
+
c(node.body[i], st, "Statement");
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
base.Statement = skipThrough;
|
|
197
|
+
base.EmptyStatement = ignore;
|
|
198
|
+
base.ExpressionStatement = base.ParenthesizedExpression = function (node, st, c) {
|
|
199
|
+
return c(node.expression, st, "Expression");
|
|
200
|
+
};
|
|
201
|
+
base.IfStatement = function (node, st, c) {
|
|
202
|
+
c(node.test, st, "Expression");
|
|
203
|
+
c(node.consequent, st, "Statement");
|
|
204
|
+
if (node.alternate) c(node.alternate, st, "Statement");
|
|
205
|
+
};
|
|
206
|
+
base.LabeledStatement = function (node, st, c) {
|
|
207
|
+
return c(node.body, st, "Statement");
|
|
208
|
+
};
|
|
209
|
+
base.BreakStatement = base.ContinueStatement = ignore;
|
|
210
|
+
base.WithStatement = function (node, st, c) {
|
|
211
|
+
c(node.object, st, "Expression");
|
|
212
|
+
c(node.body, st, "Statement");
|
|
213
|
+
};
|
|
214
|
+
base.SwitchStatement = function (node, st, c) {
|
|
215
|
+
c(node.discriminant, st, "Expression");
|
|
216
|
+
for (var i = 0; i < node.cases.length; ++i) {
|
|
217
|
+
var cs = node.cases[i];
|
|
218
|
+
if (cs.test) c(cs.test, st, "Expression");
|
|
219
|
+
for (var j = 0; j < cs.consequent.length; ++j) {
|
|
220
|
+
c(cs.consequent[j], st, "Statement");
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
base.ReturnStatement = base.YieldExpression = function (node, st, c) {
|
|
225
|
+
if (node.argument) c(node.argument, st, "Expression");
|
|
226
|
+
};
|
|
227
|
+
base.ThrowStatement = base.SpreadElement = base.RestElement = function (node, st, c) {
|
|
228
|
+
return c(node.argument, st, "Expression");
|
|
229
|
+
};
|
|
230
|
+
base.TryStatement = function (node, st, c) {
|
|
231
|
+
c(node.block, st, "Statement");
|
|
232
|
+
if (node.handler) c(node.handler.body, st, "ScopeBody");
|
|
233
|
+
if (node.finalizer) c(node.finalizer, st, "Statement");
|
|
234
|
+
};
|
|
235
|
+
base.WhileStatement = base.DoWhileStatement = function (node, st, c) {
|
|
236
|
+
c(node.test, st, "Expression");
|
|
237
|
+
c(node.body, st, "Statement");
|
|
238
|
+
};
|
|
239
|
+
base.ForStatement = function (node, st, c) {
|
|
240
|
+
if (node.init) c(node.init, st, "ForInit");
|
|
241
|
+
if (node.test) c(node.test, st, "Expression");
|
|
242
|
+
if (node.update) c(node.update, st, "Expression");
|
|
243
|
+
c(node.body, st, "Statement");
|
|
244
|
+
};
|
|
245
|
+
base.ForInStatement = base.ForOfStatement = function (node, st, c) {
|
|
246
|
+
c(node.left, st, "ForInit");
|
|
247
|
+
c(node.right, st, "Expression");
|
|
248
|
+
c(node.body, st, "Statement");
|
|
249
|
+
};
|
|
250
|
+
base.ForInit = function (node, st, c) {
|
|
251
|
+
if (node.type == "VariableDeclaration") c(node, st);else c(node, st, "Expression");
|
|
252
|
+
};
|
|
253
|
+
base.DebuggerStatement = ignore;
|
|
254
|
+
|
|
255
|
+
base.FunctionDeclaration = function (node, st, c) {
|
|
256
|
+
return c(node, st, "Function");
|
|
257
|
+
};
|
|
258
|
+
base.VariableDeclaration = function (node, st, c) {
|
|
259
|
+
for (var i = 0; i < node.declarations.length; ++i) {
|
|
260
|
+
var decl = node.declarations[i];
|
|
261
|
+
if (decl.init) c(decl.init, st, "Expression");
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
base.Function = function (node, st, c) {
|
|
266
|
+
return c(node.body, st, "ScopeBody");
|
|
267
|
+
};
|
|
268
|
+
base.ScopeBody = function (node, st, c) {
|
|
269
|
+
return c(node, st, "Statement");
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
base.Expression = skipThrough;
|
|
273
|
+
base.ThisExpression = base.Super = base.MetaProperty = ignore;
|
|
274
|
+
base.ArrayExpression = base.ArrayPattern = function (node, st, c) {
|
|
275
|
+
for (var i = 0; i < node.elements.length; ++i) {
|
|
276
|
+
var elt = node.elements[i];
|
|
277
|
+
if (elt) c(elt, st, "Expression");
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
base.ObjectExpression = base.ObjectPattern = function (node, st, c) {
|
|
281
|
+
for (var i = 0; i < node.properties.length; ++i) {
|
|
282
|
+
c(node.properties[i], st);
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
base.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration;
|
|
286
|
+
base.SequenceExpression = base.TemplateLiteral = function (node, st, c) {
|
|
287
|
+
for (var i = 0; i < node.expressions.length; ++i) {
|
|
288
|
+
c(node.expressions[i], st, "Expression");
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
base.UnaryExpression = base.UpdateExpression = function (node, st, c) {
|
|
292
|
+
c(node.argument, st, "Expression");
|
|
293
|
+
};
|
|
294
|
+
base.BinaryExpression = base.AssignmentExpression = base.AssignmentPattern = base.LogicalExpression = function (node, st, c) {
|
|
295
|
+
c(node.left, st, "Expression");
|
|
296
|
+
c(node.right, st, "Expression");
|
|
297
|
+
};
|
|
298
|
+
base.ConditionalExpression = function (node, st, c) {
|
|
299
|
+
c(node.test, st, "Expression");
|
|
300
|
+
c(node.consequent, st, "Expression");
|
|
301
|
+
c(node.alternate, st, "Expression");
|
|
302
|
+
};
|
|
303
|
+
base.NewExpression = base.CallExpression = function (node, st, c) {
|
|
304
|
+
c(node.callee, st, "Expression");
|
|
305
|
+
if (node.arguments) for (var i = 0; i < node.arguments.length; ++i) {
|
|
306
|
+
c(node.arguments[i], st, "Expression");
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
base.MemberExpression = function (node, st, c) {
|
|
310
|
+
c(node.object, st, "Expression");
|
|
311
|
+
if (node.computed) c(node.property, st, "Expression");
|
|
312
|
+
};
|
|
313
|
+
base.ExportDeclaration = function (node, st, c) {
|
|
314
|
+
return c(node.declaration, st);
|
|
315
|
+
};
|
|
316
|
+
base.ImportDeclaration = function (node, st, c) {
|
|
317
|
+
for (var i = 0; i < node.specifiers.length; i++) {
|
|
318
|
+
c(node.specifiers[i], st);
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
base.ImportSpecifier = base.ImportBatchSpecifier = base.Identifier = base.Literal = ignore;
|
|
322
|
+
|
|
323
|
+
base.TaggedTemplateExpression = function (node, st, c) {
|
|
324
|
+
c(node.tag, st, "Expression");
|
|
325
|
+
c(node.quasi, st);
|
|
326
|
+
};
|
|
327
|
+
base.ClassDeclaration = base.ClassExpression = function (node, st, c) {
|
|
328
|
+
if (node.superClass) c(node.superClass, st, "Expression");
|
|
329
|
+
for (var i = 0; i < node.body.body.length; i++) {
|
|
330
|
+
c(node.body.body[i], st);
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
base.MethodDefinition = base.Property = function (node, st, c) {
|
|
334
|
+
if (node.computed) c(node.key, st, "Expression");
|
|
335
|
+
c(node.value, st, "Expression");
|
|
336
|
+
};
|
|
337
|
+
base.ComprehensionExpression = function (node, st, c) {
|
|
338
|
+
for (var i = 0; i < node.blocks.length; i++) {
|
|
339
|
+
c(node.blocks[i].right, st, "Expression");
|
|
340
|
+
}c(node.body, st, "Expression");
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
},{}]},{},[1])(1)
|
|
344
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<title><!-- title --></title>
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<meta name="generator" content="Three.js Editor">
|
|
7
|
+
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
|
8
|
+
<style>
|
|
9
|
+
body {
|
|
10
|
+
font-family: sans-serif;
|
|
11
|
+
font-size: 11px;
|
|
12
|
+
background-color: #000;
|
|
13
|
+
margin: 0px;
|
|
14
|
+
}
|
|
15
|
+
canvas {
|
|
16
|
+
display: block;
|
|
17
|
+
}
|
|
18
|
+
</style>
|
|
19
|
+
</head>
|
|
20
|
+
<body ontouchstart="">
|
|
21
|
+
<script type="importmap"><!-- importmap --></script>
|
|
22
|
+
<script type="module">
|
|
23
|
+
|
|
24
|
+
import * as THREE from 'three';
|
|
25
|
+
import { APP } from './js/app.js';
|
|
26
|
+
|
|
27
|
+
window.THREE = THREE; // Used by APP Scripts.
|
|
28
|
+
|
|
29
|
+
var loader = new THREE.FileLoader();
|
|
30
|
+
loader.load( 'app.json', async function ( text ) {
|
|
31
|
+
|
|
32
|
+
var player = new APP.Player();
|
|
33
|
+
await player.load( JSON.parse( text ) );
|
|
34
|
+
player.setSize( window.innerWidth, window.innerHeight );
|
|
35
|
+
player.play();
|
|
36
|
+
|
|
37
|
+
document.body.appendChild( player.dom );
|
|
38
|
+
|
|
39
|
+
window.addEventListener( 'resize', function () {
|
|
40
|
+
|
|
41
|
+
player.setSize( window.innerWidth, window.innerHeight );
|
|
42
|
+
|
|
43
|
+
} );
|
|
44
|
+
|
|
45
|
+
} );
|
|
46
|
+
|
|
47
|
+
/* edit button */
|
|
48
|
+
|
|
49
|
+
</script>
|
|
50
|
+
</body>
|
|
51
|
+
</html>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
.CodeMirror-dialog {
|
|
2
|
+
position: absolute;
|
|
3
|
+
left: 0; right: 0;
|
|
4
|
+
background: inherit;
|
|
5
|
+
z-index: 15;
|
|
6
|
+
padding: .1em .8em;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
color: inherit;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.CodeMirror-dialog-top {
|
|
12
|
+
border-bottom: 1px solid #eee;
|
|
13
|
+
top: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.CodeMirror-dialog-bottom {
|
|
17
|
+
border-top: 1px solid #eee;
|
|
18
|
+
bottom: 0;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.CodeMirror-dialog input {
|
|
22
|
+
border: none;
|
|
23
|
+
outline: none;
|
|
24
|
+
background: transparent;
|
|
25
|
+
width: 20em;
|
|
26
|
+
color: inherit;
|
|
27
|
+
font-family: monospace;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.CodeMirror-dialog button {
|
|
31
|
+
font-size: 70%;
|
|
32
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
|
2
|
+
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
|
3
|
+
|
|
4
|
+
// Open simple dialogs on top of an editor. Relies on dialog.css.
|
|
5
|
+
|
|
6
|
+
(function(mod) {
|
|
7
|
+
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
|
8
|
+
mod(require("../../lib/codemirror"));
|
|
9
|
+
else if (typeof define == "function" && define.amd) // AMD
|
|
10
|
+
define(["../../lib/codemirror"], mod);
|
|
11
|
+
else // Plain browser env
|
|
12
|
+
mod(CodeMirror);
|
|
13
|
+
})(function(CodeMirror) {
|
|
14
|
+
function dialogDiv(cm, template, bottom) {
|
|
15
|
+
var wrap = cm.getWrapperElement();
|
|
16
|
+
var dialog;
|
|
17
|
+
dialog = wrap.appendChild(document.createElement("div"));
|
|
18
|
+
if (bottom)
|
|
19
|
+
dialog.className = "CodeMirror-dialog CodeMirror-dialog-bottom";
|
|
20
|
+
else
|
|
21
|
+
dialog.className = "CodeMirror-dialog CodeMirror-dialog-top";
|
|
22
|
+
|
|
23
|
+
if (typeof template == "string") {
|
|
24
|
+
dialog.innerHTML = template;
|
|
25
|
+
} else { // Assuming it's a detached DOM element.
|
|
26
|
+
dialog.appendChild(template);
|
|
27
|
+
}
|
|
28
|
+
CodeMirror.addClass(wrap, 'dialog-opened');
|
|
29
|
+
return dialog;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function closeNotification(cm, newVal) {
|
|
33
|
+
if (cm.state.currentNotificationClose)
|
|
34
|
+
cm.state.currentNotificationClose();
|
|
35
|
+
cm.state.currentNotificationClose = newVal;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
CodeMirror.defineExtension("openDialog", function(template, callback, options) {
|
|
39
|
+
if (!options) options = {};
|
|
40
|
+
|
|
41
|
+
closeNotification(this, null);
|
|
42
|
+
|
|
43
|
+
var dialog = dialogDiv(this, template, options.bottom);
|
|
44
|
+
var closed = false, me = this;
|
|
45
|
+
function close(newVal) {
|
|
46
|
+
if (typeof newVal == 'string') {
|
|
47
|
+
inp.value = newVal;
|
|
48
|
+
} else {
|
|
49
|
+
if (closed) return;
|
|
50
|
+
closed = true;
|
|
51
|
+
CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
|
|
52
|
+
dialog.parentNode.removeChild(dialog);
|
|
53
|
+
me.focus();
|
|
54
|
+
|
|
55
|
+
if (options.onClose) options.onClose(dialog);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
var inp = dialog.getElementsByTagName("input")[0], button;
|
|
60
|
+
if (inp) {
|
|
61
|
+
inp.focus();
|
|
62
|
+
|
|
63
|
+
if (options.value) {
|
|
64
|
+
inp.value = options.value;
|
|
65
|
+
if (options.selectValueOnOpen !== false) {
|
|
66
|
+
inp.select();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (options.onInput)
|
|
71
|
+
CodeMirror.on(inp, "input", function(e) { options.onInput(e, inp.value, close);});
|
|
72
|
+
if (options.onKeyUp)
|
|
73
|
+
CodeMirror.on(inp, "keyup", function(e) {options.onKeyUp(e, inp.value, close);});
|
|
74
|
+
|
|
75
|
+
CodeMirror.on(inp, "keydown", function(e) {
|
|
76
|
+
if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; }
|
|
77
|
+
if (e.keyCode == 27 || (options.closeOnEnter !== false && e.keyCode == 13)) {
|
|
78
|
+
inp.blur();
|
|
79
|
+
CodeMirror.e_stop(e);
|
|
80
|
+
close();
|
|
81
|
+
}
|
|
82
|
+
if (e.keyCode == 13) callback(inp.value, e);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
if (options.closeOnBlur !== false) CodeMirror.on(dialog, "focusout", function (evt) {
|
|
86
|
+
if (evt.relatedTarget !== null) close();
|
|
87
|
+
});
|
|
88
|
+
} else if (button = dialog.getElementsByTagName("button")[0]) {
|
|
89
|
+
CodeMirror.on(button, "click", function() {
|
|
90
|
+
close();
|
|
91
|
+
me.focus();
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
if (options.closeOnBlur !== false) CodeMirror.on(button, "blur", close);
|
|
95
|
+
|
|
96
|
+
button.focus();
|
|
97
|
+
}
|
|
98
|
+
return close;
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
CodeMirror.defineExtension("openConfirm", function(template, callbacks, options) {
|
|
102
|
+
closeNotification(this, null);
|
|
103
|
+
var dialog = dialogDiv(this, template, options && options.bottom);
|
|
104
|
+
var buttons = dialog.getElementsByTagName("button");
|
|
105
|
+
var closed = false, me = this, blurring = 1;
|
|
106
|
+
function close() {
|
|
107
|
+
if (closed) return;
|
|
108
|
+
closed = true;
|
|
109
|
+
CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
|
|
110
|
+
dialog.parentNode.removeChild(dialog);
|
|
111
|
+
me.focus();
|
|
112
|
+
}
|
|
113
|
+
buttons[0].focus();
|
|
114
|
+
for (var i = 0; i < buttons.length; ++i) {
|
|
115
|
+
var b = buttons[i];
|
|
116
|
+
(function(callback) {
|
|
117
|
+
CodeMirror.on(b, "click", function(e) {
|
|
118
|
+
CodeMirror.e_preventDefault(e);
|
|
119
|
+
close();
|
|
120
|
+
if (callback) callback(me);
|
|
121
|
+
});
|
|
122
|
+
})(callbacks[i]);
|
|
123
|
+
CodeMirror.on(b, "blur", function() {
|
|
124
|
+
--blurring;
|
|
125
|
+
setTimeout(function() { if (blurring <= 0) close(); }, 200);
|
|
126
|
+
});
|
|
127
|
+
CodeMirror.on(b, "focus", function() { ++blurring; });
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
/*
|
|
132
|
+
* openNotification
|
|
133
|
+
* Opens a notification, that can be closed with an optional timer
|
|
134
|
+
* (default 5000ms timer) and always closes on click.
|
|
135
|
+
*
|
|
136
|
+
* If a notification is opened while another is opened, it will close the
|
|
137
|
+
* currently opened one and open the new one immediately.
|
|
138
|
+
*/
|
|
139
|
+
CodeMirror.defineExtension("openNotification", function(template, options) {
|
|
140
|
+
closeNotification(this, close);
|
|
141
|
+
var dialog = dialogDiv(this, template, options && options.bottom);
|
|
142
|
+
var closed = false, doneTimer;
|
|
143
|
+
var duration = options && typeof options.duration !== "undefined" ? options.duration : 5000;
|
|
144
|
+
|
|
145
|
+
function close() {
|
|
146
|
+
if (closed) return;
|
|
147
|
+
closed = true;
|
|
148
|
+
clearTimeout(doneTimer);
|
|
149
|
+
CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
|
|
150
|
+
dialog.parentNode.removeChild(dialog);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
CodeMirror.on(dialog, 'click', function(e) {
|
|
154
|
+
CodeMirror.e_preventDefault(e);
|
|
155
|
+
close();
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
if (duration)
|
|
159
|
+
doneTimer = setTimeout(close, duration);
|
|
160
|
+
|
|
161
|
+
return close;
|
|
162
|
+
});
|
|
163
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
.CodeMirror-hints {
|
|
2
|
+
position: absolute;
|
|
3
|
+
z-index: 10;
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
list-style: none;
|
|
6
|
+
|
|
7
|
+
margin: 0;
|
|
8
|
+
padding: 2px;
|
|
9
|
+
|
|
10
|
+
-webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
|
11
|
+
-moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
|
12
|
+
box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
|
13
|
+
border-radius: 3px;
|
|
14
|
+
border: 1px solid silver;
|
|
15
|
+
|
|
16
|
+
background: white;
|
|
17
|
+
font-size: 90%;
|
|
18
|
+
font-family: monospace;
|
|
19
|
+
|
|
20
|
+
max-height: 20em;
|
|
21
|
+
overflow-y: auto;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.CodeMirror-hint {
|
|
25
|
+
margin: 0;
|
|
26
|
+
padding: 0 4px;
|
|
27
|
+
border-radius: 2px;
|
|
28
|
+
white-space: pre;
|
|
29
|
+
color: black;
|
|
30
|
+
cursor: pointer;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
li.CodeMirror-hint-active {
|
|
34
|
+
background: #08f;
|
|
35
|
+
color: white;
|
|
36
|
+
}
|