@anov/3d 0.0.142 → 0.0.156
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/README.md +3 -1
- package/dist/anov3d.js +15 -25
- package/dist/anov3d.js.map +1 -1
- package/dist/applicationApi.js +14 -90
- package/dist/applicationApi.js.map +1 -1
- package/dist/applicationApiType.js +2 -0
- package/dist/applicationApiType.js.map +1 -0
- package/dist/factory/3d.js +1 -9
- package/dist/factory/3d.js.map +1 -1
- package/dist/factory/unit/CameraPoi.js +0 -2
- package/dist/factory/unit/CameraPoi.js.map +1 -1
- package/dist/factory/unit/circle.js +0 -3
- package/dist/factory/unit/circle.js.map +1 -1
- package/dist/factory/unit/cylinder.js +0 -2
- package/dist/factory/unit/cylinder.js.map +1 -1
- package/dist/factory/unit/inspection/InspectionObject.js +18 -15
- package/dist/factory/unit/inspection/InspectionObject.js.map +1 -1
- package/dist/factory/unit/poi.js +8 -14
- package/dist/factory/unit/poi.js.map +1 -1
- package/dist/factory/unit/region.js +1 -2
- package/dist/factory/unit/region.js.map +1 -1
- package/dist/hooksManager.js +37 -13
- package/dist/hooksManager.js.map +1 -1
- package/dist/module/animation/index.js +118 -0
- package/dist/module/animation/index.js.map +1 -0
- package/dist/module/animation/motion/index.js +61 -0
- package/dist/module/animation/motion/index.js.map +1 -0
- package/dist/module/animation/strategy.js +27 -0
- package/dist/module/animation/strategy.js.map +1 -0
- package/dist/module/camera/index.js +246 -217
- package/dist/module/camera/index.js.map +1 -1
- package/dist/module/camera/type.js +2 -0
- package/dist/module/camera/type.js.map +1 -0
- package/dist/module/entity/hybridList.js +5 -0
- package/dist/module/entity/hybridList.js.map +1 -1
- package/dist/module/entity/index.js +256 -117
- package/dist/module/entity/index.js.map +1 -1
- package/dist/module/entity/model/index.js +3 -3
- package/dist/module/entity/model/index.js.map +1 -1
- package/dist/module/entity/model/load/loadFbx.js +14 -1
- package/dist/module/entity/model/load/loadFbx.js.map +1 -1
- package/dist/module/entity/model/load/loadGlb.js +17 -3
- package/dist/module/entity/model/load/loadGlb.js.map +1 -1
- package/dist/module/entity/poi/index.js +232 -19
- package/dist/module/entity/poi/index.js.map +1 -1
- package/dist/module/entity/poi/indexBack.js +29 -0
- package/dist/module/entity/poi/indexBack.js.map +1 -0
- package/dist/module/entity/poi/type.js.map +1 -1
- package/dist/module/entity/poi/utils.js +42 -0
- package/dist/module/entity/poi/utils.js.map +1 -0
- package/dist/module/entity/spline/style/line_01.js.map +1 -1
- package/dist/module/entity/type.js.map +1 -1
- package/dist/module/eventBus/index.js +20 -7
- package/dist/module/eventBus/index.js.map +1 -1
- package/dist/sdkEntry.js +4 -0
- package/dist/sdkEntry.js.map +1 -1
- package/dist/utils/index.js +16 -4
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/messageFn.js +5 -2
- package/dist/utils/messageFn.js.map +1 -1
- package/package.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Box3","MathUtils","Vector3","TWEEN","MessageType","sendToMessage","EMessageStatus","Camera","app","_classCallCheck","_defineProperty","isTrigger","camera","sceneControl","controls","handleChanged","_createClass","key","value","caclCurrentPos","currentPos","pitch","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","length","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","position","clone","sub","target","normalize","lastPosition","multiplyScalar","add","lastLookat","caclTargetByPitch","subVectors","upVector","localPitchAxis","crossVectors","applyAxisAngle","degToRad","distance","distanceTo","newTarget","caclSingleCoordinate","prevTarget","prevPosition","lastTarget","_this","addEventListener","isTransitionPeriod","lookat","messageType","Event","messageName","status","Success","toArray","focus","params","_this2","Promise","res","duration","moveOptions","_ref","_params$isTrigger","onUpdate","_ref2","_params$isTrigger2","onComplate","_params$duration","userInput","Array","isArray","_this2$caclCurrentPos","moveCameraTo","fromArray","set","_this3","_","_params$isTrigger3","_ref3","_ref4","_params$isTrigger4","_params$duration2","get","x","y","z","_this4","arguments","undefined","options","currentPoition","currentPositionInterpolation","copy","requestAnimationFrame","renderer","render","scene","tween","stop","Tween","t","p","to","rotation","onStart","enabled","easing","Easing","Quadratic","InOut","_ref5","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../../src/module/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core'\nimport { Box3, MathUtils, Vector3 } from '@anov/3d-core'\nimport * as TWEEN from '@tweenjs/tween.js'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport type { BaseModule } from '../../utils/abstract'\nimport { EMessageStatus } from '../../messageStatus'\nimport type Anov3D from '../../sdkEntry'\n\ntype vector3Array = [number, number, number]\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n isTrigger?: boolean\n}\n\nclass Camera implements BaseModule {\n app: Anov3D\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private isTransitionPeriod = false\n private isTrigger = true\n private tween: any\n\n constructor(app: Anov3D) {\n this.app = app\n this.isTrigger = false\n this.camera = app.sceneControl.camera!\n this.controls = app.sceneControl.controls!\n this.handleChanged()\n }\n\n /**\n * caclCurrentPos\n * @param currentPos\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], pitch: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize() // 相机指向物体中心的向量\n\n const lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center)\n const lastLookat = this.caclTargetByPitch(pitch, center, lastPosition)\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclTargetByPitch\n * @param pitch\n * @param target\n * @param position\n * @returns\n */\n private caclTargetByPitch(pitch: number, target: Vector3, position: Vector3) {\n const directionVector = new Vector3().subVectors(target, position)\n const upVector = new Vector3(0, 1, 0)\n const localPitchAxis = new Vector3().crossVectors(directionVector, upVector).normalize()\n\n directionVector.applyAxisAngle(localPitchAxis, MathUtils.degToRad(pitch))\n\n const distance = position.distanceTo(target)\n const newTarget = position.clone().add(directionVector.normalize().multiplyScalar(distance))\n\n return newTarget\n }\n\n /**\n * caclSingleCoordinate\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3) {\n const directionVector = lastTarget.clone().sub(prevTarget).normalize()\n return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition)\n }\n\n /**\n * handle camera changed\n */\n private handleChanged() {\n this.controls.addEventListener('change', () => {\n if (!this.isTransitionPeriod && !this.isTrigger) {\n const lookat = this.controls.target\n const position = this.camera.position\n\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n }\n\n // if (this.isTransitionPeriod)\n // this.app.sceneControl.renderer!.render(this.app.sceneControl.scene!, this.app.sceneControl.camera!)\n })\n }\n\n /**\n * focus On Position\n * @param params\n */\n focus(params: { target: vector3Array | vector3Array[]; pitch?: number; duration?: number; isTrigger?: boolean }) {\n return new Promise((res) => {\n const { target: position, pitch, duration } = params\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n isTrigger: params.isTrigger ?? true,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage({\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, 0)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos))\n const lastLookat = this.caclTargetByPitch(0, new Vector3().fromArray(currentPos), lastPosition)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera\n * @param params\n */\n set(params: { position: vector3Array; target: vector3Array; isTrigger?: boolean; duration?: number }) {\n return new Promise((res, _) => {\n this.moveCameraTo(\n new Vector3(params.position[0], params.position[1], params.position[2]),\n new Vector3(params.target[0], params.target[1], params.target[2]),\n 0,\n {\n isTrigger: params.isTrigger ?? true,\n duration: (params.duration && params.duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param options\n */\n private moveCameraTo(position: Vector3, target: Vector3, pitch = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.isTrigger = !options.isTrigger\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n this.app.sceneControl.renderer!.render(this.app.sceneControl.scene!, this.app.sceneControl.camera!)\n })\n\n return\n }\n\n if (this.tween)\n this.tween.stop()\n\n this.tween = new TWEEN.Tween({ t: 0, lookat: this.controls.target.clone(), p: 0 }).to({ t: 1, lookat: target, p: (-this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this.isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n })\n\n this.controls.enabled = true\n\n setTimeout(() => {\n this.isTransitionPeriod = false\n })\n })\n .start()\n }\n}\n\nexport default Camera"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","obj","_toPrimitive","String","toPrimitive","Number","Box3","MathUtils","Vector3","Camera","CameraUtils","StateMachine","MessageType","sendToMessage","EMessageStatus","hybridList","app","_this","camera","sceneControl","controls","cameraUtils","addEventListener","isTransitionPeriod","isTrigger","messageType","Event","messageName","status","Success","position","toArray","_focus","_callee","params","point","entity","box","_callee$","_context","get","concat","updateMatrixWorld","setFromObject","min","x","z","max","focus","_x","setCameraMode","setCameraOption","baseParams","fov","setCameraLimitOption","_","_2","_3","pitchLimit","yawLimit","distanceLimit","minDistance","maxDistance","minPolarAngle","degToRad","maxPolarAngle","minAzimuthAngle","maxAzimuthAngle","setCameraPosition","copy","fromArray","setCameraAngle","pitch","yaw","distance","setCameraDistance","rotationParent","direction","subVectors","normalize","newPosition","clone","add","multiplyScalar","setCameraTarget","_set","_callee2","_this2","_params$fov","fsm","_callee2$","_context2","init","transitions","from","to","methods","onHandleBaseOption","onHandleMode","onHandleTarget","onHandlePosition","onHandleAngle","onHandleLimit","handleBaseOption","handleMode","handleTarget","handlePosition","handleAngle","handleLimit","set","_x2","mode","radToDeg","distanceTo","follow","_params$pitch","_params$yaw","_params$distance","_params$relativeRotat","relativeRotation","targetObject","cancelAllFollow","cancelFollow"],"sources":["../../../src/module/camera/index.ts"],"sourcesContent":["import { Box3, MathUtils, type OrbitControls, type PerspectiveCamera, Vector3 } from '@anov/3d-core'\nimport { Camera as CameraUtils } from '@anov/3d-ability'\nimport StateMachine from 'javascript-state-machine'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport type { BaseModule } from '../../utils/abstract'\nimport { EMessageStatus } from '../../messageStatus'\nimport type Anov3D from '../../sdkEntry'\nimport { hybridList } from '../entity'\nimport type { CameraAngleParams, CameraLimitParams, CameraSetOptions, baseCameraParams } from './type'\n\ntype vector3Array = [number, number, number]\n\nclass Camera implements BaseModule {\n app: Anov3D\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private cameraUtils: CameraUtils\n\n constructor(app: Anov3D) {\n this.app = app\n this.camera = app.sceneControl.camera!\n this.controls = app.sceneControl.controls!\n this.cameraUtils = new CameraUtils(this.camera, this.controls, app.sceneControl)\n\n this.cameraUtils.addEventListener('change', () => {\n if ((this.cameraUtils.isTransitionPeriod && this.cameraUtils.isTrigger) || !this.cameraUtils.isTransitionPeriod) {\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n })\n }\n })\n }\n\n /**\n * focus camera\n * @param params\n */\n async focus(params: {\n target: vector3Array | vector3Array[] | string\n pitch?: number\n yaw?: number\n distance?: number\n duration?: number\n isTrigger?: boolean\n }) {\n const { target } = params\n\n let point = target\n\n if (typeof point === 'string') {\n const entity = hybridList.get(point)\n\n if (!entity)\n throw new Error(`entity ${target} not found`)\n\n entity.updateMatrixWorld()\n const box = new Box3().setFromObject(entity)\n\n point = [\n new Vector3(box.min.x, box.min.y, box.min.z).toArray(),\n new Vector3(box.min.x, box.min.y, box.max.z).toArray(),\n new Vector3(box.min.x, box.max.y, box.min.z).toArray(),\n new Vector3(box.min.x, box.max.y, box.max.z).toArray(),\n new Vector3(box.max.x, box.min.y, box.min.z).toArray(),\n new Vector3(box.max.x, box.min.y, box.max.z).toArray(),\n new Vector3(box.max.x, box.max.y, box.min.z).toArray(),\n new Vector3(box.max.x, box.max.y, box.max.z).toArray(),\n ]\n }\n\n return await this.cameraUtils.focus({\n ...params,\n target: point,\n\n })\n }\n\n /**\n * set camera mode, example:free、orbit、firstPerson\n */\n private setCameraMode() {\n // now only support orbit mode, so now do nothing\n }\n\n /**\n * set camera base option, example:fov\n */\n private setCameraOption(baseParams: baseCameraParams) {\n const { fov } = baseParams\n this.camera.fov = fov\n }\n\n /**\n * set camera limit option, example:pitchLimit、yawLimit、distanceLimit\n * @param params\n */\n private setCameraLimitOption(params: CameraLimitParams) {\n const { pitchLimit, yawLimit, distanceLimit } = params\n\n distanceLimit && (this.controls.minDistance = distanceLimit![0])\n distanceLimit && (this.controls.maxDistance = distanceLimit![1] ?? distanceLimit![0])\n\n pitchLimit && (this.controls.minPolarAngle = MathUtils.degToRad(pitchLimit![0]))\n pitchLimit && (this.controls.maxPolarAngle = MathUtils.degToRad(pitchLimit![1] ?? pitchLimit![0]))\n\n yawLimit && (this.controls.minAzimuthAngle = MathUtils.degToRad(yawLimit![0]))\n yawLimit && (this.controls.maxAzimuthAngle = MathUtils.degToRad(yawLimit![1] ?? yawLimit![0]))\n }\n\n /**\n * set camera position、target、distance\n */\n private setCameraPosition(position: number[]) {\n this.camera.position.copy(new Vector3().fromArray(position))\n }\n\n /**\n * set camera angle, example:pitch、yaw、distance\n * @param params\n */\n private setCameraAngle(params: CameraAngleParams) {\n const { pitch, yaw, distance } = params\n distance && this.setCameraDistance(distance)\n\n // @ts-ignore\n pitch && (this.camera.rotationParent.x = MathUtils.degToRad(pitch))\n // @ts-ignore\n yaw && (this.camera.rotationParent.y = MathUtils.degToRad(yaw))\n }\n\n private setCameraDistance(distance: number) {\n const target = this.controls.target\n const position = this.camera.position\n\n const direction = new Vector3().subVectors(position, target).normalize()\n const newPosition = target.clone().add(direction.multiplyScalar(distance))\n\n this.camera.position.copy(newPosition)\n }\n\n private setCameraTarget(target: number[]) {\n this.controls.target.copy(new Vector3().fromArray(target))\n }\n\n /**\n * set camera\n * @param params\n */\n async set(params: CameraSetOptions) {\n const { fov = 45, isTrigger, target, position, distance, pitch, yaw, pitchLimit, yawLimit, distanceLimit } = params\n\n const fsm = new StateMachine({\n init: 'start',\n transitions: [\n { name: 'handleBaseOption', from: 'start', to: 'setBaseOption' },\n { name: 'handleMode', from: 'setBaseOption', to: 'setCameraMode' },\n { name: 'handleTarget', from: 'setCameraMode', to: 'setCameraTarget' },\n { name: 'handleMiddel', from: 'setCameraTarget', to: '*' },\n { name: 'handlePosition', from: '*', to: 'setCameraLimitOption' },\n { name: 'handleAngle', from: '*', to: 'setCameraLimitOption' },\n { name: 'handleLimit', from: '*' },\n ],\n methods: {\n onHandleBaseOption: () => this.setCameraOption({ fov }),\n onHandleMode: () => this.setCameraMode(),\n onHandleTarget: () => this.setCameraTarget(target),\n onHandlePosition: () => this.setCameraPosition(position),\n onHandleAngle: () => { this.setCameraAngle({ pitch, yaw, distance }) },\n onHandleLimit: () => this.setCameraLimitOption({ pitchLimit, yawLimit, distanceLimit }),\n },\n })\n\n fsm.handleBaseOption()\n fsm.handleMode()\n fsm.handleTarget()\n position ? fsm.handlePosition() : fsm.handleAngle()\n fsm.handleLimit()\n\n return this.get()\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n fov: this.camera.fov,\n mode: 'orbitCamera',\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n // @ts-ignore\n pitch: MathUtils.radToDeg(this.camera.rotationParent.x),\n // @ts-ignore\n yaw: MathUtils.radToDeg(this.camera.rotationParent.y),\n distance: this.controls.target.distanceTo(this.camera.position),\n }\n }\n\n /**\n * follow object\n * @param params\n */\n follow(params: {\n target: string\n pitch?: number\n yaw?: number\n distance?: number\n relativeRotation?: boolean\n }) {\n const { target, pitch = 30, yaw = 0, distance = 0, relativeRotation = false } = params\n const targetObject = hybridList.get(target)\n\n this.cameraUtils.cancelAllFollow()\n\n return this.cameraUtils.follow(\n targetObject,\n this.camera,\n {\n relativeRotation,\n pitch,\n yaw,\n distance,\n },\n )\n }\n\n /**\n * cancel follow\n */\n cancelFollow() {\n this.cameraUtils.cancelAllFollow()\n }\n}\n\nexport default Camera"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/module/camera/type.ts"],"sourcesContent":["type CameraOptionsMode = {\n type: 'orbitCamera'\n collision: boolean\n gravity: boolean\n eyeHeight: number\n meshType: string\n}\n\ntype CameraLimit = {\n pitch: [number, number]\n yaw: [number, number]\n distance: [number, number]\n}\n\ntype CameraRotate = {\n auto: boolean\n waitTime: number\n direction: string\n time: number\n}\n\ntype CameraControlSpeed = {\n move: number\n rotate: number\n zoom: number\n}\n\nexport type CameraOptions = Partial< {\n fov: number\n target: [number, number, number]\n position: [number, number, number]\n isTrigger: boolean\n mode?: Partial<CameraOptionsMode>\n limit?: Partial<CameraLimit>\n rotate?: Partial<CameraRotate>\n controlSpeed?: Partial<CameraControlSpeed>\n}>\n\nexport type baseCameraParams = Partial< {\n fov: number\n}>\n\nexport type CameraAngleParams = Partial<{\n pitch: number\n yaw: number\n distance: number\n}>\n\nexport type CameraLimitParams = Partial<{\n pitchLimit: number[]\n yawLimit: number[]\n distanceLimit: number[]\n}>\n\nexport type CameraSetOptions = Partial<{\n fov: number\n mode: string\n isTrigger: boolean\n target: number[]\n position: number[]\n pitch: number\n yaw: number\n distance: number\n pitchLimit: number[]\n yawLimit: number[]\n distanceLimit: number[]\n isAutoRotate: boolean\n leisureTime: number\n rotateDirection: string\n rotateTime: number\n}>\n"],"mappings":""}
|
|
@@ -38,6 +38,11 @@ var HybridList = /*#__PURE__*/function () {
|
|
|
38
38
|
var node = this.map.get(key);
|
|
39
39
|
if (node) node.value = value;
|
|
40
40
|
}
|
|
41
|
+
}, {
|
|
42
|
+
key: "has",
|
|
43
|
+
value: function has(key) {
|
|
44
|
+
return this.map.has(key);
|
|
45
|
+
}
|
|
41
46
|
}, {
|
|
42
47
|
key: "add",
|
|
43
48
|
value: function add(key, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ListNode","_createClass","value","key","_classCallCheck","_defineProperty","next","prev","HybridList","map","Map","head","tail","get","node","update","
|
|
1
|
+
{"version":3,"names":["ListNode","_createClass","value","key","_classCallCheck","_defineProperty","next","prev","HybridList","map","Map","head","tail","get","node","update","has","add","Error","concat","newNode","set","_delete","delete"],"sources":["../../../src/module/entity/hybridList.ts"],"sourcesContent":["class ListNode<T> {\n value: T\n key: string | number\n next: ListNode<T> | null\n prev: ListNode<T> | null\n\n constructor(value: T, key: string | number) {\n this.value = value\n this.key = key\n this.next = null\n this.prev = null\n }\n}\n\nclass HybridList<T> {\n private map: Map<string | number, ListNode<T>>\n private head: ListNode<T> | null\n private tail: ListNode<T> | null\n\n constructor() {\n this.map = new Map<string | number, ListNode<T>>()\n this.head = null\n this.tail = null\n }\n\n get(key: string | number): T | null {\n const node = this.map.get(key)\n return node ? node.value : null\n }\n\n update(key: string | number, value: T): void {\n const node = this.map.get(key)\n if (node)\n node.value = value\n }\n\n has(key: string | number) {\n return this.map.has(key)\n }\n\n add(key: string | number, value: T): void {\n if (this.map.has(key))\n throw new Error(`${key} already exists`)\n\n const newNode = new ListNode(value, key)\n this.map.set(key, newNode)\n\n if (this.tail) {\n this.tail.next = newNode\n newNode.prev = this.tail\n this.tail = newNode\n }\n else {\n this.head = this.tail = newNode\n }\n }\n\n delete(key: string | number): void {\n const node = this.map.get(key)\n\n if (!node)\n return\n\n if (node.prev)\n node.prev.next = node.next\n else\n this.head = node.next\n\n if (node.next)\n node.next.prev = node.prev\n else\n this.tail = node.prev\n\n this.map.delete(key)\n }\n}\n\nexport default HybridList\n"],"mappings":"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"}
|