Exemple #1
0
 /// <summary>
 /// DS Circle to SpeckleCircle.
 /// </summary>
 /// <param name="circ"></param>
 /// <returns></returns>
 public Circle CircleToSpeckle(DS.Circle circ)
 {
     using (DS.Vector xAxis = DS.Vector.ByTwoPoints(circ.CenterPoint, circ.StartPoint))
         using (DS.Plane plane = DS.Plane.ByOriginNormalXAxis(circ.CenterPoint, circ.Normal, xAxis))
         {
             var myCircle = new Circle(PlaneToSpeckle(plane), circ.Radius, ModelUnits);
             CopyProperties(myCircle, circ);
             return(myCircle);
         }
 }
        /// <summary>
        /// SpeckleCircle to DS Circle. Rotating the circle is due to a bug in ProtoGeometry
        /// that will be solved on Dynamo 2.1.
        /// </summary>
        /// <param name="circ"></param>
        /// <returns></returns>
        public DS.Circle CircleToNative(Circle circ)
        {
            using (DS.Plane basePlane = PlaneToNative(circ.plane))
                using (DS.Circle preCircle = DS.Circle.ByPlaneRadius(basePlane, ScaleToNative(circ.radius.Value, circ.units)))
                    using (DS.Vector preXvector = DS.Vector.ByTwoPoints(preCircle.CenterPoint, preCircle.StartPoint))
                    {
                        double angle  = preXvector.AngleAboutAxis(basePlane.XAxis, basePlane.Normal);
                        var    circle = (DS.Circle)preCircle.Rotate(basePlane, angle);

                        return(circle.SetDynamoProperties <DS.Circle>(GetDynamicMembersFromBase(circ)));
                    }
        }
        /// <summary>
        /// DS Circle to SpeckleCircle.
        /// </summary>
        /// <param name="circ"></param>
        /// <returns></returns>
        public Circle CircleToSpeckle(DS.Circle circ, string units = null)
        {
            var u = units ?? ModelUnits;

            using (DS.Vector xAxis = DS.Vector.ByTwoPoints(circ.CenterPoint, circ.StartPoint))
                using (DS.Plane plane = DS.Plane.ByOriginNormalXAxis(circ.CenterPoint, circ.Normal, xAxis))
                {
                    var myCircle = new Circle(PlaneToSpeckle(plane, u), circ.Radius, u);
                    CopyProperties(myCircle, circ);
                    myCircle.length = circ.Length;
                    myCircle.bbox   = BoxToSpeckle(circ.BoundingBox.ToCuboid(), u);
                    return(myCircle);
                }
        }
Exemple #4
0
        /// <summary>
        /// DS Arc to SpeckleArc
        /// </summary>
        /// <param name="a"></param>
        /// <returns></returns>
        public Arc ArcToSpeckle(DS.Arc a)
        {
            using (DS.Vector xAxis = DS.Vector.ByTwoPoints(a.CenterPoint, a.StartPoint))
                using (DS.Plane basePlane = DS.Plane.ByOriginNormalXAxis(a.CenterPoint, a.Normal, xAxis))
                {
                    var arc = new Arc(
                        PlaneToSpeckle(basePlane),
                        a.Radius,
                        0, // This becomes 0 as arcs are interpreted to start from the plane's X axis.
                        a.SweepAngle.ToRadians(),
                        a.SweepAngle.ToRadians(),
                        ModelUnits
                        );

                    CopyProperties(arc, a);

                    return(arc);
                }
        }
        /// <summary>
        /// DS Arc to SpeckleArc
        /// </summary>
        /// <param name="a"></param>
        /// <returns></returns>
        public Arc ArcToSpeckle(DS.Arc a, string units = null)
        {
            var u = units ?? ModelUnits;

            using (DS.Vector xAxis = DS.Vector.ByTwoPoints(a.CenterPoint, a.StartPoint))
                using (DS.Plane basePlane = DS.Plane.ByOriginNormalXAxis(a.CenterPoint, a.Normal, xAxis))
                {
                    var arc = new Arc(
                        PlaneToSpeckle(basePlane, u),
                        a.Radius,
                        0, // This becomes 0 as arcs are interpreted to start from the plane's X axis.
                        a.SweepAngle.ToRadians(),
                        a.SweepAngle.ToRadians(),
                        u
                        );

                    CopyProperties(arc, a);
                    arc.length = a.Length;
                    arc.bbox   = BoxToSpeckle(a.BoundingBox.ToCuboid(), u);
                    return(arc);
                }
        }
 /// <summary>
 /// DS Vector to Vector
 /// </summary>
 /// <param name="vc"></param>
 /// <returns></returns>
 public Vector VectorToSpeckle(DS.Vector vc, string units = null)
 {
     return(new Vector(vc.X, vc.Y, vc.Z, units ?? ModelUnits));
 }
Exemple #7
0
 /// <summary>
 /// DS Vector to Vector
 /// </summary>
 /// <param name="vc"></param>
 /// <returns></returns>
 public Vector VectorToSpeckle(DS.Vector vc)
 {
     return(new Vector(vc.X, vc.Y, vc.Z, ModelUnits));
 }