protected IfcBSplineSurface(DatabaseIfc db, IfcBSplineSurface s, DuplicateOptions options) : base(db, s, options) { mUDegree = s.mUDegree; mVDegree = s.mVDegree; foreach(LIST<IfcCartesianPoint> ps in s.ControlPointsList) mControlPointsList.Add(new LIST<IfcCartesianPoint>(ps.ConvertAll(x=>db.Factory.Duplicate(x) as IfcCartesianPoint))); mSurfaceForm = s.mSurfaceForm; mUClosed = s.mUClosed; mVClosed = s.mVClosed; mSelfIntersect = s.mSelfIntersect; }
protected IfcBSplineSurface(IfcBSplineSurface pl) : base(pl) { mUDegree = pl.mUDegree; mVDegree = pl.mVDegree; for (int icounter = 0; icounter < pl.mControlPointsList.Count; icounter++) mControlPointsList.Add(new List<int>(pl.mControlPointsList[icounter].ToArray())); mSurfaceForm = pl.mSurfaceForm; mUClosed = pl.mUClosed; mVClosed = pl.mVClosed; mSelfIntersect = pl.mSelfIntersect; }
protected static void parseFields(IfcBSplineSurface bs, List<string> arrFields, ref int ipos) { IfcBoundedSurface.parseFields(bs, arrFields, ref ipos); bs.mUDegree = int.Parse(arrFields[ipos++]); bs.mVDegree = int.Parse(arrFields[ipos++]); string s = arrFields[ipos++]; List<string> arrLists = ParserSTEP.SplitLineFields(s.Substring(1, s.Length - 2)); int ilast = arrLists.Count; for (int icounter = 0; icounter < ilast; icounter++) { List<int> points = new List<int>(); s = arrLists[icounter]; List<string> arrPoints = ParserSTEP.SplitLineFields(s.Substring(1, s.Length - 2)); for (int jcounter = 0; jcounter < arrPoints.Count; jcounter++) points.Add(ParserSTEP.ParseLink(arrPoints[jcounter])); bs.mControlPointsList.Add(points); } bs.mSurfaceForm = (IfcBSplineSurfaceForm)Enum.Parse(typeof(IfcBSplineSurfaceForm), arrFields[ipos++].Replace(".", "")); bs.mUClosed = ParserIfc.ParseIFCLogical(arrFields[ipos++]); bs.mVClosed = ParserIfc.ParseIFCLogical(arrFields[ipos++]); bs.mSelfIntersect = ParserIfc.ParseIFCLogical(arrFields[ipos++]); }
protected IfcBSplineSurface(DatabaseIfc db, IfcBSplineSurface s) : base(db,s) { mUDegree = s.mUDegree; mVDegree = s.mVDegree; List<List<IfcCartesianPoint>> points = s.ControlPointsList; foreach(List<IfcCartesianPoint> ps in points) mControlPointsList.Add(ps.ConvertAll(x=>db.Factory.Duplicate(x).mIndex)); mSurfaceForm = s.mSurfaceForm; mUClosed = s.mUClosed; mVClosed = s.mVClosed; mSelfIntersect = s.mSelfIntersect; }