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 { } } }
/// <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); } }
/// <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; } } }
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); }
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); }