From b8cf6d47648dc0e94d8911b1ba30771c591cebc4 Mon Sep 17 00:00:00 2001 From: liuxianghui <519646741@qq.com> Date: Wed, 5 Jan 2022 15:53:55 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E9=87=8D?= =?UTF-8?q?=E8=AF=95=E7=AD=96=E7=95=A5=EF=BC=8C=E6=80=80=E7=96=91babylon?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E7=9A=84=E9=87=8D=E8=AF=95=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E6=9C=89bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/babylon/controller/scene-manager.ts | 20 +++++-- src/app/babylon/game.ts | 58 +++++++++++---------- src/app/babylon/tool/babylon-tool.ts | 1 + 3 files changed, 48 insertions(+), 31 deletions(-) diff --git a/src/app/babylon/controller/scene-manager.ts b/src/app/babylon/controller/scene-manager.ts index 71d56a0..46441f3 100644 --- a/src/app/babylon/controller/scene-manager.ts +++ b/src/app/babylon/controller/scene-manager.ts @@ -12,6 +12,7 @@ import { HemisphericLight, HighlightLayer, IParticleSystem, + ISceneLoaderProgressEvent, Mesh, MeshBuilder, 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 { Event_KeyboardInput } from './event-manager/events/event-keyboard-input'; 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_Line } from '../model/data/mark/other/mark-data-line'; 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 { 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 { FacilityPosType, ModelData_facility } from '../model/data/model-data/model-data-facility'; import { LoadTool } from '../tool/load-tool'; + //场景管理器 export class SceneManager { //----------------Camera-----------------\\ @@ -595,7 +596,11 @@ export class SceneManager { let box = SceneManager.importMeshSuccess(newMeshes, particleSystems, skeletons, animationGroups, modelInfo, needBox, modelData); //console.log("加载模型完成", modelData.resName); onSuccess(newMeshes, box, modelInfo); - }, null, + }, function (event: ISceneLoaderProgressEvent) { + + //console.log(modelData.resName + "加载中", event, new Date().getTime()); + + }, function (scene: Scene, message: string, exception?: any) { if (index < 5) { @@ -930,6 +935,8 @@ class ImportMeshSyncData { onsuccessObservable: Observable; + + constructor(path: string, name: string) { this.isBreak = false; @@ -938,8 +945,13 @@ class ImportMeshSyncData { this.onsuccessObservable = new Observable(); } + + } + + + /** * 异步导入模型的回调 */ diff --git a/src/app/babylon/game.ts b/src/app/babylon/game.ts index b45ad39..66d6496 100644 --- a/src/app/babylon/game.ts +++ b/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 { LoginSatus } from "./controller/status/login-status"; @@ -18,8 +18,9 @@ export class Game { //初始化引擎和画布 public init(canvas: HTMLCanvasElement) { - // FileTools.DefaultRetryStrategy = MyRetryStrategy.ExponentialBackoff(2, 1000); - // FileTools.DefaultRetryStrategy = RetryStrategy.ExponentialBackoff(2, 1000); + FileTools.DefaultRetryStrategy = MyRetryStrategy.ExponentialBackoff(2, 1000); + // FileTools.DefaultRetryStrategy = RetryStrategy.ExponentialBackoff(2, 1000); + if (Game.instance != null) { // canvas.setAttribute("touch-action", "none"); // canvas.style.touchAction = "none"; @@ -117,27 +118,30 @@ export class Game { } -// /** -// * 重试策略 -// */ -// var MyRetryStrategy = /** @class */ (function () { -// function RetryStrategy() { -// } -// /** -// * Function used to defines an exponential back off strategy -// * @param maxRetries defines the maximum number of retries (3 by default) -// * @param baseInterval defines the interval between retries -// * @returns the strategy function to use -// */ -// MyRetryStrategy.ExponentialBackoff = function (maxRetries, baseInterval) { -// if (maxRetries === void 0) { maxRetries = 3; } -// if (baseInterval === void 0) { baseInterval = 500; } -// return function (url, request, retryIndex) { -// if (request.status !== 0 || retryIndex >= maxRetries || url.indexOf("file:") !== -1) { -// return -1; -// } -// return Math.pow(2, retryIndex) * baseInterval; -// }; -// }; -// return MyRetryStrategy; -// }()); +/** + * 重试策略 + */ +var MyRetryStrategy = /** @class */ (function () { + function MyRetryStrategy() { + } + /** + * Function used to defines an exponential back off strategy + * @param maxRetries defines the maximum number of retries (3 by default) + * @param baseInterval defines the interval between retries + * @returns the strategy function to use + */ + MyRetryStrategy.ExponentialBackoff = function (maxRetries, baseInterval) { + if (maxRetries === void 0) { maxRetries = 3; } + if (baseInterval === void 0) { baseInterval = 500; } + return function (url, request, retryIndex) { + + if (request.status == 0 || retryIndex >= maxRetries || url.indexOf("file:") !== -1) { + console.log("不重试加载", request.status, retryIndex, url.indexOf("file:")); + return -1; + } + console.log("重试加载", request.status, retryIndex, url.indexOf("file:")); + return Math.pow(2, retryIndex) * baseInterval; + }; + }; + return MyRetryStrategy; +}()); diff --git a/src/app/babylon/tool/babylon-tool.ts b/src/app/babylon/tool/babylon-tool.ts index de9b205..406ad6d 100644 --- a/src/app/babylon/tool/babylon-tool.ts +++ b/src/app/babylon/tool/babylon-tool.ts @@ -134,6 +134,7 @@ export class BabylonTool { let modelPath = path + sceneFilename; LoadTool.add(modelPath, tag); + let isSuccess = false; let plugin = SceneLoader.ImportMeshAsync( From b6dce3f3f31bae9b9fb2401016ab06d71a36f437 Mon Sep 17 00:00:00 2001 From: cpf <1105965053@qq.com> Date: Wed, 5 Jan 2022 17:01:10 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/pages/left-domain/left-domain.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/pages/left-domain/left-domain.component.ts b/src/app/pages/left-domain/left-domain.component.ts index d9021f9..b62e2f2 100644 --- a/src/app/pages/left-domain/left-domain.component.ts +++ b/src/app/pages/left-domain/left-domain.component.ts @@ -210,14 +210,14 @@ export class LeftDomainComponent implements OnInit { //是否换行 isLineFeed(str: string):boolean { if (str) { - let strlen = 0; + let strlen = 0; for (var i = 0;i < str.length; i++) { if(str.charCodeAt(i) > 255) //如果是汉字,则字符串长度加2 strlen += 2; else strlen++; } - if (strlen >= 16) { + if (strlen > 17) { return false } else { return true