/// <summary> /// 绘制边坡(需要用边坡模型) /// </summary> /// <param name="sgworld"></param> public void Draw(ref SGWorld66 sgworld, IObjData dataObj, double xOffset = 0.0, double yOffset = 0.0) { string signIsInTerrain = IsLoggingObjInTerrain(ref sgworld) ? "" : "【地图以外】"; //绘制孔口:暂时用小圆点替代钻孔口模型 double radius = 10; var Style = SphereStyle.SPHERE_NORMAL; var nLineColor = 0xFF00FF00; var nFillColor = 0xFF646464; var SegmentDensity = -1; string gid = CreateGroup("边坡", ref sgworld); sgworld.ProjectTree.ExpandGroup(gid, true); // 在地面创建边坡中心点的坐标 double centerX = (dataObj.Points.GetPoint(0).X + dataObj.Points.GetPoint(1).X + dataObj.Points.GetPoint(2).X) / 3; double centerY = (dataObj.Points.GetPoint(0).Y + dataObj.Points.GetPoint(1).Y + dataObj.Points.GetPoint(2).Y) / 3; IPosition66 cPos = sgworld.Creator.CreatePosition( centerX, centerY, 0, AltitudeTypeCode.ATC_TERRAIN_RELATIVE); // 创建标记物 SkylineMouthObj = sgworld.Creator.CreateSphere( cPos, radius, Style, nLineColor, nFillColor, SegmentDensity, gid, Name + signIsInTerrain); //绘制孔身 //var arrVertices = new double[] //{ // Top.X, Top.Y, Top.Z, // Bottom.X, Bottom.Y, Bottom.Z //}; //var lineColor = sgworld.Creator.CreateColor(255, 0, 0, 128); //SkylineBodyObj = sgworld.Creator.CreatePolylineFromArray(arrVertices, lineColor, AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, // sgworld.ProjectTree.HiddenGroupID, Name); //绘制文字标签 var cLabelStyle = sgworld.Creator.CreateLabelStyle(); cLabelStyle.MultilineJustification = "Center"; cLabelStyle.LineColor = sgworld.Creator.CreateColor(0, 0, 0, 255); cLabelStyle.TextColor = sgworld.Creator.CreateColor(0, 0, 0, 0); cLabelStyle.TextAlignment = "Bottom, Center"; SkylineLabelObj = sgworld.Creator.CreateTextLabel(cPos, Name, cLabelStyle, sgworld.ProjectTree.HiddenGroupID, Name); RecordLabelSkyId(); }
public LoggingWell(IObjData dataObj, ref SGWorld66 sgworld, double xOffset = 0.0, double yOffset = 0.0) : base(dataObj, ref sgworld) { Type = LoggingType.Well; Draw(ref sgworld, xOffset, yOffset); }
public LoggingPit(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld) { Type = LoggingType.Pit; Draw(ref sgworld); }
public LoggingWell(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld) { Type = LoggingType.Well; Draw(ref sgworld); }
public LoggingSpot(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld) { if (isValidate == true) { Type = LoggingType.Spot; Draw(ref sgworld); } }
} = new List <IGPoint>(); //平硐控制点 public LoggingFootrill(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld) { Type = LoggingType.Footrill; //控制点 for (var index = 0; index < dataObj.Points.Count; index++) { var thisPoint = dataObj.Points.GetPoint(index); Links.Add(thisPoint); } Draw(ref sgworld); }
} = new List <IGPoint>(); //控制点 public LoggingTrench(IObjData dataObj, ref SGWorld66 sgworld, double xOffset = 0.0, double yOffset = 0.0) : base(dataObj, ref sgworld) { Type = LoggingType.Trench; //控制点 for (var index = 0; index < dataObj.Points.Count; index++) { var thisPoint = dataObj.Points.GetPoint(index); Links.Add(thisPoint); } Draw(ref sgworld, xOffset, yOffset); }
public LoggingFoundation(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld) { Type = LoggingType.Foundation; Draw(ref sgworld); }
public LoggingBore(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld) { Type = LoggingType.Bore; Draw(ref sgworld); }
/* * public static Hashtable Bores = new Hashtable(); * public static Hashtable Footrills = new Hashtable(); * public static Hashtable Pits = new Hashtable(); * public static Hashtable Wells = new Hashtable(); * public static Hashtable Trenches = new Hashtable(); * public static Hashtable Spots = new Hashtable(); */ public LoggingObject(IObjData dataObj, ref SGWorld66 sgworld, double xOffset = 0.0, double yOffset = 0.0) { _dataObj = dataObj; if (dataObj.Points != null && dataObj.Points.Count > 0) { Top = dataObj.Points.GetPoint(0); var last = dataObj.Points.Count - 1; Bottom = dataObj.Points.GetPoint(last); } else { MessageBox.Show($"类型:{dataObj.Type} 编号:{dataObj.BH} 数据无效或格式错误,请到数据库后台校验", @"数据导入错误"); isValidate = false; return; } Markers01 = dataObj.MarkersNO1; Markers02 = dataObj.MarkersNO2; Markers03 = dataObj.MarkersNO3; /* * for (var index = 0; index < dataObj.MarkersNO1.Count; index++) * { * var thisMarker = dataObj.MarkersNO1.GetMarker(index); * switch (thisMarker.Type) * { * case "控制点": * KZD_Markers.Add(thisMarker); * break; * * case "地层岩性": * DC_Markers.Add(thisMarker); * break; * * case "构造分段": * GZ_Markers.Add(thisMarker); * break; * case "结构面": * JGM_Markers.Add(thisMarker); * break; * * case "风化": * FH_Markers.Add(thisMarker); * break; * * case "卸荷": * XH_Markers.Add(thisMarker); * break; * * case "地下水分段": * DXS_Markers.Add(thisMarker); * break; * * case "试验点": * SYD_Markers.Add(thisMarker); * break; * * //case "构造带": * // GZD_Markers.Add(thisMarker); * // break; * } * } */ DictOfLoggingObjects.Add(Guid, this); }
public LoggingSlope(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld) { }
/* * public static Hashtable Bores = new Hashtable(); * public static Hashtable Footrills = new Hashtable(); * public static Hashtable Pits = new Hashtable(); * public static Hashtable Wells = new Hashtable(); * public static Hashtable Trenches = new Hashtable(); * public static Hashtable Spots = new Hashtable(); */ public LoggingObject(IObjData dataObj, ref SGWorld66 sgworld) { _dataObj = dataObj; if (dataObj.Points.Count > 0) { Top = dataObj.Points.GetPoint(0); var last = dataObj.Points.Count - 1; Bottom = dataObj.Points.GetPoint(last); } else { MessageBox.Show($"类型:{dataObj.Type} 编号:{dataObj.BH} 数据无效或格式错误,请到数据库后台校验", @"数据导入错误"); return; } Markers01 = dataObj.MarkersNO1; Markers02 = dataObj.MarkersNO2; Markers03 = dataObj.MarkersNO3; for (var index = 0; index < dataObj.MarkersNO1.Count; index++) { var thisMarker = dataObj.MarkersNO1.GetMarker(index); switch (thisMarker.Type) { case "控制点": KZD_Markers.Add(thisMarker); break; case "地层岩性": DC_Markers.Add(thisMarker); break; case "构造分段": GZ_Markers.Add(thisMarker); break; case "结构面": JGM_Markers.Add(thisMarker); break; case "风化": FH_Markers.Add(thisMarker); break; case "卸荷": XH_Markers.Add(thisMarker); break; case "地下水分段": DXS_Markers.Add(thisMarker); break; case "试验点": SYD_Markers.Add(thisMarker); break; //case "构造带": // GZD_Markers.Add(thisMarker); // break; } } DictOfLoggingObjects.Add(Guid, this); }