Add node class.
This commit is contained in:
parent
2ab03c7213
commit
9dcf49b548
@ -33,6 +33,7 @@
|
|||||||
<script type="text/javascript" src="../source/model/element.js"></script>
|
<script type="text/javascript" src="../source/model/element.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/topology.js"></script>
|
<script type="text/javascript" src="../source/model/topology.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
||||||
|
|||||||
@ -33,6 +33,7 @@
|
|||||||
<script type="text/javascript" src="../source/model/element.js"></script>
|
<script type="text/javascript" src="../source/model/element.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/topology.js"></script>
|
<script type="text/javascript" src="../source/model/topology.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
||||||
|
|||||||
@ -32,6 +32,7 @@
|
|||||||
<script type="text/javascript" src="../source/model/element.js"></script>
|
<script type="text/javascript" src="../source/model/element.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/topology.js"></script>
|
<script type="text/javascript" src="../source/model/topology.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
||||||
|
|||||||
@ -33,6 +33,7 @@
|
|||||||
<script type="text/javascript" src="../source/model/element.js"></script>
|
<script type="text/javascript" src="../source/model/element.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/topology.js"></script>
|
<script type="text/javascript" src="../source/model/topology.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
||||||
|
|||||||
@ -33,6 +33,7 @@
|
|||||||
<script type="text/javascript" src="../source/model/element.js"></script>
|
<script type="text/javascript" src="../source/model/element.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/topology.js"></script>
|
<script type="text/javascript" src="../source/model/topology.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
||||||
|
|||||||
@ -32,6 +32,7 @@
|
|||||||
<script type="text/javascript" src="../source/model/element.js"></script>
|
<script type="text/javascript" src="../source/model/element.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/topology.js"></script>
|
<script type="text/javascript" src="../source/model/topology.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
||||||
|
|||||||
@ -32,6 +32,7 @@
|
|||||||
<script type="text/javascript" src="../source/model/element.js"></script>
|
<script type="text/javascript" src="../source/model/element.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/topology.js"></script>
|
<script type="text/javascript" src="../source/model/topology.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
||||||
|
|||||||
56
source/model/node.js
Normal file
56
source/model/node.js
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
OV.Node = class
|
||||||
|
{
|
||||||
|
constructor ()
|
||||||
|
{
|
||||||
|
this.parent = null;
|
||||||
|
this.name = '';
|
||||||
|
this.childNodes = [];
|
||||||
|
this.meshIndices = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
GetParent ()
|
||||||
|
{
|
||||||
|
return this.parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
GetName ()
|
||||||
|
{
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetName (name)
|
||||||
|
{
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
AddChildNode (node)
|
||||||
|
{
|
||||||
|
node.parent = this;
|
||||||
|
this.childNodes.push (node);
|
||||||
|
return this.childNodes.length - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
GetChildNodes ()
|
||||||
|
{
|
||||||
|
return this.childNodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
AddMeshIndex (index)
|
||||||
|
{
|
||||||
|
this.meshIndices.push (index);
|
||||||
|
return this.meshIndices.length - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
GetMeshIndices ()
|
||||||
|
{
|
||||||
|
return this.meshIndices;
|
||||||
|
}
|
||||||
|
|
||||||
|
Enumerate (processor)
|
||||||
|
{
|
||||||
|
processor (this);
|
||||||
|
for (const childNode of this.childNodes) {
|
||||||
|
childNode.Enumerate (processor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
60
test/tests/node_test.js
Normal file
60
test/tests/node_test.js
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
var assert = require ('assert');
|
||||||
|
|
||||||
|
describe ('Node', function() {
|
||||||
|
it ('Default Initialization', function () {
|
||||||
|
let node = new OV.Node ();
|
||||||
|
assert.strictEqual (node.GetName (), '');
|
||||||
|
assert.deepStrictEqual (node.GetChildNodes (), []);
|
||||||
|
assert.deepStrictEqual (node.GetMeshIndices (), []);
|
||||||
|
});
|
||||||
|
|
||||||
|
it ('Set Name', function () {
|
||||||
|
let node = new OV.Node ();
|
||||||
|
node.SetName ('New Name');
|
||||||
|
assert.strictEqual (node.GetName (), 'New Name');
|
||||||
|
});
|
||||||
|
|
||||||
|
it ('Add Mesh Indices', function () {
|
||||||
|
let node = new OV.Node ();
|
||||||
|
node.AddMeshIndex (0);
|
||||||
|
node.AddMeshIndex (4);
|
||||||
|
node.AddMeshIndex (8);
|
||||||
|
assert.deepStrictEqual (node.GetMeshIndices (), [0, 4, 8]);
|
||||||
|
});
|
||||||
|
|
||||||
|
it ('Add Child Node', function () {
|
||||||
|
let node = new OV.Node ();
|
||||||
|
let child1 = new OV.Node ();
|
||||||
|
let child2 = new OV.Node ();
|
||||||
|
child1.SetName ('Child 1');
|
||||||
|
child2.SetName ('Child 2');
|
||||||
|
node.AddChildNode (child1);
|
||||||
|
node.AddChildNode (child2);
|
||||||
|
assert.strictEqual (node.GetChildNodes ().length, 2);
|
||||||
|
assert.strictEqual (node.GetChildNodes ()[0].GetName (), 'Child 1');
|
||||||
|
assert.strictEqual (node.GetChildNodes ()[1].GetName (), 'Child 2');
|
||||||
|
assert.strictEqual (node.GetChildNodes ()[0].GetParent (), node);
|
||||||
|
assert.strictEqual (node.GetChildNodes ()[1].GetParent (), node);
|
||||||
|
});
|
||||||
|
|
||||||
|
it ('Recursive Enumeration', function () {
|
||||||
|
let node = new OV.Node ();
|
||||||
|
let child1 = new OV.Node ();
|
||||||
|
let child2 = new OV.Node ();
|
||||||
|
let child11 = new OV.Node ();
|
||||||
|
let child12 = new OV.Node ();
|
||||||
|
|
||||||
|
node.AddChildNode (child1);
|
||||||
|
node.AddChildNode (child2);
|
||||||
|
|
||||||
|
child1.AddChildNode (child11);
|
||||||
|
child1.AddChildNode (child12);
|
||||||
|
|
||||||
|
let enumerated = [];
|
||||||
|
node.Enumerate ((child) => {
|
||||||
|
enumerated.push (child);
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.deepStrictEqual (enumerated, [node, child1, child11, child12, child2]);
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -29,6 +29,7 @@
|
|||||||
"source/model/element.js",
|
"source/model/element.js",
|
||||||
"source/model/mesh.js",
|
"source/model/mesh.js",
|
||||||
"source/model/meshbuffer.js",
|
"source/model/meshbuffer.js",
|
||||||
|
"source/model/node.js",
|
||||||
"source/model/model.js",
|
"source/model/model.js",
|
||||||
"source/model/topology.js",
|
"source/model/topology.js",
|
||||||
"source/model/modelutils.js",
|
"source/model/modelutils.js",
|
||||||
|
|||||||
@ -42,6 +42,7 @@
|
|||||||
<script type="text/javascript" src="../source/model/element.js"></script>
|
<script type="text/javascript" src="../source/model/element.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/topology.js"></script>
|
<script type="text/javascript" src="../source/model/topology.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
||||||
|
|||||||
@ -42,6 +42,7 @@
|
|||||||
<script type="text/javascript" src="../source/model/element.js"></script>
|
<script type="text/javascript" src="../source/model/element.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/topology.js"></script>
|
<script type="text/javascript" src="../source/model/topology.js"></script>
|
||||||
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
<script type="text/javascript" src="../source/model/modelutils.js"></script>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user