@realsee/dnalogel 3.77.2-alpha.0 → 3.77.2

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/CruisePlugin/Work.d.ts +0 -4
  3. package/dist/CruisePlugin/typing.d.ts +0 -7
  4. package/dist/CruisePlugin/utils/coordinatesAngle.d.ts +3 -19
  5. package/dist/Sculpt/Objects/Base/Editor.d.ts +20 -1
  6. package/dist/Sculpt/Objects/Box/index.d.ts +5 -2
  7. package/dist/Sculpt/Objects/Rectangle/index.d.ts +7 -4
  8. package/dist/floorplan/MapviewFloorplanPlugin/Controller.d.ts +21 -0
  9. package/dist/floorplan/ModelFloorplanPlugin/Controller.d.ts +16 -0
  10. package/dist/floorplan/typings/index.d.ts +3 -0
  11. package/dist/index.cjs.js +75 -75
  12. package/dist/index.js +7373 -7319
  13. package/dist/index.umd.js +73 -73
  14. package/dist/shared-utils/Object3DHelper/typings/Hooks.d.ts +4 -3
  15. package/dist/shared-utils/three/PointSelector/index.d.ts +1 -1
  16. package/libs/CruisePlugin/BaseController.js +1 -8
  17. package/libs/CruisePlugin/Work.d.ts +0 -4
  18. package/libs/CruisePlugin/Work.js +213 -297
  19. package/libs/CruisePlugin/typing.d.ts +0 -7
  20. package/libs/CruisePlugin/utils/coordinatesAngle.d.ts +3 -19
  21. package/libs/CruisePlugin/utils/coordinatesAngle.js +5 -10
  22. package/libs/Sculpt/Objects/Base/Editor.d.ts +20 -1
  23. package/libs/Sculpt/Objects/Base/Editor.js +91 -35
  24. package/libs/Sculpt/Objects/Box/index.d.ts +5 -2
  25. package/libs/Sculpt/Objects/Box/index.js +61 -55
  26. package/libs/Sculpt/Objects/Prism/index.js +48 -47
  27. package/libs/Sculpt/Objects/Rectangle/index.d.ts +7 -4
  28. package/libs/Sculpt/Objects/Rectangle/index.js +119 -117
  29. package/libs/Sculpt/utils/Modules/Global.js +24 -24
  30. package/libs/base/BasePlugin.js +5 -5
  31. package/libs/floorplan/MapviewFloorplanPlugin/Controller.d.ts +21 -0
  32. package/libs/floorplan/MapviewFloorplanPlugin/Controller.js +132 -91
  33. package/libs/floorplan/ModelFloorplanPlugin/Controller.d.ts +16 -0
  34. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +132 -104
  35. package/libs/floorplan/ModelFloorplanPlugin/index.js +1 -1
  36. package/libs/floorplan/index.js +1 -1
  37. package/libs/floorplan/typings/index.d.ts +3 -0
  38. package/libs/shared-utils/Object3DHelper/Controller/MoveController.js +1 -1
  39. package/libs/shared-utils/Object3DHelper/Controller/RectangleScaleController.js +18 -18
  40. package/libs/shared-utils/Object3DHelper/Controller/RotateController.js +1 -1
  41. package/libs/shared-utils/Object3DHelper/typings/Hooks.d.ts +4 -3
  42. package/libs/shared-utils/logger.js +1 -1
  43. package/libs/shared-utils/three/PointSelector/index.d.ts +1 -1
  44. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,16 @@
1
1
  # CHANGELOG
2
+ ## 3.77.2
3
+
4
+ - fix(Sculpt): 修复 hitFilter 配置为可选,避免未配置时报错
5
+
6
+ ## 3.77.1
7
+
8
+ - feat(floorplan): 1. 支持自定义showState 2. 在模型有旋转时仍然支持显示&放大缩小平面图
9
+
10
+ ## 3.77.0
11
+
12
+ - feat(Sculpt): 1.添加Sculpt 落笔时候的点位回调,2添加Sculpt编辑状态的回调 包含旋转,拖拽,缩放参数
13
+
2
14
  ## 3.76.0
3
15
 
4
16
  - feat(Sculpt): 添加 hitFilter 配置,支持自定义拾取点过滤函数
@@ -20,8 +20,6 @@ export default class WalkController extends CruiseController<PluginData, Config>
20
20
  moveToFirstPanoEffect?: MoveEffect;
21
21
  moveToFirstPanoDuration?: number;
22
22
  modeChanging?: boolean;
23
- audio?: HTMLAudioElement;
24
- audioCache?: Map<string, HTMLAudioElement>;
25
23
  };
26
24
  constructor(five: Five, config?: Config);
27
25
  /**
@@ -119,6 +117,4 @@ export default class WalkController extends CruiseController<PluginData, Config>
119
117
  * @description Change five mode
120
118
  */
121
119
  private changeMode;
122
- private loadAudio;
123
- private playAudio;
124
120
  }
@@ -18,13 +18,6 @@ export type CruiseData = {
18
18
  * @description 旋转速度 rad/ms
19
19
  */
20
20
  rotateSpeed?: number;
21
- /**
22
- * @description move effect独有,音频播放相关参数
23
- */
24
- audio?: {
25
- url: string;
26
- duration: number;
27
- };
28
21
  } & FivePoseAndState;
29
22
  export interface CruiseKeyframe {
30
23
  id: string;
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @description: 获取coordinates间的夹角(两个方向向量之间的最小夹角)
3
- * @return {number} 夹角角度(0 到 π)
2
+ * @description: 获取coordinates间的夹角
3
+ * @return {number} 夹角角度
4
4
  */
5
5
  declare function coordinatesAngle(coordinates1: {
6
6
  longitude: number;
@@ -9,20 +9,4 @@ declare function coordinatesAngle(coordinates1: {
9
9
  longitude: number;
10
10
  latitude: number;
11
11
  }): number;
12
- /**
13
- * @description: 获取coordinates间的实际旋转角度(基于 longitude/latitude 差值)
14
- * @param coordinates1 起始坐标
15
- * @param coordinates2 目标坐标
16
- * @param signed 是否返回有符号角度(默认 false)
17
- * - true: 返回有符号角度(以主要旋转方向的符号为准)
18
- * - false: 返回无符号角度(绝对值)
19
- * @return {number} 旋转角度(弧度),可以超过 π
20
- */
21
- declare function coordinatesRotation(coordinates1: {
22
- longitude: number;
23
- latitude: number;
24
- }, coordinates2: {
25
- longitude: number;
26
- latitude: number;
27
- }, signed?: boolean): number;
28
- export { coordinatesAngle, coordinatesRotation };
12
+ export { coordinatesAngle };
@@ -2,9 +2,21 @@ import type * as THREE from 'three';
2
2
  import { IObject3D } from '../../../shared-utils/three/IObject3D';
3
3
  import type { AddObject3DHelperConfig } from '../../../Object3DHelperPlugin';
4
4
  import { Subscribe } from '../../../shared-utils/Subscribe';
5
+ import type { Direction, Direction4 } from '../../../shared-utils/Object3DHelper/typings/Direction';
6
+ export type ObjectUpdateType = 'move' | 'rotate' | 'scale';
7
+ export interface ObjectUpdateParams {
8
+ /** 操作类型:移动、旋转、缩放 */
9
+ type: ObjectUpdateType;
10
+ /** 开始时间戳 */
11
+ start_timestamp: number;
12
+ /** 结束时间戳 */
13
+ end_timestamp?: number;
14
+ /** 轴向 */
15
+ axis?: Direction | Direction4;
16
+ }
5
17
  export declare class BaseEditor<OriginObject extends THREE.Object3D = THREE.Object3D> extends IObject3D {
6
18
  hooks: Subscribe<{
7
- objectUpdate: () => void;
19
+ objectUpdate: (params?: ObjectUpdateParams) => void;
8
20
  }>;
9
21
  protected originObject: OriginObject;
10
22
  constructor(originObject: OriginObject);
@@ -20,9 +32,16 @@ export declare class BaseEditor<OriginObject extends THREE.Object3D = THREE.Obje
20
32
  export declare class BaseEditorWithObjectHelper<OriginObject extends THREE.Object3D = THREE.Object3D> extends BaseEditor<OriginObject> {
21
33
  private get helper();
22
34
  private objectHelperConfig;
35
+ private currentOperation;
23
36
  constructor(originObject: OriginObject, objectHelperConfig?: AddObject3DHelperConfig | (() => AddObject3DHelperConfig));
24
37
  enable(): void;
25
38
  disable(): void;
26
39
  initialHelperMatrix(): void;
40
+ private onMoveStart;
41
+ private onRotateStart;
42
+ private onScaleStart;
43
+ private onMoveEnd;
44
+ private onRotateEnd;
45
+ private onScaleEnd;
27
46
  private onObjectUpdate;
28
47
  }
@@ -9,6 +9,9 @@ export interface BoxImportData extends BaseImportData, BoxData {
9
9
  type: LiteralString<'Box'>;
10
10
  style?: Partial<BoxStyle>;
11
11
  }
12
+ export type BoxCreateConfig = Partial<BoxStyle & CreateLimitConfig & DrawMethodConfig> & {
13
+ onPointPlaced?: () => void;
14
+ };
12
15
  export declare class Box extends BaseObject<BoxImportData> {
13
16
  readonly type = "Box";
14
17
  boxMesh: BoxMesh;
@@ -30,7 +33,7 @@ export declare class Box extends BaseObject<BoxImportData> {
30
33
  setData(data: Partial<BoxImportData>): void;
31
34
  highlight(): void;
32
35
  unhighlight(): void;
33
- create(params?: Partial<BoxStyle & CreateLimitConfig & DrawMethodConfig>): Promise<void>;
36
+ create(params?: BoxCreateConfig): Promise<void>;
34
37
  /**
35
38
  * 获取盒子在世界坐标中的6个面的几何信息
36
39
  * 返回顺序:bottom、top、side0~side3(自底面第0点起顺时针)
@@ -42,4 +45,4 @@ export declare class Box extends BaseObject<BoxImportData> {
42
45
  normal: THREE.Vector3;
43
46
  }>;
44
47
  }
45
- export declare function createBox(boxMesh: BoxMesh, pointSelector: PointSelector, config?: Partial<CreateLimitConfig & DrawMethodConfig>): Promise<void>;
48
+ export declare function createBox(boxMesh: BoxMesh, pointSelector: PointSelector, config?: BoxCreateConfig): Promise<void>;
@@ -9,6 +9,9 @@ export interface RectangleImportData extends BaseImportData, RectangleData {
9
9
  type: LiteralString<'Rectangle'>;
10
10
  style?: Partial<RectangleWithEdgeMeshStyle>;
11
11
  }
12
+ export type RectangleCreateConfig = Partial<RectangleWithEdgeMeshStyle & CreateLimitConfig & DrawMethodConfig> & {
13
+ onPointPlaced?: () => void;
14
+ };
12
15
  export declare class Rectangle extends BaseObject<RectangleImportData> {
13
16
  readonly type = "Rectangle";
14
17
  rectangleMesh: RectangleWithEdgeMesh;
@@ -29,17 +32,17 @@ export declare class Rectangle extends BaseObject<RectangleImportData> {
29
32
  setData(data: Partial<RectangleImportData>): void;
30
33
  highlight(): void;
31
34
  unhighlight(): void;
32
- create(config?: Partial<RectangleWithEdgeMeshStyle & CreateLimitConfig & DrawMethodConfig>): Promise<void>;
35
+ create(config?: RectangleCreateConfig): Promise<void>;
33
36
  }
34
37
  /**
35
38
  * @description 创建矩形
36
39
  */
37
- export declare function createRectangle(rectangleMesh: RectangleMesh, pointSelector: PointSelector, config?: Partial<CreateLimitConfig & DrawMethodConfig>): void | Promise<void>;
40
+ export declare function createRectangle(rectangleMesh: RectangleMesh, pointSelector: PointSelector, config?: RectangleCreateConfig): void | Promise<void>;
38
41
  /**
39
42
  * @description 对角线创建矩形(两步)
40
43
  */
41
- export declare function createRectangleByDiagonal(rectangleMesh: RectangleMesh, pointSelector: PointSelector, config?: Partial<CreateLimitConfig>): void | Promise<void>;
44
+ export declare function createRectangleByDiagonal(rectangleMesh: RectangleMesh, pointSelector: PointSelector, config?: RectangleCreateConfig): void | Promise<void>;
42
45
  /**
43
46
  * @description 正常创建矩形(三步)
44
47
  */
45
- export declare function createRectangleByVertex(rectangleMesh: RectangleMesh, pointSelector: PointSelector, config?: Partial<CreateLimitConfig>): void | Promise<void>;
48
+ export declare function createRectangleByVertex(rectangleMesh: RectangleMesh, pointSelector: PointSelector, config?: RectangleCreateConfig): void | Promise<void>;
@@ -67,10 +67,26 @@ export declare class Controller extends BasePlugin.Controller<State, EventMap, P
67
67
  changeConfigs(config: Partial<Config>, userAction?: boolean): void;
68
68
  /** 更新户型图大小 */
69
69
  updateSize: () => boolean;
70
+ /** 根据旋转角度计算 pxmm
71
+ * @description 当 longitude 大于 45° 或小于 -45°(相对于基准方向)时,使用 Z 轴计算
72
+ */
73
+ private getPxmmWithRotation;
74
+ /** 使用 Z 轴计算 pxmm
75
+ * @description 当相机旋转导致 X 轴接近垂直于屏幕时,改用 Z 轴计算
76
+ */
77
+ private getPxmmZAxis;
70
78
  /** 更新户型图位置 */
71
79
  updatePosition(): void;
72
80
  highlight: (highlightData: HighlightData) => void;
73
81
  unhighlight: () => void;
82
+ /** 更新展示状态
83
+ * @description 可以更新 longitude、latitude、offset 等参数
84
+ * @param showState 需要更新的状态,会与现有状态合并
85
+ * @example
86
+ * // 更新 longitude
87
+ * plugin.updateShowState({ longitude: Math.PI / 2 })
88
+ */
89
+ updateShowState: (showState: Partial<ShowState>) => void;
74
90
  protected formatData(serverData: PluginServerData): Promise<PluginData>;
75
91
  private _disable;
76
92
  private _enable;
@@ -95,6 +111,11 @@ export declare class Controller extends BasePlugin.Controller<State, EventMap, P
95
111
  private onFivePanoArrived;
96
112
  /** cameraUpdate 时判断户型图是否应该自动隐藏 */
97
113
  private onFiveCameraUpdate;
114
+ /** 获取相对于 showState 的 pose 偏差
115
+ * @description 将当前相机状态的 longitude 减去 showState.longitude,归一化后返回
116
+ * 这样自动隐藏逻辑会检查相对偏差,而不是绝对值
117
+ */
118
+ private getRelativePose;
98
119
  /** 户型图展示中,转动三维模型,结束时应该自动修复模型状态 */
99
120
  private onFiveWantsPanGesture;
100
121
  /** 阻止点击分间走点 */
@@ -65,8 +65,24 @@ export declare class Controller extends BasePlugin.Controller<State, EventMap, P
65
65
  changeConfigs(config: Partial<Config>, userAction?: boolean): void;
66
66
  /** 更新户型图大小 */
67
67
  updateSize: () => boolean;
68
+ /** 根据旋转角度计算 pxmm
69
+ * @description 当 longitude 大于 45° 或小于 -45°(相对于基准方向)时,使用 Z 轴计算
70
+ */
71
+ private getPxmmWithRotation;
72
+ /** 使用 Z 轴计算 pxmm
73
+ * @description 当相机旋转导致 X 轴接近垂直于屏幕时,改用 Z 轴计算
74
+ */
75
+ private getPxmmZAxis;
68
76
  highlight: (highlightData: HighlightData) => void;
69
77
  unhighlight: () => void;
78
+ /** 更新展示状态
79
+ * @description 可以更新 longitude、latitude、fov 等参数
80
+ * @param showState 需要更新的状态,会与现有状态合并
81
+ * @example
82
+ * // 更新 longitude
83
+ * plugin.updateShowState({ longitude: Math.PI / 2 })
84
+ */
85
+ updateShowState: (showState: Partial<ShowState>) => void;
70
86
  protected formatData(serverData: PluginServerData): Promise<PluginData>;
71
87
  private _disable;
72
88
  private _enable;
@@ -3,6 +3,7 @@ import type { FLOOR_PLAN_ATTACHED_TO } from '../constant';
3
3
  import type { FloorplanData } from '../typings/floorplanData';
4
4
  import type * as BasePlugin from '../../base/BasePluginWithData';
5
5
  import type { FloorplanServerData } from '../typings/floorplanServerData';
6
+ import type { ShowState } from '../utils/correctFiveState';
6
7
  export interface State extends BasePlugin.State {
7
8
  visible: boolean;
8
9
  config: Config;
@@ -87,6 +88,8 @@ export interface Parameters extends Partial<Config> {
87
88
  scale?: number;
88
89
  /** 静态资源前缀,用于替换插件中使用到的固化资源 */
89
90
  staticPrefix?: string;
91
+ /** 展示状态配置,可以自定义 longitude、latitude、fov 等参数 */
92
+ showState?: Partial<ShowState>;
90
93
  }
91
94
  export interface PluginServerData {
92
95
  version: number;