prepareAnimationData method
void
prepareAnimationData(
- Object3D? object,
- 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 );
}