I’m trying to understand this code, but I’m hitting a roadblock, what does this code actually do from Octree.js? My understanding is that it creates triangles for each vertex.
fromGraphNode( group ) {
group.updateWorldMatrix( true, true );
group.traverse( ( obj ) => {
if ( obj.isMesh === true ) {
let geometry, isTemp = false;
if ( obj.geometry.index !== null ) {
isTemp = true;
geometry = obj.geometry.toNonIndexed();
} else {
geometry = obj.geometry;
}
const positionAttribute = geometry.getAttribute( 'position' );
for ( let i = 0; i < positionAttribute.count; i += 3 ) {
const v1 = new Vector3().fromBufferAttribute( positionAttribute, i );
const v2 = new Vector3().fromBufferAttribute( positionAttribute, i + 1 );
const v3 = new Vector3().fromBufferAttribute( positionAttribute, i + 2 );
v1.applyMatrix4( obj.matrixWorld );
v2.applyMatrix4( obj.matrixWorld );
v3.applyMatrix4( obj.matrixWorld );
this.addTriangle( new Triangle( v1, v2, v3 ) );
}
if ( isTemp ) {
geometry.dispose();
}
}
} );
this.build();
return this;
}