//---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Конструктор инициализирует объект класса указанными параметрами
 /// </summary>
 /// <param name="geometry">Геометрия</param>
 /// <param name="segment_line">Сегмент отдельной линии</param>
 //---------------------------------------------------------------------------------------------------------
 public CCadSegmentLine(CCadPrimitiveGeometry geometry, CCadSegmentLine segment_line)
 {
     mGeometry    = geometry;
     mBasePoint   = segment_line.mBasePoint;
     mEndPoint    = segment_line.mEndPoint;
     mSegmentType = TCadSegmentType.Line;
 }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Конструктор инициализирует объект класса указанными параметрами
 /// </summary>
 /// <param name="geometry">Геометрия</param>
 /// <param name="segment_points">Сегмент геометрии - Набор точек</param>
 //---------------------------------------------------------------------------------------------------------
 public CCadSegmentPoints(CCadPrimitiveGeometry geometry, CCadSegmentPoints segment_points)
 {
     mGeometry    = geometry;
     mSegmentType = TCadSegmentType.Points;
     mPoints      = new List <Vector2Df>();
     mPoints.AddRange(segment_points.mPoints);
 }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Конструктор инициализирует объект класса указанными параметрами
 /// </summary>
 /// <param name="geometry">Геометрия</param>
 /// <param name="start_point">Начальная точка</param>
 /// <param name="end_point">Конечная точка</param>
 //---------------------------------------------------------------------------------------------------------
 public CCadSegmentLine(CCadPrimitiveGeometry geometry, Vector2Df start_point, Vector2Df end_point)
 {
     mGeometry    = geometry;
     mBasePoint   = start_point;
     mEndPoint    = end_point;
     mSegmentType = TCadSegmentType.Line;
 }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Конструктор инициализирует объект класса указанными параметрами
 /// </summary>
 /// <param name="geometry">Геометрия</param>
 /// <param name="start_point">Начальная точка</param>
 /// <param name="size_arc">Размеры эллипса дуги</param>
 //---------------------------------------------------------------------------------------------------------
 public CCadSegmentArc(CCadPrimitiveGeometry geometry, Vector2Df start_point, Vector2Df size_arc)
 {
     mGeometry    = geometry;
     mSegmentType = TCadSegmentType.Arc;
     mBasePoint   = start_point;
     mRadiusX     = size_arc.X;
     mRadiusY     = size_arc.Y;
     mEndPoint    = start_point + size_arc;
 }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Конструктор инициализирует объект класса указанными параметрами
 /// </summary>
 /// <param name="geometry">Геометрия</param>
 /// <param name="base_point">Базовая точка</param>
 /// <param name="next_point">Следующая точка</param>
 //---------------------------------------------------------------------------------------------------------
 public CCadSegmentPoints(CCadPrimitiveGeometry geometry, Vector2Df base_point, Vector2Df next_point)
 {
     mGeometry    = geometry;
     mSegmentType = TCadSegmentType.Points;
     mPoints      = new List <Vector2Df>();
     mBasePoint   = base_point;
     mPoints.Add(base_point);
     mPoints.Add(next_point);
 }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Конструктор инициализирует объект класса указанными параметрами
 /// </summary>
 /// <param name="geometry">Геометрия</param>
 /// <param name="segment_arc">Сегмент дуги</param>
 //---------------------------------------------------------------------------------------------------------
 public CCadSegmentArc(CCadPrimitiveGeometry geometry, CCadSegmentArc segment_arc)
 {
     mGeometry             = geometry;
     mIsLargeArc           = segment_arc.mIsLargeArc;
     mIsClockwiseDirection = segment_arc.mIsClockwiseDirection;
     mRotationAngle        = segment_arc.mRotationAngle;
     mRadiusX     = segment_arc.mRadiusX;
     mRadiusY     = segment_arc.mRadiusY;
     mEndPoint    = segment_arc.mEndPoint;
     mSegmentType = TCadSegmentType.Arc;
 }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Конструктор инициализирует объект класса указанными параметрами
 /// </summary>
 /// <param name="geometry">Геометрия</param>
 //---------------------------------------------------------------------------------------------------------
 public CCadSegmentArc(CCadPrimitiveGeometry geometry)
 {
     mGeometry    = geometry;
     mSegmentType = TCadSegmentType.Arc;
 }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Конструктор инициализирует объект класса указанными параметрами
 /// </summary>
 /// <param name="geometry">Геометрия</param>
 //---------------------------------------------------------------------------------------------------------
 public CCadSegmentLine(CCadPrimitiveGeometry geometry)
 {
     mGeometry    = geometry;
     mSegmentType = TCadSegmentType.Line;
 }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Конструктор инициализирует объект класса указанными параметрами
 /// </summary>
 /// <param name="geometry">Геометрия</param>
 //---------------------------------------------------------------------------------------------------------
 public CCadSegmentPoints(CCadPrimitiveGeometry geometry)
 {
     mGeometry    = geometry;
     mSegmentType = TCadSegmentType.Points;
     mPoints      = new List <Vector2Df>();
 }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Конструктор инициализирует объект класса указанными параметрами
 /// </summary>
 /// <param name="geometry">Геометрия</param>
 /// <param name="base_point">Базовая точка</param>
 //---------------------------------------------------------------------------------------------------------
 public CCadSegment(CCadPrimitiveGeometry geometry, Vector2Df base_point)
 {
     mGeometry  = geometry;
     mBasePoint = base_point;
 }
 //---------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Конструктор инициализирует объект класса указанными параметрами
 /// </summary>
 /// <param name="geometry">Геометрия</param>
 //---------------------------------------------------------------------------------------------------------
 public CCadSegment(CCadPrimitiveGeometry geometry)
 {
     mGeometry = geometry;
 }