Skip to content

Commit 871f86b

Browse files
committed
Finished Element Creation
1 parent 26e3c90 commit 871f86b

4 files changed

Lines changed: 172 additions & 42 deletions

File tree

src/public/component/component.js

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ let selectedNodeIndex = -1;
1818
let inPropertyWindow = false;
1919
let bulkcreate = 0;
2020
let createNeighbor = false;
21+
let bindtonode = false;
2122

2223
let start = null;
2324
let end = null;
@@ -36,6 +37,8 @@ function Main()
3637
window.addEventListener("_event_element_addindex_", _event_modal_onElementIndexAdd);
3738
window.addEventListener("_event_element_executevertexcode_", _event_modal_onElementExecuteVertex);
3839
window.addEventListener("_event_element_executeindexcode_", _event_modal_onElementExecuteIndex);
40+
window.addEventListener("_event_modal_element_delete_", _event_modal_onElementDelete);
41+
window.addEventListener("_event_modal_bindtonode_", _event_modal_onBindToNode);
3942
RC2.addEventListener("mousedown", _event_onMouseDown);
4043
RC2.addEventListener("touchstart", _event_onTouchDown);
4144
RC2.addEventListener("mouseup", _event_onMouseUp);
@@ -179,6 +182,15 @@ function _event_onNodeSelect(event, nIndex)
179182
window.dispatchEvent(new CustomEvent("_event_onSignalNeighbor", { detail: {} }));
180183
}
181184
}
185+
if (bindtonode)
186+
{
187+
console.log("TEST");
188+
selectedNode = event;
189+
selectedNode.Selected = true;
190+
selectedNodeIndex = nIndex;
191+
bindtonode = false;
192+
window.dispatchEvent(new CustomEvent("_event_onSignalBind", { detail: {node: event} }));
193+
}
182194
}
183195
function _event_onNavigationSelect(event)
184196
{
@@ -198,10 +210,33 @@ function _event_onNavigationSelect(event)
198210
obj = new Object3D(ME, Vertices, Indices, "New Object");
199211
let N = new Element(obj, "New Element", "Generic");
200212
N.BindToNode(selectedNode);
213+
selectedElement = N;
201214
graph.RegisterElement(N);
202215
window.dispatchEvent(new CustomEvent("_event_onSignalElements", { detail: { element: N } }));
203-
inPropertyWindow = true;
216+
inPropertyWindow = true;
217+
}
218+
else if (navigation === "_navigation_element_inspect")
219+
{
220+
if (selectedNode)
221+
{
222+
for (let i = 0; i < graph.Elements.length; i++)
223+
{
224+
if (graph.Elements[i].Node === selectedNode)
225+
{
226+
window.dispatchEvent(new CustomEvent("_event_onSignalElements", { detail: { element: graph.Elements[i] } }));
227+
inPropertyWindow = true;
228+
break;
229+
}
230+
}
231+
}
204232
}
233+
else if (navigation === "_navigation_element_remove")
234+
{
235+
if (selectedNode)
236+
{
237+
_event_modal_onElementDelete();
238+
}
239+
}
205240
else if (navigation === "_navigation_node_create")
206241
{
207242
let N = new Node("New Node", new Vertex(0, 0, 0));
@@ -408,6 +443,22 @@ function _event_modal_onElementExecuteIndex(event)
408443

409444
}
410445
}
446+
function _event_modal_onElementDelete(event)
447+
{
448+
for (let i = 0; i < graph.Elements.length; i++)
449+
{
450+
if (graph.Elements[i].Node === selectedNode)
451+
{
452+
graph.Elements.splice(i, 1);
453+
break;
454+
}
455+
}
456+
inPropertyWindow = false;
457+
}
458+
function _event_modal_onBindToNode(event)
459+
{
460+
bindtonode = true;
461+
}
411462
function MainLoop()
412463
{
413464
requestAnimFrame(MainLoop);

src/public/component/engine.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@ var Object3D = class Object3D
253253
{
254254
constructor(engine, vert, inde, name)
255255
{
256+
this.RenderMode = "Solid";
256257
this.make(engine, vert, inde, name);
257258
}
258259
rebuild(engine)
@@ -327,7 +328,6 @@ var Object3D = class Object3D
327328
this.Rotation = new Vertex(0, 0, 0);
328329
this.Scale = new Vertex(1, 1, 1);
329330

330-
this.RenderMode = "Solid";
331331
this.ShadeR = 1;
332332
this.ShadeG = 1;
333333
this.ShadeB = 1;

src/src/App.js

Lines changed: 118 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class App extends Component
2222
this._event_onSignalNeighbor = this._event_onSignalNeighbor.bind(this);
2323
this._event_onURLChange = this._event_onURLChange.bind(this);
2424
this._event_onSignalElements = this._event_onSignalElements.bind(this);
25+
this._event_onSignalBind = this._event_onSignalBind.bind(this);
2526
this._event_modal_onNameChanged = this._event_modal_onNameChanged.bind(this);
2627
this._event_modal_onIDChanged = this._event_modal_onIDChanged.bind(this);
2728
this._event_modal_onLocationX = this._event_modal_onLocationX.bind(this);
@@ -36,7 +37,9 @@ class App extends Component
3637
this._event_modal_onElementTypeChange = this._event_modal_onElementTypeChange.bind(this);
3738
this._event_modal_onElementAddVertex = this._event_modal_onElementAddVertex.bind(this);
3839
this._event_modal_onElementAddIndex = this._event_modal_onElementAddIndex.bind(this);
39-
this._event_modal_onElementCodeMode = this._event_modal_onElementCodeMode.bind(this);
40+
this._event_modal_onElementToggle = this._event_modal_onElementToggle.bind(this);
41+
this._event_modal_onDeleteElement = this._event_modal_onDeleteElement.bind(this);
42+
this._event_modal_onElementBind = this._event_modal_onElementBind.bind(this);
4043
this.CreateNeighbor = this.CreateNeighbor.bind(this);
4144
this.CreateNeighbors = this.CreateNeighbors.bind(this);
4245
this.CreateVertex = this.CreateVertex.bind(this);
@@ -49,6 +52,7 @@ class App extends Component
4952
window.addEventListener("_event_onSignalNeighbor", this._event_onSignalNeighbor);
5053
window.addEventListener("_event_onURLChange", this._event_onURLChange);
5154
window.addEventListener("_event_onSignalElements", this._event_onSignalElements);
55+
window.addEventListener("_event_onSignalBind", this._event_onSignalBind);
5256
}
5357
componentWillMount()
5458
{
@@ -422,6 +426,42 @@ class App extends Component
422426
SelectedElementOldName: event.detail.element.Name,
423427
SelectedElementOldType: event.detail.element.Type
424428
});
429+
if (this.state.Element_CodeCreate)
430+
{
431+
let vCode = "";
432+
for (let i = 0; i < event.detail.element.Object.Vertices.length; i++)
433+
{
434+
let child = event.detail.element.Object.Vertices[i];
435+
if (i > 0)
436+
{
437+
vCode += ",\n";
438+
}
439+
vCode += "new GraphicsVertex(" + child.X + ", " + child.Y + ", " + child.Z + ", " + child.R + ", " + child.G + ", " + child.B + ", " + child.A + ")";
440+
}
441+
let iCode = "";
442+
for (let i = 0; i < event.detail.element.Object.Indices.length; i++)
443+
{
444+
let child = event.detail.element.Object.Indices[i];
445+
if (i > 0)
446+
{
447+
iCode += ",\n";
448+
}
449+
iCode += "new Index(" + child.indices[0] + ", " + child.indices[1] + ", " + child.indices[2] + ")";
450+
}
451+
this.setState({
452+
Element_CodeCreate: true,
453+
Element_Vertex_Code: vCode,
454+
Element_Index_Code: iCode
455+
});
456+
}
457+
}
458+
_event_onSignalBind(event)
459+
{
460+
console.log("came back");
461+
this.state.SelectedElement.BindToNode(event.detail.node);
462+
this.setState({
463+
Element_Properties: true
464+
});
425465
}
426466
_event_modal_onNameChanged(event)
427467
{
@@ -465,7 +505,11 @@ class App extends Component
465505
Properties: false,
466506
SelectedNode: null,
467507
SelectedNodeOldName: null,
468-
SelectedNodeOldID: null
508+
SelectedNodeOldID: null,
509+
Element_Properties: false,
510+
SelectedElement: null,
511+
SelectedElementOldName: null,
512+
SelectedElementOldID: null
469513
});
470514
}
471515
_event_modal_onDelete(event)
@@ -539,42 +583,74 @@ class App extends Component
539583
SelectedElement: this.state.SelectedElement
540584
});
541585
}
542-
_event_modal_onElementCodeMode(event)
586+
_event_modal_onElementToggle(event)
543587
{
544-
if (event.length > 1)
588+
let cm = false;
589+
let wf = false;
590+
for (let i = 0; i < event.length; i++)
545591
{
546-
let vCode = "";
547-
for (let i = 0; i < this.state.SelectedElement.Object.Vertices.length; i++)
592+
if (event[i] === 1)
548593
{
549-
let child = this.state.SelectedElement.Object.Vertices[i];
550-
if (i > 0)
551-
{
552-
vCode += ",\n";
553-
}
554-
vCode += "new GraphicsVertex(" + child.X + ", " + child.Y + ", " + child.Z + ", " + child.R + ", " + child.G + ", " + child.B + ", " + child.A + ")";
594+
wf = true;
595+
this.state.SelectedElement.Object.RenderMode = "WireFrame";
555596
}
556-
let iCode = "";
557-
for (let i = 0; i < this.state.SelectedElement.Object.Indices.length; i++)
597+
else if (event[i] === 2)
558598
{
559-
let child = this.state.SelectedElement.Object.Indices[i];
560-
if (i > 0)
599+
cm = true;
600+
let vCode = "";
601+
for (let i = 0; i < this.state.SelectedElement.Object.Vertices.length; i++)
561602
{
562-
iCode += ",\n";
603+
let child = this.state.SelectedElement.Object.Vertices[i];
604+
if (i > 0)
605+
{
606+
vCode += ",\n";
607+
}
608+
vCode += "new GraphicsVertex(" + child.X + ", " + child.Y + ", " + child.Z + ", " + child.R + ", " + child.G + ", " + child.B + ", " + child.A + ")";
563609
}
564-
iCode += "new Index(" + child.indices[0] + ", " + child.indices[1] + ", " + child.indices[2] + ")";
610+
let iCode = "";
611+
for (let i = 0; i < this.state.SelectedElement.Object.Indices.length; i++)
612+
{
613+
let child = this.state.SelectedElement.Object.Indices[i];
614+
if (i > 0)
615+
{
616+
iCode += ",\n";
617+
}
618+
iCode += "new Index(" + child.indices[0] + ", " + child.indices[1] + ", " + child.indices[2] + ")";
619+
}
620+
this.setState({
621+
Element_CodeCreate: true,
622+
Element_Vertex_Code: vCode,
623+
Element_Index_Code: iCode
624+
});
565625
}
566-
this.setState({
567-
Element_CodeCreate: true,
568-
Element_Vertex_Code: vCode,
569-
Element_Index_Code: iCode
570-
});
571626
}
572-
else
627+
if (!wf)
628+
{
629+
this.state.SelectedElement.Object.RenderMode = "Solid";
630+
}
631+
if (!cm)
573632
{
574633
this.setState({
575634
Element_CodeCreate: false,
576-
});
577-
}
635+
});
636+
}
637+
}
638+
_event_modal_onDeleteElement(event)
639+
{
640+
window.dispatchEvent(new CustomEvent("_event_modal_element_delete_", { detail: {} }));
641+
this.setState({
642+
Element_Properties: false,
643+
SelectedElement: null,
644+
SelectedElementOldName: null,
645+
SelectedElementOldID: null
646+
});
647+
}
648+
_event_modal_onElementBind(event)
649+
{
650+
window.dispatchEvent(new CustomEvent("_event_modal_bindtonode_", { detail: { element: this.state.SelectedElement} }));
651+
this.setState({
652+
Element_Properties: false
653+
});
578654
}
579655
updateSize()
580656
{
@@ -649,6 +725,7 @@ class App extends Component
649725
node_location_y = this.state.SelectedNode.Location.Y;
650726
node_location_z = this.state.SelectedNode.Location.Z;
651727
}
728+
let tbgdefault = [];
652729
let element_name = "";
653730
let element_name_old = "";
654731
let element_type = "";
@@ -658,6 +735,10 @@ class App extends Component
658735
let element_node_location = "";
659736
if (this.state.SelectedElement)
660737
{
738+
if (this.state.SelectedElement.Object.RenderMode === "WireFrame")
739+
{
740+
tbgdefault.push(1);
741+
}
661742
element_name_old = this.state.SelectedElementOldName;
662743
element_type_old = this.state.SelectedElementOldType;
663744
if (this.state.SelectedElement.Name === this.state.SelectedElementOldName)
@@ -692,11 +773,10 @@ class App extends Component
692773
element_node_name = this.state.SelectedElement.Node.Name;
693774
element_node_location = "(" + this.state.SelectedElement.Node.Location.X + ", " + this.state.SelectedElement.Node.Location.Y + ", " + this.state.SelectedElement.Node.Location.Z + ")";
694775
}
695-
}
696-
let tbgdefault = 0;
697-
if (this.state.Element_CodeCreate)
698-
{
699-
tbgdefault = 1;
776+
if (this.state.Element_CodeCreate)
777+
{
778+
tbgdefault.push(2);
779+
}
700780
}
701781
return (
702782
<div>
@@ -715,7 +795,7 @@ class App extends Component
715795
<canvas id="studios.vanish.component.3D" style={this.GetStyle()}></canvas>
716796
<canvas id="studios.vanish.component.2D" style={this.GetStyle()}></canvas>
717797
</div>
718-
<Modal bsSize="large" show={this.state.Element_Properties}>
798+
<Modal bsSize="large" show={this.state.Element_Properties} onHide={this._event_modal_onOk}>
719799
<Modal.Header closeButton>
720800
<Modal.Title>Element Properties</Modal.Title>
721801
</Modal.Header>
@@ -750,16 +830,17 @@ class App extends Component
750830
</InputGroup>
751831
<div style={{ textAlign: "right", paddingTop: 10 }}>
752832
<ButtonGroup>
753-
<Button href="#" onClick={null}>Bind To Node</Button>
833+
<Button href="#" onClick={this._event_modal_onElementBind}>Bind To Node</Button>
754834
</ButtonGroup>
755835
</div>
756836
</Col>
757837
</FormGroup>
758838
<FormGroup style={{ height: 1, backgroundColor: "rgba(10, 10, 10, 0.10)" }}></FormGroup>
759839
<p>Object</p>
760840
<div style={{ textAlign: "right", paddingBottom: 10 }}>
761-
<ToggleButtonGroup type="checkbox" defaultValue={tbgdefault} onChange={this._event_modal_onElementCodeMode}>
762-
<ToggleButton value={1}>Code Mode</ToggleButton>
841+
<ToggleButtonGroup type="checkbox" defaultValue={tbgdefault} onChange={this._event_modal_onElementToggle}>
842+
<ToggleButton value={1}>Wireframe</ToggleButton>
843+
<ToggleButton value={2}>Code Mode</ToggleButton>
763844
</ToggleButtonGroup>
764845
</div>
765846
<FormGroup>
@@ -781,8 +862,8 @@ class App extends Component
781862
<FormGroup style={{ height: 1, backgroundColor: "rgba(10, 10, 10, 0.10)" }}></FormGroup>
782863
<FormGroup style={{ textAlign: "right", marginRight: 0 }}>
783864
<ButtonGroup>
784-
<Button bsStyle="danger" href="#" onClick={null}>Delete</Button>
785-
<Button bsStyle="success" href="#" onClick={null}>Ok</Button>
865+
<Button bsStyle="danger" href="#" onClick={this._event_modal_onDeleteElement}>Delete</Button>
866+
<Button bsStyle="success" href="#" onClick={this._event_modal_onOk}>Ok</Button>
786867
</ButtonGroup>
787868
</FormGroup>
788869
</Form>

src/src/configuration/navigation.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,7 @@
7171
"children": {
7272
"Create": "_navigation_element_create",
7373
"Inspect": "_navigation_element_inspect",
74-
"Remove": "_navigation_element_remove",
75-
"div1": "divider",
76-
"Bind to Node": "_navigation_element_bind"
74+
"Remove": "_navigation_element_remove"
7775
}
7876
},
7977
"Options": {

0 commit comments

Comments
 (0)