whs-cube-spheres
Version:
This plugin has a container with multiple spheres.
54 lines (43 loc) • 1.13 kB
JavaScript
import {
Mesh,
BufferGeometry,
ExtrudeGeometry
} from 'three';
import {MeshComponent} from '../../core/MeshComponent';
class Extrude extends MeshComponent {
static defaults = {
...MeshComponent.defaults,
geometry: {
shapes: [],
options: {}
}
};
static instructions = {
...MeshComponent.instructions,
geometry: ['shapes', 'options']
};
constructor(params = {}) {
super(params, Extrude.defaults, Extrude.instructions);
if (params.build) {
this.build(params);
super.wrap();
}
}
build(params = this.params) {
const {geometry, material} = this.applyBridge({
geometry: this.buildGeometry(params),
material: params.material
});
return this.applyBridge({mesh: new Mesh(geometry, material)}).mesh;
}
buildGeometry(params = {}) {
const extrudeGeometry = new ExtrudeGeometry(
params.geometry.shapes,
params.geometry.options
);
return params.buffer ? new BufferGeometry().fromGeometry(extrudeGeometry) : extrudeGeometry;
}
}
export {
Extrude
};