Skip to content

Commit 26e3c90

Browse files
committed
Element Properties Functionality
1 parent 777250d commit 26e3c90

4 files changed

Lines changed: 483 additions & 110 deletions

File tree

src/public/component/component.js

Lines changed: 82 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ let graph;
1515
let selectedNode = null;
1616
let selectedNodeIndex = -1;
1717

18-
let changeName = false;
18+
let inPropertyWindow = false;
1919
let bulkcreate = 0;
2020
let createNeighbor = false;
2121

@@ -31,6 +31,11 @@ function Main()
3131
window.addEventListener("_event_modal_ok_", _event_modal_onOk);
3232
window.addEventListener("_event_modal_delete_", _event_modal_onDelete);
3333
window.addEventListener("_event_modal_createneighbor_", _event_modal_onCreateNeighbor);
34+
window.addEventListener("_event_rebuild_element_", _event_modal_onElementRebuild);
35+
window.addEventListener("_event_element_addvertex_", _event_modal_onElementVertexAdd);
36+
window.addEventListener("_event_element_addindex_", _event_modal_onElementIndexAdd);
37+
window.addEventListener("_event_element_executevertexcode_", _event_modal_onElementExecuteVertex);
38+
window.addEventListener("_event_element_executeindexcode_", _event_modal_onElementExecuteIndex);
3439
RC2.addEventListener("mousedown", _event_onMouseDown);
3540
RC2.addEventListener("touchstart", _event_onTouchDown);
3641
RC2.addEventListener("mouseup", _event_onMouseUp);
@@ -104,57 +109,13 @@ function ParseURL()
104109
}
105110
function Initialize()
106111
{
107-
let Vertices = [
108-
new GraphicsVertex(-1.0, +1.0, +1.0, +1.0, +1.0, +1.0, +1.0),
109-
new GraphicsVertex(+1.0, +1.0, +1.0, +1.0, +1.0, +1.0, +1.0),
110-
new GraphicsVertex(+1.0, -1.0, +1.0, +1.0, +1.0, +1.0, +1.0),
111-
new GraphicsVertex(-1.0, -1.0, +1.0, +1.0, +1.0, +1.0, +1.0),
112-
113-
new GraphicsVertex(-1.0, +1.0, -1.0, +1.0, +1.0, +1.0, +1.0),
114-
new GraphicsVertex(+1.0, +1.0, -1.0, +1.0, +1.0, +1.0, +1.0),
115-
new GraphicsVertex(+1.0, -1.0, -1.0, +1.0, +1.0, +1.0, +1.0),
116-
new GraphicsVertex(-1.0, -1.0, -1.0, +1.0, +1.0, +1.0, +1.0),
117-
]
118-
let Indices = [
119-
new Index(0, 1, 2),
120-
new Index(0, 2, 3),
121-
122-
new Index(4, 5, 6),
123-
new Index(4, 6, 7)
124-
]
125-
obj = new Object3D(ME, Vertices, Indices, "OBJ");
126112
graph = new Graph();
127-
128-
//let el = new Element(obj);
129-
//graph.RegisterElement(el);
130-
131-
/*let el = new Element(obj);
132-
133-
g = new Graph();
134-
let A = new Node("A", new Vertex(0, 3, 0));
135-
let B = new Node("B", new Vertex(3, 0, 0));
136-
let C = new Node("C", new Vertex(-3, 0, 0));
137-
let D = new Node("D", new Vertex(0, -3, 0));
138-
let E = new Node("E", new Vertex(0, 0, 0));
139-
A.CreatePathTo(B, true);
140-
A.CreatePathTo(C, true);
141-
B.CreatePathTo(C, true);
142-
B.CreatePathTo(D, true);
143-
C.CreatePathTo(D, true);
144-
//B.Selected = true;
145-
g.RegisterNode(A);
146-
g.RegisterNode(B);
147-
g.RegisterNode(C);
148-
g.RegisterNode(D);
149-
g.RegisterNode(E);
150-
g.RegisterElement(el);
151-
//g.GetPath(A, D);*/
152113
}
153114
function _event_onKeyPress(event)
154115
{
155116
if (selectedNode)
156117
{
157-
if (!changeName)
118+
if (!inPropertyWindow)
158119
{
159120
let speed = 0.1;
160121
if (event.key === "ArrowUp")
@@ -184,7 +145,19 @@ function _event_onKeyPress(event)
184145
if (event.key === "i")
185146
{
186147
window.dispatchEvent(new CustomEvent("_event_onSignalProperties", { detail: { node: selectedNode } }));
187-
changeName = true;
148+
inPropertyWindow = true;
149+
}
150+
if (event.key === "e")
151+
{
152+
for (let i = 0; i < graph.Elements.length; i++)
153+
{
154+
if (graph.Elements[i].Node === selectedNode)
155+
{
156+
window.dispatchEvent(new CustomEvent("_event_onSignalElements", { detail: { element: graph.Elements[i] } }));
157+
inPropertyWindow = true;
158+
break;
159+
}
160+
}
188161
}
189162
}
190163
}
@@ -212,7 +185,22 @@ function _event_onNavigationSelect(event)
212185
let navigation = event.detail.key;
213186
if (navigation === "_navigation_element_create")
214187
{
215-
188+
let Vertices = [
189+
new GraphicsVertex(-1.0, +1.0, +0.0, +1.0, +1.0, +1.0, +1.0),
190+
new GraphicsVertex(+1.0, +1.0, +0.0, +1.0, +1.0, +1.0, +1.0),
191+
new GraphicsVertex(+1.0, -1.0, +0.0, +1.0, +1.0, +1.0, +1.0),
192+
new GraphicsVertex(-1.0, -1.0, +0.0, +1.0, +1.0, +1.0, +1.0),
193+
]
194+
let Indices = [
195+
new Index(0, 1, 2),
196+
new Index(0, 2, 3),
197+
]
198+
obj = new Object3D(ME, Vertices, Indices, "New Object");
199+
let N = new Element(obj, "New Element", "Generic");
200+
N.BindToNode(selectedNode);
201+
graph.RegisterElement(N);
202+
window.dispatchEvent(new CustomEvent("_event_onSignalElements", { detail: { element: N } }));
203+
inPropertyWindow = true;
216204
}
217205
else if (navigation === "_navigation_node_create")
218206
{
@@ -226,7 +214,7 @@ function _event_onNavigationSelect(event)
226214
selectedNodeIndex = -1;
227215
_event_onNodeSelect(graph.Nodes[graph.Nodes.length - 1], graph.Nodes.length - 1);
228216
window.dispatchEvent(new CustomEvent("_event_onSignalProperties", { detail: { node: selectedNode } }));
229-
changeName = true;
217+
inPropertyWindow = true;
230218
}
231219
else if (navigation === "_navigation_node_bulkcreate")
232220
{
@@ -240,7 +228,7 @@ function _event_onNavigationSelect(event)
240228
else if (navigation === "_navigation_node_inspect")
241229
{
242230
window.dispatchEvent(new CustomEvent("_event_onSignalProperties", { detail: { node: selectedNode } }));
243-
changeName = true;
231+
inPropertyWindow = true;
244232
}
245233
else if (navigation === "_navigation_node_remove")
246234
{
@@ -353,7 +341,7 @@ function _event_onMouseWheel(event)
353341
}
354342
function _event_modal_onOk(event)
355343
{
356-
changeName = false;
344+
inPropertyWindow = false;
357345
if (bulkcreate > 0)
358346
{
359347
setTimeout(() =>
@@ -365,19 +353,61 @@ function _event_modal_onOk(event)
365353
function _event_modal_onDelete(event)
366354
{
367355
graph.Nodes.splice(selectedNodeIndex, 1);
368-
changeName = false;
356+
inPropertyWindow = false;
369357
if (bulkcreate > 0)
370358
{
371359
setTimeout(() =>
372360
{
373361
_event_onNavigationSelect({ detail: { key: "_navigation_node_bulkcreate", number: bulkcreate-- } });
374362
}, 1);
375363
}
364+
selectedNode = null;
365+
selectedNodeIndex = -1;
376366
}
377367
function _event_modal_onCreateNeighbor(event)
378368
{
379369
createNeighbor = true;
380370
}
371+
function _event_modal_onElementRebuild(event)
372+
{
373+
event.detail.element.Object.rebuild(ME);
374+
}
375+
function _event_modal_onElementVertexAdd(event)
376+
{
377+
event.detail.element.Object.Vertices.push(new GraphicsVertex(0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0));
378+
_event_modal_onElementRebuild(event);
379+
}
380+
function _event_modal_onElementIndexAdd(event)
381+
{
382+
event.detail.element.Object.Indices.push(new Index(0, 0, 0));
383+
_event_modal_onElementRebuild(event);
384+
}
385+
function _event_modal_onElementExecuteVertex(event)
386+
{
387+
let code = "[\n" + event.detail.code + "\n]";
388+
try
389+
{
390+
event.detail.element.Object.Vertices = eval(code);
391+
_event_modal_onElementRebuild(event);
392+
}
393+
catch (e)
394+
{
395+
396+
}
397+
}
398+
function _event_modal_onElementExecuteIndex(event)
399+
{
400+
let code = "[\n" + event.detail.code + "\n]";
401+
try
402+
{
403+
event.detail.element.Object.Indices = eval(code);
404+
_event_modal_onElementRebuild(event);
405+
}
406+
catch (e)
407+
{
408+
409+
}
410+
}
381411
function MainLoop()
382412
{
383413
requestAnimFrame(MainLoop);
@@ -386,7 +416,6 @@ function MainLoop()
386416
}
387417
function Update()
388418
{
389-
obj.Rotation.X += 1;
390419
if (MouseButton == 1)
391420
{
392421
DeltaMouse = new Point(PreviousMousePosition.X - MousePosition.X, PreviousMousePosition.Y - MousePosition.Y);

src/public/component/element.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,10 @@ let Graph = class Graph
9494
{
9595
for (let i = 0; i < this.Elements.length; i++)
9696
{
97-
this.Elements[i].Render(ME);
97+
if (this.Elements[i].Node != null)
98+
{
99+
this.Elements[i].Render(ME);
100+
}
98101
}
99102
for (let i = 0; i < this.Nodes.length; i++)
100103
{
@@ -224,16 +227,20 @@ let Neighbor = class Neighbor
224227
}
225228
let Element = class Element
226229
{
227-
constructor(_object)
230+
constructor(_object, name, type)
228231
{
229232
this.Object = _object;
233+
this.Name = name;
234+
this.Type = type;
235+
this.Node = null;
230236
}
231237
BindToNode(_node)
232238
{
233239
this.Node = _node;
234240
}
235241
Render(ME)
236242
{
243+
this.Object.Location = this.Node.Location;
237244
this.Object.Render(ME);
238245
}
239246
}

src/public/component/engine.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,13 +252,22 @@ var Index = class Index
252252
var Object3D = class Object3D
253253
{
254254
constructor(engine, vert, inde, name)
255+
{
256+
this.make(engine, vert, inde, name);
257+
}
258+
rebuild(engine)
259+
{
260+
this.make(engine, this.Vertices, this.Indices, this.name);
261+
}
262+
make(engine, vert, inde, name)
255263
{
256264
this.name = name;
257265
var device = engine.Device;
258266
/**
259267
* Transpose the vertex objects to arrays
260268
*/
261269
this.Vertices = vert;
270+
this.Indices = inde;
262271
this.vertices = new Array(vert.length * 3);
263272
this.colors = new Array(vert.length * 4);
264273
this.indices = new Array(inde.length * 3);

0 commit comments

Comments
 (0)