Enumerate mesh indices recursively.

This commit is contained in:
kovacsv 2021-10-16 16:02:33 +02:00
parent b2f985f838
commit 16614d81e1
2 changed files with 38 additions and 0 deletions

View File

@ -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);
}
}
};

View File

@ -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]);
});
});