@anov/3d-ability 0.0.23 → 0.0.25

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.
@@ -15,7 +15,6 @@ var Camera = /*#__PURE__*/function () {
15
15
  _defineProperty(this, "isTransitionPeriod", false);
16
16
  _defineProperty(this, "isTrigger", true);
17
17
  _defineProperty(this, "tween", void 0);
18
- this.isTrigger = true;
19
18
  this.camera = sceneControl.camera;
20
19
  this.controls = sceneControl.controls;
21
20
  this.sceneControl = sceneControl;
@@ -1 +1 @@
1
- {"version":3,"names":["Box3","MathUtils","TWEEN","Vector3","Camera","camera","controls","sceneControl","isTrigger","handleChanged","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","prevTarget","prevPosition","lastTarget","params","Promise","res","duration","moveOptions","onUpdate","lookat","onComplate","toArray","userInput","Array","isArray","caclCurrentPos","moveCameraTo","caclSingleCoordinate","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","requestAnimationFrame","renderer","render","scene","tween","stop","Tween","t","p","to","rotation","onStart","enabled","isTransitionPeriod","easing","Easing","Quadratic","InOut","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../src/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera, SceneControl } from '@anov/3d-core'\nimport { Box3, MathUtils, TWEEN, Vector3 } from '@anov/3d-core'\n\ntype vector3Array = 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 {\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private sceneControl: SceneControl\n private isTransitionPeriod = false\n private isTrigger = true\n private tween: any\n\n constructor(camera: PerspectiveCamera, controls: OrbitControls, sceneControl: SceneControl) {\n this.isTrigger = true\n this.camera = sceneControl.camera!\n this.controls = sceneControl.controls!\n this.sceneControl = sceneControl\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)\n // // this.sceneControl.renderer!.render(this.sceneControl.scene!, this.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 },\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 },\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.sceneControl.renderer!.render(this.sceneControl.scene!, this.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":["Box3","MathUtils","TWEEN","Vector3","Camera","camera","controls","sceneControl","handleChanged","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","prevTarget","prevPosition","lastTarget","params","Promise","res","duration","moveOptions","isTrigger","onUpdate","lookat","onComplate","toArray","userInput","Array","isArray","caclCurrentPos","moveCameraTo","caclSingleCoordinate","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","requestAnimationFrame","renderer","render","scene","tween","stop","Tween","t","p","to","rotation","onStart","enabled","isTransitionPeriod","easing","Easing","Quadratic","InOut","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../src/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera, SceneControl } from '@anov/3d-core'\nimport { Box3, MathUtils, TWEEN, Vector3 } from '@anov/3d-core'\n\ntype vector3Array = 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 {\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private sceneControl: SceneControl\n private isTransitionPeriod = false\n private isTrigger = true\n private tween: any\n\n constructor(camera: PerspectiveCamera, controls: OrbitControls, sceneControl: SceneControl) {\n this.camera = sceneControl.camera!\n this.controls = sceneControl.controls!\n this.sceneControl = sceneControl\n\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)\n // // this.sceneControl.renderer!.render(this.sceneControl.scene!, this.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 },\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 },\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.sceneControl.renderer!.render(this.sceneControl.scene!, this.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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"}
@@ -0,0 +1,7 @@
1
+ import type { Camera } from '@anov/3d-core';
2
+ declare class ControlBaseModule {
3
+ camera: Camera;
4
+ dom: HTMLElement;
5
+ constructor(camera: Camera, dom: HTMLElement);
6
+ }
7
+ export default ControlBaseModule;
@@ -0,0 +1,16 @@
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 _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; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ 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); }
8
+ var ControlBaseModule = /*#__PURE__*/_createClass(function ControlBaseModule(camera, dom) {
9
+ _classCallCheck(this, ControlBaseModule);
10
+ _defineProperty(this, "camera", void 0);
11
+ _defineProperty(this, "dom", void 0);
12
+ this.camera = camera;
13
+ this.dom = dom;
14
+ });
15
+ export default ControlBaseModule;
16
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ControlBaseModule","camera","dom"],"sources":["../../src/controls/base.ts"],"sourcesContent":["import type { Camera } from '@anov/3d-core'\n\nclass ControlBaseModule {\n camera: Camera\n dom: HTMLElement\n\n constructor(camera: Camera, dom: HTMLElement) {\n this.camera = camera\n this.dom = dom\n }\n}\n\nexport default ControlBaseModule"],"mappings":";;;;;;;IAEMA,iBAAiB,6BAIrB,2BAAYC,MAAc,EAAEC,GAAgB,EAAE;EAAA;EAAA;EAAA;EAC5C,IAAI,CAACD,MAAM,GAAGA,MAAM;EACpB,IAAI,CAACC,GAAG,GAAGA,GAAG;AAChB,CAAC;AAGH,eAAeF,iBAAiB"}
@@ -0,0 +1,2 @@
1
+ import FirstViewControl from './src/FirstViewControl';
2
+ export { FirstViewControl, };
@@ -0,0 +1,3 @@
1
+ import FirstViewControl from "./src/FirstViewControl";
2
+ export { FirstViewControl };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FirstViewControl"],"sources":["../../src/controls/index.ts"],"sourcesContent":["import FirstViewControl from './src/FirstViewControl'\n\nexport {\n FirstViewControl,\n}"],"mappings":"AAAA,OAAOA,gBAAgB;AAEvB,SACEA,gBAAgB"}
@@ -0,0 +1,30 @@
1
+ import type { Camera } from '@anov/3d-core';
2
+ import { Vector3, lib } from '@anov/3d-core';
3
+ import type ControlBaseModule from '../base';
4
+ /**
5
+ * @class FirstViewControl - First view control module
6
+ *
7
+ * 贴地 (First View) 控制模块
8
+ */
9
+ declare class FirstViewControl implements ControlBaseModule {
10
+ camera: Camera;
11
+ dom: HTMLElement;
12
+ control: lib.PointerLockControls;
13
+ velocity: Vector3;
14
+ private moveForward;
15
+ private moveBackward;
16
+ private moveLeft;
17
+ private moveRight;
18
+ private canJump;
19
+ private direction;
20
+ private prevTime;
21
+ private cancellation;
22
+ constructor(camera: Camera, dom: HTMLElement);
23
+ /**
24
+ * registerEvent
25
+ */
26
+ private registerEvent;
27
+ private update;
28
+ dispose(): void;
29
+ }
30
+ export default FirstViewControl;
@@ -0,0 +1,132 @@
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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
+ 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); } }
4
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
+ 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; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ 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); }
8
+ import { Vector3, lib, use } from '@anov/3d-core';
9
+ var PointerLockControls = lib.PointerLockControls;
10
+
11
+ /**
12
+ * @class FirstViewControl - First view control module
13
+ *
14
+ * 贴地 (First View) 控制模块
15
+ */
16
+ var FirstViewControl = /*#__PURE__*/function () {
17
+ function FirstViewControl(camera, dom) {
18
+ var _this = this;
19
+ _classCallCheck(this, FirstViewControl);
20
+ _defineProperty(this, "camera", void 0);
21
+ _defineProperty(this, "dom", void 0);
22
+ _defineProperty(this, "control", void 0);
23
+ _defineProperty(this, "velocity", new Vector3());
24
+ _defineProperty(this, "moveForward", false);
25
+ _defineProperty(this, "moveBackward", false);
26
+ _defineProperty(this, "moveLeft", false);
27
+ _defineProperty(this, "moveRight", false);
28
+ _defineProperty(this, "canJump", false);
29
+ _defineProperty(this, "direction", new Vector3());
30
+ _defineProperty(this, "prevTime", performance.now());
31
+ _defineProperty(this, "cancellation", void 0);
32
+ this.camera = camera;
33
+ this.dom = dom;
34
+ this.control = new PointerLockControls(camera, document.body);
35
+ this.dom.addEventListener('click', this.control.lock);
36
+ this.registerEvent();
37
+ this.cancellation = use.useframe(function () {
38
+ _this.update();
39
+ });
40
+ }
41
+
42
+ /**
43
+ * registerEvent
44
+ */
45
+ _createClass(FirstViewControl, [{
46
+ key: "registerEvent",
47
+ value: function registerEvent() {
48
+ var _this2 = this;
49
+ var onKeyDown = function onKeyDown(event) {
50
+ switch (event.code) {
51
+ case 'ArrowUp':
52
+ case 'KeyW':
53
+ _this2.moveForward = true;
54
+ break;
55
+ case 'ArrowLeft':
56
+ case 'KeyA':
57
+ _this2.moveLeft = true;
58
+ break;
59
+ case 'ArrowDown':
60
+ case 'KeyS':
61
+ _this2.moveBackward = true;
62
+ break;
63
+ case 'ArrowRight':
64
+ case 'KeyD':
65
+ _this2.moveRight = true;
66
+ break;
67
+ case 'Space':
68
+ if (_this2.canJump === true) _this2.velocity.y += 5;
69
+ _this2.canJump = false;
70
+ break;
71
+ }
72
+ };
73
+ var onKeyUp = function onKeyUp(event) {
74
+ switch (event.code) {
75
+ case 'ArrowUp':
76
+ case 'KeyW':
77
+ _this2.moveForward = false;
78
+ break;
79
+ case 'ArrowLeft':
80
+ case 'KeyA':
81
+ _this2.moveLeft = false;
82
+ break;
83
+ case 'ArrowDown':
84
+ case 'KeyS':
85
+ _this2.moveBackward = false;
86
+ break;
87
+ case 'ArrowRight':
88
+ case 'KeyD':
89
+ _this2.moveRight = false;
90
+ break;
91
+ }
92
+ };
93
+ document.addEventListener('keydown', onKeyDown);
94
+ document.addEventListener('keyup', onKeyUp);
95
+ }
96
+ }, {
97
+ key: "update",
98
+ value: function update() {
99
+ var time = performance.now();
100
+ if (this.control.isLocked) {
101
+ var delta = (time - this.prevTime) / 1000;
102
+ this.velocity.x -= this.velocity.x * 10.0 * delta;
103
+ this.velocity.z -= this.velocity.z * 10.0 * delta;
104
+ this.velocity.y -= 9.8 * 100.0 * delta;
105
+ this.direction.z = Number(this.moveForward) - Number(this.moveBackward);
106
+ this.direction.x = Number(this.moveRight) - Number(this.moveLeft);
107
+ this.direction.normalize();
108
+ if (this.moveForward || this.moveBackward) this.velocity.z -= this.direction.z * 100.0 * delta;
109
+ if (this.moveLeft || this.moveRight) this.velocity.x -= this.direction.x * 100.0 * delta;
110
+ this.control.moveRight(-this.velocity.x * delta);
111
+ this.control.moveForward(-this.velocity.z * delta);
112
+ this.control.getObject().position.y += this.velocity.y * delta;
113
+ if (this.control.getObject().position.y < 2) {
114
+ this.velocity.y = 0;
115
+ this.control.getObject().position.y = 1.8;
116
+ this.canJump = true;
117
+ }
118
+ }
119
+ this.prevTime = time;
120
+ }
121
+ }, {
122
+ key: "dispose",
123
+ value: function dispose() {
124
+ this.cancellation();
125
+ }
126
+
127
+ // 检测专用
128
+ }]);
129
+ return FirstViewControl;
130
+ }();
131
+ export default FirstViewControl;
132
+ //# sourceMappingURL=FirstViewControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Vector3","lib","use","PointerLockControls","FirstViewControl","camera","dom","performance","now","control","document","body","addEventListener","lock","registerEvent","cancellation","useframe","update","onKeyDown","event","code","moveForward","moveLeft","moveBackward","moveRight","canJump","velocity","y","onKeyUp","time","isLocked","delta","prevTime","x","z","direction","Number","normalize","getObject","position"],"sources":["../../../src/controls/src/FirstViewControl.ts"],"sourcesContent":["import type { Camera } from '@anov/3d-core'\nimport { Vector3, lib, use } from '@anov/3d-core'\nimport type ControlBaseModule from '../base'\n\nconst { PointerLockControls } = lib\n\n/**\n * @class FirstViewControl - First view control module\n *\n * 贴地 (First View) 控制模块\n */\n\nclass FirstViewControl implements ControlBaseModule {\n camera: Camera\n dom: HTMLElement\n control: lib.PointerLockControls\n\n velocity = new Vector3()\n\n private moveForward = false\n private moveBackward = false\n private moveLeft = false\n private moveRight = false\n private canJump = false\n\n private direction = new Vector3()\n private prevTime = performance.now()\n private cancellation: () => void\n\n constructor(camera: Camera, dom: HTMLElement) {\n this.camera = camera\n this.dom = dom\n\n this.control = new PointerLockControls(camera, document.body)\n this.dom.addEventListener('click', this.control.lock)\n this.registerEvent()\n\n this.cancellation = use.useframe(() => {\n this.update()\n })\n }\n\n /**\n * registerEvent\n */\n private registerEvent() {\n const onKeyDown = (event: KeyboardEvent) => {\n switch (event.code) {\n case 'ArrowUp':\n case 'KeyW':\n this.moveForward = true\n break\n\n case 'ArrowLeft':\n case 'KeyA':\n this.moveLeft = true\n break\n\n case 'ArrowDown':\n case 'KeyS':\n this.moveBackward = true\n break\n\n case 'ArrowRight':\n case 'KeyD':\n this.moveRight = true\n break\n\n case 'Space':\n if (this.canJump === true)\n this.velocity.y += 5\n this.canJump = false\n break\n }\n }\n\n const onKeyUp = (event: KeyboardEvent) => {\n switch (event.code) {\n case 'ArrowUp':\n case 'KeyW':\n this.moveForward = false\n break\n\n case 'ArrowLeft':\n case 'KeyA':\n this.moveLeft = false\n break\n\n case 'ArrowDown':\n case 'KeyS':\n this.moveBackward = false\n break\n\n case 'ArrowRight':\n case 'KeyD':\n this.moveRight = false\n break\n }\n }\n\n document.addEventListener('keydown', onKeyDown)\n document.addEventListener('keyup', onKeyUp)\n }\n\n private update() {\n const time = performance.now()\n\n if (this.control.isLocked) {\n const delta = (time - this.prevTime) / 1000\n\n this.velocity.x -= this.velocity.x * 10.0 * delta\n this.velocity.z -= this.velocity.z * 10.0 * delta\n this.velocity.y -= 9.8 * 100.0 * delta\n\n this.direction.z = Number(this.moveForward) - Number(this.moveBackward)\n this.direction.x = Number(this.moveRight) - Number(this.moveLeft)\n this.direction.normalize()\n\n if (this.moveForward || this.moveBackward)\n this.velocity.z -= this.direction.z * 100.0 * delta\n\n if (this.moveLeft || this.moveRight)\n this.velocity.x -= this.direction.x * 100.0 * delta\n\n this.control.moveRight(-this.velocity.x * delta)\n this.control.moveForward(-this.velocity.z * delta)\n this.control.getObject().position.y += (this.velocity.y * delta)\n\n if (this.control.getObject().position.y < 2) {\n this.velocity.y = 0\n this.control.getObject().position.y = 1.8\n\n this.canJump = true\n }\n }\n\n this.prevTime = time\n }\n\n dispose() {\n this.cancellation()\n }\n\n // 检测专用\n}\n\nexport default FirstViewControl"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -25,7 +25,8 @@ import createBloomSelectedTool from './postEffects/bloomSelect';
25
25
  import FakeGlowMaterial from './material/fakeGlowMaterial';
26
26
  import Sky from './environment/skyv2';
27
27
  import Weather from './weather';
28
+ import { FirstViewControl } from './controls/index';
28
29
  export * from './scene';
29
30
  export { SceneControl, // todo remove
30
31
  createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, SkyBox, Fog2DMesh, Sky, Weather, Css2DPoi, Css3DPoi, SpritePoi, EAnimationType, HeatMap, FakeGlowMaterial, GridMaterial, initPostEffects, // effect
31
- createHighSelectedTool, addColorifyPass, addBloom, addBrightnessContrastPass, addMappingExposurePass, createBloomSelectedTool, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, };
32
+ createHighSelectedTool, addColorifyPass, addBloom, addBrightnessContrastPass, addMappingExposurePass, createBloomSelectedTool, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, FirstViewControl, };
package/dist/index.js CHANGED
@@ -25,10 +25,11 @@ import createBloomSelectedTool from "./postEffects/bloomSelect";
25
25
  import FakeGlowMaterial from "./material/fakeGlowMaterial";
26
26
  import Sky from "./environment/skyv2";
27
27
  import Weather from "./weather";
28
+ import { FirstViewControl } from "./controls/index";
28
29
  export * from "./scene";
29
30
  export { SceneControl,
30
31
  // todo remove
31
32
  createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, SkyBox, Fog2DMesh, Sky, Weather, Css2DPoi, Css3DPoi, SpritePoi, EAnimationType, HeatMap, FakeGlowMaterial, GridMaterial, initPostEffects,
32
33
  // effect
33
- createHighSelectedTool, addColorifyPass, addBloom, addBrightnessContrastPass, addMappingExposurePass, createBloomSelectedTool, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh };
34
+ createHighSelectedTool, addColorifyPass, addBloom, addBrightnessContrastPass, addMappingExposurePass, createBloomSelectedTool, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, FirstViewControl };
34
35
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["SceneControl","createSnow","createRain","initPostEffects","createHighSelectedTool","createSun","GridMaterial","ViewHelper","createSkySystem","createVolumetricCloud","createSkyCloud","Snow","Rain","Css2DPoi","Css3DPoi","EAnimationType","SpritePoi","HeatMap","SkyBox","Camera","RoundLineGeometry","createRoundLineWallMesh","Fog2DMesh","addColorifyPass","addBloom","addBrightnessContrastPass","addMappingExposurePass","createBloomSelectedTool","FakeGlowMaterial","Sky","Weather"],"sources":["../src/index.ts"],"sourcesContent":["import { SceneControl } from '@anov/3d-core'\nimport { createSnow } from './environment/snow'\nimport { createRain } from './environment/rain'\nimport { initPostEffects } from './postEffects'\nimport createHighSelectedTool from './postEffects/outlinePass'\nimport { createSun } from './environment/sun'\nimport GridMaterial from './material/pristineGridMaterial'\nimport ViewHelper from './helper/view'\nimport createSkySystem from './environment/sky'\nimport createVolumetricCloud from './environment/volumetricCloud/inex'\nimport createSkyCloud from './environment/shaderCloud/index'\nimport Snow from './environment/showShader'\nimport Rain from './environment/rainShader'\nimport { Css2DPoi, Css3DPoi, EAnimationType, SpritePoi } from './poi'\nimport HeatMap from './heatmap/index'\nimport SkyBox from './environment/skyBox'\nimport Camera from './camera/index'\nimport { RoundLineGeometry, createRoundLineWallMesh } from './line/round-curve'\nimport Fog2DMesh from './weather/objects/Fog2DMesh'\nimport addColorifyPass from './postEffects/colorifyPass'\nimport addBloom from './postEffects/bloomPass'\nimport addBrightnessContrastPass from './postEffects/addBrightnessContrastPass'\nimport addMappingExposurePass from './postEffects/addACESFilmicToneMappingPass'\nimport createBloomSelectedTool from './postEffects/bloomSelect'\nimport FakeGlowMaterial from './material/fakeGlowMaterial'\nimport Sky from './environment/skyv2'\nimport Weather from './weather'\n\nexport * from './scene'\n\nexport {\n SceneControl, // todo remove\n createRain,\n createSnow,\n createSun,\n createSkySystem,\n createVolumetricCloud,\n createSkyCloud,\n Snow,\n Rain,\n SkyBox,\n Fog2DMesh,\n Sky,\n Weather,\n\n Css2DPoi,\n Css3DPoi,\n SpritePoi,\n EAnimationType,\n\n HeatMap,\n\n FakeGlowMaterial,\n GridMaterial,\n\n initPostEffects, // effect\n createHighSelectedTool,\n addColorifyPass,\n addBloom,\n addBrightnessContrastPass,\n addMappingExposurePass,\n createBloomSelectedTool,\n\n ViewHelper,\n Camera,\n\n RoundLineGeometry,\n createRoundLineWallMesh,\n\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,eAAe;AAC5C,SAASC,UAAU;AACnB,SAASC,UAAU;AACnB,SAASC,eAAe;AACxB,OAAOC,sBAAsB;AAC7B,SAASC,SAAS;AAClB,OAAOC,YAAY;AACnB,OAAOC,UAAU;AACjB,OAAOC,eAAe;AACtB,OAAOC,qBAAqB;AAC5B,OAAOC,cAAc;AACrB,OAAOC,IAAI;AACX,OAAOC,IAAI;AACX,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,cAAc,EAAEC,SAAS;AACtD,OAAOC,OAAO;AACd,OAAOC,MAAM;AACb,OAAOC,MAAM;AACb,SAASC,iBAAiB,EAAEC,uBAAuB;AACnD,OAAOC,SAAS;AAChB,OAAOC,eAAe;AACtB,OAAOC,QAAQ;AACf,OAAOC,yBAAyB;AAChC,OAAOC,sBAAsB;AAC7B,OAAOC,uBAAuB;AAC9B,OAAOC,gBAAgB;AACvB,OAAOC,GAAG;AACV,OAAOC,OAAO;AAEd;AAEA,SACE9B,YAAY;AAAE;AACdE,UAAU,EACVD,UAAU,EACVI,SAAS,EACTG,eAAe,EACfC,qBAAqB,EACrBC,cAAc,EACdC,IAAI,EACJC,IAAI,EACJM,MAAM,EACNI,SAAS,EACTO,GAAG,EACHC,OAAO,EAEPjB,QAAQ,EACRC,QAAQ,EACRE,SAAS,EACTD,cAAc,EAEdE,OAAO,EAEPW,gBAAgB,EAChBtB,YAAY,EAEZH,eAAe;AAAE;AACjBC,sBAAsB,EACtBmB,eAAe,EACfC,QAAQ,EACRC,yBAAyB,EACzBC,sBAAsB,EACtBC,uBAAuB,EAEvBpB,UAAU,EACVY,MAAM,EAENC,iBAAiB,EACjBC,uBAAuB"}
1
+ {"version":3,"names":["SceneControl","createSnow","createRain","initPostEffects","createHighSelectedTool","createSun","GridMaterial","ViewHelper","createSkySystem","createVolumetricCloud","createSkyCloud","Snow","Rain","Css2DPoi","Css3DPoi","EAnimationType","SpritePoi","HeatMap","SkyBox","Camera","RoundLineGeometry","createRoundLineWallMesh","Fog2DMesh","addColorifyPass","addBloom","addBrightnessContrastPass","addMappingExposurePass","createBloomSelectedTool","FakeGlowMaterial","Sky","Weather","FirstViewControl"],"sources":["../src/index.ts"],"sourcesContent":["import { SceneControl } from '@anov/3d-core'\nimport { createSnow } from './environment/snow'\nimport { createRain } from './environment/rain'\nimport { initPostEffects } from './postEffects'\nimport createHighSelectedTool from './postEffects/outlinePass'\nimport { createSun } from './environment/sun'\nimport GridMaterial from './material/pristineGridMaterial'\nimport ViewHelper from './helper/view'\nimport createSkySystem from './environment/sky'\nimport createVolumetricCloud from './environment/volumetricCloud/inex'\nimport createSkyCloud from './environment/shaderCloud/index'\nimport Snow from './environment/showShader'\nimport Rain from './environment/rainShader'\nimport { Css2DPoi, Css3DPoi, EAnimationType, SpritePoi } from './poi'\nimport HeatMap from './heatmap/index'\nimport SkyBox from './environment/skyBox'\nimport Camera from './camera/index'\nimport { RoundLineGeometry, createRoundLineWallMesh } from './line/round-curve'\nimport Fog2DMesh from './weather/objects/Fog2DMesh'\nimport addColorifyPass from './postEffects/colorifyPass'\nimport addBloom from './postEffects/bloomPass'\nimport addBrightnessContrastPass from './postEffects/addBrightnessContrastPass'\nimport addMappingExposurePass from './postEffects/addACESFilmicToneMappingPass'\nimport createBloomSelectedTool from './postEffects/bloomSelect'\nimport FakeGlowMaterial from './material/fakeGlowMaterial'\nimport Sky from './environment/skyv2'\nimport Weather from './weather'\nimport { FirstViewControl } from './controls/index'\n\nexport * from './scene'\n\nexport {\n SceneControl, // todo remove\n createRain,\n createSnow,\n createSun,\n createSkySystem,\n createVolumetricCloud,\n createSkyCloud,\n Snow,\n Rain,\n SkyBox,\n Fog2DMesh,\n Sky,\n Weather,\n\n Css2DPoi,\n Css3DPoi,\n SpritePoi,\n EAnimationType,\n\n HeatMap,\n\n FakeGlowMaterial,\n GridMaterial,\n\n initPostEffects, // effect\n createHighSelectedTool,\n addColorifyPass,\n addBloom,\n addBrightnessContrastPass,\n addMappingExposurePass,\n createBloomSelectedTool,\n\n ViewHelper,\n Camera,\n\n RoundLineGeometry,\n createRoundLineWallMesh,\n\n FirstViewControl,\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,eAAe;AAC5C,SAASC,UAAU;AACnB,SAASC,UAAU;AACnB,SAASC,eAAe;AACxB,OAAOC,sBAAsB;AAC7B,SAASC,SAAS;AAClB,OAAOC,YAAY;AACnB,OAAOC,UAAU;AACjB,OAAOC,eAAe;AACtB,OAAOC,qBAAqB;AAC5B,OAAOC,cAAc;AACrB,OAAOC,IAAI;AACX,OAAOC,IAAI;AACX,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,cAAc,EAAEC,SAAS;AACtD,OAAOC,OAAO;AACd,OAAOC,MAAM;AACb,OAAOC,MAAM;AACb,SAASC,iBAAiB,EAAEC,uBAAuB;AACnD,OAAOC,SAAS;AAChB,OAAOC,eAAe;AACtB,OAAOC,QAAQ;AACf,OAAOC,yBAAyB;AAChC,OAAOC,sBAAsB;AAC7B,OAAOC,uBAAuB;AAC9B,OAAOC,gBAAgB;AACvB,OAAOC,GAAG;AACV,OAAOC,OAAO;AACd,SAASC,gBAAgB;AAEzB;AAEA,SACE/B,YAAY;AAAE;AACdE,UAAU,EACVD,UAAU,EACVI,SAAS,EACTG,eAAe,EACfC,qBAAqB,EACrBC,cAAc,EACdC,IAAI,EACJC,IAAI,EACJM,MAAM,EACNI,SAAS,EACTO,GAAG,EACHC,OAAO,EAEPjB,QAAQ,EACRC,QAAQ,EACRE,SAAS,EACTD,cAAc,EAEdE,OAAO,EAEPW,gBAAgB,EAChBtB,YAAY,EAEZH,eAAe;AAAE;AACjBC,sBAAsB,EACtBmB,eAAe,EACfC,QAAQ,EACRC,yBAAyB,EACzBC,sBAAsB,EACtBC,uBAAuB,EAEvBpB,UAAU,EACVY,MAAM,EAENC,iBAAiB,EACjBC,uBAAuB,EAEvBU,gBAAgB"}
@@ -79,6 +79,7 @@ export var createContentElement = function createContentElement(data, option) {
79
79
  Object.keys(defaultStyle.content).forEach(function (key) {
80
80
  contentElement.style[key] = defaultStyle.content[key];
81
81
  });
82
+ contentElement.style.marginBottom = '15px';
82
83
  element.appendChild(contentElement);
83
84
  return element;
84
85
  };
@@ -1 +1 @@
1
- {"version":3,"names":["IMG1","IMG2","titleStyle","contentStyle","container","title","boxSizing","padding","fontSize","fontWeight","content","lineHeight","createTitleElement","data","option","style","assign","element","document","createElement","Object","keys","forEach","key","innerText","createContentElement","defaultStyle","titleElement","setAttribute","fontFamily","appendChild","contentElement","width","height","img","optionStyle","backgroundImage"],"sources":["../../../src/poi/utils/element.ts"],"sourcesContent":["import type { IOption } from './type'\n\nexport const IMG1 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMsAAAA1CAYAAADvYx9aAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LmRhYmFjYmIsIDIwMjEvMDQvMTQtMDA6Mzk6NDQgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMi40IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkQ4RjA1Njc5RjAwQjExRUU5Qzc2OTlCMUYxQUE5NjhGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkQ4RjA1NjdBRjAwQjExRUU5Qzc2OTlCMUYxQUE5NjhGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RDhGMDU2NzdGMDBCMTFFRTlDNzY5OUIxRjFBQTk2OEYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RDhGMDU2NzhGMDBCMTFFRTlDNzY5OUIxRjFBQTk2OEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7+tEX1AAAIqElEQVR42uyd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'\n\nexport const IMG2 = `\ndata:image/png;base64,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\n`\nconst titleStyle = {\n // 'min-width': '180px',\n // 'min-height': '50px',\n 'font-size': '12px',\n 'backgroundImage': `url(${IMG1})`,\n 'backgroundSize': '100% 100%',\n 'backgroundRepeat': 'no-repeat',\n 'display': 'flex',\n 'justifyContent': 'center',\n 'alignItems': 'center',\n 'textAlign:': 'center',\n 'color': '#fff',\n 'pointerEvents': 'auto',\n 'cursor': 'pointer',\n // 'border-image-source': `url(${IMG1})`,\n // 'border-image-slice': '5 10 fill', /* 九宫格裁剪,填充方式为拉伸 */\n // 'border-image-width': '5px 10px',\n}\n\nconst contentStyle = {\n container: {\n 'width': '520px',\n 'min-height': '220px',\n 'color': '#fff',\n 'pointerEvents': 'auto',\n 'cursor': 'pointer',\n 'border-image-source': `url(${IMG2})`,\n 'border-image-slice': '100 38 10 fill', /* 九宫格裁剪,填充方式为拉伸 */\n 'border-image-width': '100px 38px 10px',\n },\n title: {\n boxSizing: 'border-box',\n padding: '25px 15px 0 84px',\n fontSize: '26px',\n fontWeight: 'bold',\n },\n content: {\n padding: '26px 24px 10px 35px',\n fontSize: '16px',\n lineHeight: '30px',\n },\n}\n\nexport const createTitleElement = (data: string, option: IOption) => {\n const style = assign(option, titleStyle)\n const element = document.createElement('div')\n Object.keys(style).forEach((key) => {\n element.style[key as any] = style[key]\n })\n\n element.innerText = data as string\n return element\n}\n\nexport const createContentElement = (data: any, option: IOption) => {\n const defaultStyle = contentStyle\n const style = assign(option, contentStyle.container)\n const element = document.createElement('div')\n Object.keys(style).forEach((key) => {\n element.style[key as any] = style[key]\n })\n\n const titleElement = document.createElement('div')\n titleElement.setAttribute('tag', 'title')\n titleElement.innerText = data.title\n Object.keys(defaultStyle.title).forEach((key) => {\n titleElement.style[key as any] = defaultStyle.title[key]\n })\n titleElement.style.fontFamily = 'YouSheBiaoTiHei3D'\n element.appendChild(titleElement)\n\n const contentElement = document.createElement('div')\n contentElement.setAttribute('tag', 'content')\n\n contentElement.innerText = data.content\n Object.keys(defaultStyle.content).forEach((key) => {\n contentElement.style[key as any] = defaultStyle.content[key]\n })\n\n element.appendChild(contentElement)\n return element\n}\n\nfunction assign(option: IOption, defaultStyle: any) {\n const { width, height, img, style: optionStyle = {} } = option\n const style = { ...defaultStyle, ...optionStyle }\n if (width)\n style.width = `${width}px`\n if (height)\n style.height = `${height}px`\n if (img)\n style.backgroundImage = `url(${img})`\n return style\n}"],"mappings":"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"}
1
+ {"version":3,"names":["IMG1","IMG2","titleStyle","contentStyle","container","title","boxSizing","padding","fontSize","fontWeight","content","lineHeight","createTitleElement","data","option","style","assign","element","document","createElement","Object","keys","forEach","key","innerText","createContentElement","defaultStyle","titleElement","setAttribute","fontFamily","appendChild","contentElement","marginBottom","width","height","img","optionStyle","backgroundImage"],"sources":["../../../src/poi/utils/element.ts"],"sourcesContent":["import type { IOption } from './type'\n\nexport const IMG1 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMsAAAA1CAYAAADvYx9aAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LmRhYmFjYmIsIDIwMjEvMDQvMTQtMDA6Mzk6NDQgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMi40IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkQ4RjA1Njc5RjAwQjExRUU5Qzc2OTlCMUYxQUE5NjhGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkQ4RjA1NjdBRjAwQjExRUU5Qzc2OTlCMUYxQUE5NjhGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RDhGMDU2NzdGMDBCMTFFRTlDNzY5OUIxRjFBQTk2OEYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RDhGMDU2NzhGMDBCMTFFRTlDNzY5OUIxRjFBQTk2OEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7+tEX1AAAIqElEQVR42uyd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'\n\nexport const IMG2 = `\ndata:image/png;base64,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\n`\nconst titleStyle = {\n // 'min-width': '180px',\n // 'min-height': '50px',\n 'font-size': '12px',\n 'backgroundImage': `url(${IMG1})`,\n 'backgroundSize': '100% 100%',\n 'backgroundRepeat': 'no-repeat',\n 'display': 'flex',\n 'justifyContent': 'center',\n 'alignItems': 'center',\n 'textAlign:': 'center',\n 'color': '#fff',\n 'pointerEvents': 'auto',\n 'cursor': 'pointer',\n // 'border-image-source': `url(${IMG1})`,\n // 'border-image-slice': '5 10 fill', /* 九宫格裁剪,填充方式为拉伸 */\n // 'border-image-width': '5px 10px',\n}\n\nconst contentStyle = {\n container: {\n 'width': '520px',\n 'min-height': '220px',\n 'color': '#fff',\n 'pointerEvents': 'auto',\n 'cursor': 'pointer',\n 'border-image-source': `url(${IMG2})`,\n 'border-image-slice': '100 38 10 fill', /* 九宫格裁剪,填充方式为拉伸 */\n 'border-image-width': '100px 38px 10px',\n },\n title: {\n boxSizing: 'border-box',\n padding: '25px 15px 0 84px',\n fontSize: '26px',\n fontWeight: 'bold',\n },\n content: {\n padding: '26px 24px 10px 35px',\n fontSize: '16px',\n lineHeight: '30px',\n },\n}\n\nexport const createTitleElement = (data: string, option: IOption) => {\n const style = assign(option, titleStyle)\n const element = document.createElement('div')\n Object.keys(style).forEach((key) => {\n element.style[key as any] = style[key]\n })\n\n element.innerText = data as string\n return element\n}\n\nexport const createContentElement = (data: any, option: IOption) => {\n const defaultStyle = contentStyle\n const style = assign(option, contentStyle.container)\n const element = document.createElement('div')\n Object.keys(style).forEach((key) => {\n element.style[key as any] = style[key]\n })\n\n const titleElement = document.createElement('div')\n titleElement.setAttribute('tag', 'title')\n titleElement.innerText = data.title\n Object.keys(defaultStyle.title).forEach((key) => {\n titleElement.style[key as any] = defaultStyle.title[key]\n })\n titleElement.style.fontFamily = 'YouSheBiaoTiHei3D'\n element.appendChild(titleElement)\n\n const contentElement = document.createElement('div')\n contentElement.setAttribute('tag', 'content')\n\n contentElement.innerText = data.content\n Object.keys(defaultStyle.content).forEach((key) => {\n contentElement.style[key as any] = defaultStyle.content[key]\n })\n\n contentElement.style.marginBottom = '15px'\n\n element.appendChild(contentElement)\n return element\n}\n\nfunction assign(option: IOption, defaultStyle: any) {\n const { width, height, img, style: optionStyle = {} } = option\n const style = { ...defaultStyle, ...optionStyle }\n if (width)\n style.width = `${width}px`\n if (height)\n style.height = `${height}px`\n if (img)\n style.backgroundImage = `url(${img})`\n return style\n}"],"mappings":";;;;;;AAEA,OAAO,IAAMA,IAAI,GAAG,omIAAomI;AAExnI,OAAO,IAAMC,IAAI,uiqBAEhB;AACD,IAAMC,UAAU,GAAG;EACjB;EACA;EACA,WAAW,EAAE,MAAM;EACnB,iBAAiB,gBAASF,IAAI,MAAG;EACjC,gBAAgB,EAAE,WAAW;EAC7B,kBAAkB,EAAE,WAAW;EAC/B,SAAS,EAAE,MAAM;EACjB,gBAAgB,EAAE,QAAQ;EAC1B,YAAY,EAAE,QAAQ;EACtB,YAAY,EAAE,QAAQ;EACtB,OAAO,EAAE,MAAM;EACf,eAAe,EAAE,MAAM;EACvB,QAAQ,EAAE;EACV;EACA;EACA;AACF,CAAC;;AAED,IAAMG,YAAY,GAAG;EACnBC,SAAS,EAAE;IACT,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,OAAO;IACrB,OAAO,EAAE,MAAM;IACf,eAAe,EAAE,MAAM;IACvB,QAAQ,EAAE,SAAS;IACnB,qBAAqB,gBAASH,IAAI,MAAG;IACrC,oBAAoB,EAAE,gBAAgB;IAAE;IACxC,oBAAoB,EAAE;EACxB,CAAC;EACDI,KAAK,EAAE;IACLC,SAAS,EAAE,YAAY;IACvBC,OAAO,EAAE,kBAAkB;IAC3BC,QAAQ,EAAE,MAAM;IAChBC,UAAU,EAAE;EACd,CAAC;EACDC,OAAO,EAAE;IACPH,OAAO,EAAE,qBAAqB;IAC9BC,QAAQ,EAAE,MAAM;IAChBG,UAAU,EAAE;EACd;AACF,CAAC;AAED,OAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkB,CAAIC,IAAY,EAAEC,MAAe,EAAK;EACnE,IAAMC,KAAK,GAAGC,MAAM,CAACF,MAAM,EAAEZ,UAAU,CAAC;EACxC,IAAMe,OAAO,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;EAC7CC,MAAM,CAACC,IAAI,CAACN,KAAK,CAAC,CAACO,OAAO,CAAC,UAACC,GAAG,EAAK;IAClCN,OAAO,CAACF,KAAK,CAACQ,GAAG,CAAQ,GAAGR,KAAK,CAACQ,GAAG,CAAC;EACxC,CAAC,CAAC;EAEFN,OAAO,CAACO,SAAS,GAAGX,IAAc;EAClC,OAAOI,OAAO;AAChB,CAAC;AAED,OAAO,IAAMQ,oBAAoB,GAAG,SAAvBA,oBAAoB,CAAIZ,IAAS,EAAEC,MAAe,EAAK;EAClE,IAAMY,YAAY,GAAGvB,YAAY;EACjC,IAAMY,KAAK,GAAGC,MAAM,CAACF,MAAM,EAAEX,YAAY,CAACC,SAAS,CAAC;EACpD,IAAMa,OAAO,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;EAC7CC,MAAM,CAACC,IAAI,CAACN,KAAK,CAAC,CAACO,OAAO,CAAC,UAACC,GAAG,EAAK;IAClCN,OAAO,CAACF,KAAK,CAACQ,GAAG,CAAQ,GAAGR,KAAK,CAACQ,GAAG,CAAC;EACxC,CAAC,CAAC;EAEF,IAAMI,YAAY,GAAGT,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;EAClDQ,YAAY,CAACC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;EACzCD,YAAY,CAACH,SAAS,GAAGX,IAAI,CAACR,KAAK;EACnCe,MAAM,CAACC,IAAI,CAACK,YAAY,CAACrB,KAAK,CAAC,CAACiB,OAAO,CAAC,UAACC,GAAG,EAAK;IAC/CI,YAAY,CAACZ,KAAK,CAACQ,GAAG,CAAQ,GAAGG,YAAY,CAACrB,KAAK,CAACkB,GAAG,CAAC;EAC1D,CAAC,CAAC;EACFI,YAAY,CAACZ,KAAK,CAACc,UAAU,GAAG,mBAAmB;EACnDZ,OAAO,CAACa,WAAW,CAACH,YAAY,CAAC;EAEjC,IAAMI,cAAc,GAAGb,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;EACpDY,cAAc,CAACH,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;EAE7CG,cAAc,CAACP,SAAS,GAAGX,IAAI,CAACH,OAAO;EACvCU,MAAM,CAACC,IAAI,CAACK,YAAY,CAAChB,OAAO,CAAC,CAACY,OAAO,CAAC,UAACC,GAAG,EAAK;IACjDQ,cAAc,CAAChB,KAAK,CAACQ,GAAG,CAAQ,GAAGG,YAAY,CAAChB,OAAO,CAACa,GAAG,CAAC;EAC9D,CAAC,CAAC;EAEFQ,cAAc,CAAChB,KAAK,CAACiB,YAAY,GAAG,MAAM;EAE1Cf,OAAO,CAACa,WAAW,CAACC,cAAc,CAAC;EACnC,OAAOd,OAAO;AAChB,CAAC;AAED,SAASD,MAAM,CAACF,MAAe,EAAEY,YAAiB,EAAE;EAClD,IAAQO,KAAK,GAA2CnB,MAAM,CAAtDmB,KAAK;IAAEC,MAAM,GAAmCpB,MAAM,CAA/CoB,MAAM;IAAEC,GAAG,GAA8BrB,MAAM,CAAvCqB,GAAG;IAAA,gBAA8BrB,MAAM,CAAlCC,KAAK;IAAEqB,WAAW,8BAAG,CAAC,CAAC;EACnD,IAAMrB,KAAK,mCAAQW,YAAY,GAAKU,WAAW,CAAE;EACjD,IAAIH,KAAK,EACPlB,KAAK,CAACkB,KAAK,aAAMA,KAAK,OAAI;EAC5B,IAAIC,MAAM,EACRnB,KAAK,CAACmB,MAAM,aAAMA,MAAM,OAAI;EAC9B,IAAIC,GAAG,EACLpB,KAAK,CAACsB,eAAe,iBAAUF,GAAG,MAAG;EACvC,OAAOpB,KAAK;AACd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d-ability",
3
- "version": "0.0.23",
3
+ "version": "0.0.25",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -16,7 +16,7 @@
16
16
  "package.json"
17
17
  ],
18
18
  "peerDependencies": {
19
- "@anov/3d-core": "^0.0.22"
19
+ "@anov/3d-core": "^0.0.24"
20
20
  },
21
21
  "dependencies": {
22
22
  "@types/suncalc": "^1.9.2",
@@ -26,7 +26,7 @@
26
26
  "suncalc": "^1.9.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@anov/3d-core": "^0.0.22"
29
+ "@anov/3d-core": "^0.0.24"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "father build",