//public static CameraSpacePoint PointProjectionIntoPlane(CameraSpacePoint point, CameraSpacePoint planeNormal) //{ // float x = point.X; // float y = point.Y; // float z = point.Z; // float a = planeNormal.X; // float b = planeNormal.Y; // float c = planeNormal.Z; // float t = (a*) //} public static Planes GetPlanes(Dictionary <JointType, Joint> joints) { CameraSpacePoint spineBase = joints[JointType.SpineBase].Position; CameraSpacePoint spineMid = joints[JointType.SpineMid].Position; CameraSpacePoint horizontalPlane = LinearAlgebra.Sub(spineMid, spineBase); CameraSpacePoint hipToHip = LinearAlgebra.Sub(joints[JointType.HipLeft].Position, joints[JointType.HipRight].Position); // difference between both hips CameraSpacePoint sagittalPlane = LinearAlgebra.CrossProduct(horizontalPlane, hipToHip); CameraSpacePoint frontalPlane = LinearAlgebra.CrossProduct(horizontalPlane, sagittalPlane); Planes plane = new Planes(horizontalPlane, sagittalPlane, frontalPlane); return(new Planes(horizontalPlane, sagittalPlane, frontalPlane));; }
public static float GetDistanceFromPlane(CameraSpacePoint point, CameraSpacePoint planePos, CameraSpacePoint normal) { float dist = LinearAlgebra.DotProduct(normal, (LinearAlgebra.Sub(point, planePos))); return(dist); }