Наследование: IfcBoundedSurface
Пример #1
0
		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;
		}
Пример #2
0
		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;
		}
Пример #3
0
		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++]);
		}
Пример #4
0
 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;
 }