updateSG(ObjectId idPoly3dSLP) { Polyline3d poly3d = (Polyline3d)idPoly3dSLP.getEnt(); ResultBuffer rbLnkBrks = idPoly3dSLP.getXData(apps.lnkBrks); if (rbLnkBrks == null) { return; } TypedValue[] tvs = rbLnkBrks.AsArray(); List <ObjectId> idsCgPNts = tvs.getObjectIdList(); poly3d.setBegPnt(idsCgPNts[0].getCogoPntCoordinates()); poly3d.setEndPnt(idsCgPNts[1].getCogoPntCoordinates()); poly3d.deleteVertices(idsCgPNts); ResultBuffer rbSLP = idPoly3dSLP.getXData(apps.lnkSLP); if (rbSLP == null) { return; } tvs = rbSLP.AsArray(); tvs.deleteLinkedEnts(); double B1Width = double.Parse(tvs[1].Value.ToString()); double B1Slope = double.Parse(tvs[2].Value.ToString()); double B2Width = double.Parse(tvs[4].Value.ToString()); double B2Slope = double.Parse(tvs[5].Value.ToString()); double slope = double.Parse(tvs[7].Value.ToString()); int side = int.Parse(tvs[8].Value.ToString()); int interval = int.Parse(tvs[9].Value.ToString()); string surfTAR = tvs[11].Value.ToString(); string surfDES = tvs[12].Value.ToString(); Grading.Cmds.cmdSG.SG(B1Width, B1Slope, B2Width, B2Slope, slope, interval, surfTAR, surfDES, side, poly3d: poly3d); }
checkPointXData2Nodes(ObjectId idCogoPnt, ResultBuffer RBpnt, string nameApp) { try { List <Handle> handlesP3d = RBpnt.rb_handles(); int i = 0; foreach (Handle hP3d in handlesP3d) { Polyline3d poly3d = (Polyline3d)Db.handleToObject(hP3d.ToString()); if ((poly3d != null)) { if (poly3d.Length != 0) { ResultBuffer RBp3d = poly3d.ObjectId.getXData(nameApp); List <Handle> handlesPnts = RBp3d.rb_handles(); Handle hPnt = idCogoPnt.getHandle(); Point3dCollection pnts3d = poly3d.getCoordinates3d(); Point3d pnt3dCogoPnt = hPnt.getCogoPntCoordinates(); if (System.Math.Round(pnts3d[0].X, 3) == System.Math.Round(pnt3dCogoPnt.X, 3) && System.Math.Round(pnts3d[0].Y, 3) == System.Math.Round(pnt3dCogoPnt.Y, 3)) { if (pnts3d[0].Z != pnt3dCogoPnt.Z) { poly3d.setBegPnt(pnt3dCogoPnt); } if (!handlesPnts.Contains(hPnt)) { handlesPnts.Add(hPnt); poly3d.ObjectId.setXData(handlesPnts, nameApp); } } else if (System.Math.Round(pnts3d[1].X, 3) == System.Math.Round(pnt3dCogoPnt.X, 3) && System.Math.Round(pnts3d[1].Y, 3) == System.Math.Round(pnt3dCogoPnt.Y, 3)) { if (pnts3d[1].Z != pnt3dCogoPnt.Z) { poly3d.setEndPnt(pnt3dCogoPnt); } if (!handlesPnts.Contains(hPnt)) { handlesPnts.Add(hPnt); poly3d.ObjectId.setXData(handlesPnts, nameApp); } } else { poly3d.ObjectId.delete(); handlesP3d.RemoveAt(i); RBpnt = handlesP3d.handles_RB(nameApp); idCogoPnt.setXData(RBpnt.AsArray(), nameApp); } } else { poly3d.ObjectId.delete(); handlesP3d.RemoveAt(i); RBpnt = handlesP3d.handles_RB(nameApp); idCogoPnt.setXData(RBpnt.AsArray(), nameApp); } } else { handlesP3d.RemoveAt(i); RBpnt = handlesP3d.handles_RB(nameApp); idCogoPnt.setXData(RBpnt.AsArray(), nameApp); } i++; } } catch (System.Exception ex) { BaseObjs.writeDebug(ex.Message + " Grading_xData.cs: line: 70"); } return(RBpnt); }
checkPointXData2Nodes(ObjectId idCogoPnt, ResultBuffer RBpnt, string nameApp) { try { List <Handle> handlesP3d = RBpnt.rb_handles(); int i = 0; //Working with a list of unique non-zero handles foreach (Handle hP3d in handlesP3d) { //GET BREAKLINE PER STORED HANDLES Polyline3d poly3d = (Polyline3d)Db.handleToObject(hP3d.ToString()); if ((poly3d != null)) { if (poly3d.Length != 0) { ResultBuffer RBp3d = poly3d.ObjectId.getXData(nameApp); List <Handle> handlesPnts = RBp3d.rb_handles(); Handle hPnt = idCogoPnt.getHandle(); // if pnt handle is in poly3d handle list then check coordinates otherwise Point3dCollection pnts3d = poly3d.getCoordinates3d(); Point3d pnt3dCogoPnt = hPnt.getCogoPntCoordinates(); if (System.Math.Round(pnts3d[0].X, 3) == System.Math.Round(pnt3dCogoPnt.X, 3) && System.Math.Round(pnts3d[0].Y, 3) == System.Math.Round(pnt3dCogoPnt.Y, 3)) { if (pnts3d[0].Z != pnt3dCogoPnt.Z) { poly3d.setBegPnt(pnt3dCogoPnt); } if (!handlesPnts.Contains(hPnt)) { handlesPnts.Add(hPnt); poly3d.ObjectId.setXData(handlesPnts, nameApp); } } else if (System.Math.Round(pnts3d[1].X, 3) == System.Math.Round(pnt3dCogoPnt.X, 3) && System.Math.Round(pnts3d[1].Y, 3) == System.Math.Round(pnt3dCogoPnt.Y, 3)) { if (pnts3d[1].Z != pnt3dCogoPnt.Z) { poly3d.setEndPnt(pnt3dCogoPnt); } if (!handlesPnts.Contains(hPnt)) { handlesPnts.Add(hPnt); poly3d.ObjectId.setXData(handlesPnts, nameApp); } } else { poly3d.ObjectId.delete(); handlesP3d.RemoveAt(i); RBpnt = handlesP3d.handles_RB(nameApp); idCogoPnt.setXData(handlesP3d, nameApp); } } else { poly3d.ObjectId.delete(); handlesP3d.RemoveAt(i); RBpnt = handlesP3d.handles_RB(nameApp); idCogoPnt.setXData(handlesP3d, nameApp); } } else { //remove bad handle from list handlesP3d.RemoveAt(i); RBpnt = handlesP3d.handles_RB(nameApp); idCogoPnt.setXData(handlesP3d, nameApp); } i++; } } catch (System.Exception ex) { BaseObjs.writeDebug(ex.Message + " xData.cs: line: 145"); } return(RBpnt); }