//sub private Line SetEachMainAxis(Vector3d guide, Polyline bound) { Line axis1 = PCXTools.PCXLongest(Pt, bound, guide); Line axis2 = PCXTools.PCXLongest(Pt, bound, -guide); bool isAxis1Longer = axis1.Length >= axis2.Length; bool isAxis1Inside = IsLineInside(axis1, bound); bool isAxis2Inside = IsLineInside(axis2, bound); if (isAxis1Inside) { if (!isAxis2Inside) { return(axis1); } if (isAxis1Longer) { return(axis1); } return(axis2); } if (isAxis2Inside) { return(axis2); } return(new Line(Pt, Pt)); }
//main public void SetMainAxis(Polyline boundary) { Line alignMain = SetEachMainAxis(AlignGuide, boundary); Line perpMain = PCXTools.PCXLongest(Pt, boundary, PerpGuide); if (alignMain.Length > perpMain.Length) { MainAxis = alignMain; SubAxis = perpMain; } else { MainAxis = perpMain; SubAxis = alignMain; } }