Ejemplo n.º 1
0
            ////---------------------------------------------------------------------------------------------------------
            ///// <summary>
            ///// Копирование параметров с графического элемента
            ///// </summary>
            ///// <param name="element">Графический элемент</param>
            ///// <param name="context">Контекст копирования данных</param>
            ////---------------------------------------------------------------------------------------------------------
            //public override void CopyParamemtrs(IBaseElement element, Object context)
            //{
            //	base.CopyParamemtrs(element, context);
            //	CCadShapeLine source = element as CCadShapeLine;
            //	if (source != null)
            //	{
            //		mStartPoint = source.StartPoint;
            //		mEndPoint = source.EndPoint;

            //		NotifyPropertyChanged(PropertyArgsStartPoint);
            //		NotifyPropertyChanged(PropertyArgsEndPoint);
            //	}
            //}

            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Проверка на попадание в область графического элемента указанной точки
            /// </summary>
            /// <param name="point">Проверяемая точка</param>
            /// <param name="epsilon">Точность проверки</param>
            /// <returns>Статус проверки</returns>
            //---------------------------------------------------------------------------------------------------------
            public override Boolean CheckPoint(ref Vector2Df point, Single epsilon)
            {
                // Если линия выбрана то проверяем ручки
                if (mIsSelect)
                {
                    if (mHandleRects[0].Contains(point) || mHandleRects[1].Contains(point) || mHandleRects[2].Contains(point))
                    {
                        return(true);
                    }
                }

                // Проверяем попадание на линию
                Boolean status = XIntersect2D.PointOnSegment(ref mStartPoint, ref mEndPoint, ref point, epsilon);

                if (status)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Проверка раположения точки на контуре графического примитива
 /// </summary>
 /// <param name="point">Проверяемая точка</param>
 /// <param name="thickness">Толщина контура</param>
 /// <returns>Статус расположения</returns>
 //---------------------------------------------------------------------------------------------------------
 public override Boolean StrokeContains(ref Vector2Df point, Single thickness)
 {
     return(XIntersect2D.PointOnRectBorder(ref mBoundsRect, ref point, mStroke.Thickness));
 }
Ejemplo n.º 3
0
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Проверка раположения точки на контуре графического примитива
 /// </summary>
 /// <param name="point">Проверяемая точка</param>
 /// <param name="thickness">Толщина контура</param>
 /// <returns>Статус расположения</returns>
 //---------------------------------------------------------------------------------------------------------
 public override Boolean StrokeContains(ref Vector2Df point, Single thickness)
 {
     return(XIntersect2D.PointOnSegment(ref mStartPoint, ref mEndPoint, ref point, mStroke.Thickness));
 }