Example #1
0
 public override string ToString()
 {
     return
         (StartPosition.ToString() +
          StartTangent.ToString() +
          EndPosition.ToString() +
          EndTangent.ToString());
 }
Example #2
0
 public override void ToX(XElement xe)
 {
     xe.Add(new XAttribute("Periodic", Periodic));
     xe.Add(new XAttribute("HasFitPoints", HasFitPoints));
     xe.Add(NurbsData.ToX());
     if (HasFitPoints)
     {
         var e = new XElement("FitPoints",
                              new XAttribute("TangentsExist", TangentsExist));
         xe.Add(e);
         if (TangentsExist)
         {
             e.Add(new XAttribute("Start", StartTangent.ToString()));
             e.Add(new XAttribute("End", EndTangent.ToString()));
         }
         foreach (var pt in FitPoints)
         {
             e.Add(pt.ToX("Point"));
         }
     }
     MakeLayer(xe);
 }
Example #3
0
            internal override bool TrySetPair(DxfCodePair pair)
            {
                switch (pair.Code)
                {
                case 94:
                    Degree = pair.IntegerValue;
                    break;

                case 73:
                    IsRational = BoolShort(pair.ShortValue);
                    break;

                case 74:
                    IsPeriodic = BoolShort(pair.ShortValue);
                    break;

                case 95:
                    var _knotCount = pair.IntegerValue;
                    break;

                case 96:
                    var _controlPointCount = pair.IntegerValue;
                    break;

                case 40:
                    Knots.Add(pair.DoubleValue);
                    break;

                case 10:
                    ControlPoints.Add(new DxfControlPoint(new DxfPoint(pair.DoubleValue, 0.0, 0.0)));
                    break;

                case 20:
                    ControlPoints[ControlPoints.Count - 1] = new DxfControlPoint(ControlPoints[ControlPoints.Count - 1].Point.WithUpdatedY(pair.DoubleValue));
                    break;

                case 42:
                    ControlPoints[_currentWeight] = new DxfControlPoint(ControlPoints[_currentWeight].Point, pair.DoubleValue);
                    _currentWeight++;
                    break;

                case 97:
                    var _fitPointCount = pair.IntegerValue;
                    break;

                case 11:
                    FitPoints.Add(new DxfPoint(pair.DoubleValue, 0.0, 0.0));
                    break;

                case 21:
                    FitPoints[FitPoints.Count - 1] = FitPoints[FitPoints.Count - 1].WithUpdatedY(pair.DoubleValue);
                    break;

                case 12:
                    StartTangent = StartTangent.WithUpdatedX(pair.DoubleValue);
                    break;

                case 22:
                    StartTangent = StartTangent.WithUpdatedY(pair.DoubleValue);
                    break;

                case 13:
                    EndTangent = EndTangent.WithUpdatedX(pair.DoubleValue);
                    break;

                case 23:
                    EndTangent = EndTangent.WithUpdatedY(pair.DoubleValue);
                    break;

                default:
                    return(false);
                }

                return(true);
            }