@anov/3d 0.0.75 → 0.0.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/anov3d.js +2 -0
- package/dist/anov3d.js.map +1 -1
- package/dist/factory/3d.js +8 -3
- package/dist/factory/3d.js.map +1 -1
- package/dist/factory/unit/glsl/heat/frag.d.ts +1 -1
- package/dist/factory/unit/glsl/heat/frag.js +2 -1
- package/dist/factory/unit/glsl/heat/frag.js.map +1 -1
- package/dist/factory/unit/glsl/heat/ver.d.ts +1 -1
- package/dist/factory/unit/glsl/heat/ver.js +2 -1
- package/dist/factory/unit/glsl/heat/ver.js.map +1 -1
- package/dist/factory/unit/inspection/InspectionObject.d.ts +5 -0
- package/dist/factory/unit/inspection/InspectionObject.js +73 -19
- package/dist/factory/unit/inspection/InspectionObject.js.map +1 -1
- package/dist/factory/unit/inspection/lineData.js +1 -1
- package/dist/factory/unit/inspection/lineData.js.map +1 -1
- package/dist/factory/unit/inspection/tubeGeometry.d.ts +16 -0
- package/dist/factory/unit/inspection/tubeGeometry.js +152 -0
- package/dist/factory/unit/inspection/tubeGeometry.js.map +1 -0
- package/package.json +1 -1
package/dist/anov3d.js
CHANGED
|
@@ -51,7 +51,9 @@ var Anov3D = /*#__PURE__*/function () {
|
|
|
51
51
|
reset: true,
|
|
52
52
|
css2DRenderer: true,
|
|
53
53
|
ambientLight: true
|
|
54
|
+
// fog: 'FogExp2' as any,
|
|
54
55
|
});
|
|
56
|
+
|
|
55
57
|
scene.render(opts.container);
|
|
56
58
|
(_scene$controls = scene.controls) === null || _scene$controls === void 0 ? void 0 : _scene$controls.target.copy((_opts$camera = opts.camera) !== null && _opts$camera !== void 0 && _opts$camera.target ? new Vector3().fromArray(opts.camera.target) : object2Vector3(defaultCameraParams.lookAt));
|
|
57
59
|
utils.emitter.emit('scene-completed', scene);
|
package/dist/anov3d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PMREMGenerator","SceneControl","Vector3","lib","use","utils","EventBus","EWeatherType","object2Vector3","Model","defaultCameraParams","RoomEnvironment","Anov3D","opts","camera","cameraParams","fov","near","far","position","fromArray","scene","orbitControls","controls","defCameraOps","aspect","size","width","container","clientWidth","height","clientHeight","rendererOps","shadowMap","reset","css2DRenderer","ambientLight","render","target","copy","lookAt","emitter","emit","sceneControl","eventBus","model","load","changeSceneEnvironment","storeManagement","set","openFlag","useScene","renderer","pmremGenerator","compileEquirectangularShader","roomEnvironment"],"sources":["../src/anov3d.ts"],"sourcesContent":["import { PMREMGenerator, SceneControl, Vector3, lib, use, utils } from '@anov/3d-core'\nimport EventBus from './module/eventBus'\nimport { EWeatherType } from './module/environment/weather/type'\nimport type { InitOptions } from './applicationApi'\nimport { object2Vector3 } from './utils/index'\nimport Model from './module/model'\nimport { defaultCameraParams } from './index'\n\ntype Anov3DOptions = {\n container: HTMLElement\n size?: {\n width: number\n height: number\n }\n camera?: InitOptions['camera']\n environment?: InitOptions['environment']\n model?: InitOptions['model']\n controls?: InitOptions['controls']\n}\n\nconst { RoomEnvironment } = lib\n\nclass Anov3D {\n zoomRatio = 1\n opts: Anov3DOptions\n sceneControl: SceneControl\n eventBus: EventBus\n EWeatherType: typeof EWeatherType = EWeatherType\n model: Model\n\n constructor(opts: Anov3DOptions) {\n this.opts = opts\n const { camera = {} } = opts || {}\n\n const cameraParams = {\n fov: camera.fov ?? defaultCameraParams.fov,\n near: camera.near ?? defaultCameraParams.near,\n far: camera.far ?? defaultCameraParams.far,\n position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultCameraParams.position),\n }\n\n const scene = new SceneControl({\n orbitControls: opts.controls || { use: true },\n defCameraOps: {\n aspect: (opts?.size?.width ?? opts.container.clientWidth) / (opts?.size?.height ?? opts.container.clientHeight),\n ...cameraParams,\n },\n rendererOps: {\n shadowMap: true,\n size: {\n width: opts?.size?.width ?? opts.container.clientWidth,\n height: opts?.size?.height ?? opts.container.clientHeight,\n },\n },\n reset: true,\n css2DRenderer: true,\n ambientLight: true,\n })\n\n scene.render(opts.container)\n\n scene.controls?.target.copy(opts.camera?.target ? new Vector3().fromArray(opts.camera.target) : object2Vector3(defaultCameraParams.lookAt))\n\n utils.emitter.emit('scene-completed', scene)\n\n // 不考虑 tree-shaking\n this.sceneControl = scene\n\n this.eventBus = new EventBus()\n this.model = new Model()\n this.opts.model && (this.model.load(this.opts.model))\n this.changeSceneEnvironment()\n utils.storeManagement.set('event-bus', this.eventBus)\n\n utils.emitter.emit('instantiation-completed', this)\n }\n\n changeSceneEnvironment(openFlag = true) {\n const { renderer, scene } = use.useScene()\n const pmremGenerator = new PMREMGenerator(renderer!)\n pmremGenerator.compileEquirectangularShader()\n const roomEnvironment = new (RoomEnvironment as any)()\n\n // if (openFlag)\n // // scene!.environment = pmremGenerator.fromScene(roomEnvironment, 0.04).texture\n\n // else\n // scene!.environment = null\n }\n}\n\nexport default Anov3D"],"mappings":";;;;;;;;;AAAA,SAASA,cAAc,EAAEC,YAAY,EAAEC,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AACtF,OAAOC,QAAQ;AACf,SAASC,YAAY;AAErB,SAASC,cAAc;AACvB,OAAOC,KAAK;AACZ,SAASC,mBAAmB;AAc5B,IAAQC,eAAe,GAAKR,GAAG,CAAvBQ,eAAe;AAAQ,IAEzBC,MAAM;EAQV,gBAAYC,IAAmB,EAAE;IAAA;IAAA;IAAA,mCAPrB,CAAC;IAAA;IAAA;IAAA;IAAA,sCAIuBN,YAAY;IAAA;IAI9C,IAAI,CAACM,IAAI,GAAGA,IAAI;IAChB,WAAwBA,IAAI,IAAI,CAAC,CAAC;MAAA,mBAA1BC,MAAM;MAANA,MAAM,4BAAG,CAAC,CAAC;IAEnB,IAAMC,YAAY,GAAG;MACnBC,GAAG,iBAAEF,MAAM,CAACE,GAAG,qDAAIN,mBAAmB,CAACM,GAAG;MAC1CC,IAAI,kBAAEH,MAAM,CAACG,IAAI,uDAAIP,mBAAmB,CAACO,IAAI;MAC7CC,GAAG,iBAAEJ,MAAM,CAACI,GAAG,qDAAIR,mBAAmB,CAACQ,GAAG;MAC1CC,QAAQ,EAAEL,MAAM,CAACK,QAAQ,GAAG,IAAIjB,OAAO,EAAE,CAACkB,SAAS,CAACN,MAAM,CAACK,QAAQ,CAAC,GAAGX,cAAc,CAACE,mBAAmB,CAACS,QAAQ;IACpH,CAAC;IAED,IAAME,KAAK,GAAG,IAAIpB,YAAY,CAAC;MAC7BqB,aAAa,EAAET,IAAI,CAACU,QAAQ,IAAI;QAAEnB,GAAG,EAAE;MAAK,CAAC;MAC7CoB,YAAY;QACVC,MAAM,EAAE,qBAACZ,IAAI,aAAJA,IAAI,qCAAJA,IAAI,CAAEa,IAAI,+CAAV,WAAYC,KAAK,+DAAId,IAAI,CAACe,SAAS,CAACC,WAAW,0BAAKhB,IAAI,aAAJA,IAAI,sCAAJA,IAAI,CAAEa,IAAI,gDAAV,YAAYI,MAAM,iEAAIjB,IAAI,CAACe,SAAS,CAACG,YAAY;MAAC,GAC5GhB,YAAY,CAChB;MACDiB,WAAW,EAAE;QACXC,SAAS,EAAE,IAAI;QACfP,IAAI,EAAE;UACJC,KAAK,uBAAEd,IAAI,aAAJA,IAAI,sCAAJA,IAAI,CAAEa,IAAI,gDAAV,YAAYC,KAAK,iEAAId,IAAI,CAACe,SAAS,CAACC,WAAW;UACtDC,MAAM,wBAAEjB,IAAI,aAAJA,IAAI,sCAAJA,IAAI,CAAEa,IAAI,gDAAV,YAAYI,MAAM,mEAAIjB,IAAI,CAACe,SAAS,CAACG;QAC/C;MACF,CAAC;MACDG,KAAK,EAAE,IAAI;MACXC,aAAa,EAAE,IAAI;MACnBC,YAAY,EAAE;
|
|
1
|
+
{"version":3,"names":["PMREMGenerator","SceneControl","Vector3","lib","use","utils","EventBus","EWeatherType","object2Vector3","Model","defaultCameraParams","RoomEnvironment","Anov3D","opts","camera","cameraParams","fov","near","far","position","fromArray","scene","orbitControls","controls","defCameraOps","aspect","size","width","container","clientWidth","height","clientHeight","rendererOps","shadowMap","reset","css2DRenderer","ambientLight","render","target","copy","lookAt","emitter","emit","sceneControl","eventBus","model","load","changeSceneEnvironment","storeManagement","set","openFlag","useScene","renderer","pmremGenerator","compileEquirectangularShader","roomEnvironment"],"sources":["../src/anov3d.ts"],"sourcesContent":["import { PMREMGenerator, SceneControl, Vector3, lib, use, utils } from '@anov/3d-core'\nimport EventBus from './module/eventBus'\nimport { EWeatherType } from './module/environment/weather/type'\nimport type { InitOptions } from './applicationApi'\nimport { object2Vector3 } from './utils/index'\nimport Model from './module/model'\nimport { defaultCameraParams } from './index'\n\ntype Anov3DOptions = {\n container: HTMLElement\n size?: {\n width: number\n height: number\n }\n camera?: InitOptions['camera']\n environment?: InitOptions['environment']\n model?: InitOptions['model']\n controls?: InitOptions['controls']\n}\n\nconst { RoomEnvironment } = lib\n\nclass Anov3D {\n zoomRatio = 1\n opts: Anov3DOptions\n sceneControl: SceneControl\n eventBus: EventBus\n EWeatherType: typeof EWeatherType = EWeatherType\n model: Model\n\n constructor(opts: Anov3DOptions) {\n this.opts = opts\n const { camera = {} } = opts || {}\n\n const cameraParams = {\n fov: camera.fov ?? defaultCameraParams.fov,\n near: camera.near ?? defaultCameraParams.near,\n far: camera.far ?? defaultCameraParams.far,\n position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultCameraParams.position),\n }\n\n const scene = new SceneControl({\n orbitControls: opts.controls || { use: true },\n defCameraOps: {\n aspect: (opts?.size?.width ?? opts.container.clientWidth) / (opts?.size?.height ?? opts.container.clientHeight),\n ...cameraParams,\n },\n rendererOps: {\n shadowMap: true,\n size: {\n width: opts?.size?.width ?? opts.container.clientWidth,\n height: opts?.size?.height ?? opts.container.clientHeight,\n },\n },\n reset: true,\n css2DRenderer: true,\n ambientLight: true,\n // fog: 'FogExp2' as any,\n })\n\n scene.render(opts.container)\n\n scene.controls?.target.copy(opts.camera?.target ? new Vector3().fromArray(opts.camera.target) : object2Vector3(defaultCameraParams.lookAt))\n\n utils.emitter.emit('scene-completed', scene)\n\n // 不考虑 tree-shaking\n this.sceneControl = scene\n\n this.eventBus = new EventBus()\n this.model = new Model()\n this.opts.model && (this.model.load(this.opts.model))\n this.changeSceneEnvironment()\n utils.storeManagement.set('event-bus', this.eventBus)\n\n utils.emitter.emit('instantiation-completed', this)\n }\n\n changeSceneEnvironment(openFlag = true) {\n const { renderer, scene } = use.useScene()\n const pmremGenerator = new PMREMGenerator(renderer!)\n pmremGenerator.compileEquirectangularShader()\n const roomEnvironment = new (RoomEnvironment as any)()\n\n // if (openFlag)\n // // scene!.environment = pmremGenerator.fromScene(roomEnvironment, 0.04).texture\n\n // else\n // scene!.environment = null\n }\n}\n\nexport default Anov3D"],"mappings":"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"}
|
package/dist/factory/3d.js
CHANGED
|
@@ -13,6 +13,7 @@ import { globalEvents } from "./globalData";
|
|
|
13
13
|
import { SceneStyle, SceneTag } from "./utils/constant";
|
|
14
14
|
import factoryGlobalObject from "./globalControl";
|
|
15
15
|
import createRiseLayer from "./unit/layer/rise";
|
|
16
|
+
import { targetProgresspoints } from "./unit/inspection/lineData";
|
|
16
17
|
import frag from "./unit/glsl/heat/frag";
|
|
17
18
|
import vert from "./unit/glsl/heat/ver";
|
|
18
19
|
var vertexShader = "\n".concat(ShaderChunk.logdepthbuf_pars_vertex, "\nbool isPerspectiveMatrix(mat4) {\n return true;\n }\n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\n vPosition = worldPosition1.xyz;\n ").concat(ShaderChunk.logdepthbuf_vertex, "\n }\n");
|
|
@@ -234,6 +235,9 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
234
235
|
_this2.techModel = group;
|
|
235
236
|
return gltf;
|
|
236
237
|
});
|
|
238
|
+
var targerMeshName = Object.values(targetProgresspoints).map(function (v) {
|
|
239
|
+
return v.lookAt;
|
|
240
|
+
});
|
|
237
241
|
|
|
238
242
|
// thermaLimaging model
|
|
239
243
|
load.loadGLTF("".concat(this.usePath, "2222.glb"), false, true, './draco/', function (gltf) {
|
|
@@ -254,11 +258,12 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
254
258
|
uvScale: {
|
|
255
259
|
value: new Vector2(1, 1)
|
|
256
260
|
}
|
|
257
|
-
}
|
|
258
|
-
depthTest: false,
|
|
259
|
-
depthWrite: false
|
|
261
|
+
}
|
|
260
262
|
});
|
|
261
263
|
child.layers.set(2);
|
|
264
|
+
if (targerMeshName.includes(child.name))
|
|
265
|
+
// @ts-ignore
|
|
266
|
+
child.material.depthTest = false;
|
|
262
267
|
}
|
|
263
268
|
});
|
|
264
269
|
_this2.scene.add(group);
|
package/dist/factory/3d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AdditiveBlending","Color","EquirectangularReflectionMapping","InteractionManager","LoadingManager","Mesh","ModelLoader","PlaneGeometry","RepeatWrapping","SRGBColorSpace","ShaderChunk","ShaderMaterial","TextureLoader","Vector2","Vector3","Vector4","lib","use","utils","Camera","finirMaterialV1","handleUnit","toggleTag","globalEvents","SceneStyle","SceneTag","factoryGlobalObject","createRiseLayer","frag","vert","vertexShader","logdepthbuf_pars_vertex","logdepthbuf_vertex","fragmentShader","logdepthbuf_pars_fragment","logdepthbuf_fragment","loadingManager","load","rgbeLoader","RGBELoader","emitter","resourcePath","resourcePath2","usePath","_Texture","_Texture2","_Texture3","wrapS","wrapT","repeat","set","uniforms","value","_Texture_ST","_Color","r","g","b","_ColorS","_TextureMask","_TexturePlane","_MaskUV","_ColorMask","_ColorMaskS","_Speed","_OP","_Time","material","transparent","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","scene","Promise","resolve","cameraUtil","camera","controls","control","layers","loadGLTF","gltf","realTreeModel","add","interactionManager","renderer","domElement","storeManagement","useframe","update","loadModel","onLoad","toneMappingExposure","visible","style","realModl","call","group","traverse","child","type","name","geometry","plane","rotation","x","Math","PI","position","renderOrder","scale","text","blending","opacity","depthTest","map","offset","tech","techModel","texture1","texture2","uvScale","depthWrite","thermaLimaging","pipeline","realGroundModel","setPath","texture","mapping","colorSpace","boxSkeyTexture","environment","background","params","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","cutoutCamera","inspection","minCamera","mainCamera","eventName","handleFn","push"],"sources":["../../src/factory/3d.ts"],"sourcesContent":["import type { DataTexture, Group, OrbitControls, SceneControl } from '@anov/3d-core'\nimport { AdditiveBlending, BoxGeometry, Color, EquirectangularReflectionMapping, InteractionManager, LoadingManager, Mesh, MeshBasicMaterial, ModelLoader, PlaneGeometry, RepeatWrapping, SRGBColorSpace, ShaderChunk, ShaderMaterial, TextureLoader, Vector2, Vector3, Vector4, lib, sRGBEncoding, use, utils } from '@anov/3d-core'\nimport { Camera, createBloomSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport { finirMaterialV1 } from './utils/finirMaterial'\nimport handleUnit, { toggleTag } from './unit'\nimport type WallManage from './unit/wall'\nimport type LineManage from './unit/line'\nimport type CylinderManage from './unit/cylinder'\nimport type PoiManage from './unit/poi'\nimport type CircleManage from './unit/circle'\nimport type AreaBoundingBoxManage from './unit/areaBoundingBox'\nimport type Inspection from './unit/inspection'\nimport { globalEvents } from './globalData'\nimport { SceneStyle, SceneTag } from './utils/constant'\nimport switchMaterial from './utils/switchMaterial'\nimport factoryGlobalObject from './globalControl'\nimport { debounce } from './utils'\nimport createRiseLayer from './unit/layer/rise'\n\nimport frag from './unit/glsl/heat/frag'\nimport vert from './unit/glsl/heat/ver'\n\ntype factory3dOption = {\n model: string\n environment: string\n decoderPath?: string\n controls?: any\n}\n\nconst vertexShader = `\n${ShaderChunk.logdepthbuf_pars_vertex}\nbool isPerspectiveMatrix(mat4) {\n return true;\n }\n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\n vPosition = worldPosition1.xyz;\n ${ShaderChunk.logdepthbuf_vertex}\n }\n`\n\n// Fragment shader\nconst fragmentShader = `\n ${ShaderChunk.logdepthbuf_pars_fragment} \n\n uniform sampler2D _Texture;\n uniform sampler2D _TexturePlane;\n //uniform vec4 _Texture_ST;\n uniform vec4 _Color;\n uniform float _ColorS;\n uniform sampler2D _TextureMask;\n uniform float _MaskUV;\n uniform vec4 _ColorMask;\n uniform float _ColorMaskS;\n //uniform vec4 _Speed;\n //uniform float _OP;\n uniform float _Time; \n varying vec2 vUv;\n varying vec3 vPosition;\n\n\n\n void main() {\n vec4 _ColorMask_ =vec4(0.,0.6,1.,1.);\n\n vec3 temp_cast_0 = vec3(0.2);\n vec4 o = vec4(temp_cast_0, 1.0);\n vec2 uv_Texture = vUv * 10.0;\n vec4 tex2DNode1 = texture2D(_Texture, uv_Texture);\n vec4 tex2DNode2 = texture2D(_TexturePlane, uv_Texture);\n vec2 temp_cast_1 = vec2(_MaskUV)* 3.0;\n vec2 uv_TexCoord7 = vUv * temp_cast_1;\n vec2 panner6 = (vec2(_Time,_Time)+ uv_TexCoord7);\n o.rgb = ((tex2DNode2*0.1)+(_Color * tex2DNode1.r * _ColorS) + (_ColorMask_ * (tex2DNode1.r * texture2D(_TextureMask, panner6).r) * _ColorMaskS*10.)).rgb;\n //o.a = _OP;\n gl_FragColor = o;\n gl_FragColor.a = 1.0;\n \n if(vPosition.x>-550.0 && vPosition.x<550.0 && vPosition.z>-300.0 && vPosition.z<270.0){\n gl_FragColor.a = 0.0;\n }else{\n gl_FragColor.a = .85;\n }\n\n ${ShaderChunk.logdepthbuf_fragment}\n }\n`\n\nexport const loadingManager = new LoadingManager()\nconst load = new ModelLoader(loadingManager)\nconst rgbeLoader = new lib.RGBELoader(loadingManager)\nconst { emitter } = utils\n\nconst resourcePath = './'\nconst resourcePath2 = 'http://172.16.223.163:9000/anov-prod/anov-3d/factory/example/'\n\nexport const usePath = process.env.ENV === 'dev' ? resourcePath : resourcePath2\n\nconst _Texture = new TextureLoader().load(`${usePath}demo03.jpg`)\nconst _Texture2 = new TextureLoader().load(`${usePath}demo04.jpg`)\nconst _Texture3 = new TextureLoader().load(`${usePath}test04.jpg`)\n\n_Texture.wrapS = RepeatWrapping\n_Texture.wrapT = RepeatWrapping\n\n_Texture2.wrapS = RepeatWrapping\n_Texture2.wrapT = RepeatWrapping\n\n_Texture3.wrapS = RepeatWrapping\n_Texture3.wrapT = RepeatWrapping\n\n_Texture.repeat.set(5000, 5000)\n_Texture2.repeat.set(10, 10)\n_Texture3.repeat.set(5000, 5000)\n\nconst uniforms = {\n _Texture: { value: _Texture },\n _Texture_ST: { value: new Vector4() },\n _Color: { value: new Vector4(new Color('#096ddb').r, new Color('#096ddb').g, new Color('#096ddb').b, 0.5) },\n _ColorS: { value: 1 },\n _TextureMask: { value: _Texture2 },\n _TexturePlane: { value: _Texture3 },\n _MaskUV: { value: 1 },\n _ColorMask: { value: new Vector4(new Color('#fff').r, new Color('#fff').g, new Color('#fff').b, 1) },\n _ColorMaskS: { value: 1 },\n _Speed: { value: new Vector4(0.0, 0.2, 0, 0) },\n _OP: { value: 1.0 },\n _Time: { value: 1.0 },\n}\n\nconst material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n transparent: true,\n // depthTest: false,\n})\n\nclass Factory3D {\n position: Vector3 = new Vector3(0, 0, 0)\n scene: SceneControl\n control: OrbitControls\n cameraUtil: Camera\n\n public loadingManager = loadingManager\n public tag = SceneTag.overview\n public style: SceneStyle = SceneStyle.real\n private option: factory3dOption\n wall: WallManage\n line: LineManage\n cylinder: CylinderManage\n poi: PoiManage\n circle: CircleManage\n areaBoundingBox: AreaBoundingBoxManage\n inspection: Inspection\n\n usePath = usePath\n\n private pipeline: Group\n private realModl: Group\n private techModel: Group\n private realGroundModel: Group\n private realTreeModel: Group\n private thermaLimaging: Group\n private eventHandleFn: Map<string, ((args?: any) => void)[]> = new Map()\n private boxSkeyTexture: DataTexture\n\n interactionManager: InteractionManager\n\n constructor(option: factory3dOption) {\n this.option = option\n this.globalEventsAgent()\n factoryGlobalObject.setFactory(this)\n }\n\n /**\n * render factory 3d scene\n */\n renderScene(scene: SceneControl) {\n return new Promise((resolve) => {\n this.scene = scene\n\n this.cameraUtil = new Camera(scene.camera!, scene.controls!, scene)\n this.control = scene.controls!\n scene.camera.layers.set(0)\n\n load.loadGLTF(`${this.usePath}landScap3.glb`, false, true, './draco/', (gltf) => {\n this.realTreeModel = (gltf.scene) as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n scene.add(this.realTreeModel)\n\n return gltf\n })\n\n const interactionManager = new InteractionManager(\n this.scene.renderer,\n this.scene.camera,\n this.scene.renderer.domElement, // Modified By LM this.scene.cssRenderer.cssRenderer.domElement,\n )\n\n this.interactionManager = interactionManager\n\n utils.storeManagement.set('interactionManager', interactionManager)\n\n use.useframe(() => {\n interactionManager.update()\n })\n\n this.loadModel()\n\n loadingManager.onLoad = () => {\n resolve('success')\n }\n\n scene.renderer.toneMappingExposure = 0.4\n })\n }\n\n private loadModel() {\n // real model\n load.loadGLTF(`${this.usePath}222.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n gltf.scene.visible = SceneStyle.real === this.style\n\n this.realModl = gltf.scene as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n handleUnit.call(this)\n\n return gltf\n })\n\n // tech model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n\n use.useframe(() => {\n if (uniforms._Time.value > 0.5)\n uniforms._Time.value = 0\n\n uniforms._Time.value += 0.0008\n })\n\n group.traverse((child) => {\n // @ts-ignore\n if (child.type === 'Mesh') {\n if (child.name === '柱体') {\n // @ts-ignore\n child.visible = false\n const geometry = new PlaneGeometry(3000, 2000)\n const plane = new Mesh(geometry, material)\n plane.rotation.x = -Math.PI / 2\n\n plane.position.set(0, -1.5, 0)\n plane.renderOrder = -1\n\n group.add(plane)\n }\n\n else {\n // @ts-ignore\n child.material = finirMaterialV1\n }\n }\n })\n\n load.loadGLTF(`${this.usePath}plane.glb`, false, true, './draco/', (gltf) => {\n gltf.scene.scale.set(0.5, 0.5, 0.5)\n\n const text = new TextureLoader().load(`${this.usePath}roll.png`)\n\n text.wrapS = RepeatWrapping\n text.wrapT = RepeatWrapping\n\n text.repeat.set(1, 1)\n\n gltf.scene.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material.blending = AdditiveBlending\n // @ts-ignore\n child.material.transparent = true\n // @ts-ignore\n child.material.opacity = 1\n // @ts-ignore\n child.material.depthTest = true\n\n // @ts-ignore\n child.material.map = text\n }\n })\n\n use.useframe(() => {\n text.offset.x += 0.01\n })\n\n group.add(gltf.scene)\n\n return gltf\n })\n\n createRiseLayer()\n\n this.scene.add(group)\n\n group.visible = SceneStyle.tech === this.style\n this.techModel = group as Group\n\n return gltf\n })\n\n // thermaLimaging model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n group.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = new ShaderMaterial({\n vertexShader: vert,\n fragmentShader: frag,\n uniforms: {\n texture1: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test01.jpg`) },\n texture2: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test02.jpg`) },\n uvScale: { value: new Vector2(1, 1) },\n },\n depthTest: false,\n depthWrite: false,\n })\n\n child.layers.set(2)\n }\n })\n\n this.scene.add(group)\n\n this.thermaLimaging = group as Group\n\n return gltf\n })\n\n load.loadGLTF(`${this.usePath}guandao.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n this.pipeline = gltf.scene as Group\n return gltf\n })\n\n // ground\n load.loadGLTF(`${this.usePath}landScap.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n this.realGroundModel = gltf.scene as Group\n return gltf\n })\n rgbeLoader.setPath(`${this.usePath}`).load('demo.hdr', (texture) => {\n texture.mapping = EquirectangularReflectionMapping\n\n texture.colorSpace = SRGBColorSpace\n this.boxSkeyTexture = texture\n this.scene.scene.environment = texture\n this.scene.scene.background = new Color('#ccc')\n })\n }\n\n /**\n * toggle SceneStyle\n * @param params\n */\n toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n\n this.style = params\n\n if (this.style === SceneStyle.tech) {\n this.pipeline.visible = false\n this.techModel.visible = true\n this.realModl.visible = false\n this.realTreeModel.visible = false\n this.scene.scene.background = null\n this.realGroundModel && (this.realGroundModel.visible = false)\n\n this.scene.renderer.toneMappingExposure = 0.6\n }\n\n if (params === SceneStyle.real) {\n this.pipeline.visible = true\n this.techModel.visible = false\n this.realModl.visible = true\n this.realGroundModel && (this.realGroundModel.visible = true)\n this.realTreeModel && (this.realTreeModel.visible = true)\n this.scene.scene.background = new Color('#ccc')\n this.scene.scene.environment = this.boxSkeyTexture\n\n this.scene.renderer.toneMappingExposure = 0.4\n }\n }\n\n public toggleTag(tag: SceneTag) {\n if (this.tag === tag)\n return\n toggleTag[tag].apply(this, [this])\n }\n\n private globalEventsAgent() {\n globalEvents.forEach((eventKey) => {\n emitter.on(eventKey, (args) => {\n this.eventHandleFn.get(eventKey)?.forEach((fn) => {\n fn(args)\n })\n })\n })\n }\n\n /**\n * toggle view\n */\n toggleView() {\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n this.scene.cutoutCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n // initPostEffects(this.scene.scene, this.scene.renderer, cutoutCamera, {\n // type: 'main',\n // })\n }\n else {\n const mainCamera = this.scene.cutoutCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n // initPostEffects(this.scene.scene, this.scene.renderer, cutoutCamera, {\n // type: 'sub',\n // })\n }\n }\n\n addEventListener(eventName: string, handleFn: (args?: any) => void) {\n if (this.eventHandleFn.get(eventName))\n this.eventHandleFn.get(eventName).push(handleFn)\n\n else\n this.eventHandleFn.set(eventName, [handleFn])\n }\n}\n\nexport default Factory3D"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["AdditiveBlending","Color","EquirectangularReflectionMapping","InteractionManager","LoadingManager","Mesh","ModelLoader","PlaneGeometry","RepeatWrapping","SRGBColorSpace","ShaderChunk","ShaderMaterial","TextureLoader","Vector2","Vector3","Vector4","lib","use","utils","Camera","finirMaterialV1","handleUnit","toggleTag","globalEvents","SceneStyle","SceneTag","factoryGlobalObject","createRiseLayer","targetProgresspoints","frag","vert","vertexShader","logdepthbuf_pars_vertex","logdepthbuf_vertex","fragmentShader","logdepthbuf_pars_fragment","logdepthbuf_fragment","loadingManager","load","rgbeLoader","RGBELoader","emitter","resourcePath","resourcePath2","usePath","_Texture","_Texture2","_Texture3","wrapS","wrapT","repeat","set","uniforms","value","_Texture_ST","_Color","r","g","b","_ColorS","_TextureMask","_TexturePlane","_MaskUV","_ColorMask","_ColorMaskS","_Speed","_OP","_Time","material","transparent","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","scene","Promise","resolve","cameraUtil","camera","controls","control","layers","loadGLTF","gltf","realTreeModel","add","interactionManager","renderer","domElement","storeManagement","useframe","update","loadModel","onLoad","toneMappingExposure","visible","style","realModl","call","group","traverse","child","type","name","geometry","plane","rotation","x","Math","PI","position","renderOrder","scale","text","blending","opacity","depthTest","map","offset","tech","techModel","targerMeshName","Object","values","v","lookAt","texture1","texture2","uvScale","includes","thermaLimaging","pipeline","realGroundModel","setPath","texture","mapping","colorSpace","boxSkeyTexture","environment","background","params","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","cutoutCamera","inspection","minCamera","mainCamera","eventName","handleFn","push"],"sources":["../../src/factory/3d.ts"],"sourcesContent":["import type { DataTexture, Group, OrbitControls, SceneControl } from '@anov/3d-core'\nimport { AdditiveBlending, BoxGeometry, Color, EquirectangularReflectionMapping, InteractionManager, LoadingManager, Mesh, MeshBasicMaterial, ModelLoader, PlaneGeometry, RepeatWrapping, SRGBColorSpace, ShaderChunk, ShaderMaterial, TextureLoader, Vector2, Vector3, Vector4, lib, sRGBEncoding, use, utils } from '@anov/3d-core'\nimport { Camera, createBloomSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport { finirMaterialV1 } from './utils/finirMaterial'\nimport handleUnit, { toggleTag } from './unit'\nimport type WallManage from './unit/wall'\nimport type LineManage from './unit/line'\nimport type CylinderManage from './unit/cylinder'\nimport type PoiManage from './unit/poi'\nimport type CircleManage from './unit/circle'\nimport type AreaBoundingBoxManage from './unit/areaBoundingBox'\nimport type Inspection from './unit/inspection'\nimport { globalEvents } from './globalData'\nimport { SceneStyle, SceneTag } from './utils/constant'\nimport switchMaterial from './utils/switchMaterial'\nimport factoryGlobalObject from './globalControl'\nimport { debounce } from './utils'\nimport createRiseLayer from './unit/layer/rise'\nimport { targetProgresspoints } from './unit/inspection/lineData'\n\nimport frag from './unit/glsl/heat/frag'\nimport vert from './unit/glsl/heat/ver'\n\ntype factory3dOption = {\n model: string\n environment: string\n decoderPath?: string\n controls?: any\n}\n\nconst vertexShader = `\n${ShaderChunk.logdepthbuf_pars_vertex}\nbool isPerspectiveMatrix(mat4) {\n return true;\n }\n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\n vPosition = worldPosition1.xyz;\n ${ShaderChunk.logdepthbuf_vertex}\n }\n`\n\n// Fragment shader\nconst fragmentShader = `\n ${ShaderChunk.logdepthbuf_pars_fragment} \n\n uniform sampler2D _Texture;\n uniform sampler2D _TexturePlane;\n //uniform vec4 _Texture_ST;\n uniform vec4 _Color;\n uniform float _ColorS;\n uniform sampler2D _TextureMask;\n uniform float _MaskUV;\n uniform vec4 _ColorMask;\n uniform float _ColorMaskS;\n //uniform vec4 _Speed;\n //uniform float _OP;\n uniform float _Time; \n varying vec2 vUv;\n varying vec3 vPosition;\n\n\n\n void main() {\n vec4 _ColorMask_ =vec4(0.,0.6,1.,1.);\n\n vec3 temp_cast_0 = vec3(0.2);\n vec4 o = vec4(temp_cast_0, 1.0);\n vec2 uv_Texture = vUv * 10.0;\n vec4 tex2DNode1 = texture2D(_Texture, uv_Texture);\n vec4 tex2DNode2 = texture2D(_TexturePlane, uv_Texture);\n vec2 temp_cast_1 = vec2(_MaskUV)* 3.0;\n vec2 uv_TexCoord7 = vUv * temp_cast_1;\n vec2 panner6 = (vec2(_Time,_Time)+ uv_TexCoord7);\n o.rgb = ((tex2DNode2*0.1)+(_Color * tex2DNode1.r * _ColorS) + (_ColorMask_ * (tex2DNode1.r * texture2D(_TextureMask, panner6).r) * _ColorMaskS*10.)).rgb;\n //o.a = _OP;\n gl_FragColor = o;\n gl_FragColor.a = 1.0;\n \n if(vPosition.x>-550.0 && vPosition.x<550.0 && vPosition.z>-300.0 && vPosition.z<270.0){\n gl_FragColor.a = 0.0;\n }else{\n gl_FragColor.a = .85;\n }\n\n ${ShaderChunk.logdepthbuf_fragment}\n }\n`\n\nexport const loadingManager = new LoadingManager()\nconst load = new ModelLoader(loadingManager)\nconst rgbeLoader = new lib.RGBELoader(loadingManager)\nconst { emitter } = utils\n\nconst resourcePath = './'\nconst resourcePath2 = 'http://172.16.223.163:9000/anov-prod/anov-3d/factory/example/'\n\nexport const usePath = process.env.ENV === 'dev' ? resourcePath : resourcePath2\n\nconst _Texture = new TextureLoader().load(`${usePath}demo03.jpg`)\nconst _Texture2 = new TextureLoader().load(`${usePath}demo04.jpg`)\nconst _Texture3 = new TextureLoader().load(`${usePath}test04.jpg`)\n\n_Texture.wrapS = RepeatWrapping\n_Texture.wrapT = RepeatWrapping\n\n_Texture2.wrapS = RepeatWrapping\n_Texture2.wrapT = RepeatWrapping\n\n_Texture3.wrapS = RepeatWrapping\n_Texture3.wrapT = RepeatWrapping\n\n_Texture.repeat.set(5000, 5000)\n_Texture2.repeat.set(10, 10)\n_Texture3.repeat.set(5000, 5000)\n\nconst uniforms = {\n _Texture: { value: _Texture },\n _Texture_ST: { value: new Vector4() },\n _Color: { value: new Vector4(new Color('#096ddb').r, new Color('#096ddb').g, new Color('#096ddb').b, 0.5) },\n _ColorS: { value: 1 },\n _TextureMask: { value: _Texture2 },\n _TexturePlane: { value: _Texture3 },\n _MaskUV: { value: 1 },\n _ColorMask: { value: new Vector4(new Color('#fff').r, new Color('#fff').g, new Color('#fff').b, 1) },\n _ColorMaskS: { value: 1 },\n _Speed: { value: new Vector4(0.0, 0.2, 0, 0) },\n _OP: { value: 1.0 },\n _Time: { value: 1.0 },\n}\n\nconst material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n transparent: true,\n // depthTest: false,\n})\n\nclass Factory3D {\n position: Vector3 = new Vector3(0, 0, 0)\n scene: SceneControl\n control: OrbitControls\n cameraUtil: Camera\n\n public loadingManager = loadingManager\n public tag = SceneTag.overview\n public style: SceneStyle = SceneStyle.real\n private option: factory3dOption\n wall: WallManage\n line: LineManage\n cylinder: CylinderManage\n poi: PoiManage\n circle: CircleManage\n areaBoundingBox: AreaBoundingBoxManage\n inspection: Inspection\n\n usePath = usePath\n\n private pipeline: Group\n private realModl: Group\n private techModel: Group\n private realGroundModel: Group\n private realTreeModel: Group\n private thermaLimaging: Group\n private eventHandleFn: Map<string, ((args?: any) => void)[]> = new Map()\n private boxSkeyTexture: DataTexture\n\n interactionManager: InteractionManager\n\n constructor(option: factory3dOption) {\n this.option = option\n this.globalEventsAgent()\n factoryGlobalObject.setFactory(this)\n }\n\n /**\n * render factory 3d scene\n */\n renderScene(scene: SceneControl) {\n return new Promise((resolve) => {\n this.scene = scene\n\n this.cameraUtil = new Camera(scene.camera!, scene.controls!, scene)\n this.control = scene.controls!\n scene.camera.layers.set(0)\n\n load.loadGLTF(`${this.usePath}landScap3.glb`, false, true, './draco/', (gltf) => {\n this.realTreeModel = (gltf.scene) as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n scene.add(this.realTreeModel)\n\n return gltf\n })\n\n const interactionManager = new InteractionManager(\n this.scene.renderer,\n this.scene.camera,\n this.scene.renderer.domElement, // Modified By LM this.scene.cssRenderer.cssRenderer.domElement,\n )\n\n this.interactionManager = interactionManager\n\n utils.storeManagement.set('interactionManager', interactionManager)\n\n use.useframe(() => {\n interactionManager.update()\n })\n\n this.loadModel()\n\n loadingManager.onLoad = () => {\n resolve('success')\n }\n\n scene.renderer.toneMappingExposure = 0.4\n })\n }\n\n private loadModel() {\n // real model\n load.loadGLTF(`${this.usePath}222.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n gltf.scene.visible = SceneStyle.real === this.style\n\n this.realModl = gltf.scene as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n handleUnit.call(this)\n\n return gltf\n })\n\n // tech model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n\n use.useframe(() => {\n if (uniforms._Time.value > 0.5)\n uniforms._Time.value = 0\n\n uniforms._Time.value += 0.0008\n })\n\n group.traverse((child) => {\n // @ts-ignore\n if (child.type === 'Mesh') {\n if (child.name === '柱体') {\n // @ts-ignore\n child.visible = false\n const geometry = new PlaneGeometry(3000, 2000)\n const plane = new Mesh(geometry, material)\n plane.rotation.x = -Math.PI / 2\n\n plane.position.set(0, -1.5, 0)\n plane.renderOrder = -1\n\n group.add(plane)\n }\n\n else {\n // @ts-ignore\n child.material = finirMaterialV1\n }\n }\n })\n\n load.loadGLTF(`${this.usePath}plane.glb`, false, true, './draco/', (gltf) => {\n gltf.scene.scale.set(0.5, 0.5, 0.5)\n\n const text = new TextureLoader().load(`${this.usePath}roll.png`)\n\n text.wrapS = RepeatWrapping\n text.wrapT = RepeatWrapping\n\n text.repeat.set(1, 1)\n\n gltf.scene.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material.blending = AdditiveBlending\n // @ts-ignore\n child.material.transparent = true\n // @ts-ignore\n child.material.opacity = 1\n // @ts-ignore\n child.material.depthTest = true\n\n // @ts-ignore\n child.material.map = text\n }\n })\n\n use.useframe(() => {\n text.offset.x += 0.01\n })\n\n group.add(gltf.scene)\n\n return gltf\n })\n\n createRiseLayer()\n\n this.scene.add(group)\n\n group.visible = SceneStyle.tech === this.style\n this.techModel = group as Group\n\n return gltf\n })\n\n const targerMeshName = Object.values(targetProgresspoints).map(v => v.lookAt)\n\n // thermaLimaging model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n group.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = new ShaderMaterial({\n vertexShader: vert,\n fragmentShader: frag,\n uniforms: {\n texture1: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test01.jpg`) },\n texture2: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test02.jpg`) },\n uvScale: { value: new Vector2(1, 1) },\n },\n })\n\n child.layers.set(2)\n\n if (targerMeshName.includes(child.name))\n // @ts-ignore\n child.material.depthTest = false\n }\n })\n\n this.scene.add(group)\n\n this.thermaLimaging = group as Group\n\n return gltf\n })\n\n load.loadGLTF(`${this.usePath}guandao.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n this.pipeline = gltf.scene as Group\n return gltf\n })\n\n // ground\n load.loadGLTF(`${this.usePath}landScap.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n this.realGroundModel = gltf.scene as Group\n return gltf\n })\n rgbeLoader.setPath(`${this.usePath}`).load('demo.hdr', (texture) => {\n texture.mapping = EquirectangularReflectionMapping\n\n texture.colorSpace = SRGBColorSpace\n this.boxSkeyTexture = texture\n this.scene.scene.environment = texture\n this.scene.scene.background = new Color('#ccc')\n })\n }\n\n /**\n * toggle SceneStyle\n * @param params\n */\n toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n\n this.style = params\n\n if (this.style === SceneStyle.tech) {\n this.pipeline.visible = false\n this.techModel.visible = true\n this.realModl.visible = false\n this.realTreeModel.visible = false\n this.scene.scene.background = null\n this.realGroundModel && (this.realGroundModel.visible = false)\n\n this.scene.renderer.toneMappingExposure = 0.6\n }\n\n if (params === SceneStyle.real) {\n this.pipeline.visible = true\n this.techModel.visible = false\n this.realModl.visible = true\n this.realGroundModel && (this.realGroundModel.visible = true)\n this.realTreeModel && (this.realTreeModel.visible = true)\n this.scene.scene.background = new Color('#ccc')\n this.scene.scene.environment = this.boxSkeyTexture\n\n this.scene.renderer.toneMappingExposure = 0.4\n }\n }\n\n public toggleTag(tag: SceneTag) {\n if (this.tag === tag)\n return\n toggleTag[tag].apply(this, [this])\n }\n\n private globalEventsAgent() {\n globalEvents.forEach((eventKey) => {\n emitter.on(eventKey, (args) => {\n this.eventHandleFn.get(eventKey)?.forEach((fn) => {\n fn(args)\n })\n })\n })\n }\n\n /**\n * toggle view\n */\n toggleView() {\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n this.scene.cutoutCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n // initPostEffects(this.scene.scene, this.scene.renderer, cutoutCamera, {\n // type: 'main',\n // })\n }\n else {\n const mainCamera = this.scene.cutoutCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n // initPostEffects(this.scene.scene, this.scene.renderer, cutoutCamera, {\n // type: 'sub',\n // })\n }\n }\n\n addEventListener(eventName: string, handleFn: (args?: any) => void) {\n if (this.eventHandleFn.get(eventName))\n this.eventHandleFn.get(eventName).push(handleFn)\n\n else\n this.eventHandleFn.set(eventName, [handleFn])\n }\n}\n\nexport default Factory3D"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const frag
|
|
1
|
+
declare const frag: string;
|
|
2
2
|
export default frag;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { ShaderChunk } from '@anov/3d-core';
|
|
2
|
+
var frag = /* glsl */"\n".concat(ShaderChunk.logdepthbuf_pars_fragment, "\nuniform sampler2D texture1;\nuniform sampler2D texture2;\n\nvarying vec2 vUv;\nvarying vec3 Position;\nvarying vec3 vNormal;\nvarying vec4 worldPosition;\nvoid main(void) {\n float time = 0.1;\n float intensity = 0.1;\n float heat = 0.9;\n float noiseLoop = 0.02;\n\n vec4 poi3 = vec4(66.708, 30, -102.708, 1.3);\n vec4 poi4 = vec4(66.708, 50, -102.708, 1.3);\n vec4 poi5 = vec4(-291.869, 50, -127.770, 0.9);\n vec4 poi6 = vec4(62.227, 50, 203.009, 1.9);\n\n vec4[] poi = vec4[](poi3,poi4,poi5,poi6);\n\n vec2 xy = vec2(worldPosition.x, worldPosition.y) + time * 0.9;\n vec2 xz = vec2(worldPosition.x, worldPosition.z) + time * 0.8;\n vec2 yz = vec2(worldPosition.y, worldPosition.z) + time * 0.9;\n\n float ix = clamp((abs(vNormal.x) - 0.4) * 2., 0., 1.);\n float iy = clamp((abs(vNormal.y) - 0.4) * 2., 0., 1.);\n\n vec4 noiseT = mix((mix(texture2D(texture1, xy * noiseLoop), texture2D(texture1, yz * noiseLoop), ix)), texture2D(texture1, xz * noiseLoop), iy);\n vec3 HeatPosition = vec3(0., 1.5, 0.0);\n float i1 = 1. - distance(HeatPosition, vec3(worldPosition.x + noiseT.x, worldPosition.y + noiseT.y, worldPosition.z + noiseT.z)) * 0.6;\n\n float i2;\n for(int i = 0; i < 4; i++) {\n i2 += clamp(1. - distance(poi[i].xyz, worldPosition.xyz) * 0.05 * heat / poi[i].w + noiseT.x, 0., 1.);\n };\n\n vec4 heatmap = texture2D(texture2, vec2(pow(clamp(i2, 0.01, 0.99), intensity + sin(1. * 2.) * 0.01), 0.5));\n gl_FragColor = heatmap;\n\n ").concat(ShaderChunk.logdepthbuf_fragment, "\n}\n");
|
|
2
3
|
export default frag;
|
|
3
4
|
//# sourceMappingURL=frag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["frag"],"sources":["../../../../../src/factory/unit/glsl/heat/frag.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":["ShaderChunk","frag","logdepthbuf_pars_fragment","logdepthbuf_fragment"],"sources":["../../../../../src/factory/unit/glsl/heat/frag.ts"],"sourcesContent":["import { ShaderChunk } from '@anov/3d-core'\n\nconst frag = /* glsl */`\n${ShaderChunk.logdepthbuf_pars_fragment}\nuniform sampler2D texture1;\nuniform sampler2D texture2;\n\nvarying vec2 vUv;\nvarying vec3 Position;\nvarying vec3 vNormal;\nvarying vec4 worldPosition;\nvoid main(void) {\n float time = 0.1;\n float intensity = 0.1;\n float heat = 0.9;\n float noiseLoop = 0.02;\n\n vec4 poi3 = vec4(66.708, 30, -102.708, 1.3);\n vec4 poi4 = vec4(66.708, 50, -102.708, 1.3);\n vec4 poi5 = vec4(-291.869, 50, -127.770, 0.9);\n vec4 poi6 = vec4(62.227, 50, 203.009, 1.9);\n\n vec4[] poi = vec4[](poi3,poi4,poi5,poi6);\n\n vec2 xy = vec2(worldPosition.x, worldPosition.y) + time * 0.9;\n vec2 xz = vec2(worldPosition.x, worldPosition.z) + time * 0.8;\n vec2 yz = vec2(worldPosition.y, worldPosition.z) + time * 0.9;\n\n float ix = clamp((abs(vNormal.x) - 0.4) * 2., 0., 1.);\n float iy = clamp((abs(vNormal.y) - 0.4) * 2., 0., 1.);\n\n vec4 noiseT = mix((mix(texture2D(texture1, xy * noiseLoop), texture2D(texture1, yz * noiseLoop), ix)), texture2D(texture1, xz * noiseLoop), iy);\n vec3 HeatPosition = vec3(0., 1.5, 0.0);\n float i1 = 1. - distance(HeatPosition, vec3(worldPosition.x + noiseT.x, worldPosition.y + noiseT.y, worldPosition.z + noiseT.z)) * 0.6;\n\n float i2;\n for(int i = 0; i < 4; i++) {\n i2 += clamp(1. - distance(poi[i].xyz, worldPosition.xyz) * 0.05 * heat / poi[i].w + noiseT.x, 0., 1.);\n };\n\n vec4 heatmap = texture2D(texture2, vec2(pow(clamp(i2, 0.01, 0.99), intensity + sin(1. * 2.) * 0.01), 0.5));\n gl_FragColor = heatmap;\n\n ${ShaderChunk.logdepthbuf_fragment}\n}\n`\n\nexport default frag"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAE3C,IAAMC,IAAI,GAAG,sBACXD,WAAW,CAACE,yBAAyB,4/CAwChCF,WAAW,CAACG,oBAAoB,UAEtC;AAED,eAAeF,IAAI"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const ver
|
|
1
|
+
declare const ver: string;
|
|
2
2
|
export default ver;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { ShaderChunk } from '@anov/3d-core';
|
|
2
|
+
var ver = /* glsl */"\n".concat(ShaderChunk.logdepthbuf_pars_vertex, "\nbool isPerspectiveMatrix(mat4) {\n return true;\n }\nuniform vec2 uvScale;\nvarying vec2 vUv;\nvarying vec3 vNormal;\nvarying vec3 Position;\nvarying vec4 worldPosition;\n\nvoid main() {\n vUv = uvScale * uv;\n Position = position;\n vNormal = normalize(normal);\n worldPosition = modelMatrix * vec4(position, 1.0);\n vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * mvPosition;\n ").concat(ShaderChunk.logdepthbuf_vertex, "\n}\n");
|
|
2
3
|
export default ver;
|
|
3
4
|
//# sourceMappingURL=ver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ver"],"sources":["../../../../../src/factory/unit/glsl/heat/ver.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":["ShaderChunk","ver","logdepthbuf_pars_vertex","logdepthbuf_vertex"],"sources":["../../../../../src/factory/unit/glsl/heat/ver.ts"],"sourcesContent":["import { ShaderChunk } from '@anov/3d-core'\n\nconst ver = /* glsl */ `\n${ShaderChunk.logdepthbuf_pars_vertex}\nbool isPerspectiveMatrix(mat4) {\n return true;\n }\nuniform vec2 uvScale;\nvarying vec2 vUv;\nvarying vec3 vNormal;\nvarying vec3 Position;\nvarying vec4 worldPosition;\n\nvoid main() {\n vUv = uvScale * uv;\n Position = position;\n vNormal = normalize(normal);\n worldPosition = modelMatrix * vec4(position, 1.0);\n vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * mvPosition;\n ${ShaderChunk.logdepthbuf_vertex}\n}\n`\n\nexport default ver"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAE3C,IAAMC,GAAG,GAAG,sBACVD,WAAW,CAACE,uBAAuB,ocAiBhCF,WAAW,CAACG,kBAAkB,UAElC;AAED,eAAeF,GAAG"}
|
|
@@ -8,7 +8,10 @@ declare class InspectionObject {
|
|
|
8
8
|
private isLock;
|
|
9
9
|
private isAnimation;
|
|
10
10
|
walkCurveMesh: any;
|
|
11
|
+
tempPathMesh: any;
|
|
11
12
|
css2d: Css2DPoi;
|
|
13
|
+
temp: any;
|
|
14
|
+
tempDemo: any;
|
|
12
15
|
constructor(inspection: any);
|
|
13
16
|
private loadModel;
|
|
14
17
|
startMove(curve: any): Promise<void>;
|
|
@@ -19,6 +22,8 @@ declare class InspectionObject {
|
|
|
19
22
|
private checkAnimation;
|
|
20
23
|
generateTempPath(currentPosition: Vector3, targetPosition: Vector3): LineCurve3;
|
|
21
24
|
private startRotate;
|
|
25
|
+
private generateTempPathMesh;
|
|
26
|
+
private cleanTempPathMesh;
|
|
22
27
|
gotoTarget(targetPosition: Vector3, targetProgress: number): void;
|
|
23
28
|
setSpeed(speed: number): void;
|
|
24
29
|
stop(): void;
|
|
@@ -8,7 +8,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
8
8
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
9
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
10
10
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
11
|
-
import { Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, MeshBasicMaterial, ModelLoader, Quaternion, Vector3, use, utils } from '@anov/3d-core';
|
|
11
|
+
import { Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, ModelLoader, Quaternion, RepeatWrapping, TextureLoader, Vector3, use, utils } from '@anov/3d-core';
|
|
12
12
|
import { SpritePoi } from '@anov/3d-ability';
|
|
13
13
|
import { Tween } from '@tweenjs/tween.js';
|
|
14
14
|
import { createFinirMaterial } from "../../utils/finirMaterial";
|
|
@@ -16,6 +16,7 @@ import { usePath } from "../../3d";
|
|
|
16
16
|
import { MessageType, sendToMessage } from "../../../utils/messageFn";
|
|
17
17
|
import { EMessageStatus } from "../../../messageStatus";
|
|
18
18
|
import { isCheck, targetProgresspoints } from "./lineData";
|
|
19
|
+
import TubeGeometryV2 from "./tubeGeometry";
|
|
19
20
|
var modelLoader = new ModelLoader();
|
|
20
21
|
var InspectionObject = /*#__PURE__*/function () {
|
|
21
22
|
function InspectionObject(inspection) {
|
|
@@ -27,7 +28,10 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
27
28
|
_defineProperty(this, "isLock", false);
|
|
28
29
|
_defineProperty(this, "isAnimation", false);
|
|
29
30
|
_defineProperty(this, "walkCurveMesh", void 0);
|
|
31
|
+
_defineProperty(this, "tempPathMesh", void 0);
|
|
30
32
|
_defineProperty(this, "css2d", void 0);
|
|
33
|
+
_defineProperty(this, "temp", void 0);
|
|
34
|
+
_defineProperty(this, "tempDemo", void 0);
|
|
31
35
|
_defineProperty(this, "startRotate", function (targetQuaternion, mesh, cb) {
|
|
32
36
|
var clock = new Clock();
|
|
33
37
|
if (mesh.quaternion.equals(targetQuaternion)) return cb();
|
|
@@ -43,6 +47,12 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
43
47
|
});
|
|
44
48
|
});
|
|
45
49
|
this.inspection = inspection;
|
|
50
|
+
var temp = new TextureLoader().load("".concat(usePath, "test07.png"));
|
|
51
|
+
temp.wrapS = RepeatWrapping;
|
|
52
|
+
temp.wrapT = MirroredRepeatWrapping;
|
|
53
|
+
temp.repeat.set(1, 2);
|
|
54
|
+
temp.rotation = Math.PI;
|
|
55
|
+
this.temp = temp;
|
|
46
56
|
}
|
|
47
57
|
_createClass(InspectionObject, [{
|
|
48
58
|
key: "loadModel",
|
|
@@ -251,7 +261,9 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
251
261
|
var rotationMatrix = new Matrix4();
|
|
252
262
|
var targetQuaternion = new Quaternion();
|
|
253
263
|
var startQuaternion = _this3.model.quaternion.clone();
|
|
254
|
-
|
|
264
|
+
var targetMeshPosition = targetMesh.position.clone();
|
|
265
|
+
targetMeshPosition.y = targetMeshPosition.y + 20;
|
|
266
|
+
rotationMatrix.lookAt(targetMeshPosition, _this3.model.position, _this3.model.up);
|
|
255
267
|
targetQuaternion.setFromRotationMatrix(rotationMatrix);
|
|
256
268
|
var forwardTween = new Tween({
|
|
257
269
|
t: 0
|
|
@@ -272,8 +284,8 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
272
284
|
sendToMessage(MessageType.Event, 'onReachTarget', EMessageStatus.Success, undefined, {
|
|
273
285
|
target: targetProgresspoints[key].name
|
|
274
286
|
});
|
|
275
|
-
if (Number(key) === 0.04 || Number(key) === 0.68) _this3.inspection.minCamera.layers.set(2);
|
|
276
|
-
if (Number(key) === 0.15 || Number(key) === 0.24
|
|
287
|
+
if (Number(key) === 0.04 || Number(key) === 0.68 || Number(key) === 0.40) _this3.inspection.minCamera.layers.set(2);
|
|
288
|
+
if (Number(key) === 0.15 || Number(key) === 0.24) {
|
|
277
289
|
_this3.inspection.minCamera.layers.enable(3);
|
|
278
290
|
// @ts-ignore
|
|
279
291
|
if (!targetMesh.finirMesh) {
|
|
@@ -303,6 +315,8 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
303
315
|
finirMesh.visible = true;
|
|
304
316
|
}
|
|
305
317
|
}
|
|
318
|
+
|
|
319
|
+
// 异常点
|
|
306
320
|
if (Number(key) === 0.15 || Number(key) === 0.24) {
|
|
307
321
|
_this3.subscription().then(function (data) {
|
|
308
322
|
if (data) {
|
|
@@ -313,8 +327,11 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
313
327
|
});
|
|
314
328
|
} else {
|
|
315
329
|
setTimeout(function () {
|
|
316
|
-
if (Number(key) === 0.04 || Number(key) === 0.68) _this3.inspection.minCamera.layers.set(0);
|
|
317
|
-
|
|
330
|
+
if (Number(key) === 0.04 || Number(key) === 0.68 || Number(key) === 0.40) _this3.inspection.minCamera.layers.set(0);
|
|
331
|
+
|
|
332
|
+
// if (Number(key) === 0.40)
|
|
333
|
+
// finirMesh.visible = false
|
|
334
|
+
|
|
318
335
|
backwardTween.start();
|
|
319
336
|
}, 6000);
|
|
320
337
|
}
|
|
@@ -343,10 +360,38 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
343
360
|
value: function generateTempPath(currentPosition, targetPosition) {
|
|
344
361
|
return new LineCurve3(currentPosition, targetPosition);
|
|
345
362
|
}
|
|
363
|
+
}, {
|
|
364
|
+
key: "generateTempPathMesh",
|
|
365
|
+
value: function generateTempPathMesh(curve) {
|
|
366
|
+
var _this4 = this;
|
|
367
|
+
// @ts-ignore
|
|
368
|
+
var tube = new TubeGeometryV2(curve, 100, 5, 2, false);
|
|
369
|
+
var tempPathMesh = new Mesh(tube, new MeshBasicMaterial({
|
|
370
|
+
map: this.temp,
|
|
371
|
+
transparent: true,
|
|
372
|
+
depthTest: true
|
|
373
|
+
}));
|
|
374
|
+
this.inspection.gobal.scene.add(tempPathMesh);
|
|
375
|
+
this.tempPathMesh = tempPathMesh;
|
|
376
|
+
this.temp.repeat.set(curve.getLength() / 500, 2);
|
|
377
|
+
this.tempDemo = use.useframe(function () {
|
|
378
|
+
_this4.temp.offset.x -= -0.0009;
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
}, {
|
|
382
|
+
key: "cleanTempPathMesh",
|
|
383
|
+
value: function cleanTempPathMesh() {
|
|
384
|
+
if (this.tempPathMesh) {
|
|
385
|
+
this.tempDemo();
|
|
386
|
+
this.tempPathMesh.geometry.dispose();
|
|
387
|
+
this.tempPathMesh.material.dispose();
|
|
388
|
+
this.tempPathMesh.removeFromParent();
|
|
389
|
+
}
|
|
390
|
+
}
|
|
346
391
|
}, {
|
|
347
392
|
key: "gotoTarget",
|
|
348
393
|
value: function gotoTarget(targetPosition, targetProgress) {
|
|
349
|
-
var
|
|
394
|
+
var _this5 = this;
|
|
350
395
|
if (this.isAnimation) return;
|
|
351
396
|
this.isAnimation = true;
|
|
352
397
|
this.control.stop();
|
|
@@ -355,36 +400,45 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
355
400
|
rotationMatrix.lookAt(targetPosition, this.model.position, this.model.up);
|
|
356
401
|
targetQuaternion.setFromRotationMatrix(rotationMatrix);
|
|
357
402
|
this.startRotate(targetQuaternion, this.model, function () {
|
|
358
|
-
var
|
|
403
|
+
var tempPathMeshtargetPosition = new Vector3(targetPosition.x, 1.1, targetPosition.z);
|
|
404
|
+
_this5.generateTempPathMesh(_this5.generateTempPath(new Vector3(_this5.model.position.x, 1.1, _this5.model.position.z), tempPathMeshtargetPosition));
|
|
405
|
+
var currentPosition = _this5.model.position;
|
|
359
406
|
var upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 100, currentPosition.z));
|
|
360
|
-
var upControl = utils.moveWithLine(
|
|
407
|
+
var upControl = utils.moveWithLine(_this5.model, upCurve, 10, {
|
|
361
408
|
loop: false,
|
|
362
409
|
lookat: targetPosition
|
|
363
410
|
});
|
|
411
|
+
|
|
412
|
+
// up end
|
|
364
413
|
upControl.addEventListener('end', function () {
|
|
365
|
-
var tempCurve =
|
|
366
|
-
var tempControl = utils.moveWithLine(
|
|
414
|
+
var tempCurve = _this5.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 100, targetPosition.z));
|
|
415
|
+
var tempControl = utils.moveWithLine(_this5.model, tempCurve, 60, {
|
|
367
416
|
loop: false,
|
|
368
417
|
lookat: false
|
|
369
418
|
});
|
|
419
|
+
|
|
420
|
+
// temp end
|
|
370
421
|
tempControl.addEventListener('end', function () {
|
|
371
|
-
var lastPosition =
|
|
422
|
+
var lastPosition = _this5.model.position;
|
|
372
423
|
var downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 100, lastPosition.z));
|
|
373
|
-
var downControl = utils.moveWithLine(
|
|
424
|
+
var downControl = utils.moveWithLine(_this5.model, downCurve, 10, {
|
|
374
425
|
loop: false,
|
|
375
426
|
lookat: false
|
|
376
427
|
});
|
|
428
|
+
|
|
429
|
+
// down end
|
|
377
430
|
downControl.addEventListener('end', function () {
|
|
378
431
|
var rotationMatrix2 = new Matrix4();
|
|
379
432
|
var targetQuaternion2 = new Quaternion();
|
|
380
|
-
var targetPosition2 =
|
|
381
|
-
rotationMatrix2.lookAt(targetPosition2,
|
|
433
|
+
var targetPosition2 = _this5.inspection.curve.getPointAt((targetProgress + 0.01) % 1);
|
|
434
|
+
rotationMatrix2.lookAt(targetPosition2, _this5.model.position, _this5.model.up);
|
|
382
435
|
targetQuaternion2.setFromRotationMatrix(rotationMatrix2);
|
|
383
|
-
|
|
436
|
+
_this5.startRotate(targetQuaternion2, _this5.model, function () {
|
|
384
437
|
setTimeout(function () {
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
438
|
+
_this5.cleanTempPathMesh();
|
|
439
|
+
_this5.isAnimation = false;
|
|
440
|
+
_this5.control.setProgress(targetProgress);
|
|
441
|
+
_this5.control.contine();
|
|
388
442
|
}, 500);
|
|
389
443
|
});
|
|
390
444
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Clock","Color","EdgesGeometry","Group","LineBasicMaterial","LineCurve3","LineSegments","Matrix4","MeshBasicMaterial","ModelLoader","Quaternion","Vector3","use","utils","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","isCheck","targetProgresspoints","modelLoader","InspectionObject","inspection","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","height","img2","poi2","scale","set","fly1","scene","getObjectByName","fly2","fly3","fly4","copy","clone","add","rotation","z","getSportsProgress","isLock","stop","checkAnimation","group","minCamera","y","rotateY","Math","PI","model","gobal","interactionManager","traverse","child","layers","enable","curve","loadModel","control","moveWithLine","groundCurve","getPointAt","groundMaterial","uniforms","u_time","value","Event","Success","undefined","percentage","getProgress","targetMesh","updateMatrixWorld","localForward","worldForward","applyQuaternion","normalize","target","direction","sub","setFromUnitVectors","dotProduct","dot","angleRadians","acos","angleDegrees","flipQuaternion","setFromAxisAngle","multiply","lastFromPositin","currentPositin","targetPosition","vTo","vFrom","Promise","resolve","emitter","on","data","progress","isAnimation","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","pipeline","realModl","contineMove","setTimeout","currentAnchor","anchorObject","get","name","material","rotationMatrix","startQuaternion","up","setFromRotationMatrix","forwardTween","t","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","Number","finirMaterialV2","type","lineSegments","geometry","visible","subscription","then","start","off","currentPosition","targetProgress","startRotate","upCurve","x","upControl","loop","lookat","addEventListener","tempCurve","generateTempPath","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","setProgress","contine","speed","setSpeed","emit"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera } from '@anov/3d-core'\nimport { BoxGeometry, Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, Mesh, MeshBasicMaterial, ModelLoader, Quaternion, ShaderChunk, ShaderMaterial, TubeGeometry, Vector3, use, utils } from '@anov/3d-core'\nimport type { Css2DPoi } from '@anov/3d-ability'\nimport { SpritePoi, addColorifyPass, createHighSelectedTool } from '@anov/3d-ability'\nimport { Tween } from '@tweenjs/tween.js'\nimport { createFinirMaterial } from '../../utils/finirMaterial'\nimport { usePath } from '../../3d'\nimport { MessageType, sendToMessage } from '../../../utils/messageFn'\nimport { EMessageStatus } from '../../../messageStatus'\nimport { invertMap } from '../handle'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport { isCheck, targetProgresspoints } from './lineData'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private tempLine\n private isLock = false\n private isAnimation = false\n walkCurveMesh\n css2d: Css2DPoi\n\n constructor(inspection) {\n this.inspection = inspection\n }\n\n private async loadModel() {\n const glb = await (await modelLoader.loadGLTF(`${usePath}car.glb`, false, true, './draco/'))\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}aerialVehicle02.png`\n\n const span = document.createElement('span')\n span.innerText = '巡检无人机'\n span.style.position = 'absolute'\n span.style.top = '10px'\n span.style.left = '50%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = 'white'\n span.style.fontSize = '20px'\n span.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n\n const poi = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}aerialVehicle01.png`\n\n const poi2 = new SpritePoi(img2, {\n width: 200 * 2,\n height: 80 * 2,\n })\n\n poi.scale.set(100, 40, 1)\n poi2.scale.set(200, 80, 1)\n\n const fly1 = glb.scene.getObjectByName('fly1')\n const fly2 = glb.scene.getObjectByName('fly1_1')\n const fly3 = glb.scene.getObjectByName('fly1_2')\n const fly4 = glb.scene.getObjectByName('fly1_3')\n\n use.useframe(() => {\n poi.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n poi2.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n\n fly1.rotation.z += 1.3\n fly2.rotation.z += 1.3\n fly3.rotation.z += 1.3\n fly4.rotation.z += 1.3\n\n if (isCheck(this.getSportsProgress)\n && !this.isLock) {\n this.stop()\n this.checkAnimation(this.getSportsProgress)\n }\n })\n\n const group = new Group()\n group.add(glb.scene)\n group.add(poi)\n group.add(this.inspection.minCamera)\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 15\n this.inspection.minCamera.position.y += 4\n this.inspection.minCamera.rotateY(Math.PI)\n\n this.model = group\n\n this.inspection.gobal.interactionManager.add(poi)\n\n // poi.addEventListener('click', () => {\n // group.add(poi2)\n // poi.visible = false\n // })\n\n glb.scene.scale.set(5, 5, 5)\n glb.scene.traverse((child) => {\n child.layers.enable(2)\n })\n\n this.inspection.gobal.scene.add(this.model)\n }\n\n async startMove(curve) {\n if (!this.model)\n await this.loadModel()\n\n this.control = utils.moveWithLine(this.model, curve, 10, {\n groundCurve: this.inspection.groundCurve,\n })\n\n this.model.position.copy(curve.getPointAt(0))\n\n this.stop()\n\n use.useframe(() => {\n this.inspection.groundMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress,\n })\n })\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n private getTargetQuaternion(targetMesh: Group) {\n targetMesh.updateMatrixWorld(true)\n const localForward = new Vector3(0, 0, -1)\n const worldForward = localForward.applyQuaternion(targetMesh.quaternion.clone()).normalize()\n\n const target = targetMesh.position.clone()\n const direction = target.sub(this.model.position).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(worldForward, direction)\n\n const dotProduct = worldForward.dot(direction)\n const angleRadians = Math.acos(dotProduct)\n const angleDegrees = angleRadians * (180 / Math.PI)\n\n // todo: some problem\n if (angleDegrees < 60) {\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n }\n }\n\n private getTargetQuaternionV2(lastFromPositin: Vector3, currentPositin: Vector3, targetPosition: Vector3) {\n const vTo = targetPosition.clone().sub(currentPositin).normalize()\n const vFrom = currentPositin.clone().sub(lastFromPositin).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(vFrom, vTo)\n\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n\n return targetQuaternion\n }\n\n subscription() {\n return new Promise((resolve) => {\n utils.emitter.on('continue', (data) => {\n resolve(data)\n })\n })\n }\n\n private checkAnimation(progress: number) {\n this.isLock = true\n this.isAnimation = true\n\n const key = Object.keys(targetProgresspoints).find((p) => {\n const num = parseFloat(p)\n if (progress >= num && progress < num + 0.01)\n return true\n })\n\n const targetMeshId = targetProgresspoints[key].lookAt\n\n let targetMesh: Group | null = null\n\n if (targetMeshId === 'GY_GD_guandaofamen_5')\n targetMesh = this.inspection.gobal.pipeline.getObjectByName(targetMeshId) as Group\n\n else\n targetMesh = this.inspection.gobal.realModl.getObjectByName(targetMeshId) as Group\n\n if (!targetMesh) {\n this.contineMove()\n this.isAnimation = false\n setTimeout(() => {\n this.isLock = false\n }, 500)\n return\n }\n\n const currentAnchor = this.inspection.anchorObject.get(targetProgresspoints[key].name)\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n })\n\n setTimeout(() => {\n const rotationMatrix = new Matrix4()\n\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.quaternion.clone()\n\n rotationMatrix.lookAt(targetMesh.position, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n const forwardTween = new Tween({ t: 0 })\n .to({ t: 1 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n })\n\n const backwardTween = new Tween({ t: 1 })\n .to({ t: 0 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n })\n\n forwardTween.onComplete(() => {\n let finirMesh: Group | null = null\n\n sendToMessage(MessageType.Event, 'onReachTarget', EMessageStatus.Success, undefined, {\n target: targetProgresspoints[key].name,\n })\n\n if (Number(key) === 0.04 || Number(key) === 0.68)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.15 || Number(key) === 0.24 || Number(key) === 0.40) {\n (this.inspection.minCamera as Camera).layers.enable(3)\n // @ts-ignore\n if (!targetMesh.finirMesh) {\n finirMesh = targetMesh.clone() as any as Group\n\n const finirMaterialV2 = createFinirMaterial('yellow', 5.3)\n\n finirMesh.traverse((child) => {\n child.layers.set(3)\n\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = finirMaterialV2\n\n // @ts-ignore\n const lineSegments = new LineSegments(new EdgesGeometry(child.geometry as any), new LineBasicMaterial({ color: 'yellow' }))\n\n lineSegments.layers.set(3)\n finirMesh.add(lineSegments)\n }\n })\n\n // @ts-ignore\n targetMesh.finirMesh = finirMesh\n\n this.inspection.gobal.scene.add(finirMesh)\n }\n else {\n // @ts-ignore\n finirMesh = targetMesh.finirMesh\n\n finirMesh.visible = true\n }\n }\n\n if (Number(key) === 0.15 || Number(key) === 0.24) {\n this.subscription().then((data) => {\n if (data) {\n finirMesh.visible = false\n backwardTween.start()\n\n utils.emitter.off('continue')\n }\n })\n }\n else {\n setTimeout(() => {\n if (Number(key) === 0.04 || Number(key) === 0.68)\n (this.inspection.minCamera as Camera).layers.set(0)\n\n if (Number(key) === 0.40)\n finirMesh.visible = false\n\n backwardTween.start()\n }, 6000)\n }\n })\n\n setTimeout(() => {\n forwardTween.start()\n }, 1000)\n\n backwardTween.onComplete(() => {\n this.isAnimation = false\n this.contineMove()\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n\n setTimeout(() => {\n this.isLock = false\n }, 500)\n })\n }, 1000)\n }\n\n generateTempPath(currentPosition: Vector3, targetPosition: Vector3) {\n return new LineCurve3(currentPosition, targetPosition)\n }\n\n private startRotate = (targetQuaternion: Quaternion, mesh: Group, cb: () => void) => {\n const clock = new Clock()\n\n if (mesh.quaternion.equals(targetQuaternion))\n return cb()\n\n const animation = use.useframe(() => {\n const delta = clock.getDelta()\n if (!mesh.quaternion.equals(targetQuaternion)) {\n const step = 1 * delta\n mesh.quaternion.rotateTowards(targetQuaternion, step)\n }\n else {\n animation()\n cb()\n }\n },\n )\n }\n\n gotoTarget(targetPosition: Vector3, targetProgress: number) {\n if (this.isAnimation)\n return\n\n this.isAnimation = true\n\n this.control.stop()\n\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n\n rotationMatrix.lookAt(targetPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n this.startRotate(targetQuaternion, this.model,\n () => {\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 100, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 100, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 50, { loop: false, lookat: false })\n\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 100, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\n downControl.addEventListener('end', () => {\n const rotationMatrix2 = new Matrix4()\n const targetQuaternion2 = new Quaternion()\n\n const targetPosition2 = this.inspection.curve.getPointAt((targetProgress + 0.01) % 1)\n\n rotationMatrix2.lookAt(targetPosition2, this.model.position, this.model.up)\n targetQuaternion2.setFromRotationMatrix(rotationMatrix2)\n\n this.startRotate(targetQuaternion2, this.model, () => {\n setTimeout(() => {\n this.isAnimation = false\n this.control.setProgress(targetProgress)\n this.control.contine()\n }, 500)\n })\n })\n })\n })\n })\n }\n\n setSpeed(speed: number) {\n if (this.control)\n this.control.setSpeed(speed)\n }\n\n stop() {\n if (this.control)\n this.control.stop()\n }\n\n contineMove() {\n if (this.control)\n this.control.contine()\n\n utils.emitter.emit('continue', true)\n }\n\n /**\n * todo: now temporarily not implemented\n */\n dispose() { }\n}\n\nexport default InspectionObject"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Clock","Color","EdgesGeometry","Group","LineBasicMaterial","LineCurve3","LineSegments","Matrix4","Mesh","MeshBasicMaterial","MirroredRepeatWrapping","ModelLoader","Quaternion","RepeatWrapping","TextureLoader","Vector3","use","utils","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","isCheck","targetProgresspoints","TubeGeometryV2","modelLoader","InspectionObject","inspection","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","temp","load","wrapS","wrapT","repeat","set","rotation","Math","PI","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","height","img2","poi2","scale","fly1","scene","getObjectByName","fly2","fly3","fly4","copy","clone","add","z","getSportsProgress","isLock","stop","checkAnimation","group","minCamera","y","rotateY","model","gobal","interactionManager","traverse","child","layers","enable","curve","loadModel","control","moveWithLine","groundCurve","getPointAt","groundMaterial","uniforms","u_time","value","Event","Success","undefined","percentage","getProgress","targetMesh","updateMatrixWorld","localForward","worldForward","applyQuaternion","normalize","target","direction","sub","setFromUnitVectors","dotProduct","dot","angleRadians","acos","angleDegrees","flipQuaternion","setFromAxisAngle","multiply","lastFromPositin","currentPositin","targetPosition","vTo","vFrom","Promise","resolve","emitter","on","data","progress","isAnimation","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","pipeline","realModl","contineMove","setTimeout","currentAnchor","anchorObject","get","name","material","rotationMatrix","startQuaternion","targetMeshPosition","up","setFromRotationMatrix","forwardTween","t","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","Number","finirMaterialV2","type","lineSegments","geometry","visible","subscription","then","start","off","currentPosition","tube","tempPathMesh","map","transparent","depthTest","getLength","tempDemo","offset","x","dispose","removeFromParent","targetProgress","startRotate","tempPathMeshtargetPosition","generateTempPathMesh","generateTempPath","upCurve","upControl","loop","lookat","addEventListener","tempCurve","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","cleanTempPathMesh","setProgress","contine","speed","setSpeed","emit"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera, Curve } from '@anov/3d-core'\nimport { BoxGeometry, Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, ModelLoader, Quaternion, RepeatWrapping, ShaderChunk, ShaderMaterial, TextureLoader, TubeGeometry, Vector3, use, utils } from '@anov/3d-core'\nimport type { Css2DPoi } from '@anov/3d-ability'\nimport { SpritePoi, addColorifyPass, createHighSelectedTool } from '@anov/3d-ability'\nimport { Tween } from '@tweenjs/tween.js'\nimport { createFinirMaterial } from '../../utils/finirMaterial'\nimport { usePath } from '../../3d'\nimport { MessageType, sendToMessage } from '../../../utils/messageFn'\nimport { EMessageStatus } from '../../../messageStatus'\nimport { invertMap } from '../handle'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport { isCheck, targetProgresspoints } from './lineData'\nimport TubeGeometryV2 from './tubeGeometry'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private tempLine\n private isLock = false\n private isAnimation = false\n walkCurveMesh\n tempPathMesh\n css2d: Css2DPoi\n temp\n tempDemo\n\n constructor(inspection) {\n this.inspection = inspection\n\n const temp = new TextureLoader().load(`${usePath}test07.png`)\n temp.wrapS = RepeatWrapping\n temp.wrapT = MirroredRepeatWrapping\n temp.repeat.set(1, 2)\n temp.rotation = Math.PI\n\n this.temp = temp\n }\n\n private async loadModel() {\n const glb = await (await modelLoader.loadGLTF(`${usePath}car.glb`, false, true, './draco/'))\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}aerialVehicle02.png`\n\n const span = document.createElement('span')\n span.innerText = '巡检无人机'\n span.style.position = 'absolute'\n span.style.top = '10px'\n span.style.left = '50%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = 'white'\n span.style.fontSize = '20px'\n span.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n\n const poi = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}aerialVehicle01.png`\n\n const poi2 = new SpritePoi(img2, {\n width: 200 * 2,\n height: 80 * 2,\n })\n\n poi.scale.set(100, 40, 1)\n poi2.scale.set(200, 80, 1)\n\n const fly1 = glb.scene.getObjectByName('fly1')\n const fly2 = glb.scene.getObjectByName('fly1_1')\n const fly3 = glb.scene.getObjectByName('fly1_2')\n const fly4 = glb.scene.getObjectByName('fly1_3')\n\n use.useframe(() => {\n poi.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n poi2.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n\n fly1.rotation.z += 1.3\n fly2.rotation.z += 1.3\n fly3.rotation.z += 1.3\n fly4.rotation.z += 1.3\n\n if (isCheck(this.getSportsProgress)\n && !this.isLock) {\n this.stop()\n this.checkAnimation(this.getSportsProgress)\n }\n })\n\n const group = new Group()\n group.add(glb.scene)\n group.add(poi)\n group.add(this.inspection.minCamera)\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 15\n this.inspection.minCamera.position.y += 4\n this.inspection.minCamera.rotateY(Math.PI)\n\n this.model = group\n\n this.inspection.gobal.interactionManager.add(poi)\n\n // poi.addEventListener('click', () => {\n // group.add(poi2)\n // poi.visible = false\n // })\n\n glb.scene.scale.set(5, 5, 5)\n glb.scene.traverse((child) => {\n child.layers.enable(2)\n })\n\n this.inspection.gobal.scene.add(this.model)\n }\n\n async startMove(curve) {\n if (!this.model)\n await this.loadModel()\n\n this.control = utils.moveWithLine(this.model, curve, 10, {\n groundCurve: this.inspection.groundCurve,\n })\n\n this.model.position.copy(curve.getPointAt(0))\n\n this.stop()\n\n use.useframe(() => {\n this.inspection.groundMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress,\n })\n })\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n private getTargetQuaternion(targetMesh: Group) {\n targetMesh.updateMatrixWorld(true)\n const localForward = new Vector3(0, 0, -1)\n const worldForward = localForward.applyQuaternion(targetMesh.quaternion.clone()).normalize()\n\n const target = targetMesh.position.clone()\n const direction = target.sub(this.model.position).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(worldForward, direction)\n\n const dotProduct = worldForward.dot(direction)\n const angleRadians = Math.acos(dotProduct)\n const angleDegrees = angleRadians * (180 / Math.PI)\n\n // todo: some problem\n if (angleDegrees < 60) {\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n }\n }\n\n private getTargetQuaternionV2(lastFromPositin: Vector3, currentPositin: Vector3, targetPosition: Vector3) {\n const vTo = targetPosition.clone().sub(currentPositin).normalize()\n const vFrom = currentPositin.clone().sub(lastFromPositin).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(vFrom, vTo)\n\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n\n return targetQuaternion\n }\n\n subscription() {\n return new Promise((resolve) => {\n utils.emitter.on('continue', (data) => {\n resolve(data)\n })\n })\n }\n\n private checkAnimation(progress: number) {\n this.isLock = true\n this.isAnimation = true\n\n const key = Object.keys(targetProgresspoints).find((p) => {\n const num = parseFloat(p)\n if (progress >= num && progress < num + 0.01)\n return true\n })\n\n const targetMeshId = targetProgresspoints[key].lookAt\n\n let targetMesh: Group | null = null\n\n if (targetMeshId === 'GY_GD_guandaofamen_5')\n targetMesh = this.inspection.gobal.pipeline.getObjectByName(targetMeshId) as Group\n\n else\n targetMesh = this.inspection.gobal.realModl.getObjectByName(targetMeshId) as Group\n\n if (!targetMesh) {\n this.contineMove()\n this.isAnimation = false\n setTimeout(() => {\n this.isLock = false\n }, 500)\n return\n }\n\n const currentAnchor = this.inspection.anchorObject.get(targetProgresspoints[key].name)\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n })\n\n setTimeout(() => {\n const rotationMatrix = new Matrix4()\n\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.quaternion.clone()\n\n const targetMeshPosition = targetMesh.position.clone()\n targetMeshPosition.y = targetMeshPosition.y + 20\n\n rotationMatrix.lookAt(targetMeshPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n const forwardTween = new Tween({ t: 0 })\n .to({ t: 1 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n })\n\n const backwardTween = new Tween({ t: 1 })\n .to({ t: 0 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n })\n\n forwardTween.onComplete(() => {\n let finirMesh: Group | null = null\n\n sendToMessage(MessageType.Event, 'onReachTarget', EMessageStatus.Success, undefined, {\n target: targetProgresspoints[key].name,\n })\n\n if (Number(key) === 0.04 || Number(key) === 0.68 || Number(key) === 0.40)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.15 || Number(key) === 0.24) {\n (this.inspection.minCamera as Camera).layers.enable(3)\n // @ts-ignore\n if (!targetMesh.finirMesh) {\n finirMesh = targetMesh.clone() as any as Group\n\n const finirMaterialV2 = createFinirMaterial('yellow', 5.3)\n\n finirMesh.traverse((child) => {\n child.layers.set(3)\n\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = finirMaterialV2\n\n // @ts-ignore\n const lineSegments = new LineSegments(new EdgesGeometry(child.geometry as any), new LineBasicMaterial({ color: 'yellow' }))\n\n lineSegments.layers.set(3)\n finirMesh.add(lineSegments)\n }\n })\n\n // @ts-ignore\n targetMesh.finirMesh = finirMesh\n\n this.inspection.gobal.scene.add(finirMesh)\n }\n else {\n // @ts-ignore\n finirMesh = targetMesh.finirMesh\n\n finirMesh.visible = true\n }\n }\n\n // 异常点\n if (Number(key) === 0.15 || Number(key) === 0.24) {\n this.subscription().then((data) => {\n if (data) {\n finirMesh.visible = false\n backwardTween.start()\n\n utils.emitter.off('continue')\n }\n })\n }\n else {\n setTimeout(() => {\n if (Number(key) === 0.04 || Number(key) === 0.68 || Number(key) === 0.40)\n (this.inspection.minCamera as Camera).layers.set(0)\n\n // if (Number(key) === 0.40)\n // finirMesh.visible = false\n\n backwardTween.start()\n }, 6000)\n }\n })\n\n setTimeout(() => {\n forwardTween.start()\n }, 1000)\n\n backwardTween.onComplete(() => {\n this.isAnimation = false\n this.contineMove()\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n\n setTimeout(() => {\n this.isLock = false\n }, 500)\n })\n }, 1000)\n }\n\n generateTempPath(currentPosition: Vector3, targetPosition: Vector3) {\n return new LineCurve3(currentPosition, targetPosition)\n }\n\n private startRotate = (targetQuaternion: Quaternion, mesh: Group, cb: () => void) => {\n const clock = new Clock()\n\n if (mesh.quaternion.equals(targetQuaternion))\n return cb()\n\n const animation = use.useframe(() => {\n const delta = clock.getDelta()\n if (!mesh.quaternion.equals(targetQuaternion)) {\n const step = 1 * delta\n mesh.quaternion.rotateTowards(targetQuaternion, step)\n }\n else {\n animation()\n cb()\n }\n },\n )\n }\n\n private generateTempPathMesh(curve: Curve<Vector3>) {\n // @ts-ignore\n const tube = new TubeGeometryV2(curve, 100, 5, 2, false)\n const tempPathMesh = new Mesh(tube, new MeshBasicMaterial({ map: this.temp, transparent: true, depthTest: true }))\n\n this.inspection.gobal.scene.add(tempPathMesh)\n this.tempPathMesh = tempPathMesh\n\n this.temp.repeat.set(curve.getLength() / 500, 2)\n this.tempDemo = use.useframe(() => {\n this.temp.offset.x -= -0.0009\n })\n }\n\n private cleanTempPathMesh() {\n if (this.tempPathMesh) {\n this.tempDemo()\n this.tempPathMesh.geometry.dispose()\n this.tempPathMesh.material.dispose();\n (this.tempPathMesh as Mesh).removeFromParent()\n }\n }\n\n gotoTarget(targetPosition: Vector3, targetProgress: number) {\n if (this.isAnimation)\n return\n\n this.isAnimation = true\n\n this.control.stop()\n\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n\n rotationMatrix.lookAt(targetPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n this.startRotate(targetQuaternion, this.model,\n () => {\n const tempPathMeshtargetPosition = new Vector3(targetPosition.x, 1.1, targetPosition.z)\n this.generateTempPathMesh(this.generateTempPath(new Vector3(this.model.position.x, 1.1, this.model.position.z), tempPathMeshtargetPosition))\n\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 100, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n // up end\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 100, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 60, { loop: false, lookat: false })\n\n // temp end\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 100, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\n // down end\n downControl.addEventListener('end', () => {\n const rotationMatrix2 = new Matrix4()\n const targetQuaternion2 = new Quaternion()\n\n const targetPosition2 = this.inspection.curve.getPointAt((targetProgress + 0.01) % 1)\n\n rotationMatrix2.lookAt(targetPosition2, this.model.position, this.model.up)\n targetQuaternion2.setFromRotationMatrix(rotationMatrix2)\n\n this.startRotate(targetQuaternion2, this.model, () => {\n setTimeout(() => {\n this.cleanTempPathMesh()\n this.isAnimation = false\n this.control.setProgress(targetProgress)\n this.control.contine()\n }, 500)\n })\n })\n })\n })\n })\n }\n\n setSpeed(speed: number) {\n if (this.control)\n this.control.setSpeed(speed)\n }\n\n stop() {\n if (this.control)\n this.control.stop()\n }\n\n contineMove() {\n if (this.control)\n this.control.contine()\n\n utils.emitter.emit('continue', true)\n }\n\n /**\n * todo: now temporarily not implemented\n */\n dispose() { }\n}\n\nexport default InspectionObject"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Vector3 } from '@anov/3d-core';
|
|
2
2
|
export var flyLinePoints = [[-491.52, -1.22, -52.05], [-143.69, -3.00, -52.05], [-143.69, -0.00, 121.29], [-319.85, 0.00, 121.29], [-319.85, -0.00, 224.78], [125.73, -0.84, 224.78], [125.73, 0.00, 39.61], [323.44, -0.00, 39.61], [323.44, 0.00, -48.50], [27.52, 3.00, -48.50], [22.62, -0.00, -220.87], [-491.52, -0.53, -220.87]].map(function (v) {
|
|
3
|
-
return new Vector3(v[0],
|
|
3
|
+
return new Vector3(v[0], 40, v[2]);
|
|
4
4
|
});
|
|
5
5
|
export var groundLinePoints = [[-491.52, -1.22, -52.05], [-143.69, -3.00, -52.05], [-143.69, -0.00, 121.29], [-319.85, 0.00, 121.29], [-319.85, -0.00, 224.78], [125.73, -0.84, 224.78], [125.73, 0.00, 39.61], [323.44, -0.00, 39.61], [323.44, 0.00, -48.50], [27.52, 3.00, -48.50], [22.62, -0.00, -220.87], [-491.52, -0.53, -220.87]].map(function (v) {
|
|
6
6
|
return new Vector3(v[0], v[1], v[2]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Vector3","flyLinePoints","map","v","groundLinePoints","targetProgresspoints","lookAt","name","isCheck","currentProgress","progress","Object","keys","some","p","num","parseFloat"],"sources":["../../../../src/factory/unit/inspection/lineData.ts"],"sourcesContent":["import { Vector3 } from '@anov/3d-core'\n\nexport const flyLinePoints = [\n [-491.52, -1.22, -52.05],\n [-143.69, -3.00, -52.05],\n [-143.69, -0.00, 121.29],\n [-319.85, 0.00, 121.29],\n [-319.85, -0.00, 224.78],\n [125.73, -0.84, 224.78],\n [125.73, 0.00, 39.61],\n [323.44, -0.00, 39.61],\n [323.44, 0.00, -48.50],\n [27.52, 3.00, -48.50],\n [22.62, -0.00, -220.87],\n [-491.52, -0.53, -220.87],\n].map(v => new Vector3(v[0],
|
|
1
|
+
{"version":3,"names":["Vector3","flyLinePoints","map","v","groundLinePoints","targetProgresspoints","lookAt","name","isCheck","currentProgress","progress","Object","keys","some","p","num","parseFloat"],"sources":["../../../../src/factory/unit/inspection/lineData.ts"],"sourcesContent":["import { Vector3 } from '@anov/3d-core'\n\nexport const flyLinePoints = [\n [-491.52, -1.22, -52.05],\n [-143.69, -3.00, -52.05],\n [-143.69, -0.00, 121.29],\n [-319.85, 0.00, 121.29],\n [-319.85, -0.00, 224.78],\n [125.73, -0.84, 224.78],\n [125.73, 0.00, 39.61],\n [323.44, -0.00, 39.61],\n [323.44, 0.00, -48.50],\n [27.52, 3.00, -48.50],\n [22.62, -0.00, -220.87],\n [-491.52, -0.53, -220.87],\n].map(v => new Vector3(v[0], 40, v[2]))\n\nexport const groundLinePoints = [\n [-491.52, -1.22, -52.05],\n [-143.69, -3.00, -52.05],\n [-143.69, -0.00, 121.29],\n [-319.85, 0.00, 121.29],\n [-319.85, -0.00, 224.78],\n [125.73, -0.84, 224.78],\n [125.73, 0.00, 39.61],\n [323.44, -0.00, 39.61],\n [323.44, 0.00, -48.50],\n [27.52, 3.00, -48.50],\n [22.62, -0.00, -220.87],\n [-491.52, -0.53, -220.87],\n].map(v => new Vector3(v[0], v[1], v[2]))\n\nexport const targetProgresspoints = {\n 0.04: {\n lookAt: 'GY_ccg_chucunguan_02',\n name: 'HF',\n },\n 0.15: {\n lookAt: 'GY_jx_daxingshebei_7',\n name: 'HPU',\n },\n 0.24: {\n lookAt: 'GY_GD_guandaofamen_5',\n name: 'LLCV',\n },\n 0.40: {\n lookAt: 'GY_jx_daxingshebei_3',\n name: 'CMP1',\n },\n 0.68: {\n lookAt: 'GY_jx_daxingshebei_8',\n name: 'CMP2',\n },\n}\n\nexport const isCheck = (currentProgress) => {\n const progress = Object.keys(targetProgresspoints)\n\n return progress.some((p) => {\n const num = parseFloat(p)\n return currentProgress >= num && currentProgress < num + 0.001\n })\n}"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BufferGeometry, QuadraticBezierCurve3, Vector3 } from '@anov/3d-core';
|
|
2
|
+
declare class TubeGeometry extends BufferGeometry {
|
|
3
|
+
type: string;
|
|
4
|
+
parameters: {
|
|
5
|
+
path: QuadraticBezierCurve3;
|
|
6
|
+
tubularSegments: number;
|
|
7
|
+
radius: number;
|
|
8
|
+
radialSegments: number;
|
|
9
|
+
closed: boolean;
|
|
10
|
+
};
|
|
11
|
+
tangents: Vector3[];
|
|
12
|
+
normals: Vector3[];
|
|
13
|
+
binormals: Vector3[];
|
|
14
|
+
constructor(path?: QuadraticBezierCurve3, tubularSegments?: number, radius?: number, radialSegments?: number, closed?: boolean);
|
|
15
|
+
}
|
|
16
|
+
export default TubeGeometry;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
3
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
4
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
5
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
6
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
7
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
8
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
9
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
10
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
12
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
15
|
+
import { BufferGeometry, Float32BufferAttribute, QuadraticBezierCurve3, Vector2, Vector3 } from '@anov/3d-core';
|
|
16
|
+
var TubeGeometry = /*#__PURE__*/function (_BufferGeometry) {
|
|
17
|
+
_inherits(TubeGeometry, _BufferGeometry);
|
|
18
|
+
var _super = _createSuper(TubeGeometry);
|
|
19
|
+
function TubeGeometry() {
|
|
20
|
+
var _this;
|
|
21
|
+
var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new QuadraticBezierCurve3(new Vector3(-1, -1, 0), new Vector3(-1, 1, 0), new Vector3(1, 1, 0));
|
|
22
|
+
var tubularSegments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 64;
|
|
23
|
+
var radius = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
24
|
+
var radialSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 8;
|
|
25
|
+
var closed = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
26
|
+
_classCallCheck(this, TubeGeometry);
|
|
27
|
+
_this = _super.call(this);
|
|
28
|
+
_defineProperty(_assertThisInitialized(_this), "type", void 0);
|
|
29
|
+
_defineProperty(_assertThisInitialized(_this), "parameters", void 0);
|
|
30
|
+
_defineProperty(_assertThisInitialized(_this), "tangents", void 0);
|
|
31
|
+
_defineProperty(_assertThisInitialized(_this), "normals", void 0);
|
|
32
|
+
_defineProperty(_assertThisInitialized(_this), "binormals", void 0);
|
|
33
|
+
_this.type = 'TubeGeometry';
|
|
34
|
+
_this.parameters = {
|
|
35
|
+
path: path,
|
|
36
|
+
tubularSegments: tubularSegments,
|
|
37
|
+
radius: radius,
|
|
38
|
+
radialSegments: radialSegments,
|
|
39
|
+
closed: closed
|
|
40
|
+
};
|
|
41
|
+
var frames = path.computeFrenetFrames(tubularSegments, closed);
|
|
42
|
+
|
|
43
|
+
// expose internals
|
|
44
|
+
|
|
45
|
+
_this.tangents = frames.tangents;
|
|
46
|
+
_this.normals = frames.normals;
|
|
47
|
+
_this.binormals = frames.binormals;
|
|
48
|
+
|
|
49
|
+
// helper variables
|
|
50
|
+
|
|
51
|
+
var vertex = new Vector3();
|
|
52
|
+
var normal = new Vector3();
|
|
53
|
+
var uv = new Vector2();
|
|
54
|
+
var P = new Vector3();
|
|
55
|
+
|
|
56
|
+
// buffer
|
|
57
|
+
|
|
58
|
+
var vertices = [];
|
|
59
|
+
var normals = [];
|
|
60
|
+
var uvs = [];
|
|
61
|
+
var indices = [];
|
|
62
|
+
|
|
63
|
+
// create buffer data
|
|
64
|
+
|
|
65
|
+
generateBufferData();
|
|
66
|
+
|
|
67
|
+
// build geometry
|
|
68
|
+
|
|
69
|
+
_this.setIndex(indices);
|
|
70
|
+
_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));
|
|
71
|
+
_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));
|
|
72
|
+
_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));
|
|
73
|
+
|
|
74
|
+
// functions
|
|
75
|
+
|
|
76
|
+
function generateBufferData() {
|
|
77
|
+
for (var i = 0; i < tubularSegments; i++) generateSegment(i);
|
|
78
|
+
|
|
79
|
+
// if the geometry is not closed, generate the last row of vertices and normals
|
|
80
|
+
// at the regular position on the given path
|
|
81
|
+
//
|
|
82
|
+
// if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)
|
|
83
|
+
|
|
84
|
+
generateSegment(closed === false ? tubularSegments : 0);
|
|
85
|
+
|
|
86
|
+
// uvs are generated in a separate function.
|
|
87
|
+
// this makes it easy compute correct values for closed geometries
|
|
88
|
+
|
|
89
|
+
generateUVs();
|
|
90
|
+
|
|
91
|
+
// finally create faces
|
|
92
|
+
|
|
93
|
+
generateIndices();
|
|
94
|
+
}
|
|
95
|
+
function generateSegment(i) {
|
|
96
|
+
P = path.getPointAt(i / tubularSegments, P);
|
|
97
|
+
var T = frames.tangents[i];
|
|
98
|
+
var referenceVector = new Vector3(0, 1, 0);
|
|
99
|
+
if (T.y > 0.999) referenceVector.set(1, 0, 0);
|
|
100
|
+
var N = new Vector3();
|
|
101
|
+
var B = new Vector3();
|
|
102
|
+
N.crossVectors(T, referenceVector).normalize();
|
|
103
|
+
B.crossVectors(T, N).normalize();
|
|
104
|
+
for (var j = 0; j <= radialSegments; j++) {
|
|
105
|
+
var v = j / radialSegments * Math.PI * 2;
|
|
106
|
+
var sin = Math.sin(v);
|
|
107
|
+
var cos = -Math.cos(v);
|
|
108
|
+
|
|
109
|
+
// 使用切线来生成法线
|
|
110
|
+
normal.x = cos * N.x + sin * B.x;
|
|
111
|
+
normal.y = cos * N.y + sin * B.y;
|
|
112
|
+
normal.z = cos * N.z + sin * B.z;
|
|
113
|
+
normal.normalize();
|
|
114
|
+
normals.push(normal.x, normal.y, normal.z);
|
|
115
|
+
|
|
116
|
+
// 使用切线生成顶点
|
|
117
|
+
vertex.x = P.x + radius * normal.x;
|
|
118
|
+
vertex.y = P.y + radius * normal.y;
|
|
119
|
+
vertex.z = P.z + radius * normal.z;
|
|
120
|
+
vertices.push(vertex.x, vertex.y, vertex.z);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function generateIndices() {
|
|
124
|
+
for (var j = 1; j <= tubularSegments; j++) {
|
|
125
|
+
for (var i = 1; i <= radialSegments; i++) {
|
|
126
|
+
var a = (radialSegments + 1) * (j - 1) + (i - 1);
|
|
127
|
+
var b = (radialSegments + 1) * j + (i - 1);
|
|
128
|
+
var c = (radialSegments + 1) * j + i;
|
|
129
|
+
var d = (radialSegments + 1) * (j - 1) + i;
|
|
130
|
+
|
|
131
|
+
// faces
|
|
132
|
+
|
|
133
|
+
indices.push(a, b, d);
|
|
134
|
+
indices.push(b, c, d);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function generateUVs() {
|
|
139
|
+
for (var i = 0; i <= tubularSegments; i++) {
|
|
140
|
+
for (var j = 0; j <= radialSegments; j++) {
|
|
141
|
+
uv.x = i / tubularSegments;
|
|
142
|
+
uv.y = j / radialSegments;
|
|
143
|
+
uvs.push(uv.x, uv.y);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return _this;
|
|
148
|
+
}
|
|
149
|
+
return _createClass(TubeGeometry);
|
|
150
|
+
}(BufferGeometry);
|
|
151
|
+
export default TubeGeometry;
|
|
152
|
+
//# sourceMappingURL=tubeGeometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BufferGeometry","Float32BufferAttribute","QuadraticBezierCurve3","Vector2","Vector3","TubeGeometry","path","tubularSegments","radius","radialSegments","closed","type","parameters","frames","computeFrenetFrames","tangents","normals","binormals","vertex","normal","uv","P","vertices","uvs","indices","generateBufferData","setIndex","setAttribute","i","generateSegment","generateUVs","generateIndices","getPointAt","T","referenceVector","y","set","N","B","crossVectors","normalize","j","v","Math","PI","sin","cos","x","z","push","a","b","c","d"],"sources":["../../../../src/factory/unit/inspection/tubeGeometry.ts"],"sourcesContent":["import { BufferGeometry, Color, Float32BufferAttribute, LineCurve3, Mesh, MeshBasicMaterial, QuadraticBezierCurve3, SceneControl as Scene, Vector2, Vector3 } from '@anov/3d-core'\n\nclass TubeGeometry extends BufferGeometry {\n type: string\n parameters: {\n path: QuadraticBezierCurve3\n tubularSegments: number\n radius: number\n radialSegments: number\n closed: boolean\n }\n\n tangents: Vector3[]\n normals: Vector3[]\n binormals: Vector3[]\n constructor(path = new QuadraticBezierCurve3(new Vector3(-1, -1, 0), new Vector3(-1, 1, 0), new Vector3(1, 1, 0)), tubularSegments = 64, radius = 1, radialSegments = 8, closed = false) {\n super()\n\n this.type = 'TubeGeometry'\n\n this.parameters = {\n path,\n tubularSegments,\n radius,\n radialSegments,\n closed,\n }\n\n const frames = path.computeFrenetFrames(tubularSegments, closed)\n\n // expose internals\n\n this.tangents = frames.tangents\n this.normals = frames.normals\n this.binormals = frames.binormals\n\n // helper variables\n\n const vertex = new Vector3()\n const normal = new Vector3()\n const uv = new Vector2()\n let P = new Vector3()\n\n // buffer\n\n const vertices = []\n const normals = []\n const uvs = []\n const indices = []\n\n // create buffer data\n\n generateBufferData()\n\n // build geometry\n\n this.setIndex(indices)\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3))\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3))\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2))\n\n // functions\n\n function generateBufferData() {\n for (let i = 0; i < tubularSegments; i++)\n\n generateSegment(i)\n\n // if the geometry is not closed, generate the last row of vertices and normals\n // at the regular position on the given path\n //\n // if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)\n\n generateSegment((closed === false) ? tubularSegments : 0)\n\n // uvs are generated in a separate function.\n // this makes it easy compute correct values for closed geometries\n\n generateUVs()\n\n // finally create faces\n\n generateIndices()\n }\n\n function generateSegment(i) {\n P = path.getPointAt(i / tubularSegments, P)\n\n const T = frames.tangents[i]\n\n const referenceVector = new Vector3(0, 1, 0)\n if (T.y > 0.999)\n referenceVector.set(1, 0, 0)\n\n const N = new Vector3()\n const B = new Vector3()\n\n N.crossVectors(T, referenceVector).normalize()\n B.crossVectors(T, N).normalize()\n\n for (let j = 0; j <= radialSegments; j++) {\n const v = j / radialSegments * Math.PI * 2\n const sin = Math.sin(v)\n const cos = -Math.cos(v)\n\n // 使用切线来生成法线\n normal.x = cos * N.x + sin * B.x\n normal.y = cos * N.y + sin * B.y\n normal.z = cos * N.z + sin * B.z\n normal.normalize()\n\n normals.push(normal.x, normal.y, normal.z)\n\n // 使用切线生成顶点\n vertex.x = P.x + radius * normal.x\n vertex.y = P.y + radius * normal.y\n vertex.z = P.z + radius * normal.z\n\n vertices.push(vertex.x, vertex.y, vertex.z)\n }\n }\n\n function generateIndices() {\n for (let j = 1; j <= tubularSegments; j++) {\n for (let i = 1; i <= radialSegments; i++) {\n const a = (radialSegments + 1) * (j - 1) + (i - 1)\n const b = (radialSegments + 1) * j + (i - 1)\n const c = (radialSegments + 1) * j + i\n const d = (radialSegments + 1) * (j - 1) + i\n\n // faces\n\n indices.push(a, b, d)\n indices.push(b, c, d)\n }\n }\n }\n\n function generateUVs() {\n for (let i = 0; i <= tubularSegments; i++) {\n for (let j = 0; j <= radialSegments; j++) {\n uv.x = i / tubularSegments\n uv.y = j / radialSegments\n\n uvs.push(uv.x, uv.y)\n }\n }\n }\n }\n}\n\nexport default TubeGeometry"],"mappings":"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"}
|