Fix networking, mesh import
This commit is contained in:
parent
5646c84a89
commit
05fca4e2e1
4
buildwin.cmd
Normal file
4
buildwin.cmd
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
@REM rmdir dist\
|
||||||
|
@REM mkdir dist\public
|
||||||
|
@REM xcopy .\assets .\dist\public /e /h /y /f
|
||||||
|
tsc && webpack --config .\webpack\development.js
|
@ -16,7 +16,8 @@
|
|||||||
"build": "tsc && webpack --config ./webpack/development.js",
|
"build": "tsc && webpack --config ./webpack/development.js",
|
||||||
"rebuild": "npm run clean && npm run build",
|
"rebuild": "npm run clean && npm run build",
|
||||||
"server": "node ./build/server/server.js",
|
"server": "node ./build/server/server.js",
|
||||||
"debug": "node ./build/server/server.js -debug"
|
"debug": "node ./build/server/server.js -debug",
|
||||||
|
"winserver": "node .\\build\\server\\server.js"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -19,10 +19,10 @@ const request_mesh = (filename: string) => {
|
|||||||
request_mesh_listeners(request);
|
request_mesh_listeners(request);
|
||||||
request.onreadystatechange = function() {
|
request.onreadystatechange = function() {
|
||||||
if (request.readyState == XMLHttpRequest.DONE) {
|
if (request.readyState == XMLHttpRequest.DONE) {
|
||||||
alert(request.responseText);
|
console.log(request.responseText);
|
||||||
const mesh = MeshImport.parse(request.responseText);
|
const mesh = MeshImport.parse(request.responseText);
|
||||||
console.log(`Got mesh array at ${mesh.name}`);
|
console.log(`Got mesh array at ${mesh.name}`);
|
||||||
console.log(mesh.shells);
|
console.log(mesh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
request.open('GET', `http://localhost:${3000}/mesh/${filename}`, true);
|
request.open('GET', `http://localhost:${3000}/mesh/${filename}`, true);
|
||||||
@ -30,7 +30,8 @@ const request_mesh = (filename: string) => {
|
|||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
document.onload = function() {
|
// Wait for page load before executing code
|
||||||
|
window.addEventListener('load', function() {
|
||||||
console.log('PAGE LOADED');
|
console.log('PAGE LOADED');
|
||||||
const req = request_mesh('clover.obj');
|
const req = request_mesh('clover.obj');
|
||||||
}
|
})
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import Vector2 from './vector';
|
import Vector2 from './vector';
|
||||||
|
|
||||||
const EPSILON = 0.0001;
|
const EPSILON = 0.000001;
|
||||||
|
|
||||||
class Triangle {
|
class Triangle {
|
||||||
public uvs: Vector2[];
|
public uvs: Vector2[];
|
||||||
|
@ -22,7 +22,10 @@ const parse_tri = (line: string) => {
|
|||||||
let nums: number[] = [];
|
let nums: number[] = [];
|
||||||
|
|
||||||
for (let i = 1; i < 4 && i < vals.length; i++) {
|
for (let i = 1; i < 4 && i < vals.length; i++) {
|
||||||
nums[i-1] = parseFloat(vals[i]);
|
const idx = (i-1) * 2;
|
||||||
|
const face_corner = vals[i].split('/');
|
||||||
|
nums[idx] = parseInt(face_corner[0], 10);
|
||||||
|
nums[idx+1] = parseInt(face_corner[1], 10);
|
||||||
}
|
}
|
||||||
return nums;
|
return nums;
|
||||||
}
|
}
|
||||||
@ -50,6 +53,8 @@ class MeshImport {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
console.log(`# VERTs: ${verts.length / 3}\t# UVs ${uvs.length}\t# TRIs: ${tris.length / 6}`);
|
||||||
|
|
||||||
// Construct triangles
|
// Construct triangles
|
||||||
let t: Triangle[] = [];
|
let t: Triangle[] = [];
|
||||||
for (let i = 0; i < tris.length; i += 6) {
|
for (let i = 0; i < tris.length; i += 6) {
|
||||||
@ -65,6 +70,8 @@ class MeshImport {
|
|||||||
t.push(new Triangle(v, uv, uvi));
|
t.push(new Triangle(v, uv, uvi));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('IMPORT: Total triangles found', t.length);
|
||||||
|
|
||||||
// Create an initial shell
|
// Create an initial shell
|
||||||
let shells: Shell[] = [];
|
let shells: Shell[] = [];
|
||||||
// Initialize shells by sorting triangles roughly int othem
|
// Initialize shells by sorting triangles roughly int othem
|
||||||
@ -85,6 +92,8 @@ class MeshImport {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('IMPORT: Total shells initial', shells.length);
|
||||||
|
|
||||||
// Now, combine shells
|
// Now, combine shells
|
||||||
for (let i = 0; i < shells.length; i++) {
|
for (let i = 0; i < shells.length; i++) {
|
||||||
const a = shells[i];
|
const a = shells[i];
|
||||||
@ -93,7 +102,7 @@ class MeshImport {
|
|||||||
|
|
||||||
if (a.connected_shell(b)) {
|
if (a.connected_shell(b)) {
|
||||||
a.merge(b);
|
a.merge(b);
|
||||||
shells = shells.splice(j, 1);
|
shells.splice(j, 1);
|
||||||
j--;
|
j--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,19 +8,22 @@ dotenv.config();
|
|||||||
const app: Express = express();
|
const app: Express = express();
|
||||||
const port = process.env.PORT;
|
const port = process.env.PORT;
|
||||||
|
|
||||||
|
const dir = `${process.cwd()}/dist/public`;
|
||||||
|
|
||||||
|
app.use('/', express.static(dir));
|
||||||
|
|
||||||
app.get('/mesh/*', (req: Request, res: Response) => {
|
app.get('/mesh/*', (req: Request, res: Response) => {
|
||||||
console.log('Got MESH request ', req.url);
|
console.log('Got MESH request ', req.url);
|
||||||
res.header("Access-Control-Allow-Origin", "*");
|
res.header("Access-Control-Allow-Origin", "*");
|
||||||
res.header("Access-Control-Allow-Headers", "X-Requested-With");
|
res.header("Access-Control-Allow-Headers", "X-Requested-With");
|
||||||
app.use(express.static('dist/public/objects/hard'));
|
res.sendFile(`${dir}/objects/hard/clover.obj`);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/', (req: Request, res: Response) => {
|
app.get('/', (req: Request, res: Response) => {
|
||||||
console.log('Got MAIN request ', req.url);
|
console.log('Got MAIN request ', req.url.length);
|
||||||
|
res.sendFile(`${dir}/index.html`);
|
||||||
app.use(express.static('dist' + '/public'));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
app.listen(port, () => {
|
app.listen(port, () => {
|
||||||
console.log(`Server is running on localhost:${port}`);
|
console.log(`Server is running on localhost:${port}, working in ${dir}`);
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user