Пример #1
0
 public static string CreateGroup(string groupName, ref SGWorld66 sgworld, string parentGroupName = "")
 {
     if (string.IsNullOrEmpty(parentGroupName))
     {
         var gid = sgworld.ProjectTree.FindItem(groupName);
         if (!string.IsNullOrEmpty(gid))
         {
             return(gid);
         }
         return(sgworld.ProjectTree.CreateGroup(groupName));
     }
     else
     {
         var parentGid = sgworld.ProjectTree.FindItem(parentGroupName);
         if (string.IsNullOrEmpty(parentGid))
         {
             parentGid = sgworld.ProjectTree.CreateGroup(parentGroupName);
         }
         var gid = sgworld.ProjectTree.FindItem(parentGroupName + "\\" + groupName);
         if (!string.IsNullOrEmpty(gid))
         {
             return(gid);
         }
         return(sgworld.ProjectTree.CreateGroup(groupName, parentGroupName));
     }
 }
Пример #2
0
        /// <summary>
        /// TODO 丁一明,显示聚类结果
        /// </summary>
        /// <param name="groupID"></param>
        public override void TECreate()
        {
            string[] photoName;
            string[] fileName;
            string[] photoTime;
            string[] sNo;
            string[] person;
            string[] remark;
            double[] x;
            double[] y;

            var sgworld = new SGWorld66();

            if (string.IsNullOrEmpty(mGroupIDStatic))
            {
                mGroupIDStatic = sgworld.ProjectTree.CreateGroup("Photo");
            }

            int num;

            num = CConsPhoto.findConsPhoto(5, out photoName, out fileName, out photoTime, out x, out y, out sNo, out person, out remark);
            //num = CConsLog.findLast365Cons(out usrName, out projName, out consDate, out x, out y);
            for (int i = 0; i < num; i++)
            {
                Console.WriteLine("{0} #\t: photoName {1}\t fileName {2}\t  x {3}\t y  {4}\t  Date {5}", i, photoName[i], fileName[i], x[i], y[i], photoTime[i]);
            }
        }
Пример #3
0
        private void createOneProjectBranch(string projType, ILabelStyle66 cLabelStyle)
        {
            //SKRailwayItem item;
            var sgworld = new SGWorld66();
            //ITerraExplorerMessage66 cMessage = null;

            var parentID = sgworld.ProjectTree.FindItem("桥梁");

            if (!(projType.Equals("特大桥") || projType.Equals("中桥") || projType.Equals("大桥") || projType.Equals("框构桥")))
            {
                parentID = string.Empty;
            }
            var branch = sgworld.ProjectTree.CreateGroup(projType, parentID);

            foreach (CRailwayProject item in CRailwayScene.mProjectList)
            {
                //    item = (SKRailwayItem)CRailwayScene.mProjectList.mProjectList.ElementAt(j);
                if (item.mProfessionalName.Equals(projType, StringComparison.InvariantCultureIgnoreCase))
                {
                    var cPos = sgworld.Creator.CreatePosition(item.mLongitude_Mid, item.mLatitude_Mid, 10, AltitudeTypeCode.ATC_TERRAIN_RELATIVE);
                    item.mLabel = sgworld.Creator.CreateTextLabel(cPos, item.mProjectName, cLabelStyle, branch, item.mProjectName);
                    item.mLabel.ImageFileName = item.mLabelImage;
                    //string urlStr = "http://" + GlobalVar.gSTAT_SERVERIP + "/MNMIS/APP/ProjectMng.aspx?f=detail&sn=" + item.mSerialNo +
                    //    "&uacc=" + GlobalVar.gSTAT_USERACC + "&upwd=" + GlobalVar.gSTAT_USRPWD;
                    //cMessage = sgworld.Creator.CreateMessage(MsgTargetPosition.MTP_POPUP, urlStr, MsgType.TYPE_URL, true);
                    ////cMessage.Height = 100;
                    ////MsgTargetPosition mtp =
                    //item.mLabel.Message.MessageID = cMessage.ID;
                }
            }
        }
Пример #4
0
        private void createLabelWithProject()
        {
            string[]      sProjType   = new string[] { "路基", "涵洞", "特大桥", "大桥", "中桥", "框构桥", "空心板桥梁", "预制", "铺架" };//, "大临", "站房工程"
            var           sgworld     = new SGWorld66();
            IColor66      bgcolor     = sgworld.Creator.CreateColor(255, 255, 255, 155);
            IColor66      forecolor   = sgworld.Creator.CreateColor(0, 0, 0, 255);
            ILabelStyle66 cLabelStyle = sgworld.Creator.CreateLabelStyle(SGLabelStyle.LS_DEFAULT);
            {
                //uint nBGRValue = 0x00000000;  // White
                //var cBackgroundColor = cLabelStyle.BackgroundColor; // Get label style background color
                //cBackgroundColor.FromBGRColor(nBGRValue);               // Set background to blue
                //cBackgroundColor.SetAlpha(0.8);                      // Set transparency to 50%
                cLabelStyle.BackgroundColor = bgcolor;         // Set label style background color
                cLabelStyle.TextColor       = forecolor;
                cLabelStyle.FontName        = "Arial";         // Set font name to Arial
                cLabelStyle.Italic          = true;            // Set label style font to italic
                cLabelStyle.Scale           = 3;               // Set label style scale
                cLabelStyle.TextOnImage     = false;
            }
            var branch = sgworld.ProjectTree.CreateGroup("桥梁");

            foreach (string str in sProjType)
            {
                createOneProjectBranch(str, cLabelStyle);
            }
        }
Пример #5
0
        private void createNavTrain()
        {
            var    sgworld  = new SGWorld66();
            string fileName = GlobalVar.gDataPath + @"Common\Models\train.3ds";

            //mTrain = sgworld.Creator.CreateModel(sgworld.Creator.CreatePosition(),fileName,0.25,ModelTypeCode.MT_NORMAL,string.Empty,"Train");
            //mTrain.Position.X = 50;


            mDynamicTrain = sgworld.Creator.CreateDynamicObject(0, DynamicMotionStyle.MOTION_MANUAL, DynamicObjectType.DYNAMIC_3D_MODEL,
                                                                fileName, 0.25, AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, string.Empty, "Train");
            for (int i = 6000; i < 36000; i += 5) //CRailwayScene.mMiddleLine.mPointNum
            {
                mDynamicTrain.Waypoints.AddWaypoint(sgworld.Creator.CreateRouteWaypoint(
                                                        CRailwayScene.mMiddleLine.longitude[i],
                                                        CRailwayScene.mMiddleLine.latitude[i],
                                                        CRailwayScene.mMiddleLine.altitude[i],
                                                        300, CRailwayScene.mMiddleLine.heading[i]));
                //Console.WriteLine(CRailwayScene.mMiddleLine.longitude[i] + "\t" + CRailwayScene.mMiddleLine.latitude[i]);
            }
            mDynamicTrain.PlayRouteOnStartup = false;
            //mDynamicTrain.Pause = true;
            //mDynamicTrain.s
            //mDynamicTrain.
        }
Пример #6
0
        public LoggingWell(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld)
        {
            Type = LoggingType.Well;


            Draw(ref sgworld);
        }
Пример #7
0
        public LoggingPit(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld)
        {
            Type = LoggingType.Pit;


            Draw(ref sgworld);
        }
Пример #8
0
        private void polylineMiddleLine(CRailwayProject rw, IColor66 lineColor, SGWorld66 sgworld, string branch)
        {
            ITerrainPolyline66 polyline;

            //double[] x, y, z, dir;
            double[] mArray;
            int      count = rw.getSubLine(out mArray);

            //mSceneData.mMiddleLines.getSubLineByDKCode(rw.Mileage_Start_Discription, rw.Mileage_End_Discription, 10, out x, out y, out z, out dir);
            //double[] mArray = new double[count * 3];
            //for (int i = 0; i < count; i++)
            //{
            //     mArray[3 * i] = x[i];
            //     mArray[3 * i + 1] = y[i];
            //     mArray[3 * i + 2] = z[i] + 1;

            //}
            if (count > 1)
            {
                polyline        = sgworld.Creator.CreatePolylineFromArray(mArray, lineColor, AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, branch, rw.ProjectName);
                polyline.Spline = true;
                polyline.Visibility.MaxVisibilityDistance = 10000000;
                polyline.Visibility.MinVisibilityDistance = 1000;
                polyline.LineStyle.Width = -5.0;
                polyline.Visibility.Show = true;
            }
        }
Пример #9
0
        public void Erase(ref SGWorld66 sgworld)
        {
            if (LoggingObject.DictOfLoggingObjects.ContainsKey(this.Guid))
            {
                LoggingObject.DictOfLoggingObjects.Remove(this.Guid);
            }
            if (LoggingObject.DictOfSkyIdGuid.ContainsKey(this.SkylineLabelObj.ID))
            {
                LoggingObject.DictOfSkyIdGuid.Remove(this.SkylineLabelObj.ID);
            }
            if (SkylineMouthObj != null)
            {
                sgworld.Creator.DeleteObject(SkylineMouthObj.ID);

                SkylineMouthObj = null;
            }
            if (SkylineBodyObj != null)
            {
                sgworld.Creator.DeleteObject(SkylineBodyObj.ID);

                SkylineBodyObj = null;
            }
            if (SkylineLabelObj != null)
            {
                sgworld.Creator.DeleteObject(SkylineLabelObj.ID);

                SkylineLabelObj = null;
            }
        }
Пример #10
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();
        }
Пример #11
0
        public void Draw(ref SGWorld66 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);
            IPosition66 cPos = sgworld.Creator.CreatePosition(Top.X, Top.Y, Top.Z, AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE);

            SkylineBodyObj = sgworld.Creator.CreateSphere(cPos, radius, Style, nLineColor, nFillColor, SegmentDensity, gid, Name);

            //绘制旗子
            var imageFileName = Path.Combine(Directory.GetCurrentDirectory(), "flag.png");

            SkylineMouthObj = sgworld.Creator.CreateImageLabel(cPos, imageFileName, null,
                                                               sgworld.ProjectTree.HiddenGroupID);



            //绘制文字标签
            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();
        }
Пример #12
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);
        }
Пример #13
0
 public LoggingSpot(IObjData dataObj, ref SGWorld66 sgworld) : base(dataObj, ref sgworld)
 {
     if (isValidate == true)
     {
         Type = LoggingType.Spot;
         Draw(ref sgworld);
     }
 }
Пример #14
0
        public override void TECreate()
        {
            var sgworld = new SGWorld66();

            if (string.IsNullOrEmpty(mGroupIDStatic))
            {
                mGroupIDStatic = sgworld.ProjectTree.CreateGroup("Pier");
            }
            string          modelName = CGisDataSettings.gDataPath + @"Common\Models\Pier\qiaodun.xpl2";
            ITerrainModel66 m         = null;

            //ILabelStyle66 cLabelStyle = sgworld.Creator.CreateLabelStyle(SGLabelStyle.LS_DEFAULT);

            //{
            //    uint nBGRValue = 0xFF0000;  // Blue
            //    double dAlpha = 0.5;        // 50% opacity
            //    var cBackgroundColor = cLabelStyle.BackgroundColor; // Get label style background color
            //    cBackgroundColor.FromBGRColor(nBGRValue);               // Set background to blue
            //    cBackgroundColor.SetAlpha(dAlpha);                      // Set transparency to 50%
            //    cLabelStyle.BackgroundColor = cBackgroundColor;         // Set label style background color
            //    cLabelStyle.FontName = "Arial";                         // Set font name to Arial
            //    cLabelStyle.Italic = true;                              // Set label style font to italic
            //    cLabelStyle.Scale = 3;                                  // Set label style scale
            //    cLabelStyle.TextOnImage = false;
            //}

            foreach (CRailwayProject proj in mSceneData.mBridgeList)
            {
                //var branch = sgworld.ProjectTree.FindItem("Bridge\\"+cItem.mParentBridge.mProjectName);
                foreach (CRailwayPier cItem in proj.mDWProjList)
                {
                    var cPos = sgworld.Creator.CreatePosition(cItem.mLongitude_Mid, cItem.mLatitude_Mid, cItem.mAltitude_Mid - 0.5, AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE,
                                                              cItem.mHeading_Mid, 0, 0);
                    m              = sgworld.Creator.CreateModel(cPos, modelName, 1, ModelTypeCode.MT_NORMAL, mGroupIDStatic, cItem.DWName);
                    m.ScaleX       = 0.01;
                    m.ScaleY       = 0.01;
                    m.ScaleZ       = 0.015;
                    m.BestLOD      = 1000;
                    cPos.Altitude += 4;
                    sgworld.Creator.CreateTextLabel(cPos, cItem.DWName, mTEStandard.mLabelStyleL4, mGroupIDStatic, cItem.DWName);

                    //FIXME 添加属性随时间变动功能
                    //cItem.dte = DateTime.Now.AddDays(100); ;
                    //DateTime ds = Convert.ToDateTime("2015-06-01");
                    //cItem.dts = ds.AddDays(i);
                    //cItem.mTEModel.TimeSpan.Start = cItem.dts;
                    //cItem.mTEModel.TimeSpan.End = cItem.dte;
                    //i += 10;
                    //if (i > 180) { i = 0; }
                    //cItem.mTEModel.Terrain.Tint.abgrColor = 0xFF;
                    //cItem.mTEModel.Terrain.Tint.SetAlpha(alpha); // FIXME;

                    //alpha += 0.05;
                    //if (alpha > 1) alpha = 0.02;
                }
            }
        }
Пример #15
0
        public GISForm()
        {
            //GlobalSettings.LoadConfig();

            LoginForm login = new LoginForm();

            if (login.ShowDialog() != DialogResult.OK)
            {
                Application.Exit();
            }
            WelcomeFormJQ wf = new WelcomeFormJQ();

            wf.Show(this);

            //GlobalSettings.InitGlobal();

            gRWScene = new CRailwayScene();
            //GlobalVar.gScene = new ModelInformation.CRailwayScene();


            InitializeComponent();
            sgworld = new SGWorld66();
            this.axTE3DWindow1.Text = "新建济青高速铁路";

            //axTE3DWindow1.ProductName = "蒙内标轨铁路";
            axTE3DWindow1.Caption = "新建济青高速铁路";
            //sgworld.Project.set_Settings("RemoveSkylineCopyright", 1);
            //sgworld.Project.set_Settings("DisplaySun", 0);
            if (mTEScene == null)
            {
                mTEScene = new CTEScene(gRWScene);
            }
            mNavTrain = new CTENavTrain(gRWScene);
            //mNavTrain.OnFlyTo += mNavTrain_OnFlyTo;

            gMapControl1.MapProvider     = GMap.NET.MapProviders.OpenCycleMapProvider.Instance;
            gMapControl1.Zoom            = 6D;
            GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;
            gMapControl1.Position        = new GMap.NET.PointLatLng(36.6, 118.6);
            gMapControl1.Visible         = true;


            //GlobalSettings.gGForm = this;

            showProject();
            addDVG_Event();
            //bar1.Visible = false;
            //bar1.Hide();
            createMenuSG();
            menuSG.Visible = false;
            mainContainer.Panel2Collapsed = true;
            trackTime.Text = curTime.ToLongDateString();


            wf.Close();
        }
Пример #16
0
        public string CreateGroup(string groupName, ref SGWorld66 sgworld)
        {
            var gid = sgworld.ProjectTree.FindItem(groupName);

            if (!string.IsNullOrEmpty(gid))
            {
                return(gid);
            }
            return(sgworld.ProjectTree.CreateGroup(groupName));
        }
Пример #17
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);
        }
Пример #18
0
        public DrawingPoint(DrawingObjectInfo geoObjInfo, ref SGWorld66 sgworld)
        {
            Type = "Point";
            double radius         = 10;
            var    Style          = SphereStyle.SPHERE_NORMAL;
            var    nLineColor     = 0xFF00FF00;
            var    nFillColor     = 0xFF646464;
            var    SegmentDensity = -1;

            _point = sgworld.Creator.CreateSphere(geoObjInfo.PointPosition, radius, Style, nLineColor, nFillColor, SegmentDensity, geoObjInfo.GroupId, geoObjInfo.Name);
        }
Пример #19
0
        /// <summary>
        /// 绘制平硐洞口
        /// </summary>
        /// <param name="sgworld"></param>
        public void Draw(ref SGWorld66 sgworld, 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     = 0xFF64FF64;
            var    SegmentDensity = -1;
            string gid            = CreateGroup("硐探", ref sgworld);

            sgworld.ProjectTree.ExpandGroup(gid, true);
            IPosition66 cPos = sgworld.Creator.CreatePosition(
                Top.X + xOffset,
                Top.Y + yOffset,
                Top.Z,
                AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE);

            SkylineMouthObj = sgworld.Creator.CreateSphere(
                cPos,
                radius,
                Style,
                nLineColor,
                nFillColor,
                SegmentDensity,
                gid,
                Name + signIsInTerrain);

            //硐身
            List <double> ListVertices = new List <double>();

            foreach (var point in Links)
            {
                ListVertices.Add(point.X);
                ListVertices.Add(point.Y);
                ListVertices.Add(point.Z);
            }
            var lineColor = sgworld.Creator.CreateColor(255, 0, 0, 128);

            SkylineBodyObj = sgworld.Creator.CreatePolylineFromArray(ListVertices.ToArray(), 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();
        }
Пример #20
0
        public override void TEUpdate()
        {
            var sgworld = new SGWorld66();

            //var branch = sgworld.ProjectTree.FindItem(groupID);
            //if (!string.IsNullOrEmpty(branch))
            //    sgworld.ProjectTree.DeleteItem(branch);
            sgworld.ProjectTree.DeleteItem(mGroupIDDynamic);
            mGroupIDDynamic = null;
            createCircle();
            createRibbon();
        }
Пример #21
0
        /// <summary>
        /// 绘制钻孔孔口(需要用钻孔口模型)
        /// </summary>
        /// <param name="sgworld"></param>
        public void Draw(ref SGWorld66 sgworld, 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);
            IPosition66 cPos = sgworld.Creator.CreatePosition(
                Top.X + xOffset,
                Top.Y + yOffset,
                Top.Z,
                AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE);

            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();
        }
Пример #22
0
        /// <summary>
        /// 测试铁路链
        /// </summary>
        private void createMiddles()
        {
            var sgworld = new SGWorld66();
            var branch  = sgworld.ProjectTree.CreateGroup("进度");
            ITerrainPolyline66 polyline;
            ILabelStyle66      cLabelStyle = sgworld.Creator.CreateLabelStyle(SGLabelStyle.LS_DEFAULT);

            {
                cLabelStyle.FontName    = "Arial";                      // Set font name to Arial
                cLabelStyle.Italic      = true;                         // Set label style font to italic
                cLabelStyle.Scale       = 3;                            // Set label style scale
                cLabelStyle.TextOnImage = false;
            }
            //CRailwayProject item = mSceneData.mProjectList[0];
            foreach (CRailwayLine item in mSceneData.mMiddleLines.mLineList)
            {
                double[] x;
                double[] y;
                double[] z;
                double[] d;
                //CRailwayLineList oo=null;
                int pointNum = item.getSubLine(item.mStart, item.mEnd, 1, out x, out y, out z, out d);
                if (pointNum > 0)
                {
                    double[] cVerticesArray = new double[pointNum * 3];

                    for (int i = 0; i < pointNum; i++)
                    {
                        cVerticesArray[3 * i]     = x[i];
                        cVerticesArray[3 * i + 1] = y[i];
                        cVerticesArray[3 * i + 2] = z[i] + 10;
                    }


                    try
                    {
                        polyline = sgworld.Creator.CreatePolylineFromArray(cVerticesArray, sgworld.Creator.CreateColor(255, 215, 0, 255),
                                                                           AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, branch, item.mDKCode + "里程");
                        //polyline.Visibility.MinVisibilityDistance = 1250;
                        //polyline.Spline = true;
                        //polyline.LineStyle.Width = -5;
                        polyline.Visibility.MaxVisibilityDistance = 10000000;
                        polyline.LineStyle.Width = -3.0;
                        polyline.Visibility.Show = true;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Creation Failed" + item.mDKCode);
                    }
                }
            }
        }
Пример #23
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FrmCurvedSurfaceBuilder"/> class.
        /// </summary>
        /// <param name="objsDict">
        /// The objs dict.
        /// </param>
        /// <param name="sgworld">
        /// The sgworld.
        /// </param>
        public FrmCurvedSurfaceBuilder(Dictionary <string, LoggingObject> objsDict, ref SGWorld66 sgworld, ref YWCHEntEx db)
        {
            this.InitializeComponent();
            this.loggingObjectsDict = objsDict;

            foreach (var kvLoggingObj in this.loggingObjectsDict)
            {
                this.listBoxAdvGeoObjs.Items.Add(kvLoggingObj.Value.Name);
            }
            this.sgworld           = sgworld;
            CurveAlgorithm.sgworld = sgworld;
            this.db = db;
        }
Пример #24
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);
        }
Пример #25
0
        public bool IsLoggingObjInTerrain(ref SGWorld66 sgworld)
        {
            var leftX   = sgworld.Terrain.Left;
            var rightX  = sgworld.Terrain.Right;
            var topY    = sgworld.Terrain.Top;
            var bottomY = sgworld.Terrain.Bottom;

            if (Top.X < leftX || Top.X > rightX || Top.Y < bottomY || Top.Y > topY)
            {
                return(false);
            }
            return(true);
        }
Пример #26
0
        public void HighlightLabel(ref SGWorld66 sgworld)
        {
            var textLabel = SkylineLabelObj as ITerrainLabel66;

            if (textLabel == null)
            {
                return;
            }
            var textLabelStyle = textLabel.Style;

            textLabelStyle.TextColor = sgworld.Creator.CreateColor(255, 0, 0, 255);
            textLabelStyle.Underline = true;
        }
Пример #27
0
        public void ResetLabel(ref SGWorld66 sgworld)
        {
            var textLabel = SkylineLabelObj as ITerrainLabel66;

            if (textLabel == null)
            {
                return;
            }
            var textLabelStyle = textLabel.Style;

            textLabelStyle.TextColor = sgworld.Creator.CreateColor(0, 0, 0, 0);
            textLabelStyle.Underline = false;
        }
Пример #28
0
        /// <summary>
        /// FIXME 目前只支持DK,且待调试修正
        /// </summary>
        private void createProjectProgress()
        {
            //double[] x;
            //double[] y;
            //double[] z;
            int pointNum = mSceneData.mMiddleLines.mLineList[1].mPointNum; //CRailwayScene.mMiddleLine.mPointNum;

            //x = new double[pointNum];
            //y = new double[pointNum];
            //z = new double[pointNum];
            if (pointNum > 1)
            {
                double[] cVerticesArray = new double[pointNum * 3];

                int i;
                for (i = 0; i < pointNum; i += 10)
                {
                    cVerticesArray[3 * i]     = mSceneData.mMiddleLines.mLineList[1].longitude[i];
                    cVerticesArray[3 * i + 1] = mSceneData.mMiddleLines.mLineList[1].latitude[i];
                    cVerticesArray[3 * i + 2] = mSceneData.mMiddleLines.mLineList[1].altitude[i] + 5;
                }
                try
                {
                    var sgworld = new SGWorld66();
                    var branch  = sgworld.ProjectTree.FindItem("MiddleLine");
                    //int r, g, b;
                    //HslToRgb(10, 1 - item.AvgProgress, 1, out r, out g, out b);

                    sgworld.Creator.CreatePolylineFromArray(cVerticesArray, sgworld.Creator.CreateColor(255, 0, 0, 255),
                                                            AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, string.Empty, "Middle Line");
                    //item.mPolyline.Visibility.MinVisibilityDistance = 1250;
                    //item.mPolyline.Spline = true;
                    //item.mPolyline.LineStyle.Width = -5;
                    //item.mPolyline.
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Creation Middle Line Failed");
                }
            }

            //var sgworld = new SGWorld66();
            //var branch = sgworld.ProjectTree.CreateGroup("MiddleLine");
            ////Console.WriteLine(CRailwayScene.mProjectList.Count + "");
            //foreach (CRailwayProject item in CRailwayScene.mBridgeList)
            //    showProjectProgress(item);
            //foreach (CRailwayProject item in CRailwayScene.mRoadList)
            //    showProjectProgress(item);
            //foreach (CRailwayProject item in CRailwayScene.mTunnelList)
            //    showProjectProgress(item);
        }
Пример #29
0
        private void AppForm_Load(object sender, EventArgs e)
        {
            Utils.DevExpressLocalizerHelper.SetSimpleChinese();

            sgworld = new SGWorld66();

            string tAppRoot = Path.GetDirectoryName(Application.ExecutablePath);

            string flyPath = Path.Combine(tAppRoot, @"data\default.fly");

            sgworld.Open(flyPath);

            sgworld.OnFrame += Sgworld_OnFrame;
        }
Пример #30
0
        //public delegate void StopAround();
        //public event StopAround ShowFinished = null;


        public CTEScene(CRailwayScene s, System.Windows.Forms.Timer timer)
        {
            mSceneData = s;
            //timerFly = timer;
            //timerFly.Stop();
            //timerFly.Tick += TimerFly_Tick;
            //mRWStandard = new CRWTEStandard();
            sgworld = new SGWorld66();
            CRWTEStandard.Init();
            //CTEFeature.linesPointsLoad("JqPoints1");
            //CTEFeature.linesPointsLoad("JqPoints2");
            //initTEContactLine();
            initTEProjectList();
            initTEFirmList();
            initTEConsList(CGisDataSettings.gLocalDB);
            mTEPiers = new CTEPier(mSceneData, this);
            mTEPiers.TECreate();
            //CTEFirm.NavigationFinished += NotifyShowFinish;
            //CTEPointNav.NavigationFinished += NotifyShowFinish;

            prjInfoForm = new MessageForm();


            //panel1_Paint(p);
            //mTEItemList.Add(new CTEKML(s, this, mRWStandard));
            //mTEItemList.Add(new CTEStation(s, this, mRWStandard));

            //mTEItemList.Add(new CTENavTrain(s, this, mRWStandard));

            //mTEItemList.Add(new CTEProject(s, this, mRWStandard));
            //mTEItemList.Add(new CTECons(s, this, mRWStandard));
            //mTEItemList.Add(new CTEMiddleLine(s, this, mRWStandard));
            //mTEItemList.Add(new CTEFirm(s, this, mRWStandard));



            //mTEItemList.Add(new CTEConsPhoto(s, mRWStandard));

            //mTEKml = new CTEKML(s, mRWStandard);
            //mTEStation = new CTEStation(s, mRWStandard);
            //mTEFact = new CTEFactory(s, mRWStandard);
            //mTETrain = new CTENavTrain(s, this, mRWStandard);
            //mTEPier = new CTEPier(s, mRWStandard);
            //mTEProj = new CTEProject(s, mRWStandard);
            //mTECons = new CTECons(s, mRWStandard);
            //mTEMiddleLine = new CTEMiddleLine(s, mRWStandard);
            //mTEFirm = new CTEFirm(s, mRWStandard);
            //mTEPhotos = new CTEConsPhoto(s, this);
        }