Три Обновление ConvexGeometry динамически - PullRequest
0 голосов
/ 11 апреля 2019

Я использую THREE.js в Aframe и пытаюсь построить меш, щелкая точки.

Это работает, однако я изо всех сил пытаюсь обновить геометрию, чтобы показать изменения.

this._shapeEl = make('a-entity', {
  material: {color: 'blue'},
  geometry: this._vertices.length > 3 ? new THREE.ConvexGeometry( this._vertices ) : new THREE.Geometry(),
}, this.el)

onClick:

var target = e.detail.intersection.point
this.el.object3D.worldToLocal(target)

make('a-sphere', {
  color: darkViolet,
  radius: 0.01,
  position: target,
}, this.el)

this._vertices.push(target)

if(this._vertices.length > 3){
  this._shapeEl.object3D.geometry = new THREE.ConvexGeometry( this._vertices )
  this._shapeEl.object3D.geometry.dynamic = true
}

Сферы показывают, и точки добавляются, но _shapeEl не меняется от синего куба.

1 Ответ

0 голосов
/ 12 апреля 2019

Спасибо @ Mugen87, что было полезно.

Ответ - использовать object3Dmap.mesh

  this._shapeEl.object3DMap.mesh.geometry.dispose()
  this._shapeEl.object3DMap.mesh.geometry = new THREE.ConvexGeometry( this._vertices )
...