public static AFTransform ByCSPoint(CSPoint pt) { return(new AFTransform(new double[3, 3] { { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } }, new double[3] { pt.X, pt.Y, pt.Z })); }
public override bool Equals(object obj) { CSPoint casted = obj as CSPoint; if (null == casted) { return(false); } return(this.Equals(casted)); }
public bool Equals(CSPoint cspt) { if (null == cspt) { return(false); } if (cspt.x == this.x && cspt.y == this.y && cspt.z == this.z) { return(true); } return(false); }
private List <List <CSPoint> > __DIA_genLayer( int xnum, int ynum, double xdis, double ydis, CSPoint offset) { List <List <CSPoint> > ret = new List <List <CSPoint> >(); foreach (int i in Enumerable.Range(0, xnum)) { List <CSPoint> xlayer = new List <CSPoint>(); foreach (int j in Enumerable.Range(0, ynum)) { xlayer.Add(new CSPoint(i * xdis, j * ydis) + offset); } ret.Add(xlayer); } return(ret); }
public void TransformPoints(double RX, double RY, double RateX = 0.3, double RateY = 0.3) { if (RateY < 0 || RateX < 0 || RateY > 1 || RateX > 1) { throw new System.ArgumentException("RateX and RateY must in interval [0, 1]"); } utils.multiLevelMap( x => { CSPoint cxpt = x as CSPoint; cxpt.TransformX(RX, RY, this.xnum * this.xdis * RateX, this.ynum * this.ydis * RateY); return(0); }, this.twoLayerPoints); return; }