Skip to content
This repository was archived by the owner on Aug 12, 2021. It is now read-only.

Commit 76f767b

Browse files
committed
Add face culling toggle
1 parent 3668b66 commit 76f767b

File tree

2 files changed

+39
-4
lines changed

2 files changed

+39
-4
lines changed

app/mainForm.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,30 @@ function setupMenu() {
4747
{
4848
label: 'View',
4949
submenu: [
50+
{
51+
label: "Front faces",
52+
type: 'radio',
53+
click(item, focusedwindow) {
54+
mapWindow.webContents.send('setCulling', 'back');
55+
}
56+
},
57+
{
58+
label: "Back faces",
59+
type: 'radio',
60+
click(item, focusedwindow) {
61+
mapWindow.webContents.send('setCulling', 'front');
62+
}
63+
},
64+
{
65+
label: "All faces",
66+
type: 'radio',
67+
click(item, focusedwindow) {
68+
mapWindow.webContents.send('setCulling', 'none');
69+
}
70+
},
71+
{
72+
type: 'separator'
73+
} ,
5074
{
5175
label: 'Reload',
5276
accelerator: 'CmdOrCtrl+R',

web/js/map.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@ $(() => {
166166
pointLight.shadowDarkness = 1;
167167
scene.add(pointLight);
168168

169+
const geometryMaterial = new THREE.MeshPhongMaterial({
170+
vertexColors: THREE.FaceColors
171+
});
172+
169173
let worlds = {};
170174
let currentWorld = null;
171175

@@ -210,6 +214,16 @@ $(() => {
210214
});
211215
});
212216

217+
electron.ipcRenderer.on('setCulling', (event, data) => {
218+
if (data == 'front') {
219+
geometryMaterial.side = THREE.BackSide;
220+
} else if (data == 'back') {
221+
geometryMaterial.side = THREE.FrontSide;
222+
} else {
223+
geometryMaterial.side = THREE.DoubleSide;
224+
}
225+
});
226+
213227
electron.ipcRenderer.on('depRead', (event, data) => {
214228
let world = worlds[currentWorld];
215229
if (world) {
@@ -499,10 +513,7 @@ ${renderVec(player.transform.slice(8, 12))}
499513
// vertexShader: vertShader,
500514
// fragmentShader: fragShader,
501515
// });
502-
const mat = new THREE.MeshPhongMaterial({
503-
vertexColors: THREE.FaceColors
504-
});
505-
const mesh = new THREE.Mesh(geom, mat);
516+
const mesh = new THREE.Mesh(geom, geometryMaterial);
506517
mesh.receiveShadow = true;
507518

508519
const bbMat = new THREE.LineBasicMaterial({

0 commit comments

Comments
 (0)