public static double TwoFaceDistance(PlanarFace face1, PlanarFace face2) { double result = -1.0; XYZ xyz = face1.FaceNormal; xyz = XYZHelper.AbsVector(xyz); XYZ xyz2 = face2.FaceNormal; xyz2 = XYZHelper.AbsVector(xyz2); bool flag = xyz.IsAlmostEqualTo(xyz2); if (flag) { XYZ xyz3 = face1.Origin - face2.Origin; result = Math.Abs(xyz3.DotProduct(xyz) / xyz.GetLength()); } return(result); }
public static double TwoFaceDistance(PlanarFace face1, Transform transform1, PlanarFace face2, Transform transform2) { double result = -1.0; XYZ xyz = transform1.OfVector(face1.FaceNormal); xyz = XYZHelper.AbsVector(xyz); XYZ xyz2 = transform2.OfVector(face2.FaceNormal); xyz2 = XYZHelper.AbsVector(xyz2); bool flag = xyz.IsAlmostEqualTo(xyz2); if (flag) { XYZ left = transform1.OfPoint(face1.Origin); XYZ right = transform2.OfPoint(face2.Origin); XYZ xyz3 = left - right; result = Math.Abs(xyz3.DotProduct(xyz) / xyz.GetLength()); } return(result); }