public BezierPatchForeignEdge(ForeignShell parent, ControlPoint[] points, int index) : base(parent) { Debug.Assert(points != null); NurbsData data = new NurbsData(4, false, false, new Knot[] { new Knot(0, 4), new Knot(1, 4) }); nurbsCurve = NurbsCurve.CreateFromControlPoints(data, points); this.index = index; }
public BezierPatchForeignFace(ForeignShell parent, ControlPoint[,] vertices) : base(parent) { Debug.Assert(vertices != null); this.vertices = vertices; NurbsData dataU = new NurbsData(4, false, false, new Knot[] { new Knot(0, 4), new Knot(1, 4) }); NurbsData dataV = new NurbsData(4, false, false, new Knot[] { new Knot(0, 4), new Knot(1, 4) }); surface = NurbsSurface.Create(dataU, dataV, vertices); }
private Point GetFivePointNurbsAverage(int[,] indices) { var knots = new Knot[] { new Knot(0, 4), new Knot(1, 4) }; var controlPoints = new ControlPoint[] { new ControlPoint(Point.Create(tabAngles[indices[0, 0]][indices[0, 1]], GetSpanAt(indices[0, 0], indices[0, 1]), 0), 1), new ControlPoint(Point.Create(tabAngles[indices[1, 0]][indices[1, 1]], GetSpanAt(indices[1, 0], indices[1, 1]), 0), 1), new ControlPoint(Point.Create(tabAngles[indices[2, 0]][indices[2, 1]], GetSpanAt(indices[2, 0], indices[2, 1]), 0), 1), new ControlPoint(Point.Create(tabAngles[indices[3, 0]][indices[3, 1]], GetSpanAt(indices[3, 0], indices[3, 1]), 0), 1), new ControlPoint(Point.Create(tabAngles[indices[4, 0]][indices[4, 1]], GetSpanAt(indices[4, 0], indices[4, 1]), 0), 1) }; NurbsData data = new NurbsData(5, false, false, knots); NurbsCurve curve = NurbsCurve.CreateFromControlPoints(data, controlPoints); Point midpoint = curve.Evaluate(0.5).Point; return(midpoint); }
private Point GetFivePointNurbsAverage(int[,] indices) { var knots = new Knot[] { new Knot(0, 4), new Knot(1, 4) }; var controlPoints = new ControlPoint[] { new ControlPoint(Point.Create(tabAngles[indices[0,0]][indices[0,1]], GetSpanAt(indices[0,0], indices[0,1]),0), 1), new ControlPoint(Point.Create(tabAngles[indices[1,0]][indices[1,1]], GetSpanAt(indices[1,0], indices[1,1]),0), 1), new ControlPoint(Point.Create(tabAngles[indices[2,0]][indices[2,1]], GetSpanAt(indices[2,0], indices[2,1]),0), 1), new ControlPoint(Point.Create(tabAngles[indices[3,0]][indices[3,1]], GetSpanAt(indices[3,0], indices[3,1]),0), 1), new ControlPoint(Point.Create(tabAngles[indices[4,0]][indices[4,1]], GetSpanAt(indices[4,0], indices[4,1]),0), 1) }; NurbsData data = new NurbsData(5, false, false, knots); NurbsCurve curve = NurbsCurve.CreateFromControlPoints(data, controlPoints); Point midpoint = curve.Evaluate(0.5).Point; return midpoint; }