private static void SupportMapTransformed(ISupportMappable support, ref TSMatrix orientation, ref TSVector position, ref TSVector direction, out TSVector result) { result.x = direction.x * orientation.M11 + direction.y * orientation.M12 + direction.z * orientation.M13; result.y = direction.x * orientation.M21 + direction.y * orientation.M22 + direction.z * orientation.M23; result.z = direction.x * orientation.M31 + direction.y * orientation.M32 + direction.z * orientation.M33; support.SupportMapping(ref result, out result); FP y = result.x * orientation.M11 + result.y * orientation.M21 + result.z * orientation.M31; FP y2 = result.x * orientation.M12 + result.y * orientation.M22 + result.z * orientation.M32; FP y3 = result.x * orientation.M13 + result.y * orientation.M23 + result.z * orientation.M33; result.x = position.x + y; result.y = position.y + y2; result.z = position.z + y3; }
public static void SupportMapTransformed(ISupportMappable support, ref JMatrix orientation, ref JVector position, ref JVector direction, out JVector result) { // THIS IS *THE* HIGH FREQUENCY CODE OF THE COLLLISION PART OF THE ENGINE result.X = ((direction.X * orientation.M11) + (direction.Y * orientation.M12)); result.Y = ((direction.X * orientation.M21) + (direction.Y * orientation.M22)); support.SupportMapping(ref result, out result); float x = ((result.X * orientation.M11) + (result.Y * orientation.M21)); float y = ((result.X * orientation.M12) + (result.Y * orientation.M22)); result.X = position.X + x; result.Y = position.Y + y; }
private static void SupportMapTransformed(ISupportMappable support, ref FPMatrix orientation, ref FPVector position, ref FPVector direction, out FPVector result) { // THIS IS *THE* HIGH FREQUENCY CODE OF THE COLLLISION PART OF THE ENGINE result.x = ((direction.x * orientation.M11) + (direction.y * orientation.M12)) + (direction.z * orientation.M13); result.y = ((direction.x * orientation.M21) + (direction.y * orientation.M22)) + (direction.z * orientation.M23); result.z = ((direction.x * orientation.M31) + (direction.y * orientation.M32)) + (direction.z * orientation.M33); support.SupportMapping(ref result, out result); FP x = ((result.x * orientation.M11) + (result.y * orientation.M21)) + (result.z * orientation.M31); FP y = ((result.x * orientation.M12) + (result.y * orientation.M22)) + (result.z * orientation.M32); FP z = ((result.x * orientation.M13) + (result.y * orientation.M23)) + (result.z * orientation.M33); result.x = position.x + x; result.y = position.y + y; result.z = position.z + z; }
private static void SupportMapTransformed(ISupportMappable support, ref JMatrix orientation, ref JVector position, ref JVector direction, out JVector result) { // THIS IS *THE* HIGH FREQUENCY CODE OF THE COLLLISION PART OF THE ENGINE result.X = ((direction.X * orientation.M11) + (direction.Y * orientation.M12)) + (direction.Z * orientation.M13); result.Y = ((direction.X * orientation.M21) + (direction.Y * orientation.M22)) + (direction.Z * orientation.M23); result.Z = ((direction.X * orientation.M31) + (direction.Y * orientation.M32)) + (direction.Z * orientation.M33); support.SupportMapping(ref result, out result); double x = ((result.X * orientation.M11) + (result.Y * orientation.M21)) + (result.Z * orientation.M31); double y = ((result.X * orientation.M12) + (result.Y * orientation.M22)) + (result.Z * orientation.M32); double z = ((result.X * orientation.M13) + (result.Y * orientation.M23)) + (result.Z * orientation.M33); result.X = position.X + x; result.Y = position.Y + y; result.Z = position.Z + z; }
private static void SupportMapTransformed(ISupportMappable support, ref JMatrix orientation, ref JVector position, ref JVector direction, out JVector result) { // THIS IS *THE* HIGH FREQUENCY CODE OF THE COLLLISION PART OF THE ENGINE result.X = ((direction.X * orientation.M11) + (direction.Y * orientation.M12)) + (direction.Z * orientation.M13); result.Y = ((direction.X * orientation.M21) + (direction.Y * orientation.M22)) + (direction.Z * orientation.M23); result.Z = ((direction.X * orientation.M31) + (direction.Y * orientation.M32)) + (direction.Z * orientation.M33); support.SupportMapping(ref result, out result); float x = ((result.X * orientation.M11) + (result.Y * orientation.M21)) + (result.Z * orientation.M31); float y = ((result.X * orientation.M12) + (result.Y * orientation.M22)) + (result.Z * orientation.M32); float z = ((result.X * orientation.M13) + (result.Y * orientation.M23)) + (result.Z * orientation.M33); result.X = position.X + x; result.Y = position.Y + y; result.Z = position.Z + z; }
private static void SupportMapTransformed(ISupportMappable support, ref TSMatrix orientation, ref TSVector position, ref TSVector direction, out TSVector result) { //JVector.Transform(ref direction, ref invOrientation, out result); //support.SupportMapping(ref result, out result); //JVector.Transform(ref result, ref orientation, out result); //JVector.Add(ref result, ref position, out result); result.x = ((direction.x * orientation.M11) + (direction.y * orientation.M12)) + (direction.z * orientation.M13); result.y = ((direction.x * orientation.M21) + (direction.y * orientation.M22)) + (direction.z * orientation.M23); result.z = ((direction.x * orientation.M31) + (direction.y * orientation.M32)) + (direction.z * orientation.M33); support.SupportMapping(ref result, out result); FP x = ((result.x * orientation.M11) + (result.y * orientation.M21)) + (result.z * orientation.M31); FP y = ((result.x * orientation.M12) + (result.y * orientation.M22)) + (result.z * orientation.M32); FP z = ((result.x * orientation.M13) + (result.y * orientation.M23)) + (result.z * orientation.M33); result.x = position.x + x; result.y = position.y + y; result.z = position.z + z; }
private static void SupportMapTransformed(ISupportMappable support, ref JMatrix orientation, ref JVector position, ref JVector direction, out JVector result) { //JVector.Transform(ref direction, ref invOrientation, out result); //support.SupportMapping(ref result, out result); //JVector.Transform(ref result, ref orientation, out result); //JVector.Add(ref result, ref position, out result); result.X = ((direction.X * orientation.M11) + (direction.Y * orientation.M12)) + (direction.Z * orientation.M13); result.Y = ((direction.X * orientation.M21) + (direction.Y * orientation.M22)) + (direction.Z * orientation.M23); result.Z = ((direction.X * orientation.M31) + (direction.Y * orientation.M32)) + (direction.Z * orientation.M33); support.SupportMapping(ref result, out result); float x = ((result.X * orientation.M11) + (result.Y * orientation.M21)) + (result.Z * orientation.M31); float y = ((result.X * orientation.M12) + (result.Y * orientation.M22)) + (result.Z * orientation.M32); float z = ((result.X * orientation.M13) + (result.Y * orientation.M23)) + (result.Z * orientation.M33); result.X = position.X + x; result.Y = position.Y + y; result.Z = position.Z + z; }
private static void SupportMapTransformed(ISupportMappable support, ref MatrixD orientation, ref Vector3D position, ref Vector3D direction, out Vector3D result) { //Vector3D.Transform(ref direction, ref invOrientation, out result); //support.SupportMapping(ref result, out result); //Vector3D.Transform(ref result, ref orientation, out result); //Vector3D.Add(ref result, ref position, out result); result.X = ((direction.X * orientation.M11) + (direction.Y * orientation.M12)) + (direction.Z * orientation.M13); result.Y = ((direction.X * orientation.M21) + (direction.Y * orientation.M22)) + (direction.Z * orientation.M23); result.Z = ((direction.X * orientation.M31) + (direction.Y * orientation.M32)) + (direction.Z * orientation.M33); support.SupportMapping(ref result, out result); double x = ((result.X * orientation.M11) + (result.Y * orientation.M21)) + (result.Z * orientation.M31); double y = ((result.X * orientation.M12) + (result.Y * orientation.M22)) + (result.Z * orientation.M32); double z = ((result.X * orientation.M13) + (result.Y * orientation.M23)) + (result.Z * orientation.M33); result.X = position.X + x; result.Y = position.Y + y; result.Z = position.Z + z; }
private static void SupportMapTransformed(ISupportMappable support, ref JMatrix orientation, ref JVector position, ref JVector direction, out JVector result) { //JVector.Transform(ref direction, ref invOrientation, out result); //support.SupportMapping(ref result, out result); //JVector.Transform(ref result, ref orientation, out result); //JVector.Add(ref result, ref position, out result); result.X = ((direction.X * orientation.M11) + (direction.Y * orientation.M12)) + (direction.Z * orientation.M13); result.Y = ((direction.X * orientation.M21) + (direction.Y * orientation.M22)) + (direction.Z * orientation.M23); result.Z = ((direction.X * orientation.M31) + (direction.Y * orientation.M32)) + (direction.Z * orientation.M33); support.SupportMapping(ref result, out result); float x = ((result.X * orientation.M11) + (result.Y * orientation.M21)) + (result.Z * orientation.M31); float y = ((result.X * orientation.M12) + (result.Y * orientation.M22)) + (result.Z * orientation.M32); float z = ((result.X * orientation.M13) + (result.Y * orientation.M23)) + (result.Z * orientation.M33); result.X = position.X + x; result.Y = position.Y + y; result.Z = position.Z + z; }
private static void SupportMapTransformed(ISupportMappable support, ref Matrix3x3 orientation, ref Vector3 position, ref Vector3 direction, out Vector3 result) { //JVector.Transform(ref direction, ref invOrientation, out result); //support.SupportMapping(ref result, out result); //JVector.Transform(ref result, ref orientation, out result); //JVector.Add(ref result, ref position, out result); result.x = ((direction.x * orientation.M11) + (direction.y * orientation.M12)) + (direction.z * orientation.M13); result.y = ((direction.x * orientation.M21) + (direction.y * orientation.M22)) + (direction.z * orientation.M23); result.z = ((direction.x * orientation.M31) + (direction.y * orientation.M32)) + (direction.z * orientation.M33); support.SupportMapping(ref result, out result); float x = ((result.x * orientation.M11) + (result.y * orientation.M21)) + (result.z * orientation.M31); float y = ((result.x * orientation.M12) + (result.y * orientation.M22)) + (result.z * orientation.M32); float z = ((result.x * orientation.M13) + (result.y * orientation.M23)) + (result.z * orientation.M33); result.x = position.x + x; result.y = position.y + y; result.z = position.z + z; }