updatePositions(){
    // normalize the data after layout step
    this.normalizeProjection();

    this.node_mesh.geometry.attributes.position.array = generatePointPositions(this.nodes);
    this.link_mesh.geometry.attributes.position.array = generateEdgePositions(this.nodes, this.links);

    // recompute bounding sphere for camera centering.
    this.node_mesh.geometry.computeBoundingSphere();

    // let the scene know the meshes have updated positions.
    this.node_mesh.geometry.attributes.position.needsUpdate = true;
    this.link_mesh.geometry.attributes.position.needsUpdate = true;
  }
// generate the new position attribute vector for point and line meshes
generate the new position attribute vector for point and line meshes
generate the new position attribute vector for point and line meshes
updatePositions(){
    this.normalizeProjection();
    this.node_mesh.geometry.attributes.position.array = generatePointPositions(this.nodes);
    this.link_mesh.geometry.attributes.position.array = generateEdgePositions(this.nodes, this.links);
    this.node_mesh.geometry.computeBoundingSphere();
    this.node_mesh.geometry.attributes.position.needsUpdate = true;
    this.link_mesh.geometry.attributes.position.needsUpdate = true;
  }
updatePositions ( ) { this . normalizeProjection ( ) ; this . node_mesh . geometry . attributes . position . array = generatePointPositions ( this . nodes ) ; this . link_mesh . geometry . attributes . position . array = generateEdgePositions ( this . nodes , this . links ) ; this . node_mesh . geometry . computeBoundingSphere ( ) ; this . node_mesh . geometry . attributes . position . needsUpdate = true ; this . link_mesh . geometry . attributes . position . needsUpdate = true ; }
generate the new position attribute vector for point and line meshes
generate the new position attribute vector for point and line meshes
// normalize the data after layout step // recompute bounding sphere for camera centering. // let the scene know the meshes have updated positions.