public static ArcCurve ToNative(this SpeckleArc a) { Arc arc = new Arc(a.Plane.ToNative(), ( double )a.Radius, ( double )a.AngleRadians); var myArc = new ArcCurve(arc); myArc.UserDictionary.ReplaceContentsWith(a.Properties.ToNative()); return(myArc); }
// Gh Capture public static SpeckleArc ToSpeckle(this Arc a) { SpeckleArc arc = new SpeckleArc(a.Plane.ToSpeckle(), a.Radius, a.StartAngle, a.EndAngle, a.Angle); arc.EndPoint = a.EndPoint.ToSpeckle(); arc.StartPoint = a.StartPoint.ToSpeckle(); arc.MidPoint = a.MidPoint.ToSpeckle(); return(arc); }
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); }
public static SpeckleArc ToSpeckleArc(this ArcPayload payload) { var arc = new SpeckleArc( payload.Plane.ToSpecklePlane(), payload.Radius, payload.StartAngle, payload.EndAngle, payload.AngleRadians); return(arc); }
/// <summary> /// SpeckleArc to DS Arc /// </summary> /// <param name="a"></param> /// <returns></returns> public static Arc ToNative(this SpeckleArc a) { Arc arc = Arc.ByCenterPointRadiusAngle( a.Plane.Origin.ToNative(), a.Radius.Value, a.StartAngle.Value.ToDegrees(), a.EndAngle.Value.ToDegrees(), a.Plane.Normal.ToNative() ); return(arc); }
/// <summary> /// DS Arc to SpeckleArc /// </summary> /// <param name="a"></param> /// <returns></returns> public static SpeckleArc ToSpeckle(this Arc a) { SpeckleArc arc = new SpeckleArc( Plane.ByOriginNormal(a.CenterPoint, a.Normal).ToSpeckle(), a.Radius, a.StartAngle.ToRadians(), (a.StartAngle + a.SweepAngle).ToRadians(), a.SweepAngle.ToRadians() ); return(arc); }
/// <summary> /// SpeckleArc to DS Arc /// </summary> /// <param name="a"></param> /// <returns></returns> public static Arc ToNative(this SpeckleArc a) { using (Plane basePlane = a.Plane.ToNative()) using (Point startPoint = (Point)basePlane.Origin.Translate(basePlane.XAxis, a.Radius.Value)) { var arc = Arc.ByCenterPointStartPointSweepAngle( basePlane.Origin, startPoint, a.AngleRadians.Value.ToDegrees(), basePlane.Normal ); return(arc.SetSpeckleProperties <Arc>(a.Properties)); } }
public static ArcCurve ToNative(this SpeckleArc a) { Arc arc = new Arc(a.Plane.ToNative(), ( double )a.Radius, ( double )a.AngleRadians); arc.StartAngle = ( double )a.StartAngle; arc.EndAngle = ( double )a.EndAngle; var myArc = new ArcCurve(arc); if (a.Domain != null) { myArc.Domain = a.Domain.ToNative(); } myArc.UserDictionary.ReplaceContentsWith(a.Properties.ToNative()); return(myArc); }
// Arc // Rh Capture can be a circle OR an arc, because f**k you public static SpeckleObject ToSpeckle(this ArcCurve a) { if (a.IsClosed) { Circle preCircle; a.TryGetCircle(out preCircle); SpeckleCircle myCircle = preCircle.ToSpeckle(); myCircle.Properties = a.UserDictionary.ToSpeckle(); return(myCircle); } else { Arc preArc; a.TryGetArc(out preArc); SpeckleArc myArc = preArc.ToSpeckle(); myArc.Properties = a.UserDictionary.ToSpeckle(); return(myArc); } }
// 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); }
//verb functions public static Arc ToVerb(this SpeckleArc sArc) { var plane = sArc.Plane; return(new Arc(plane.Origin.ToVector3(), plane.Xdir.ToVector3(), plane.Ydir.ToVector3(), (float)sArc.Radius, (float)sArc.StartAngle, (float)sArc.EndAngle)); }
public static GameObject ToNative(this SpeckleArc curve) { var verb = curve.ToVerb(); return(CurveToObject(curve._id, verb)); }
static async Task TestObjects(SpeckleApiClient myClient) { var myPoint = new SpecklePoint() { Value = new List <double>() { 1, 2, 3 } }; var mySecondPoint = new SpecklePoint() { Value = new List <double>() { 23, 33, 12 } }; var myCircle = new SpeckleCircle() { Radius = 21 }; var myPlane = new SpecklePlane() { Origin = new SpecklePoint() { Value = new List <double>() { 12, 12, 12 } } }; var myArc = new SpeckleArc() { Radius = 2, AngleRadians = 2.1, EndAngle = 1, StartAngle = 0 }; myCircle.Properties = new Dictionary <string, object>(); myCircle.Properties.Add("a property", "Hello!"); myCircle.Properties.Add("point", myPoint); List <SpeckleObject> myList = new List <SpeckleObject>(); Console.WriteLine(); try { Console.WriteLine("Creating some objects."); var Response = await myClient.ObjectCreateAsync(new List <SpeckleObject>() { myPoint, myCircle, myArc, myPlane }); Console.WriteLine("OK: Saved " + Response.Resources.Count + " objects"); myList = Response.Resources; } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine(); try { Console.WriteLine("Updating an object"); var Response = await myClient.ObjectUpdateAsync(myList[1]._id, new SpeckleCircle() { Radius = 42 }); Console.WriteLine("OK: Saved " + Response.Message); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine(); try { Console.WriteLine("Updating an object's properties"); var Response = await myClient.ObjectUpdatePropertiesAsync(myList[1]._id, new { hello = "World", max = 3.14 }); Console.WriteLine("OK: Saved " + Response.Message); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine(); try { Console.WriteLine("Getting an object"); var Response = await myClient.ObjectGetAsync(myList[1]._id); Console.WriteLine("OK: Got " + Response.Resource.ToJson()); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine(); try { Console.WriteLine("Getting objects in bulk"); var Response = await myClient.ObjectGetBulkAsync(new string[] { myList[1]._id, myList[0]._id, myList[2]._id }, "fields=properties,radius"); Console.WriteLine("OK: Got " + Response.Resources.Count); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine(); try { Console.WriteLine("Deleting an object"); var Response = await myClient.ObjectDeleteAsync(myList[0]._id); Console.WriteLine("OK: Got " + Response.Message); } catch (Exception e) { Console.WriteLine(e.Message); } }