prepareAnimationData method

void prepareAnimationData(
  1. Object3D? object,
  2. Vector3 focusPoint
)

Implementation

void prepareAnimationData(Object3D? object, Vector3 focusPoint ) {
  switch (object?.userData['type']) {
    case 'posX':
      targetPosition.setValues( 1, 0, 0 );
      targetQuaternion.setFromEuler( Euler( 0, math.pi * 0.5, 0 ) );
      break;
    case 'posY':
      targetPosition.setValues( 0, 1, 0 );
      targetQuaternion.setFromEuler( Euler( - math.pi * 0.5, 0, 0 ) );
      break;
    case 'posZ':
      targetPosition.setValues( 0, 0, 1 );
      targetQuaternion.setFromEuler( Euler() );
      break;
    case 'negX':
      targetPosition.setValues( - 1, 0, 0 );
      targetQuaternion.setFromEuler( Euler( 0, - math.pi * 0.5, 0 ) );
      break;
    case 'negY':
      targetPosition.setValues( 0, - 1, 0 );
      targetQuaternion.setFromEuler( Euler( math.pi * 0.5, 0, 0 ) );
      break;
    case 'negZ':
      targetPosition.setValues( 0, 0, - 1 );
      targetQuaternion.setFromEuler( Euler( 0, math.pi, 0 ) );
      break;
    default:
      console.error( 'ViewHelper: Invalid axis.' );
  }

  radius = camera.position.distanceTo( focusPoint );
  targetPosition.scale( radius ).add( focusPoint );

  dummy.position.setFrom( focusPoint );

  dummy.lookAt( camera.position );
  q1.setFrom( dummy.quaternion );

  dummy.lookAt( targetPosition );
  q2.setFrom( dummy.quaternion );
}