Explorar el Código

Add support to change material and geometry class in GeometryGeneratorPlugin.

master
Palash Bansal hace 2 años
padre
commit
fda885b198
No account linked to committer's email address

+ 2
- 2
plugins/geometry-generator/package-lock.json Ver fichero

{ {
"name": "@threepipe/plugin-geometry-generator", "name": "@threepipe/plugin-geometry-generator",
"version": "0.2.1",
"version": "0.2.2",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@threepipe/plugin-geometry-generator", "name": "@threepipe/plugin-geometry-generator",
"version": "0.2.1",
"version": "0.2.2",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"threepipe": "file:./../../src/" "threepipe": "file:./../../src/"

+ 1
- 1
plugins/geometry-generator/package.json Ver fichero

{ {
"name": "@threepipe/plugin-geometry-generator", "name": "@threepipe/plugin-geometry-generator",
"description": "Geometry generator plugin to create updatable parametric objects/geometries.", "description": "Geometry generator plugin to create updatable parametric objects/geometries.",
"version": "0.2.1",
"version": "0.2.2",
"devDependencies": { "devDependencies": {
}, },
"dependencies": { "dependencies": {

+ 7
- 1
plugins/geometry-generator/src/GeometryGeneratorPlugin.ts Ver fichero

import { import {
AViewerPluginSync, AViewerPluginSync,
BufferGeometry,
BufferGeometry2, BufferGeometry2,
IGeometry, IGeometry,
IMaterial,
Mesh2, Mesh2,
type Object3DGeneratorPlugin, type Object3DGeneratorPlugin,
PhysicalMaterial, PhysicalMaterial,
import {PlaneGeometryGenerator} from './primitives/PlaneGeometryGenerator' import {PlaneGeometryGenerator} from './primitives/PlaneGeometryGenerator'
import {CylinderGeometryGenerator} from './primitives/CylinderGeometryGenerator' import {CylinderGeometryGenerator} from './primitives/CylinderGeometryGenerator'
import {GeometryGenerator, updateUi} from './AGeometryGenerator' import {GeometryGenerator, updateUi} from './AGeometryGenerator'
import {Class} from 'ts-browser-helpers'


/** /**
* GeometryGeneratorPlugin * GeometryGeneratorPlugin
cylinder: new CylinderGeometryGenerator('cylinder'), cylinder: new CylinderGeometryGenerator('cylinder'),
} }


defaultMaterialClass: Class<IMaterial> = PhysicalMaterial
defaultGeometryClass: Class<BufferGeometry> = BufferGeometry2

generateObject(type: string, params?: any) { generateObject(type: string, params?: any) {
const generator = this.generators[type] const generator = this.generators[type]
if (!generator) throw new Error('Unknown generator type: ' + type) if (!generator) throw new Error('Unknown generator type: ' + type)
const obj = new Mesh2(params?.geometry ?? new BufferGeometry2(), params?.material ?? new PhysicalMaterial())
const obj = new Mesh2(params?.geometry ?? new this.defaultGeometryClass(), params?.material ?? new this.defaultMaterialClass())
generator.generate(obj.geometry, params) generator.generate(obj.geometry, params)
obj.name = type obj.name = type
obj.geometry.name = 'Generated ' + type obj.geometry.name = 'Generated ' + type

Cargando…
Cancelar
Guardar