ICartData ICartData.Translate(IVector3 vector3) { var cd = new CartData(this.FileName); foreach (var v in data) { cd.Add(v.Translate(vector3)); } return(cd); }
public CartData AsCartData() { var cartData = new DataLib.CartData(); foreach (var pt in this) { cartData.Add(new Vector3(pt.X, pt.Y, 0)); } return(cartData); }
public static BoundingBox GetBB(CartData data) { try { double maxX = double.MinValue; double minX = double.MaxValue; double maxY = double.MinValue; double minY = double.MaxValue; double maxZ = double.MinValue; double minZ = double.MaxValue; foreach (var pt in data) { double x = pt.X; if (x > maxX) { maxX = x; } if (x < minX) { minX = x; } double y = pt.Y; if (y > maxY) { maxY = y; } if (y < minY) { minY = y; } if (pt.Z > maxZ) { maxZ = pt.Z; } if (pt.Z < minZ) { minZ = pt.Z; } } var bb = new BoundingBox(minX, minY, minZ, maxX, maxY, maxZ); return(bb); } catch (Exception) { throw; } }
public ICartData Unroll(double scaling, double unrollRadius) { try { var strip = new CartData(FileName); for (int i = 0; i < Count; i++) { strip.Add(this[i].UnrollCylPt(scaling, unrollRadius)); } return(strip); } catch (Exception) { throw; } }
public static CartData ConvertToCartData(Vector2[] points, double z) { try { var cartdata = new CartData(""); foreach (Vector2 pt in points) { cartdata.Add(new Vector3(pt.X, pt.Y, z)); } return(cartdata); } catch (Exception) { throw; } }
static public CartData UnrollCylinderRing(CylData correctedRing, double scaling, double unrollRadius) { try { var strip = new CartData(correctedRing.FileName); foreach (var ptCyl in correctedRing) { strip.Add(UnrollCylPt(ptCyl, scaling, unrollRadius)); } return(strip); } catch (Exception) { throw; } }
public ICartData MirrorXAxis() { try { var cd = new CartData(); foreach (Vector3 pt in data) { cd.Add(new Vector3(pt.X, pt.Y * -1, pt.Z)); } return(cd); } catch (Exception) { throw; } }
public static CylData AsCylData(CartData cartData) { try { var strip = new CylData(cartData.FileName); var thetaStart = new PointCyl(cartData[0]).ThetaRad; foreach (var pt in cartData) { var ptCyl = new PointCyl(pt); strip.Add(ptCyl); } return(strip); } catch (Exception) { throw; } }
public ICartData AsCartData() { try { var cartData = new CartData(FileName); var pts = new List <IVector3>(); foreach (var pt in this) { var newPt = new Vector3(pt); pts.Add(newPt); } cartData.AddRange(pts); return(cartData); } catch (Exception) { throw; } }
static public CartData UnrollCylinderRing(CartData cartData, double scaling, double unrollRadius) { try { var strip = new CartData(cartData.FileName); var thetaStart = new PointCyl(cartData[0]).ThetaRad; double thetaoffset = Math.PI / 2.0; foreach (var pt in cartData) { var ptCyl = new PointCyl(pt); strip.Add(UnrollCylPt(ptCyl, thetaoffset, scaling, unrollRadius)); } return(strip); } catch (Exception) { throw; } }
/// <summary> /// convert cylinder grid to cartesian grid /// </summary> /// <param name="correctedRingList"></param> /// <returns></returns> public CartGridData AsCartGridData() { try { var stripList = new CartGridData(); foreach (var cylstrip in this) { var strip = new CartData(cylstrip.FileName); foreach (var ptCyl in cylstrip) { strip.Add(new Vector3(ptCyl)); } stripList.Add(strip); } return(stripList); } catch (Exception) { throw; } }
public CartData CenterToMidpoint() { int midCount = (int)Math.Round(this.Count / 2.0); var minMax = GetMinMaxY(); var midYData = (minMax.Item1 + minMax.Item2) / 2.0; double x1 = 0; for (int i = 1; i < midCount; i++) { if ((this[i - 1].Y <midYData && this[i].Y> midYData) || (this[i - 1].Y > midYData && this[i].Y < midYData)) { x1 = (this[i - 1].X + this[i].X) / 2.0; break; } } double x2 = 0; for (int i = midCount; i < this.Count; i++) { if ((this[i - 1].Y <midYData && this[i].Y> midYData) || (this[i - 1].Y > midYData && this[i].Y < midYData)) { x2 = (this[i - 1].X + this[i].X) / 2.0; break; } } double midX = (x1 + x2) / 2.0; CartData transData = new CartData(FileName); foreach (Vector3 pt in this) { transData.Add(new Vector3(pt.X - midX, pt.Y, pt.Z)); } return(transData); }
public void RotateDataToLine(IVector3 pt1, IVector3 pt2) { try { var _dataRotationRad = GetDataRotation(pt1, pt2); var origin = new Vector3(0, 0, 0); var rotStart = pt1.RotateZ(origin, -1 * _dataRotationRad); var rotEnd = pt2.RotateZ(origin, -1 * _dataRotationRad); var vTrans = new Vector3(0, -1 * rotEnd.Y, 0); var rotData = new CartData(); foreach (IVector3 pt in data) { var ptRot = pt.RotateZ(origin, -1 * _dataRotationRad); var ptTrans = ptRot.Translate(vTrans); rotData.Add(ptTrans); } data.Clear(); data.AddRange(rotData); } catch (Exception) { throw; } }
public CartDataEnumerator(CartData collection) { _collection = collection; curIndex = -1; currentItem = default; }