示例#1
0
        /// <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();
        }
示例#2
0
        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);
        }
示例#3
0
        public LoggingPit(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld)
        {
            Type = LoggingType.Pit;


            Draw(ref sgworld);
        }
示例#4
0
        public LoggingWell(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld)
        {
            Type = LoggingType.Well;


            Draw(ref sgworld);
        }
示例#5
0
 public LoggingSpot(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld)
 {
     if (isValidate == true)
     {
         Type = LoggingType.Spot;
         Draw(ref sgworld);
     }
 }
示例#6
0
        } = 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);
        }
示例#7
0
        } = 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);
        }
示例#8
0
        public LoggingFoundation(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld)

        {
            Type = LoggingType.Foundation;
            Draw(ref sgworld);
        }
示例#9
0
 public LoggingBore(IObjData dataObj, ref SGWorld66 sgworld)
     : base(dataObj, ref sgworld)
 {
     Type = LoggingType.Bore;
     Draw(ref sgworld);
 }
示例#10
0
        /*
         * 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);
        }
示例#11
0
 public LoggingSlope(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld)
 {
 }
示例#12
0
        /*
         * 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);
        }