Esempio n. 1
0
 public static Vector3 ConvertToSpace(this Node source, Node target, Vector3 position)
 {
     return target.ConvertWorldToLocalPosition(source.ConvertLocalToWorldPosition(position));
 }
Esempio n. 2
0
 private static void TransformSphere(SphereNode sphere, Node destWorld, out Vector3 transformedCenter, out float transformedSquaredRadius)
 {
     transformedCenter = destWorld.ConvertWorldToLocalPosition(sphere.ReferenceNode.ConvertLocalToWorldPosition(Vector3.ZERO));
     Vector3 bTransformedTop = destWorld.ConvertWorldToLocalPosition
     (
         sphere.ReferenceNode.ConvertWorldToLocalPosition(MathHelper.Up * sphere.Radius)
     );
     transformedSquaredRadius = bTransformedTop.SquaredDistance(transformedCenter);
 }
Esempio n. 3
0
 public static Ray TransformRay(this Ray ray, Node world)
 {
     Vector3 transformedOrigin = world.ConvertWorldToLocalPosition(ray.Origin);
     Vector3 transformedDirection = world.ConvertWorldToLocalPosition(ray.Direction + ray.Origin) - transformedOrigin;
     return new Ray(transformedOrigin, transformedDirection);
 }