Просмотр исходного кода

Add support to change material and geometry class in GeometryGeneratorPlugin.

master
Palash Bansal 2 лет назад
Родитель
Сommit
fda885b198
Аккаунт пользователя с таким Email не найден

+ 2
- 2
plugins/geometry-generator/package-lock.json Просмотреть файл

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

+ 1
- 1
plugins/geometry-generator/package.json Просмотреть файл

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

+ 7
- 1
plugins/geometry-generator/src/GeometryGeneratorPlugin.ts Просмотреть файл

@@ -1,7 +1,9 @@
import {
AViewerPluginSync,
BufferGeometry,
BufferGeometry2,
IGeometry,
IMaterial,
Mesh2,
type Object3DGeneratorPlugin,
PhysicalMaterial,
@@ -14,6 +16,7 @@ import {SphereGeometryGenerator} from './primitives/SphereGeometryGenerator'
import {PlaneGeometryGenerator} from './primitives/PlaneGeometryGenerator'
import {CylinderGeometryGenerator} from './primitives/CylinderGeometryGenerator'
import {GeometryGenerator, updateUi} from './AGeometryGenerator'
import {Class} from 'ts-browser-helpers'

/**
* GeometryGeneratorPlugin
@@ -35,10 +38,13 @@ export class GeometryGeneratorPlugin extends AViewerPluginSync<''> {
cylinder: new CylinderGeometryGenerator('cylinder'),
}

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

generateObject(type: string, params?: any) {
const generator = this.generators[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)
obj.name = type
obj.geometry.name = 'Generated ' + type

Загрузка…
Отмена
Сохранить