Use cuboid generator in tests.
This commit is contained in:
parent
0394d60581
commit
38cde4b11f
@ -5,6 +5,24 @@ OV.GeneratorParams = class
|
||||
this.material = null;
|
||||
this.transformation = null;
|
||||
}
|
||||
|
||||
SetMaterial (material)
|
||||
{
|
||||
this.material = material;
|
||||
return this;
|
||||
}
|
||||
|
||||
SetTransformation (translation, rotation, scale)
|
||||
{
|
||||
const matrix = new OV.Matrix ().ComposeTRS (translation, rotation, scale);
|
||||
return this.SetTransformationMatrix (matrix);
|
||||
}
|
||||
|
||||
SetTransformationMatrix (matrix)
|
||||
{
|
||||
this.transformation = new OV.Transformation (matrix);
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
OV.Generator = class
|
||||
|
||||
@ -1,9 +1,31 @@
|
||||
var assert = require ('assert');
|
||||
|
||||
describe ('Generator', function () {
|
||||
it ('Cuboid', function () {
|
||||
it ('Cuboid with Default Parameters', function () {
|
||||
const cuboid = OV.GenerateCuboid (null, 1.0, 1.0, 1.0);
|
||||
assert (OV.IsSolid (cuboid));
|
||||
assert (OV.IsEqual (OV.CalculateVolume (cuboid), 1.0));
|
||||
});
|
||||
|
||||
it ('Cuboid with Material', function () {
|
||||
const params = new OV.GeneratorParams ().SetMaterial (1);
|
||||
const cuboid = OV.GenerateCuboid (params, 1.0, 1.0, 1.0);
|
||||
for (let i = 0; i < cuboid.TriangleCount (); i++) {
|
||||
const triangle = cuboid.GetTriangle (i);
|
||||
assert.strictEqual (triangle.mat, 1);
|
||||
}
|
||||
});
|
||||
|
||||
it ('Cuboid with Transformation', function () {
|
||||
const params = new OV.GeneratorParams ().SetTransformation (
|
||||
new OV.Coord3D (1.0, 0.0, 0.0),
|
||||
new OV.Quaternion (0.0, 0.0, 0.0, 1.0),
|
||||
new OV.Coord3D (1.0, 1.0, 1.0)
|
||||
);
|
||||
const cuboid = OV.GenerateCuboid (params, 1.0, 1.0, 1.0);
|
||||
const bounds = OV.GetBoundingBox (cuboid);
|
||||
assert (OV.CoordIsEqual3D (bounds.min, new OV.Coord3D (1.0, 0.0, 0.0)));
|
||||
assert (OV.CoordIsEqual3D (bounds.max, new OV.Coord3D (2.0, 1.0, 1.0)));
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
@ -80,7 +80,7 @@ describe ('Model Utils', function () {
|
||||
});
|
||||
|
||||
it ('Mesh Bounding Box', function () {
|
||||
var cube = testUtils.GetCubeMesh ();
|
||||
var cube = OV.GenerateCuboid (null, 1.0, 1.0, 1.0);
|
||||
let cubeBounds = OV.GetBoundingBox (cube);
|
||||
assert (OV.CoordIsEqual3D (cubeBounds.min, new OV.Coord3D (0.0, 0.0, 0.0)));
|
||||
assert (OV.CoordIsEqual3D (cubeBounds.max, new OV.Coord3D (1.0, 1.0, 1.0)));
|
||||
@ -132,7 +132,7 @@ describe ('Model Utils', function () {
|
||||
});
|
||||
|
||||
it ('Cube Topology Calculation', function () {
|
||||
let cube = testUtils.GetModelWithOneMesh (testUtils.GetCubeMesh ());
|
||||
let cube = testUtils.GetModelWithOneMesh (OV.GenerateCuboid (null, 1.0, 1.0, 1.0));
|
||||
assert (OV.IsSolid (cube));
|
||||
|
||||
let topology = OV.GetTopology (cube);
|
||||
|
||||
@ -3,7 +3,7 @@ var testUtils = require ('../utils/testutils.js');
|
||||
|
||||
describe ('Quantities', function () {
|
||||
it ('Cube Volume Calculation', function () {
|
||||
const mesh = testUtils.GetCubeMesh ();
|
||||
const mesh = OV.GenerateCuboid (null, 1.0, 1.0, 1.0);
|
||||
const model = testUtils.GetModelWithOneMesh (mesh);
|
||||
assert (OV.IsEqual (OV.CalculateVolume (mesh), 1.0));
|
||||
assert (OV.IsEqual (OV.CalculateVolume (model), 1.0));
|
||||
@ -58,7 +58,7 @@ describe ('Quantities', function () {
|
||||
});
|
||||
|
||||
it ('Cube Surface Area Calculation', function () {
|
||||
const mesh = testUtils.GetCubeMesh ();
|
||||
const mesh = OV.GenerateCuboid (null, 1.0, 1.0, 1.0);
|
||||
const model = testUtils.GetModelWithOneMesh (mesh);
|
||||
assert (OV.IsEqual (OV.CalculateSurfaceArea (mesh), 6.0));
|
||||
assert (OV.IsEqual (OV.CalculateSurfaceArea (model), 6.0));
|
||||
|
||||
@ -137,43 +137,15 @@ module.exports =
|
||||
return obj;
|
||||
},
|
||||
|
||||
GetCubeMesh ()
|
||||
{
|
||||
var cube = new OV.Mesh ();
|
||||
cube.AddVertex (new OV.Coord3D (0.0, 0.0, 0.0));
|
||||
cube.AddVertex (new OV.Coord3D (1.0, 0.0, 0.0));
|
||||
cube.AddVertex (new OV.Coord3D (1.0, 1.0, 0.0));
|
||||
cube.AddVertex (new OV.Coord3D (0.0, 1.0, 0.0));
|
||||
cube.AddVertex (new OV.Coord3D (0.0, 0.0, 1.0));
|
||||
cube.AddVertex (new OV.Coord3D (1.0, 0.0, 1.0));
|
||||
cube.AddVertex (new OV.Coord3D (1.0, 1.0, 1.0));
|
||||
cube.AddVertex (new OV.Coord3D (0.0, 1.0, 1.0));
|
||||
cube.AddTriangle (new OV.Triangle (0, 1, 5));
|
||||
cube.AddTriangle (new OV.Triangle (0, 5, 4));
|
||||
cube.AddTriangle (new OV.Triangle (1, 2, 6));
|
||||
cube.AddTriangle (new OV.Triangle (1, 6, 5));
|
||||
cube.AddTriangle (new OV.Triangle (2, 3, 7));
|
||||
cube.AddTriangle (new OV.Triangle (2, 7, 6));
|
||||
cube.AddTriangle (new OV.Triangle (3, 0, 4));
|
||||
cube.AddTriangle (new OV.Triangle (3, 4, 7));
|
||||
cube.AddTriangle (new OV.Triangle (0, 3, 2));
|
||||
cube.AddTriangle (new OV.Triangle (0, 2, 1));
|
||||
cube.AddTriangle (new OV.Triangle (4, 5, 6));
|
||||
cube.AddTriangle (new OV.Triangle (4, 6, 7));
|
||||
return cube;
|
||||
},
|
||||
|
||||
GetTwoCubesConnectingInOneVertexModel ()
|
||||
{
|
||||
let model = new OV.Model ();
|
||||
|
||||
let cube1 = this.GetCubeMesh ();
|
||||
let cube1 = OV.GenerateCuboid (null, 1.0, 1.0, 1.0);
|
||||
model.AddMesh (cube1);
|
||||
|
||||
let cube2 = this.GetCubeMesh ();
|
||||
let matrix = new OV.Matrix ().CreateTranslation (1.0, 1.0, 1.0);
|
||||
let transformation = new OV.Transformation (matrix);
|
||||
OV.TransformMesh (cube2, transformation);
|
||||
let cube2 = OV.GenerateCuboid (new OV.GeneratorParams ().SetTransformationMatrix (matrix), 1.0, 1.0, 1.0);
|
||||
model.AddMesh (cube2);
|
||||
|
||||
OV.FinalizeModel (model, function () { new OV.Material () });
|
||||
@ -184,13 +156,11 @@ module.exports =
|
||||
{
|
||||
let model = new OV.Model ();
|
||||
|
||||
let cube1 = this.GetCubeMesh ();
|
||||
let cube1 = OV.GenerateCuboid (null, 1.0, 1.0, 1.0);
|
||||
model.AddMesh (cube1);
|
||||
|
||||
let cube2 = this.GetCubeMesh ();
|
||||
let matrix = new OV.Matrix ().CreateTranslation (1.0, 0.0, 1.0);
|
||||
let transformation = new OV.Transformation (matrix);
|
||||
OV.TransformMesh (cube2, transformation);
|
||||
let cube2 = OV.GenerateCuboid (new OV.GeneratorParams ().SetTransformationMatrix (matrix), 1.0, 1.0, 1.0);
|
||||
model.AddMesh (cube2);
|
||||
|
||||
OV.FinalizeModel (model, function () { new OV.Material () });
|
||||
@ -202,13 +172,11 @@ module.exports =
|
||||
{
|
||||
let model = new OV.Model ();
|
||||
|
||||
let cube1 = this.GetCubeMesh ();
|
||||
let cube1 = OV.GenerateCuboid (null, 1.0, 1.0, 1.0);
|
||||
model.AddMesh (cube1);
|
||||
|
||||
let cube2 = this.GetCubeMesh ();
|
||||
let matrix = new OV.Matrix ().CreateTranslation (1.0, 0.0, 0.0);
|
||||
let transformation = new OV.Transformation (matrix);
|
||||
OV.TransformMesh (cube2, transformation);
|
||||
let cube2 = OV.GenerateCuboid (new OV.GeneratorParams ().SetTransformationMatrix (matrix), 1.0, 1.0, 1.0);
|
||||
model.AddMesh (cube2);
|
||||
|
||||
OV.FinalizeModel (model, function () { new OV.Material () });
|
||||
|
||||
Loading…
Reference in New Issue
Block a user