public static NurbsCurve ToNative(this SpeckleEllipse e) { Ellipse elp = new Ellipse(e.Plane.ToNative(), ( double )e.FirstRadius, ( double )e.SecondRadius); var myEllp = elp.ToNurbsCurve(); myEllp.UserDictionary.ReplaceContentsWith(e.Properties.ToNative()); return(myEllp); }
/// <summary> /// SpeckleEllipseto DS Ellipse /// </summary> /// <param name="e"></param> /// <returns></returns> public static Ellipse ToNative(this SpeckleEllipse e) { return(Ellipse.ByPlaneRadii( e.Plane.ToNative(), e.FirstRadius.Value, e.SecondRadius.Value )); }
public static SpeckleObject ToSpeckle(this Curve curve) { var properties = curve.UserDictionary.ToSpeckle(); if (curve is PolyCurve) { return((( PolyCurve )curve).ToSpeckle()); } if (curve.IsArc()) { Arc getObj; curve.TryGetArc(out getObj); SpeckleArc myObject = getObj.ToSpeckle(); myObject.Properties = properties; return(myObject); } if (curve.IsCircle()) { Circle getObj; curve.TryGetCircle(out getObj); SpeckleCircle myObject = getObj.ToSpeckle(); myObject.Properties = properties; return(myObject); } if (curve.IsEllipse()) { Ellipse getObj; curve.TryGetEllipse(out getObj); SpeckleEllipse myObject = getObj.ToSpeckle(); myObject.Properties = properties; return(myObject); } if (curve.IsLinear() || curve.IsPolyline()) // defaults to polyline { Polyline getObj; curve.TryGetPolyline(out getObj); SpecklePolyline myObject = getObj.ToSpeckle(); myObject.Properties = properties; return(myObject); } Polyline poly; curve.ToPolyline(0, 1, 0, 0, 0, 0.1, 0, 0, true).TryGetPolyline(out poly); SpeckleCurve myCurve = new SpeckleCurve(poly.ToSpeckle(), properties: curve.UserDictionary.ToSpeckle()); NurbsCurve nurbsCurve = curve.ToNurbsCurve(); myCurve.Weights = nurbsCurve.Points.Select(ctp => ctp.Weight).ToArray(); myCurve.Points = nurbsCurve.Points.Select(ctp => ctp.Location).ToFlatArray(); myCurve.Knots = nurbsCurve.Knots.ToArray(); myCurve.Degree = nurbsCurve.Degree; myCurve.Periodic = nurbsCurve.IsPeriodic; myCurve.Rational = nurbsCurve.IsRational; myCurve.Domain = nurbsCurve.Domain.ToSpeckle(); myCurve.Properties = properties; return(myCurve); }
/// <summary> /// SpeckleEllipse to DS Ellipse /// </summary> /// <param name="e"></param> /// <returns></returns> public static Ellipse ToNative(this SpeckleEllipse e) { var ellipse = Ellipse.ByPlaneRadii( e.Plane.ToNative(), e.FirstRadius.Value, e.SecondRadius.Value ); return(ellipse.SetSpeckleProperties <Ellipse>(e.Properties)); }
public static NurbsCurve ToNative(this SpeckleEllipse e) { Ellipse elp = new Ellipse(e.Plane.ToNative(), ( double )e.FirstRadius, ( double )e.SecondRadius); var myEllp = NurbsCurve.CreateFromEllipse(elp); var shit = myEllp.IsEllipse(Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance); if (e.Domain != null) { myEllp.Domain = e.Domain.ToNative(); } myEllp.UserDictionary.ReplaceContentsWith(e.Properties.ToNative()); return(myEllp); }
// Curve public static SpeckleObject ToSpeckle(this NurbsCurve curve) { var properties = curve.UserDictionary.ToSpeckle(root: curve); if (curve.IsArc(Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance)) { Arc getObj; curve.TryGetArc(out getObj); SpeckleArc myObject = getObj.ToSpeckle(); myObject.Properties = properties; myObject.GenerateHash(); return(myObject); } if (curve.IsCircle(Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance)) { Circle getObj; curve.TryGetCircle(out getObj); SpeckleCircle myObject = getObj.ToSpeckle(); myObject.Properties = properties; myObject.GenerateHash(); return(myObject); } if (curve.IsEllipse(Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance)) { Ellipse getObj; curve.TryGetEllipse(out getObj); SpeckleEllipse myObject = getObj.ToSpeckle(); myObject.Properties = properties; myObject.GenerateHash(); return(myObject); } if (curve.IsLinear(Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance) || curve.IsPolyline()) // defaults to polyline { Polyline getObj; curve.TryGetPolyline(out getObj); SpeckleObject myObject = getObj.ToSpeckle(); myObject.Properties = properties; myObject.GenerateHash(); return(myObject); } Polyline poly; curve.ToPolyline(0, 1, 0, 0, 0, 0.1, 0, 0, true).TryGetPolyline(out poly); SpecklePolyline displayValue; if (poly.Count == 2) { displayValue = new SpecklePolyline(); displayValue.Value = new List <double> { poly[0].X, poly[0].Y, poly[0].Z, poly[1].X, poly[1].Y, poly[1].Z }; displayValue.GenerateHash(); } else { displayValue = poly.ToSpeckle() as SpecklePolyline; } SpeckleCurve myCurve = new SpeckleCurve(displayValue); NurbsCurve nurbsCurve = curve.ToNurbsCurve(); myCurve.Weights = nurbsCurve.Points.Select(ctp => ctp.Weight).ToList(); myCurve.Points = nurbsCurve.Points.Select(ctp => ctp.Location).ToFlatArray().ToList(); myCurve.Knots = nurbsCurve.Knots.ToList(); myCurve.Degree = nurbsCurve.Degree; myCurve.Periodic = nurbsCurve.IsPeriodic; myCurve.Rational = nurbsCurve.IsRational; myCurve.Domain = nurbsCurve.Domain.ToSpeckle(); myCurve.Closed = nurbsCurve.IsClosed; myCurve.Properties = properties; myCurve.GenerateHash(); return(myCurve); }
//needs plane definition //public static Circle ToNative(this SpeckleCircle sCirc) //{ // var normal = sCirc.Normal.ToVector3(); // var center = sCirc.Center.ToVector3(); // // //var yAxis = new Vec // // var plane = new Plane(normal, center); // // return new Circle(sCirc.Center.ToVector3,plane.) // //} public static Ellipse ToVerb(this SpeckleEllipse sEllipse) { var plane = sEllipse.Plane; return(new Ellipse(plane.Origin.ToVector3(), plane.Xdir.ToVector3(), plane.Ydir.ToVector3())); }