Ejemplo n.º 1
0
        private void btnDownload_Click(object sender, EventArgs e)
        {
            String Boundary = txtBoundary.Text;

            if (!string.IsNullOrEmpty(Boundary) && !string.IsNullOrWhiteSpace(Boundary))
            {
                // Parsing the boundary from string to boundary model.
                BoundaryModel bModel = osm.ParseOsmosis(Boundary);
                if (bModel != null)
                {
                    Tile leftBottom = Tile.CreateAroundLocation(bModel.left, bModel.bottom, Config.ZOOM);
                    Tile topRight   = Tile.CreateAroundLocation(bModel.top, bModel.right, Config.ZOOM);

                    var minX = Math.Min(leftBottom.X, topRight.X);
                    var maxX = Math.Max(leftBottom.X, topRight.X);
                    var minY = Math.Min(leftBottom.Y, topRight.Y);
                    var maxY = Math.Max(leftBottom.Y, topRight.Y);

                    // Defining tile area.
                    TileRange       range           = new TileRange(minX, minY, maxX, maxY, Config.ZOOM);
                    AsyncDownloader asyncDownloader = new AsyncDownloader(this);
                    asyncDownloader.Download(range);
                }
                else
                {
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取内边界
        /// </summary>
        /// <returns></returns>
        public List <BoundaryModel> GetHoleBoundary()
        {
            FaceLoopUtils.LoopList[] list   = FaceLoopUtils.AskFaceLoops(face.Tag);
            List <BoundaryModel>     models = new List <BoundaryModel>();

            foreach (FaceLoopUtils.LoopList loop in list)
            {
                if (loop.Type == 2)
                {
                    BoundaryModel model = new BoundaryModel();
                    List <Edge>   edges = GetLoopToEdge(loop);
                    double        zMax  = GetLoopMaxOfZ(edges);
                    model.BouudaryPt = new Point3d(0, 0, zMax);
                    model.Edges      = edges;
                    model.Types      = NXOpen.CAM.BoundarySet.BoundaryTypes.Closed;
                    model.PlaneTypes = NXOpen.CAM.BoundarySet.PlaneTypes.UserDefined;
                    if (UMathUtils.IsEqual(zMax, faceData.BoxMaxCorner.Z))
                    {
                        model.ToolSide = NXOpen.CAM.BoundarySet.ToolSideTypes.InsideOrLeft;
                    }
                    else
                    {
                        model.ToolSide = NXOpen.CAM.BoundarySet.ToolSideTypes.OutsideOrRight;
                    }
                    models.Add(model);
                }
            }
            return(models);
        }
        /// <summary>
        /// 获取基准框边界和地面点
        /// </summary>
        /// <returns></returns>
        public virtual void GetBaseStationBoundary(out BoundaryModel boundary, out Point3d floorPt)
        {
            double         blank;
            PlanarBoundary pl = new PlanarBoundary(analysis.BaseFace);

            pl.GetPeripheralBoundary(out boundary, out blank);
            boundary.ToolSide   = NXOpen.CAM.BoundarySet.ToolSideTypes.OutsideOrRight;
            boundary.BouudaryPt = analysis.BaseFace.BoxMinCorner;
            //  boundary.PlaneTypes = NXOpen.CAM.BoundarySet.PlaneTypes.Automatic;
            floorPt = this.analysis.BaseSubfaceFace.BoxMinCorner;
        }
 /// <summary>
 /// 设置边界
 /// </summary>
 /// <param name="floorPt"></param>
 /// <param name="conditions"></param>
 public void SetBoundary(params Line[] lines)
 {
     this.floorPt = lines[0].StartPoint;
     this.conditions.Clear();
     foreach (Line le in lines)
     {
         List <NXObject> line = new List <NXObject>();
         line.Add(le);
         BoundaryModel boundry = new BoundaryModel()
         {
             BouudaryPt = le.StartPoint,
             Curves     = line,
             PlaneTypes = BoundarySet.PlaneTypes.UserDefined,
             ToolSide   = BoundarySet.ToolSideTypes.InsideOrLeft,
             Types      = BoundarySet.BoundaryTypes.Open
         };
         this.conditions.Add(boundry);
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 获取外边界
 /// </summary>
 /// <param name="model">边界</param>
 /// <param name="blank">毛坯距离</param>
 public void GetPeripheralBoundary(out BoundaryModel model, out double blank)
 {
     blank = 0;
     model = new BoundaryModel();
     FaceLoopUtils.LoopList[] list = FaceLoopUtils.AskFaceLoops(face.Tag);
     foreach (FaceLoopUtils.LoopList loop in list)
     {
         if (loop.Type == 1)
         {
             List <Edge> edges = GetLoopToEdge(loop);
             double      tempZ = GetLoopMaxOfZ(edges);
             blank            = Math.Round(tempZ - faceData.BoxMaxCorner.Z, 4);
             model.BouudaryPt = new Point3d(0, 0, faceData.BoxMaxCorner.Z);
             model.ToolSide   = NXOpen.CAM.BoundarySet.ToolSideTypes.InsideOrLeft;
             model.Types      = NXOpen.CAM.BoundarySet.BoundaryTypes.Closed;
             model.PlaneTypes = NXOpen.CAM.BoundarySet.PlaneTypes.UserDefined;
             model.Edges      = edges;
         }
     }
 }
Ejemplo n.º 6
0
    void Start()
    {
        gameView      = app.view;
        boundaryModel = new BoundaryModel();
        playerModel   = app.model.playerSettings;

        //write and read to XML
        gameModel = fileSave.ReadXml <GameModel>();

        app.model    = gameModel;
        lvlDataModel = app.model.lvldata;
        //fileSave.WriteXml(gameModel);
        lvlStructSource = lvlDataModel.lvlStruct[lvlDataModel.currentLvl.Value - 1];


        PoolManager.init(poolGO, spawnAsteroidObj);


        //определяем границы камеры
        boundaryModel.SetBoundary(Camera.main.ViewportToWorldPoint(new Vector2(0, 0)), Camera.main.ViewportToWorldPoint(new Vector2(1, 1)));


        //наблюдаем за добавлением объекта в коллекцию астероидов
        app.model.getAsterCollection().ObserveAdd().Subscribe(x =>
        {
            GameObject obj = PoolManager.Get(asteroidsPref);
            obj.GetComponent <AsteroidView>().setModel(x.Value);
            x.Value.moveObject();
        });

        //наблюдаем за удалением объекта в коллекции астероидов
        app.model.getAsterCollection().ObserveRemove().Subscribe(x =>
        {
            Debug.Log("remove subscribe");
            PoolManager.Put(tmp);
        });

        //наблюдаем за добавлением объекта в коллекцию пуль
        app.model.getBulletCollection().ObserveAdd().Subscribe(x =>
        {
            GameObject obj = PoolManager.Get(bulletPref);
            obj.GetComponent <BulletView>().setModel(x.Value);
            x.Value.moveObject();
        });

        //наблюдаем за удалением объекта в коллекции пуль
        app.model.getBulletCollection().ObserveRemove().Subscribe(x =>
        {
            Debug.Log("remove subscribe");
            PoolManager.Put(tmp2);
        });

        //StartCoroutine(AsteroidsSpawn());


        Observable.EveryUpdate()
        .Where(_ => Input.anyKeyDown)
        .Select(_ => Input.inputString)
        .Subscribe(x => {
            OnKeyDown(x);
        }).AddTo(this);
    }
Ejemplo n.º 7
0
    void Start()
    {
        gameView      = app.view;
        boundaryModel = new BoundaryModel();
        playerModel   = app.model.playerSettings;

        //write and read to XML
        gameModel = fileSave.ReadXml <GameModel>();

        app.model = gameModel;
        gameView.showTextAster();
        lvlDataModel = app.model.lvldata;
        //fileSave.WriteXml(gameModel);
        lvlStructSource = app.model.GetLvlStruct();

        if (lvlDataModel.lvlStruct[0].status != LvlStatus.Finished)
        {
            lvlDataModel.lvlStruct[0].status = LvlStatus.Open;
        }


        PoolManager.Init(spawnAsteroidObj);


        //определяем границы камеры
        boundaryModel.SetBoundary(Camera.main.ViewportToWorldPoint(new Vector2(0, 0)), Camera.main.ViewportToWorldPoint(new Vector2(1, 1)));


        //наблюдаем за добавлением объекта в коллекцию астероидов
        app.model.getAsterCollection().ObserveAdd().Subscribe(x =>
        {
            GameObject obj = PoolManager.Get(asteroidsPref);
            obj.GetComponent <AsteroidView>().setModel(x.Value);
            x.Value.moveObject();
        });

        //наблюдаем за удалением объекта в коллекции астероидов
        app.model.getAsterCollection().ObserveRemove().Subscribe(x =>
        {
            PoolManager.Put(tmpAster);
        });

        //наблюдаем за добавлением объекта в коллекцию пуль
        app.model.getBulletCollection().ObserveAdd().Subscribe(x =>
        {
            GameObject obj = PoolManager.Get(bulletPref);
            obj.GetComponent <BulletView>().setModel(x.Value);
            x.Value.moveObject();
        });

        //наблюдаем за удалением объекта в коллекции пуль
        app.model.getBulletCollection().ObserveRemove().Subscribe(x =>
        {
            PoolManager.Put(tmpBullet);
        });



        Observable.EveryUpdate()
        .Where(_ => Input.anyKeyDown)
        .Select(_ => Input.inputString)
        .Subscribe(x => {
            OnKeyDown(x);
        }).AddTo(this);
    }