1
0
mirror of https://github.com/troisjs/trois.git synced 2024-11-24 04:12:02 +08:00
This commit is contained in:
Kevin Levron 2020-10-03 11:15:52 +02:00
parent 3ecaaad06a
commit 440a854417
2 changed files with 24 additions and 17 deletions

View File

@ -5,7 +5,7 @@ import Mesh from './Mesh.js';
export default { export default {
extends: Mesh, extends: Mesh,
props: { props: {
size: { type: Number }, size: Number,
width: { type: Number, default: 1 }, width: { type: Number, default: 1 },
height: { type: Number, default: 1 }, height: { type: Number, default: 1 },
depth: { type: Number, default: 1 }, depth: { type: Number, default: 1 },

View File

@ -22,7 +22,18 @@ export default {
} }
}, },
mounted() { mounted() {
this.mesh = new InstancedMesh(this.geometry, this.three.materials[this.materialId], this.count); this.initMesh();
},
unmounted() {
this.scene.remove(this.mesh);
},
methods: {
initMesh() {
if (!this.material && this.materialId) {
this.material = this.three.materials[this.materialId];
}
this.mesh = new InstancedMesh(this.geometry, this.material, this.count);
useBindProp(this, 'position', this.mesh.position); useBindProp(this, 'position', this.mesh.position);
useBindProp(this, 'rotation', this.mesh.rotation); useBindProp(this, 'rotation', this.mesh.rotation);
@ -39,10 +50,6 @@ export default {
this.scene.add(this.mesh); this.scene.add(this.mesh);
}, },
unmounted() {
this.scene.remove(this.mesh);
},
methods: {
setGeometry(geometry) { setGeometry(geometry) {
this.geometry = geometry; this.geometry = geometry;
if (this.mesh) this.mesh.geometry = geometry; if (this.mesh) this.mesh.geometry = geometry;