protected void updateTargetPositionBasedOnCollision(Vector3f hitNormal, float tangentMag, float normalMag) {
Vector3f movementDirection = Stack.alloc(Vector3f.class);
movementDirection.sub(targetPosition, currentPosition);
float movementLength = movementDirection.length();
if (movementLength>BulletGlobals.SIMD_EPSILON) {
movementDirection.normalize();
Vector3f reflectDir = computeReflectionDirection(movementDirection, hitNormal, Stack.alloc(Vector3f.class));
reflectDir.normalize();
Vector3f parallelDir = parallelComponent(reflectDir, hitNormal, Stack.alloc(Vector3f.class));