Search code examples
three.jsaframe

Aframe: getting vertices of any object


Is there a way we can get the vertices of an object in a scene. This is either for a primitive or for a loaded model. For example

<a-entity geometry='primitive:box' rotation='0 30 0'></a-entity>

or

<a-entity gltf-model='#model'></a-entity>

Solution

  • For geometry, defaults to buffer attributes (vertices in array) contained in:

    el.getObject3D('mesh').geometry.attributes
    

    To get easier to manage, set to non-buffer (geometry="primitive: box; buffer: false") and get from:

    el.getObject3D('mesh').geometry.vertices
    

    For gltf-model, it also has a geometr(ies) (buffer geometry):

    el.getObject3D('mesh').traverse(node => {
      if (node.geometry) {
        // node.geometry.attributes...
      }
    });