Skip to content

Commit 6765973

Browse files
committed
ported node tests
1 parent 425cf23 commit 6765973

File tree

5 files changed

+76
-90
lines changed

5 files changed

+76
-90
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ syntax: glob
33
node_modules/
44
package-lock.json
55
**/.DS_Store
6+
*.obj

test/nodejs/basic.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
1-
const fs = require('fs');
2-
const childProcess = require('child_process');
3-
4-
const GeometryToOBJ = require('./lib/GeometryToOBJ.js');
5-
6-
const THREE = require("three");
7-
const Blobtree = require('../../');
1+
import fs from 'fs';
2+
import { GeometryToOBJ } from './lib/GeometryToOBJ.js';
3+
import * as THREE from "three";
4+
import * as Blobtree from '../../dist/three-js-blobtree.module.js';
85

96
var root = new Blobtree.RootNode();
107

118
root.addChild(
129
new Blobtree.ScalisPoint(
1310
new Blobtree.ScalisVertex(
14-
new THREE.Vector3(0,0,0),
11+
new THREE.Vector3(0, 0, 0),
1512
10
1613
),
1714
Blobtree.ScalisPrimitive.DIST,
@@ -20,10 +17,10 @@ root.addChild(
2017
)
2118
);
2219

23-
var smc = new Blobtree.SlidingMarchingCubes(root, {convergence:{}});
20+
var smc = new Blobtree.SlidingMarchingCubes(root, { convergence: {} });
2421

2522
var g = smc.compute();
2623

2724
var wstr_united = fs.createWriteStream("./basic.obj");
28-
wstr_united.write( GeometryToOBJ(g) );
25+
wstr_united.write(GeometryToOBJ(g));
2926
wstr_united.end('\n');

test/nodejs/difference.js

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
1-
const fs = require('fs');
2-
const childProcess = require('child_process');
3-
4-
const GeometryToOBJ = require('./lib/GeometryToOBJ.js');
5-
6-
const THREE = require("three");
7-
const Blobtree = require('../../');
1+
import fs from 'fs';
2+
import { GeometryToOBJ } from './lib/GeometryToOBJ.js';
3+
import * as THREE from "three";
4+
import * as Blobtree from '../../dist/three-js-blobtree.module.js';
85

96
var root = new Blobtree.RootNode();
107

118
root.addChild(
12-
new Blobtree.DifferenceNode(
9+
new Blobtree.DifferenceNode(
1310
new Blobtree.RicciNode(
1411
1,
1512
[
1613
new Blobtree.ScalisPoint(
1714
new Blobtree.ScalisVertex(
18-
new THREE.Vector3(0,0,0),
15+
new THREE.Vector3(0, 0, 0),
1916
10
2017
),
2118
Blobtree.ScalisPrimitive.DIST,
@@ -24,7 +21,7 @@ root.addChild(
2421
),
2522
new Blobtree.ScalisPoint(
2623
new Blobtree.ScalisVertex(
27-
new THREE.Vector3(-10,0,0),
24+
new THREE.Vector3(-10, 0, 0),
2825
3
2926
),
3027
Blobtree.ScalisPrimitive.DIST,
@@ -35,7 +32,7 @@ root.addChild(
3532
),
3633
new Blobtree.ScalisPoint(
3734
new Blobtree.ScalisVertex(
38-
new THREE.Vector3(10,0,0),
35+
new THREE.Vector3(10, 0, 0),
3936
3
4037
),
4138
Blobtree.ScalisPrimitive.DIST,
@@ -46,10 +43,10 @@ root.addChild(
4643
)
4744
);
4845

49-
var smc = new Blobtree.SlidingMarchingCubes(root,{detailRatio:0.25});
46+
var smc = new Blobtree.SlidingMarchingCubes(root, { detailRatio: 0.25 });
5047

5148
var g = smc.compute();
5249

5350
var wstr_united = fs.createWriteStream("./difference.obj");
54-
wstr_united.write( GeometryToOBJ(g) );
51+
wstr_united.write(GeometryToOBJ(g));
5552
wstr_united.end('\n');

test/nodejs/lib/GeometryToOBJ.js

Lines changed: 42 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@
77
* {number} prec : precision, ie number of significant digit to keep.
88
* @return {string}
99
*/
10-
var GeometryToOBJ = function(g, options)
11-
{
12-
if(options === undefined){
10+
export const GeometryToOBJ = function (g, options) {
11+
if (options === undefined) {
1312
options = {
14-
vt:true,
15-
vn:true,
16-
vc:true
13+
vt: true,
14+
vn: true,
15+
vc: true
1716
};
1817
}
1918

@@ -22,17 +21,17 @@ var GeometryToOBJ = function(g, options)
2221
var colors = g.getAttribute("color");
2322

2423

25-
var n_faces = g.getIndex() ? g.getIndex().count/3 : positions.count/3;
24+
var n_faces = g.getIndex() ? g.getIndex().count / 3 : positions.count / 3;
2625
var n_vertices = positions.count;
2726

28-
var s ='';
27+
var s = '';
2928

30-
var toPrecision = function(n){
29+
var toPrecision = function (n) {
3130
var res = n;
32-
if(options.min_prec !== undefined){
31+
if (options.min_prec !== undefined) {
3332
res = parseFloat(n.toFixed(options.min_prec));
3433
}
35-
if(options.prec !== undefined){
34+
if (options.prec !== undefined) {
3635
res = parseFloat(res.toPrecision(options.prec));
3736
}
3837

@@ -41,65 +40,60 @@ var GeometryToOBJ = function(g, options)
4140

4241

4342
// console.log("-- Exporting vertices...("+n_vertices+")");
44-
for (var i=0; i<n_vertices; i++)
45-
{
46-
s+= 'v '+ toPrecision(positions.getX(i)) + ' ' +
47-
toPrecision(positions.getY(i)) + ' ' +
48-
toPrecision(positions.getZ(i));
49-
if(options.vc && colors){
50-
s+= ' ' + colors.getX(i).toString() +
51-
' ' + colors.getY(i).toString() +
52-
' ' + colors.getZ(i).toString()
43+
for (var i = 0; i < n_vertices; i++) {
44+
s += 'v ' + toPrecision(positions.getX(i)) + ' ' +
45+
toPrecision(positions.getY(i)) + ' ' +
46+
toPrecision(positions.getZ(i));
47+
if (options.vc && colors) {
48+
s += ' ' + colors.getX(i).toString() +
49+
' ' + colors.getY(i).toString() +
50+
' ' + colors.getZ(i).toString()
5351
}
5452
s += '\n';
5553
}
5654

5755
// If there are per vertex normals, use them
5856
// console.log("-- Exporting normals...");
59-
if(options.vn && g.getAttribute("normal") !== undefined){
60-
for (var i = 0; i <n_vertices; i++)
61-
{
62-
s+= 'vn ' + normals.getX(i).toString() +
63-
' ' + normals.getY(i).toString() +
64-
' ' + normals.getZ(i).toString() + '\n';
57+
if (options.vn && g.getAttribute("normal") !== undefined) {
58+
for (var i = 0; i < n_vertices; i++) {
59+
s += 'vn ' + normals.getX(i).toString() +
60+
' ' + normals.getY(i).toString() +
61+
' ' + normals.getZ(i).toString() + '\n';
6562
}
66-
}else{
63+
} else {
6764
// console.log(" Canceled : object is requested without normals.");
6865
}
6966
// console.log("-- Exporting texture coord...");
70-
if(options.vt && g.getAttribute("uv") !== undefined){
67+
if (options.vt && g.getAttribute("uv") !== undefined) {
7168
var uvs = g.getAttribute("uv");
72-
for (var i = 0; i <n_vertices; i++)
73-
{
74-
s+= 'vt ' + uvs.getX(i) +
75-
' ' + uvs.getY(i) + '\n';
69+
for (var i = 0; i < n_vertices; i++) {
70+
s += 'vt ' + uvs.getX(i) +
71+
' ' + uvs.getY(i) + '\n';
7672
}
77-
}else{
73+
} else {
7874
// console.log(" Canceled : object is requested without texture coords.");
7975
}
8076

8177
// console.log("-- Exporting faces...");
8278
// Export faces
8379
var indices = g.getIndex();
84-
if(indices !== null){
85-
for (var i = 0; i < n_faces * 3; i+=3) {
80+
if (indices !== null) {
81+
for (var i = 0; i < n_faces * 3; i += 3) {
8682

87-
s+= 'f ' + (indices.array[i] + 1) + ' ' +
88-
(indices.array[i+1] + 1) + ' ' +
89-
(indices.array[i+2] + 1);
90-
s+= '\n';
83+
s += 'f ' + (indices.array[i] + 1) + ' ' +
84+
(indices.array[i + 1] + 1) + ' ' +
85+
(indices.array[i + 2] + 1);
86+
s += '\n';
9187
}
92-
}else{
88+
} else {
9389
// unindexed geometry. exports faces from vertices array
94-
for(var i=0; i<positions.count; i+=3){
95-
s+= 'f ' + (i+1) + ' ' +
96-
(i+2) + ' ' +
97-
(i+3);
98-
s+= '\n';
90+
for (var i = 0; i < positions.count; i += 3) {
91+
s += 'f ' + (i + 1) + ' ' +
92+
(i + 2) + ' ' +
93+
(i + 3);
94+
s += '\n';
9995
}
10096
}
10197

10298
return s;
103-
};
104-
105-
module.exports = GeometryToOBJ;
99+
};

test/nodejs/min.js

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,25 @@
1-
const fs = require('fs');
2-
const childProcess = require('child_process');
3-
4-
const GeometryToOBJ = require('./lib/GeometryToOBJ.js');
5-
6-
const THREE = require("three");
7-
const Blobtree = require('../../');
1+
import fs from 'fs';
2+
import { GeometryToOBJ } from './lib/GeometryToOBJ.js';
3+
import * as THREE from "three";
4+
import * as Blobtree from '../../dist/three-js-blobtree.module.js';
85

96
var root = new Blobtree.RootNode();
107

118
root.addChild(
12-
new Blobtree.MinNode(
9+
new Blobtree.MinNode(
1310
[
1411
new Blobtree.ScalisPoint(
15-
new Blobtree.ScalisVertex(
16-
new THREE.Vector3(0,0,0),
17-
10
18-
),
19-
Blobtree.ScalisPrimitive.DIST,
20-
1.0,
21-
new Blobtree.Material()
22-
),
12+
new Blobtree.ScalisVertex(
13+
new THREE.Vector3(0, 0, 0),
14+
10
15+
),
16+
Blobtree.ScalisPrimitive.DIST,
17+
1.0,
18+
new Blobtree.Material()
19+
),
2320
new Blobtree.ScalisPoint(
2421
new Blobtree.ScalisVertex(
25-
new THREE.Vector3(10,0,0),
22+
new THREE.Vector3(10, 0, 0),
2623
3
2724
),
2825
Blobtree.ScalisPrimitive.DIST,
@@ -35,11 +32,11 @@ root.addChild(
3532

3633
root.prepareForEval();
3734

38-
var smc = new Blobtree.SlidingMarchingCubes(root,{convergence:{},detailRatio:0.25});
35+
var smc = new Blobtree.SlidingMarchingCubes(root, { convergence: {}, detailRatio: 0.25 });
3936

4037
var g = smc.compute();
4138
// g.computeVertexNormals();
4239

4340
var wstr_united = fs.createWriteStream("./min.obj");
44-
wstr_united.write( GeometryToOBJ(g) );
41+
wstr_united.write(GeometryToOBJ(g));
4542
wstr_united.end('\n');

0 commit comments

Comments
 (0)