JSFiddle - React, Tailwind, and code Playground
JavaScript
import * as THREE from 'https://cdn.jsdelivr.net/npm/three@0.121.1/build/three.module.js';
import { OrbitControls } from 'https://cdn.jsdelivr.net/npm/three@0.121.1/examples/jsm/controls/OrbitControls.js';
var camera, scene, renderer;
var cube_geom, material, mesh;
init();
animate();
function init() {
camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
camera.position.set( 1, 0, 0 );
scene = new THREE.Scene();
cube_geom = new THREE.BoxGeometry( 0.2, 0.2, 0.2 );
material = new THREE.MeshNormalMaterial();
cube_geom.faces = [ cube_geom.faces[ 0 ], cube_geom.faces[ 1 ] ];
cube_geom.mergeVertices();
//---------------- my code -----------------------------------------------------
var to_remove = [0,1,2,3,4,5,6,7];
//console.log(cube_geom.faces)
for(var key in cube_geom.faces){
for(var key2 in to_remove){
if(cube_geom.faces[key].a == to_remove[key2]) to_remove.splice(key2,1);
if(cube_geom.faces[key].b == to_remove[key2]) to_remove.splice(key2,1);
if(cube_geom.faces[key].c == to_remove[key2]) to_remove.splice(key2,1);
}
}
for(var k in to_remove){
//if(to_remove[k] == 7 && k==2) break //console.log(k)
cube_geom.vertices.splice([to_remove[k]-k],1);
for(var key in cube_geom.faces){
if(cube_geom.faces[key].a >= to_remove[k]-k) cube_geom.faces[key].a--;
if(cube_geom.faces[key].b >= to_remove[k]-k) cube_geom.faces[key].b--;
if(cube_geom.faces[key].c >= to_remove[k]-k) cube_geom.faces[key].c--;
}
}
//-------------------- end my code -------------------------------------
console.log( cube_geom.vertices.length );
mesh = new THREE.Mesh( cube_geom, material );
scene.add( mesh );
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setSize( window.innerWidth, window.innerHeight );
...