298 lines
10 KiB
JavaScript
298 lines
10 KiB
JavaScript
import * as assert from 'assert';
|
|
import * as OV from '../../source/engine/main.js';
|
|
import { ImportOffFile } from '../utils/testfiles.js';
|
|
import { ModelToObject, ModelToObjectSimple } from '../utils/testutils.js';
|
|
|
|
export default function suite ()
|
|
{
|
|
|
|
describe ('Off Importer', function () {
|
|
it ('single_triangle.off', function (done) {
|
|
ImportOffFile ('single_triangle.off', function (model) {
|
|
assert.ok (OV.CheckModel (model));
|
|
assert.deepStrictEqual (ModelToObject (model), {
|
|
name : '',
|
|
materials : [
|
|
{ name : '' }
|
|
],
|
|
meshes : [
|
|
{
|
|
name : '',
|
|
lines : [],
|
|
triangles : [
|
|
{
|
|
vertices : [0, 0, 0, 1, 0, 0, 1, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
});
|
|
done ();
|
|
});
|
|
});
|
|
|
|
it ('two_triangles.off', function (done) {
|
|
ImportOffFile ('two_triangles.off', function (model) {
|
|
assert.ok (OV.CheckModel (model));
|
|
assert.deepStrictEqual (ModelToObject (model), {
|
|
name : '',
|
|
materials : [
|
|
{ name : '' }
|
|
],
|
|
meshes : [
|
|
{
|
|
name : '',
|
|
lines : [],
|
|
triangles : [
|
|
{
|
|
vertices : [0, 0, 0, 1, 0, 0, 1, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
},
|
|
{
|
|
vertices : [0, 0, 1, 1, 0, 1, 1, 1, 1],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
});
|
|
done ();
|
|
});
|
|
});
|
|
|
|
it ('single_rectangle.off', function (done) {
|
|
ImportOffFile ('single_rectangle.off', function (model) {
|
|
assert.ok (OV.CheckModel (model));
|
|
assert.deepStrictEqual (ModelToObject (model), {
|
|
name : '',
|
|
materials : [
|
|
{ name : '' }
|
|
],
|
|
meshes : [
|
|
{
|
|
name : '',
|
|
lines : [],
|
|
triangles : [
|
|
{
|
|
vertices : [0, 0, 0, 1, 0, 0, 1, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
},
|
|
{
|
|
vertices : [0, 0, 0, 1, 1, 0, 0, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
});
|
|
done ();
|
|
});
|
|
});
|
|
|
|
it ('single_triangle_with_comments.off', function (done) {
|
|
ImportOffFile ('single_triangle_with_comments.off', function (model) {
|
|
assert.ok (OV.CheckModel (model));
|
|
assert.deepStrictEqual (ModelToObject (model), {
|
|
name : '',
|
|
materials : [
|
|
{ name : '' }
|
|
],
|
|
meshes : [
|
|
{
|
|
name : '',
|
|
lines : [],
|
|
triangles : [
|
|
{
|
|
vertices : [0, 0, 0, 1, 0, 0, 1, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
});
|
|
done ();
|
|
});
|
|
});
|
|
|
|
it ('cube.off', function (done) {
|
|
ImportOffFile ('cube.off', function (model) {
|
|
assert.ok (OV.CheckModel (model));
|
|
assert.deepStrictEqual (ModelToObjectSimple (model), {
|
|
name : '',
|
|
materials : [
|
|
{ name : '' }
|
|
],
|
|
meshes : [
|
|
{
|
|
name : '',
|
|
vertexCount : 8,
|
|
vertexColorCount : 0,
|
|
normalCount : 12,
|
|
uvCount : 0,
|
|
lineCount : 0,
|
|
triangleCount : 12,
|
|
boundingBox : {
|
|
min : [0, 0, 0],
|
|
max : [1, 1, 1]
|
|
}
|
|
}
|
|
]
|
|
});
|
|
done ();
|
|
});
|
|
});
|
|
|
|
it ('rectangle_vertex_colors_float.off', function (done) {
|
|
ImportOffFile ('rectangle_vertex_colors_float.off', function (model) {
|
|
assert.ok (OV.CheckModel (model));
|
|
assert.strictEqual (model.GetMaterial (0).vertexColors, true);
|
|
assert.deepStrictEqual (ModelToObject (model), {
|
|
name : '',
|
|
materials : [
|
|
{ name : '' }
|
|
],
|
|
meshes : [
|
|
{
|
|
name : '',
|
|
lines : [],
|
|
triangles : [
|
|
{
|
|
vertices : [0, 0, 0, 1, 0, 0, 1, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
},
|
|
{
|
|
vertices : [0, 0, 0, 1, 1, 0, 0, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
});
|
|
done ();
|
|
});
|
|
});
|
|
|
|
it ('rectangle_vertex_colors_float.off', function (done) {
|
|
ImportOffFile ('rectangle_vertex_colors_float.off', function (model) {
|
|
assert.ok (OV.CheckModel (model));
|
|
assert.strictEqual (model.GetMaterial (0).vertexColors, true);
|
|
assert.deepStrictEqual (ModelToObject (model), {
|
|
name : '',
|
|
materials : [
|
|
{ name : '' }
|
|
],
|
|
meshes : [
|
|
{
|
|
name : '',
|
|
lines : [],
|
|
triangles : [
|
|
{
|
|
vertices : [0, 0, 0, 1, 0, 0, 1, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
},
|
|
{
|
|
vertices : [0, 0, 0, 1, 1, 0, 0, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
});
|
|
done ();
|
|
});
|
|
});
|
|
|
|
it ('rectangle_face_colors_int.off', function (done) {
|
|
ImportOffFile ('rectangle_face_colors_int.off', function (model) {
|
|
assert.ok (OV.CheckModel (model));
|
|
assert.ok (OV.RGBColorIsEqual (model.GetMaterial (0).color, new OV.RGBColor (255, 0, 0)));
|
|
assert.strictEqual (model.GetMaterial (0).vertexColors, false);
|
|
assert.deepStrictEqual (ModelToObject (model), {
|
|
name : '',
|
|
materials : [
|
|
{ name : 'FF0000' }
|
|
],
|
|
meshes : [
|
|
{
|
|
name : '',
|
|
lines : [],
|
|
triangles : [
|
|
{
|
|
vertices : [0, 0, 0, 1, 0, 0, 1, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
},
|
|
{
|
|
vertices : [0, 0, 0, 1, 1, 0, 0, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
});
|
|
done ();
|
|
});
|
|
});
|
|
|
|
it ('rectangle_face_colors_int.off', function (done) {
|
|
ImportOffFile ('rectangle_face_colors_float.off', function (model) {
|
|
assert.ok (OV.CheckModel (model));
|
|
assert.ok (OV.RGBColorIsEqual (model.GetMaterial (0).color, new OV.RGBColor (255, 0, 0)));
|
|
assert.strictEqual (model.GetMaterial (0).vertexColors, false);
|
|
assert.deepStrictEqual (ModelToObject (model), {
|
|
name : '',
|
|
materials : [
|
|
{ name : 'FF0000' }
|
|
],
|
|
meshes : [
|
|
{
|
|
name : '',
|
|
lines : [],
|
|
triangles : [
|
|
{
|
|
vertices : [0, 0, 0, 1, 0, 0, 1, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
},
|
|
{
|
|
vertices : [0, 0, 0, 1, 1, 0, 0, 1, 0],
|
|
normals : [0, 0, 1, 0, 0, 1, 0, 0, 1],
|
|
uvs : [],
|
|
mat : 0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
});
|
|
done ();
|
|
});
|
|
});
|
|
});
|
|
|
|
}
|