/// <summary> /// Create, initialize, and report the raycast. /// </summary> public RaycastHit4(Ray4 ray, float distance, Vector4 normal, int hash) { this.ray = ray; this.distance = distance; this.normal = normal; this.hash = hash; }
public void TestRayConstructor() { var origin = Vector4.CreatePosition(1, 2, 3); var direction = Vector4.CreateDirection(4, 5, 6); var r = new Ray4(origin, direction); Assert.Equal(origin, r.Origin); Assert.Equal(direction, r.Direction); }
public void TestScaleRay() { var r = new Ray4(Vector4.CreatePosition(1, 2, 3), Vector4.CreateDirection(0, 1, 0)); var t = Transform.Scale(2, 3, 4); var r2 = t * r; Assert.Equal(Vector4.CreatePosition(2, 6, 12), r2.Origin); Assert.Equal(Vector4.CreateDirection(0, 3, 0), r2.Direction); }
public void TestTranslateRay() { var r = new Ray4(Vector4.CreatePosition(1, 2, 3), Vector4.CreateDirection(0, 1, 0)); var t = Transform.Translate(3, 4, 5); var r2 = t * r; Assert.Equal(Vector4.CreatePosition(4, 6, 8), r2.Origin); Assert.Equal(Vector4.CreateDirection(0, 1, 0), r2.Direction); }
public void TestComputePointFromDistance() { var r = new Ray4(Vector4.CreatePosition(2, 3, 4), Vector4.CreateDirection(1, 0, 0)); Assert.Equal(Vector4.CreatePosition(2, 3, 4), r[0]); Assert.Equal(Vector4.CreatePosition(3, 3, 4), r[1]); Assert.Equal(Vector4.CreatePosition(1, 3, 4), r[-1]); Assert.Equal(Vector4.CreatePosition(4.5, 3, 4), r[2.5]); }
/// <summary> /// Create and initialize the raycast. /// </summary> public RaycastHit4(Ray4 ray) : this() { this.ray = ray; }
/// <summary> /// Globally cast raycast and return report /// </summary> /// <param name="ray"></param> /// <returns></returns> public static RaycastHit4 Raycast(Ray4 ray) { RaycastHit4 hit = new RaycastHit4(ray); return(main.scene.QueryRaycast(hit)); }