public void Setup(int deg, int divCnt, bool edge = true, bool close = false) { Nurbs = new NurbsLine(deg, mPointList.Count, divCnt, edge, close); Nurbs.CtrlPoints = mPointList; Nurbs.SetupDefaultCtrlOrder(); NurbsPointList = new VertexList(Nurbs.OutCnt); }
public NurbsLine Restore() { NurbsLine nurbs = new NurbsLine(); nurbs.CtrlCnt = CtrlCnt; nurbs.CtrlDataCnt = CtrlDataCnt; nurbs.Weights = MpUtil_v1001.ArrayClone <double>(Weights); nurbs.CtrlPoints = MpUtil_v1001.VertexListFromMp(CtrlPoints); nurbs.CtrlOrder = MpUtil_v1001.ArrayClone <int>(CtrlOrder); nurbs.BSplineP = BSplineP.Restore(); return(nurbs); }
public static MpNurbsLine_v1001 Create(NurbsLine src) { MpNurbsLine_v1001 ret = new MpNurbsLine_v1001(); ret.CtrlCnt = src.CtrlCnt; ret.CtrlDataCnt = src.CtrlDataCnt; ret.Weights = MpUtil_v1001.ArrayClone <double>(src.Weights); ret.CtrlPoints = MpUtil_v1001.VertexListToMp(src.CtrlPoints); ret.CtrlOrder = MpUtil_v1001.ArrayClone <int>(src.CtrlOrder); ret.BSplineP = MpBSplineParam_v1001.Create(src.BSplineP); return(ret); }
public override void GeometricDataFromMp_v1002(MpGeometricData_v1002 geo) { if (!(geo is MpNurbsLineGeometricData_v1002)) { return; } MpNurbsLineGeometricData_v1002 g = (MpNurbsLineGeometricData_v1002)geo; Nurbs = g.Nurbs.Restore(); mPointList = Nurbs.CtrlPoints; NurbsPointList = new VertexList(Nurbs.OutCnt); }