getBldgLimitsAVG(ObjectId idPoly, int intInterval) { double dblAngTar = 0; int intMark = 0; Point3d pnt3dBase0; Point3dCollection pnts3dPoly = idPoly.getCoordinates3d(); Point3dCollection pnts3dRot; using (BaseObjs._acadDoc.LockDocument()) { idPoly.getEastWestBaseLineDir(ref dblAngTar, ref intMark); pnt3dBase0 = pnts3dPoly[intMark]; pnts3dRot = UCsys.TranslateCoordinates(pnts3dPoly, pnt3dBase0, dblAngTar * -1); } List <double> deltas = UCsys.getObjectExtents(pnts3dRot); double dblPntXmin = deltas[0]; double dblPntYmin = deltas[1]; int iMax = 1 + (int)System.Math.Truncate(deltas[2] / intInterval); int jMax = 1 + (int)System.Math.Truncate(deltas[3] / intInterval); Point3d pnt3dBase = default(Point3d); Point3d pnt3dPolar = default(Point3d); double dblDY = intInterval; Point3dCollection pnts3dRotGrid = new Point3dCollection(); Point3dCollection pnts3dGrid = new Point3dCollection(); for (int j = 0; j <= jMax; j++) { double dblX = dblPntXmin - (iMax * intInterval - deltas[2]) / 2; double dblY = dblPntYmin + (j * dblDY) - (jMax * intInterval - deltas[3]) / 2; pnt3dBase = new Point3d(dblX, dblY, 0.0); for (int i = 0; i <= iMax; i++) { pnt3dPolar = Base_Tools45.Math.traverse(pnt3dBase, 0.0, i * intInterval); pnts3dRotGrid.Add(pnt3dPolar); } } pnts3dGrid = UCsys.TranslateCoordinates(pnts3dRotGrid, pnt3dBase0, dblAngTar); return(pnts3dGrid); }
getBldgLimitsEW(ObjectId idPoly) { Object obj = null; double dblAngTar = 0; int intMark = 0; Point3d pnt3dBase0; Point3dCollection pnts3dPoly = idPoly.getCoordinates3d(); Point3dCollection pnts3dRot; using (BaseObjs._acadDoc.LockDocument()) { idPoly.getEastWestBaseLineDir(ref dblAngTar, ref intMark); pnt3dBase0 = pnts3dPoly[intMark]; pnts3dRot = UCsys.TranslateCoordinates(pnts3dPoly, pnt3dBase0, dblAngTar * -1); } return(obj); }