Public
Edited
Jul 1, 2023
Fork of Monuments
1 fork
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
scene = {
const scene = new THREE.Scene();
scene.background = new THREE.Color(0x001b42);

//manufacture
genererFigures.figures.forEach((fig) => {
var geometry, edgeGeometry;

if (fig.geometry.type === "ExtrudeGeometry") {
var shape = new THREE.Shape();

fig.geometry.shapeArgs.forEach((d) => shape[d.draw](...d.drawArgs));

geometry = new THREE.ExtrudeGeometry(shape, fig.geometry.extrudeSettings);
geometry.center();
edgeGeometry = new THREE.EdgesGeometry(geometry);
} else {
geometry = new THREE[fig.geometry.type](...fig.geometry.args);
geometry.center();
edgeGeometry = new THREE.EdgesGeometry(geometry);
}

var pos = new THREE.Vector3(fig.pos.x, fig.pos.y, fig.pos.z);
var rot = new THREE.Vector3(fig.rot.x, fig.rot.y, fig.rot.z);
var scale;
if (fig.scale) {
scale = new THREE.Vector3(fig.scale.x, fig.scale.y, fig.scale.z);
}
if (fig.lines) {
const line = new THREE.LineSegments(edgeGeometry, lineMaterial);
line.position.set(pos.x, pos.y, pos.z);
line.rotation.set(rot.x, rot.y, rot.z);
if (fig.scale) {
line.scale.set(scale.x, scale.y, scale.z);
} else {
line.scale.set(1, 1, 1);
}

scene.add(line);
}

if (fig.hatch) {
const hatch = new THREE.Mesh(geometry, hatchMaterial);
hatch.position.set(pos.x, pos.y, pos.z);
hatch.rotation.set(rot.x, rot.y, rot.z);
if (fig.scale) {
hatch.scale.set(scale.x, scale.y, scale.z);
} else {
//hatch.scale.set(0.999, 0.990, 0.99);
}
scene.add(hatch);
}

if (fig.full) {
const full = new THREE.Mesh(geometry, fullMaterial);
full.position.set(pos.x, pos.y, pos.z);
full.rotation.set(rot.x, rot.y, rot.z);
if (fig.scale) {
full.scale.set(scale.x, scale.y, scale.z);
}
scene.add(full);
}
});

return scene;
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
import { blockMap } from "@anaglyph-ic/anaver-se-api-building-blocks-list"
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more