Enumerate mesh indices recursively.
This commit is contained in:
parent
b2f985f838
commit
16614d81e1
@ -53,4 +53,14 @@ OV.Node = class
|
||||
childNode.EnumerateChildren (processor);
|
||||
}
|
||||
}
|
||||
|
||||
EnumerateMeshIndices (processor)
|
||||
{
|
||||
for (const meshIndex of this.meshIndices) {
|
||||
processor (meshIndex);
|
||||
}
|
||||
for (const childNode of this.childNodes) {
|
||||
childNode.EnumerateMeshIndices (processor);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -57,4 +57,32 @@ describe ('Node', function() {
|
||||
|
||||
assert.deepStrictEqual (enumerated, [child1, child11, child12, child2]);
|
||||
});
|
||||
|
||||
it ('Recursive Mesh Index 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);
|
||||
node.AddMeshIndex (1);
|
||||
node.AddMeshIndex (2);
|
||||
|
||||
child1.AddChildNode (child11);
|
||||
child1.AddChildNode (child12);
|
||||
child1.AddMeshIndex (3);
|
||||
child2.AddMeshIndex (4);
|
||||
|
||||
child11.AddMeshIndex (5);
|
||||
child12.AddMeshIndex (6);
|
||||
|
||||
let enumerated = [];
|
||||
node.EnumerateMeshIndices ((meshIndex) => {
|
||||
enumerated.push (meshIndex);
|
||||
});
|
||||
|
||||
assert.deepStrictEqual (enumerated, [1, 2, 3, 5, 6, 4]);
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user