陈鹏飞 3 years ago
parent
commit
d06f6a2ff8
  1. 20
      src/app/babylon/controller/scene-manager.ts
  2. 58
      src/app/babylon/game.ts
  3. 1
      src/app/babylon/tool/babylon-tool.ts
  4. 4
      src/app/pages/oil-station-info/oil-station-info.component.html
  5. 4
      src/app/pages/plan-admin/plan-admin.component.html

20
src/app/babylon/controller/scene-manager.ts

@ -12,6 +12,7 @@ import {
HemisphericLight, HemisphericLight,
HighlightLayer, HighlightLayer,
IParticleSystem, IParticleSystem,
ISceneLoaderProgressEvent,
Mesh, Mesh,
MeshBuilder, MeshBuilder,
Observable, Observable,
@ -46,18 +47,18 @@ import { ModelInfo_mark } from '../model/info/mark/model-info-mark';
import { MarkData, MarkType } from '../model/data/mark/mark-data'; import { MarkData, MarkType } from '../model/data/mark/mark-data';
import { Event_KeyboardInput } from './event-manager/events/event-keyboard-input'; import { Event_KeyboardInput } from './event-manager/events/event-keyboard-input';
import { ModelInfo_mark_area } from '../model/info/mark/other/mark-plan-area-info'; import { ModelInfo_mark_area } from '../model/info/mark/other/mark-plan-area-info';
import { classToClass, plainToClass } from 'class-transformer'; import { plainToClass } from 'class-transformer';
import { MarkData_Area } from '../model/data/mark/other/mark-data-area'; import { MarkData_Area } from '../model/data/mark/other/mark-data-area';
import { MarkData_Line } from '../model/data/mark/other/mark-data-line'; import { MarkData_Line } from '../model/data/mark/other/mark-data-line';
import { ModelInfo_mark_line } from '../model/info/mark/other/mark-plan-line-info'; import { ModelInfo_mark_line } from '../model/info/mark/other/mark-plan-line-info';
import { MarkData_multiLine } from '../model/data/mark/other/mark-data-multi-line';
import { ModelInfo_mark_multiLine } from '../model/info/mark/other/mark-plan-multi-line-info';
import { MarkData_multiArrow_CT, MarkData_multiArrow_JG } from '../model/data/mark/other/mark-data-multi-arrow'; import { MarkData_multiArrow_CT, MarkData_multiArrow_JG } from '../model/data/mark/other/mark-data-multi-arrow';
import { ModelInfo_mark_multiArrow } from '../model/info/mark/other/mark-plan-multi-arrow'; import { ModelInfo_mark_multiArrow } from '../model/info/mark/other/mark-plan-multi-arrow';
import { ModelInfo_mark_particle } from '../model/info/mark/other/mark-plan-particle-info'; import { ModelInfo_mark_particle } from '../model/info/mark/other/mark-plan-particle-info';
import { FacilityPosType, ModelData_facility } from '../model/data/model-data/model-data-facility'; import { FacilityPosType, ModelData_facility } from '../model/data/model-data/model-data-facility';
import { LoadTool } from '../tool/load-tool'; import { LoadTool } from '../tool/load-tool';
//场景管理器 //场景管理器
export class SceneManager { export class SceneManager {
//----------------Camera-----------------\\ //----------------Camera-----------------\\
@ -595,7 +596,11 @@ export class SceneManager {
let box = SceneManager.importMeshSuccess(newMeshes, particleSystems, skeletons, animationGroups, modelInfo, needBox, modelData); let box = SceneManager.importMeshSuccess(newMeshes, particleSystems, skeletons, animationGroups, modelInfo, needBox, modelData);
//console.log("加载模型完成", modelData.resName); //console.log("加载模型完成", modelData.resName);
onSuccess(newMeshes, box, modelInfo); onSuccess(newMeshes, box, modelInfo);
}, null, }, function (event: ISceneLoaderProgressEvent) {
//console.log(modelData.resName + "加载中", event, new Date().getTime());
},
function (scene: Scene, message: string, exception?: any) { function (scene: Scene, message: string, exception?: any) {
if (index < 5) { if (index < 5) {
@ -930,6 +935,8 @@ class ImportMeshSyncData {
onsuccessObservable: Observable<ImportMeshSyncCallBack>; onsuccessObservable: Observable<ImportMeshSyncCallBack>;
constructor(path: string, constructor(path: string,
name: string) { name: string) {
this.isBreak = false; this.isBreak = false;
@ -938,8 +945,13 @@ class ImportMeshSyncData {
this.onsuccessObservable = new Observable(); this.onsuccessObservable = new Observable();
} }
} }
/** /**
* *
*/ */

58
src/app/babylon/game.ts

@ -1,4 +1,4 @@
import { Database, Engine, RenderingManager, Scene } from "@babylonjs/core"; import { Database, Engine, FileTools, RenderingManager, Scene } from "@babylonjs/core";
import { SceneManager } from "./controller/scene-manager"; import { SceneManager } from "./controller/scene-manager";
import { LoginSatus } from "./controller/status/login-status"; import { LoginSatus } from "./controller/status/login-status";
@ -18,8 +18,9 @@ export class Game {
//初始化引擎和画布 //初始化引擎和画布
public init(canvas: HTMLCanvasElement) { public init(canvas: HTMLCanvasElement) {
// FileTools.DefaultRetryStrategy = MyRetryStrategy.ExponentialBackoff(2, 1000); FileTools.DefaultRetryStrategy = MyRetryStrategy.ExponentialBackoff(2, 1000);
// FileTools.DefaultRetryStrategy = RetryStrategy.ExponentialBackoff(2, 1000); // FileTools.DefaultRetryStrategy = RetryStrategy.ExponentialBackoff(2, 1000);
if (Game.instance != null) { if (Game.instance != null) {
// canvas.setAttribute("touch-action", "none"); // canvas.setAttribute("touch-action", "none");
// canvas.style.touchAction = "none"; // canvas.style.touchAction = "none";
@ -117,27 +118,30 @@ export class Game {
} }
// /** /**
// * 重试策略 *
// */ */
// var MyRetryStrategy = /** @class */ (function () { var MyRetryStrategy = /** @class */ (function () {
// function RetryStrategy() { function MyRetryStrategy() {
// } }
// /** /**
// * Function used to defines an exponential back off strategy * Function used to defines an exponential back off strategy
// * @param maxRetries defines the maximum number of retries (3 by default) * @param maxRetries defines the maximum number of retries (3 by default)
// * @param baseInterval defines the interval between retries * @param baseInterval defines the interval between retries
// * @returns the strategy function to use * @returns the strategy function to use
// */ */
// MyRetryStrategy.ExponentialBackoff = function (maxRetries, baseInterval) { MyRetryStrategy.ExponentialBackoff = function (maxRetries, baseInterval) {
// if (maxRetries === void 0) { maxRetries = 3; } if (maxRetries === void 0) { maxRetries = 3; }
// if (baseInterval === void 0) { baseInterval = 500; } if (baseInterval === void 0) { baseInterval = 500; }
// return function (url, request, retryIndex) { return function (url, request, retryIndex) {
// if (request.status !== 0 || retryIndex >= maxRetries || url.indexOf("file:") !== -1) {
// return -1; if (request.status == 0 || retryIndex >= maxRetries || url.indexOf("file:") !== -1) {
// } console.log("不重试加载", request.status, retryIndex, url.indexOf("file:"));
// return Math.pow(2, retryIndex) * baseInterval; return -1;
// }; }
// }; console.log("重试加载", request.status, retryIndex, url.indexOf("file:"));
// return MyRetryStrategy; return Math.pow(2, retryIndex) * baseInterval;
// }()); };
};
return MyRetryStrategy;
}());

1
src/app/babylon/tool/babylon-tool.ts

@ -134,6 +134,7 @@ export class BabylonTool {
let modelPath = path + sceneFilename; let modelPath = path + sceneFilename;
LoadTool.add(modelPath, tag); LoadTool.add(modelPath, tag);
let isSuccess = false; let isSuccess = false;
let plugin = let plugin =
SceneLoader.ImportMeshAsync( SceneLoader.ImportMeshAsync(

4
src/app/pages/oil-station-info/oil-station-info.component.html

@ -146,12 +146,12 @@
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</td> </td>
<td class="head">油罐容积</td> <td class="head">油罐容积(m³)</td>
<td class="text"> <td class="text">
<nz-form-item> <nz-form-item>
<nz-form-control> <nz-form-control>
<nz-input-group> <nz-input-group>
<input [(ngModel)]="httpBody.tankVolume" nz-input type="text" formControlName="tankVolume" /> <input [(ngModel)]="httpBody.tankVolume" nz-input type="number" formControlName="tankVolume" />
</nz-input-group> </nz-input-group>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>

4
src/app/pages/plan-admin/plan-admin.component.html

@ -69,7 +69,7 @@
<th>经营品类</th> <th>经营品类</th>
<th [nzWidth]="'6%'">油机数量</th> <th [nzWidth]="'6%'">油机数量</th>
<th [nzWidth]="'6%'">车道数量</th> <th [nzWidth]="'6%'">车道数量</th>
<th [nzWidth]="'6%'">油罐容积</th> <th [nzWidth]="'8%'">油罐容积</th>
<th [nzWidth]="'5%'">操作</th> <th [nzWidth]="'5%'">操作</th>
</tr> </tr>
</thead> </thead>
@ -89,7 +89,7 @@
<th nzEllipsis [title]="item.sellVariety">{{item.sellVariety}}</th> <th nzEllipsis [title]="item.sellVariety">{{item.sellVariety}}</th>
<th>{{item.gasStationCount}}</th> <th>{{item.gasStationCount}}</th>
<th>{{item.laneCount}}</th> <th>{{item.laneCount}}</th>
<th>{{item.tankVolume}}</th> <th>{{item.tankVolume}}{{item.tankVolume ? 'm³' : null}}</th>
<th> <th>
<span class="look" (click)="look(item)" style="cursor:pointer;color: #36A2FF">查看</span> <span class="look" (click)="look(item)" style="cursor:pointer;color: #36A2FF">查看</span>
</th> </th>

Loading…
Cancel
Save