/***************************************************/ public static BoundingBox Calculate(NurbCurveB curve) { double[] points = curve.ControlPoints; int[] minMax = BHG.CollectionUtils.MaxMinIndices(points, 3); return(new BoundingBox( new Point(points[minMax[0]], points[minMax[1]], points[minMax[2]]), new Point(points[minMax[3]], points[minMax[4]], points[minMax[5]]) )); }
/***************************************************/ static void ChangeCurveLength(int nbPts) { Random rnd = new Random(); List <Point> points = new List <Point>(); for (int i = 0; i < nbPts; i++) { points.Add(new Point(rnd.NextDouble(), rnd.NextDouble(), rnd.NextDouble())); } newControlPoints = points; newNurbsCurve = new NurbCurve(points); newNurbsCurveB = new NurbCurveB(points); oldControlPoints = points.Select(pt => new BHG.Point(pt.X, pt.Y, pt.Z)).ToList(); oldNurbsWeights = newNurbsCurve.Weights.ToArray(); oldNurbsKnots = newNurbsCurve.Knots.ToArray(); oldNurbsCurve = new BHG.NurbCurve(oldControlPoints, 3, oldNurbsKnots, oldNurbsWeights); }