Add hierarchical model test.
This commit is contained in:
parent
8f3d579c83
commit
abcf5d8722
@ -29,6 +29,53 @@ function CreateTestModel ()
|
||||
return model;
|
||||
}
|
||||
|
||||
function CreateHierarchicalTestModel ()
|
||||
{
|
||||
let model = new OV.Model ();
|
||||
|
||||
let material1 = new OV.PhongMaterial ();
|
||||
material1.name = 'Material 1';
|
||||
model.AddMaterial (material1);
|
||||
|
||||
let material2 = new OV.PhongMaterial ();
|
||||
material2.name = 'Material 1';
|
||||
model.AddMaterial (material2);
|
||||
|
||||
let cubeParams1 = new OV.GeneratorParams ().SetMaterial (0);
|
||||
let cube1 = OV.GenerateCuboid (cubeParams1, 1.0, 1.0, 1.0);
|
||||
let cube1Mesh = model.AddMesh (cube1);
|
||||
|
||||
let cubeParams2 = new OV.GeneratorParams ().SetMaterial (1);
|
||||
let cube2 = OV.GenerateCuboid (cubeParams2, 1.0, 1.0, 1.0);
|
||||
let cube2Mesh = model.AddMesh (cube2);
|
||||
|
||||
let root = model.GetRootNode ();
|
||||
let node1 = new OV.Node ();
|
||||
node1.SetName ('Node 1');
|
||||
|
||||
let node11 = new OV.Node ();
|
||||
node11.SetName ('Node 1.1');
|
||||
node11.AddMeshIndex (cube1Mesh);
|
||||
node1.AddChildNode (node11);
|
||||
|
||||
let node12 = new OV.Node ();
|
||||
node12.SetName ('Node 1.2');
|
||||
node12.AddMeshIndex (cube2Mesh);
|
||||
node12.SetTransformation (new OV.Transformation (new OV.Matrix ().CreateTranslation (2.0, 0.0, 0.0)));
|
||||
node1.AddChildNode (node12);
|
||||
|
||||
let node13 = new OV.Node ();
|
||||
node13.SetName ('Node 1.2');
|
||||
node13.AddMeshIndex (cube2Mesh);
|
||||
node13.SetTransformation (new OV.Transformation (new OV.Matrix ().CreateTranslation (4.0, 0.0, 0.0)));
|
||||
node1.AddChildNode (node13);
|
||||
|
||||
root.AddChildNode (node1);
|
||||
|
||||
OV.FinalizeModel (model);
|
||||
return model;
|
||||
}
|
||||
|
||||
function GetExporterModelBoundingBox (exporterModel)
|
||||
{
|
||||
let calculator = new OV.BoundingBoxCalculator3D ();
|
||||
@ -95,6 +142,48 @@ describe ('Exporter Model', function () {
|
||||
assert.ok (OV.CoordIsEqual3D (boundingBox.min, new OV.Coord3D (-1.0, 0.0, 0.0)));
|
||||
assert.ok (OV.CoordIsEqual3D (boundingBox.max, new OV.Coord3D (0.0, 1.0, 2.0)));
|
||||
});
|
||||
|
||||
it ('Hierarchical model test no filter', function () {
|
||||
let model = CreateHierarchicalTestModel ();
|
||||
let settings = new OV.ExporterSettings ({
|
||||
isMeshVisible : (meshInstanceId) => {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
let exporterModel = new OV.ExporterModel (model, settings);
|
||||
assert.strictEqual (exporterModel.MeshInstanceCount (), 3);
|
||||
let boundingBox = GetExporterModelBoundingBox (exporterModel);
|
||||
assert.ok (OV.CoordIsEqual3D (boundingBox.min, new OV.Coord3D (0.0, 0.0, 0.0)));
|
||||
assert.ok (OV.CoordIsEqual3D (boundingBox.max, new OV.Coord3D (5.0, 1.0, 1.0)));
|
||||
});
|
||||
|
||||
it ('Hierarchical model test filter', function () {
|
||||
let model = CreateHierarchicalTestModel ();
|
||||
let settings = new OV.ExporterSettings ({
|
||||
isMeshVisible : (meshInstanceId) => {
|
||||
return !meshInstanceId.IsEqual (new OV.MeshInstanceId (3, 1));
|
||||
}
|
||||
});
|
||||
let exporterModel = new OV.ExporterModel (model, settings);
|
||||
assert.strictEqual (exporterModel.MeshInstanceCount (), 2);
|
||||
let boundingBox = GetExporterModelBoundingBox (exporterModel);
|
||||
assert.ok (OV.CoordIsEqual3D (boundingBox.min, new OV.Coord3D (0.0, 0.0, 0.0)));
|
||||
assert.ok (OV.CoordIsEqual3D (boundingBox.max, new OV.Coord3D (3.0, 1.0, 1.0)));
|
||||
});
|
||||
|
||||
it ('Hierarchical model test filter 2', function () {
|
||||
let model = CreateHierarchicalTestModel ();
|
||||
let settings = new OV.ExporterSettings ({
|
||||
isMeshVisible : (meshInstanceId) => {
|
||||
return !meshInstanceId.IsEqual (new OV.MeshInstanceId (3, 1)) && !meshInstanceId.IsEqual (new OV.MeshInstanceId (2, 1));
|
||||
}
|
||||
});
|
||||
let exporterModel = new OV.ExporterModel (model, settings);
|
||||
assert.strictEqual (exporterModel.MeshInstanceCount (), 1);
|
||||
let boundingBox = GetExporterModelBoundingBox (exporterModel);
|
||||
assert.ok (OV.CoordIsEqual3D (boundingBox.min, new OV.Coord3D (0.0, 0.0, 0.0)));
|
||||
assert.ok (OV.CoordIsEqual3D (boundingBox.max, new OV.Coord3D (1.0, 1.0, 1.0)));
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user