예제 #1
0
        /// <summary>
        /// Implements the interface method.
        /// </summary>
        public IList <Curve> GetStairsPath()
        {
            if (m_stairsRun == null)
            {
                throw new NotSupportedException("Stairs run hasn't been constructed yet.");
            }
            CurveLoop curveLoop = m_stairsRun.GetStairsPath();

            return(curveLoop.ToList());
        }
        public bool FirstPointIsInsideFace(
            CurveLoop CL,
            PlanarFace PFace)
        {
            Transform Trans = PFace.ComputeDerivatives(
                new UV(0, 0));

            if (CL.Count() == 0)
            {
                return(false);
            }
            XYZ Pt = Trans.Inverse.OfPoint(
                CL.ToList()[0].GetEndPoint(0));
            IntersectionResult Res = null;
            bool outval            = PFace.IsInside(
                new UV(Pt.X, Pt.Y), out Res);

            return(outval);
        }
예제 #3
0
 /// <summary>
 /// Объединить прямые линии в <see cref="CurveLoop"/>
 /// </summary>
 /// <param name="curveLoop"><see cref="CurveLoop"/></param>
 public static CurveLoop MergeStraightLines(CurveLoop curveLoop)
 {
     return(CurveLoop.Create(MergeStraightLines(curveLoop.ToList(), true)));
 }