Example #1
0
        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);
        }
Example #2
0
        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);
        }