-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.js
74 lines (62 loc) · 2.19 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
const SMD = require("./StudioMDL.js");
const fs = require("fs");
function createCube(size) {
// UV's and face directions are messed up. But works for testing
let smd = SMD.createSimple();
smd.addNode("animated", 0);
let material = "test_cube";
// Bottom
smd.addQuad(material,
SMD.createVertex(1, 0, 0, 0, 0, 0, -1, 0, 0),
SMD.createVertex(1, size, 0, 0, 0, 0, -1, 1, 0),
SMD.createVertex(1, size, 0, size, 0, 0, -1, 1, 1),
SMD.createVertex(1, 0, 0, size, 0, 0, -1, 0, 1)
);
// Top
smd.addQuad(material,
SMD.createVertex(1, 0, size, 0, 0, 0, -1, 0, 0),
SMD.createVertex(1, size, size, 0, 0, 0, -1, 1, 0),
SMD.createVertex(1, size, size, size, 0, 0, -1, 1, 1),
SMD.createVertex(1, 0, size, size, 0, 0, -1, 0, 1)
);
// Left
smd.addQuad(material,
SMD.createVertex(1, 0, 0, 0, -1, 0, 0, 0, 0),
SMD.createVertex(1, 0, 0, size, -1, 0, 0, 1, 0),
SMD.createVertex(1, 0, size, size, -1, 0, 0, 1, 1),
SMD.createVertex(1, 0, size, 0, -1, 0, 0, 0, 1)
);
// Right
smd.addQuad(material,
SMD.createVertex(1, size, 0, 0, 1, 0, 0, 0, 0),
SMD.createVertex(1, size, 0, size, 1, 0, 0, 1, 0),
SMD.createVertex(1, size, size, size, 1, 0, 0, 1, 1),
SMD.createVertex(1, size, size, 0, 1, 0, 0, 0, 1)
);
// Front
smd.addQuad(material,
SMD.createVertex(1, 0, 0, 0, 1, 0, -1, 0, 0),
SMD.createVertex(1, size, 0, 0, 1, 0, -1, 1, 0),
SMD.createVertex(1, size, size, 0, 1, 0, -1, 1, 1),
SMD.createVertex(1, 0, size, 0, 1, 0, -1, 0, 1)
);
// Back
smd.addQuad(material,
SMD.createVertex(1, 0, 0, size, 1, 0, -1, 0, 0),
SMD.createVertex(1, size, 0, size, 1, 0, -1, 1, 0),
SMD.createVertex(1, size, size, size, 1, 0, -1, 1, 1),
SMD.createVertex(1, 0, size, size, 1, 0, -1, 0, 1)
);
smd.addSkeleton(1, 1, 0, 0, 0, 0, 0, 0);
smd.addSkeleton(2, 1, 0, 0, 1, Math.PI, 0, 0);
smd.addSkeleton(3, 1, 0, 0, 0, 0, 0, 0);
return smd;
}
function loadFromObj(filename) {
let data = fs.readFileSync(filename);
return SMD.fromObj(data.toString("ascii"));
}
let smd = createCube(64);
fs.writeFileSync("test/test_cube.smd", smd.export());
smd = loadFromObj("test/testmodel.obj");
fs.writeFileSync("test/test_obj.smd", smd.export());