public static PlanarFace FirstFace(IList <PlanarFace> listFace, XYZ vector) { PlanarFace result = null; IList <PlanarFace> list = Facelibry.PerpendicularFace(listFace, vector); double num = 0.0; foreach (PlanarFace planarFace in list) { XYZ source = Facelibry.CenterPoint(planarFace); bool flag = MathLib.IsEqual(num, 0.0, 0.0001); if (flag) { num = vector.DotProduct(source); result = planarFace; } else { double num2 = vector.DotProduct(source); bool flag2 = num2 < num; if (flag2) { result = planarFace; num = num2; } } } return(result); }
public static PlanarFace LastFace(IList <PlanarFace> listFace, XYZ vector, Transform transform) { PlanarFace result = null; IList <PlanarFace> list = Facelibry.PerpendicularFace(listFace, vector, transform); double num = 0.0; foreach (PlanarFace planarFace in list) { XYZ xyz = planarFace.Origin; xyz = transform.OfPoint(xyz); bool flag = MathLib.IsEqual(num, 0.0, 0.0001); if (flag) { num = vector.DotProduct(xyz); result = planarFace; } else { double num2 = vector.DotProduct(xyz); bool flag2 = num2 > num; if (flag2) { result = planarFace; num = num2; } } } return(result); }