@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.
Files changed (136) hide show
  1. package/README.md +169 -0
  2. package/dist/index.css +921 -0
  3. package/dist/index.js +14076 -0
  4. package/package.json +49 -0
  5. package/src/editor/css/main.css +1030 -0
  6. package/src/editor/js/Animation.js +618 -0
  7. package/src/editor/js/AnimationResizer.js +73 -0
  8. package/src/editor/js/Command.js +40 -0
  9. package/src/editor/js/Config.js +86 -0
  10. package/src/editor/js/Editor.js +1006 -0
  11. package/src/editor/js/EditorControls.js +489 -0
  12. package/src/editor/js/GLTFImportDialog.js +112 -0
  13. package/src/editor/js/History.js +321 -0
  14. package/src/editor/js/Loader.js +1162 -0
  15. package/src/editor/js/LoaderUtils.js +90 -0
  16. package/src/editor/js/Menubar.Add.js +559 -0
  17. package/src/editor/js/Menubar.Edit.js +155 -0
  18. package/src/editor/js/Menubar.File.js +585 -0
  19. package/src/editor/js/Menubar.Help.js +73 -0
  20. package/src/editor/js/Menubar.Render.js +858 -0
  21. package/src/editor/js/Menubar.Status.js +51 -0
  22. package/src/editor/js/Menubar.View.js +193 -0
  23. package/src/editor/js/Menubar.js +29 -0
  24. package/src/editor/js/Player.js +53 -0
  25. package/src/editor/js/Resizer.js +65 -0
  26. package/src/editor/js/Script.js +532 -0
  27. package/src/editor/js/Selector.js +129 -0
  28. package/src/editor/js/Sidebar.Geometry.BoxGeometry.js +121 -0
  29. package/src/editor/js/Sidebar.Geometry.BufferGeometry.js +124 -0
  30. package/src/editor/js/Sidebar.Geometry.CapsuleGeometry.js +109 -0
  31. package/src/editor/js/Sidebar.Geometry.CircleGeometry.js +97 -0
  32. package/src/editor/js/Sidebar.Geometry.CylinderGeometry.js +121 -0
  33. package/src/editor/js/Sidebar.Geometry.DodecahedronGeometry.js +73 -0
  34. package/src/editor/js/Sidebar.Geometry.ExtrudeGeometry.js +196 -0
  35. package/src/editor/js/Sidebar.Geometry.IcosahedronGeometry.js +73 -0
  36. package/src/editor/js/Sidebar.Geometry.LatheGeometry.js +98 -0
  37. package/src/editor/js/Sidebar.Geometry.Modifiers.js +73 -0
  38. package/src/editor/js/Sidebar.Geometry.OctahedronGeometry.js +74 -0
  39. package/src/editor/js/Sidebar.Geometry.PlaneGeometry.js +97 -0
  40. package/src/editor/js/Sidebar.Geometry.RingGeometry.js +121 -0
  41. package/src/editor/js/Sidebar.Geometry.ShapeGeometry.js +76 -0
  42. package/src/editor/js/Sidebar.Geometry.SphereGeometry.js +133 -0
  43. package/src/editor/js/Sidebar.Geometry.TetrahedronGeometry.js +74 -0
  44. package/src/editor/js/Sidebar.Geometry.TextGeometry.js +136 -0
  45. package/src/editor/js/Sidebar.Geometry.TorusGeometry.js +109 -0
  46. package/src/editor/js/Sidebar.Geometry.TorusKnotGeometry.js +121 -0
  47. package/src/editor/js/Sidebar.Geometry.TubeGeometry.js +135 -0
  48. package/src/editor/js/Sidebar.Geometry.js +471 -0
  49. package/src/editor/js/Sidebar.Material.BooleanProperty.js +60 -0
  50. package/src/editor/js/Sidebar.Material.ColorProperty.js +87 -0
  51. package/src/editor/js/Sidebar.Material.ConstantProperty.js +62 -0
  52. package/src/editor/js/Sidebar.Material.MapProperty.js +277 -0
  53. package/src/editor/js/Sidebar.Material.NumberProperty.js +60 -0
  54. package/src/editor/js/Sidebar.Material.Program.js +73 -0
  55. package/src/editor/js/Sidebar.Material.RangeValueProperty.js +63 -0
  56. package/src/editor/js/Sidebar.Material.js +751 -0
  57. package/src/editor/js/Sidebar.Object.js +892 -0
  58. package/src/editor/js/Sidebar.Project.App.js +218 -0
  59. package/src/editor/js/Sidebar.Project.Materials.js +82 -0
  60. package/src/editor/js/Sidebar.Project.Renderer.js +193 -0
  61. package/src/editor/js/Sidebar.Project.Resources.js +242 -0
  62. package/src/editor/js/Sidebar.Project.js +21 -0
  63. package/src/editor/js/Sidebar.Properties.js +73 -0
  64. package/src/editor/js/Sidebar.Scene.js +643 -0
  65. package/src/editor/js/Sidebar.Script.js +129 -0
  66. package/src/editor/js/Sidebar.Settings.History.js +146 -0
  67. package/src/editor/js/Sidebar.Settings.Shortcuts.js +198 -0
  68. package/src/editor/js/Sidebar.Settings.js +58 -0
  69. package/src/editor/js/Sidebar.js +41 -0
  70. package/src/editor/js/Storage.js +98 -0
  71. package/src/editor/js/Strings.js +2718 -0
  72. package/src/editor/js/TextureParametersDialog.js +293 -0
  73. package/src/editor/js/Toolbar.js +75 -0
  74. package/src/editor/js/Viewport.Controls.js +98 -0
  75. package/src/editor/js/Viewport.Info.js +144 -0
  76. package/src/editor/js/Viewport.Pathtracer.js +27 -0
  77. package/src/editor/js/Viewport.ViewHelper.js +41 -0
  78. package/src/editor/js/Viewport.XR.js +7 -0
  79. package/src/editor/js/Viewport.js +982 -0
  80. package/src/editor/js/commands/AddObjectCommand.js +68 -0
  81. package/src/editor/js/commands/AddScriptCommand.js +75 -0
  82. package/src/editor/js/commands/Commands.js +24 -0
  83. package/src/editor/js/commands/MoveObjectCommand.js +117 -0
  84. package/src/editor/js/commands/MultiCmdsCommand.js +85 -0
  85. package/src/editor/js/commands/RemoveObjectCommand.js +88 -0
  86. package/src/editor/js/commands/RemoveScriptCommand.js +81 -0
  87. package/src/editor/js/commands/SetColorCommand.js +73 -0
  88. package/src/editor/js/commands/SetGeometryCommand.js +86 -0
  89. package/src/editor/js/commands/SetGeometryValueCommand.js +70 -0
  90. package/src/editor/js/commands/SetMaterialColorCommand.js +87 -0
  91. package/src/editor/js/commands/SetMaterialCommand.js +80 -0
  92. package/src/editor/js/commands/SetMaterialMapCommand.js +144 -0
  93. package/src/editor/js/commands/SetMaterialRangeCommand.js +92 -0
  94. package/src/editor/js/commands/SetMaterialValueCommand.js +91 -0
  95. package/src/editor/js/commands/SetMaterialVectorCommand.js +88 -0
  96. package/src/editor/js/commands/SetPositionCommand.js +84 -0
  97. package/src/editor/js/commands/SetRotationCommand.js +84 -0
  98. package/src/editor/js/commands/SetScaleCommand.js +84 -0
  99. package/src/editor/js/commands/SetSceneCommand.js +104 -0
  100. package/src/editor/js/commands/SetScriptValueCommand.js +80 -0
  101. package/src/editor/js/commands/SetShadowValueCommand.js +73 -0
  102. package/src/editor/js/commands/SetTextureParametersCommand.js +143 -0
  103. package/src/editor/js/commands/SetUuidCommand.js +70 -0
  104. package/src/editor/js/commands/SetValueCommand.js +75 -0
  105. package/src/editor/js/libs/acorn/acorn.js +3236 -0
  106. package/src/editor/js/libs/acorn/acorn_loose.js +1299 -0
  107. package/src/editor/js/libs/acorn/walk.js +344 -0
  108. package/src/editor/js/libs/app/index.html +51 -0
  109. package/src/editor/js/libs/app.js +14 -0
  110. package/src/editor/js/libs/codemirror/addon/dialog.css +32 -0
  111. package/src/editor/js/libs/codemirror/addon/dialog.js +163 -0
  112. package/src/editor/js/libs/codemirror/addon/show-hint.css +36 -0
  113. package/src/editor/js/libs/codemirror/addon/show-hint.js +529 -0
  114. package/src/editor/js/libs/codemirror/addon/tern.css +87 -0
  115. package/src/editor/js/libs/codemirror/addon/tern.js +750 -0
  116. package/src/editor/js/libs/codemirror/codemirror.css +344 -0
  117. package/src/editor/js/libs/codemirror/codemirror.js +9849 -0
  118. package/src/editor/js/libs/codemirror/mode/glsl.js +233 -0
  119. package/src/editor/js/libs/codemirror/mode/javascript.js +959 -0
  120. package/src/editor/js/libs/codemirror/theme/monokai.css +41 -0
  121. package/src/editor/js/libs/esprima.js +6401 -0
  122. package/src/editor/js/libs/jsonlint.js +453 -0
  123. package/src/editor/js/libs/signals.min.js +14 -0
  124. package/src/editor/js/libs/tern-threejs/build-defs.js +233 -0
  125. package/src/editor/js/libs/ternjs/comment.js +87 -0
  126. package/src/editor/js/libs/ternjs/def.js +588 -0
  127. package/src/editor/js/libs/ternjs/doc_comment.js +401 -0
  128. package/src/editor/js/libs/ternjs/infer.js +1635 -0
  129. package/src/editor/js/libs/ternjs/polyfill.js +80 -0
  130. package/src/editor/js/libs/ternjs/signal.js +26 -0
  131. package/src/editor/js/libs/ternjs/tern.js +993 -0
  132. package/src/editor/js/libs/ui.js +1305 -0
  133. package/src/editor/js/libs/ui.three.js +946 -0
  134. package/src/events.js +273 -0
  135. package/src/index.js +284 -0
  136. 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,14 @@
1
+ function APP() {}
2
+
3
+ APP.Player = function () {
4
+
5
+ const dom = document.createElement( 'div' );
6
+ this.dom = dom;
7
+
8
+ this.load = async function () {};
9
+ this.play = function () {};
10
+ this.dispose = function () {};
11
+
12
+ };
13
+
14
+ export { APP };
@@ -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
+ }