public static CoordSys NewCoordSys(CoordSys coordSys) { CoordSys newCoord = new CoordSys() { Center = coordSys.Center, Top = coordSys.Top, Side = coordSys.Side, Front = coordSys.Front }; newCoord.Side.Y = coordSys.Center.Y; newCoord.Top.X = coordSys.Center.X; CameraSpacePoint transSideN = newCoord.Center.SubtractFrom(newCoord.Side); CameraSpacePoint transFrontN = newCoord.Center.SubtractFrom(newCoord.Front); CameraSpacePoint transTopN = newCoord.Center.SubtractFrom(newCoord.Top); transFrontN = transSideN.CrossProduct(transTopN); newCoord.Top = transTopN.Add(coordSys.Center); newCoord.Side = transSideN.Add(coordSys.Center); newCoord.Front = transFrontN.Add(coordSys.Center); //newCoord.Front = newCoord.Side.CrossProduct(newCoord.Top); //newCoord.Front.X = coordSys.Center.X; //newCoord.Front.Y = coordSys.Center.Y; return(newCoord); }