@realsee/dnalogel 3.77.4 → 3.77.6

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 (74) hide show
  1. package/CHANGELOG.md +20 -11
  2. package/dist/DigitalPerformancePlugin/controller/index.d.ts +224 -0
  3. package/dist/DigitalPerformancePlugin/core/DigitalHuman.d.ts +55 -0
  4. package/dist/DigitalPerformancePlugin/core/DigitalPlayground.d.ts +40 -0
  5. package/dist/DigitalPerformancePlugin/core/DigitalStateMachine.d.ts +150 -0
  6. package/dist/DigitalPerformancePlugin/core/Trace.d.ts +9 -0
  7. package/dist/DigitalPerformancePlugin/index.d.ts +11 -0
  8. package/dist/DigitalPerformancePlugin/mock.d.ts +76 -0
  9. package/dist/DigitalPerformancePlugin/typings/index.d.ts +79 -0
  10. package/dist/PanoTagPlugin/controller/Tag/BaseTag.d.ts +5 -1
  11. package/dist/PanoTagPlugin/controller/Tag/BoxTag.d.ts +119 -0
  12. package/dist/PanoTagPlugin/controller/Tag/MaskTag.d.ts +257 -0
  13. package/dist/PanoTagPlugin/controller/Tag/MaskTag.shaders.d.ts +10 -0
  14. package/dist/PanoTagPlugin/controller/Tag/PolygonTag.d.ts +112 -0
  15. package/dist/PanoTagPlugin/controller/TagRender.d.ts +1 -1
  16. package/dist/PanoTagPlugin/controller/index.d.ts +55 -2
  17. package/dist/PanoTagPlugin/typings/controller.d.ts +10 -0
  18. package/dist/PanoTagPlugin/typings/tag/Tag.d.ts +8 -3
  19. package/dist/PanoTagPlugin/typings/tag/Utils.d.ts +50 -1
  20. package/dist/PanoTagPlugin/utils/sculptDataToBoxPosition.d.ts +6 -0
  21. package/dist/PanoTagPlugin/utils/tag/tagCheck.d.ts +6 -0
  22. package/dist/PanoTagPlugin/utils/tagPosition.d.ts +12 -3
  23. package/dist/index.cjs.js +188 -92
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.js +17508 -14249
  26. package/dist/index.umd.js +184 -88
  27. package/libs/CruisePlugin/Move.js +7 -2
  28. package/libs/CruisePlugin/Work.js +7 -2
  29. package/libs/CruisePlugin/index.js +11 -6
  30. package/libs/DigitalPerformancePlugin/controller/index.d.ts +2 -2
  31. package/libs/DigitalPerformancePlugin/controller/index.js +164 -173
  32. package/libs/DigitalPerformancePlugin/core/DigitalHuman.d.ts +16 -6
  33. package/libs/DigitalPerformancePlugin/core/DigitalHuman.js +128 -102
  34. package/libs/DigitalPerformancePlugin/core/DigitalPlayground.d.ts +11 -5
  35. package/libs/DigitalPerformancePlugin/core/DigitalPlayground.js +84 -74
  36. package/libs/DigitalPerformancePlugin/core/DigitalStateMachine.d.ts +7 -0
  37. package/libs/DigitalPerformancePlugin/mock.d.ts +6 -0
  38. package/libs/DigitalPerformancePlugin/mock.js +272 -274
  39. package/libs/GuideLinePlugin/Controller.js +9 -4
  40. package/libs/GuideLinePlugin/GuideLineItem.js +7 -2
  41. package/libs/GuideLinePlugin/GuideLineModeItem.js +7 -2
  42. package/libs/GuideLinePlugin/index.js +11 -6
  43. package/libs/PanoTagPlugin/Components/TagItem.js +122 -122
  44. package/libs/PanoTagPlugin/controller/Tag/BaseTag.d.ts +5 -1
  45. package/libs/PanoTagPlugin/controller/Tag/BaseTag.js +320 -289
  46. package/libs/PanoTagPlugin/controller/Tag/BoxTag.d.ts +119 -0
  47. package/libs/PanoTagPlugin/controller/Tag/BoxTag.js +515 -0
  48. package/libs/PanoTagPlugin/controller/Tag/MaskTag.d.ts +257 -0
  49. package/libs/PanoTagPlugin/controller/Tag/MaskTag.js +815 -0
  50. package/libs/PanoTagPlugin/controller/Tag/MaskTag.shaders.d.ts +10 -0
  51. package/libs/PanoTagPlugin/controller/Tag/MaskTag.shaders.js +94 -0
  52. package/libs/PanoTagPlugin/controller/Tag/PolygonTag.d.ts +112 -0
  53. package/libs/PanoTagPlugin/controller/Tag/PolygonTag.js +478 -0
  54. package/libs/PanoTagPlugin/controller/TagRender.d.ts +1 -1
  55. package/libs/PanoTagPlugin/controller/TagUtil.js +19 -17
  56. package/libs/PanoTagPlugin/controller/index.d.ts +55 -2
  57. package/libs/PanoTagPlugin/controller/index.js +261 -148
  58. package/libs/PanoTagPlugin/index.js +16 -11
  59. package/libs/PanoTagPlugin/typings/controller.d.ts +10 -0
  60. package/libs/PanoTagPlugin/typings/tag/Tag.d.ts +8 -3
  61. package/libs/PanoTagPlugin/typings/tag/Utils.d.ts +50 -1
  62. package/libs/PanoTagPlugin/utils/addDebugPoints.js +27 -13
  63. package/libs/PanoTagPlugin/utils/index.js +29 -26
  64. package/libs/PanoTagPlugin/utils/sculptDataToBoxPosition.d.ts +6 -0
  65. package/libs/PanoTagPlugin/utils/sculptDataToBoxPosition.js +18 -0
  66. package/libs/PanoTagPlugin/utils/tag/tagCheck.d.ts +6 -0
  67. package/libs/PanoTagPlugin/utils/tag/tagCheck.js +26 -14
  68. package/libs/PanoTagPlugin/utils/tagPosition.d.ts +12 -3
  69. package/libs/PanoTagPlugin/utils/tagPosition.js +49 -16
  70. package/libs/base/BasePlugin.js +1 -1
  71. package/libs/index.d.ts +1 -0
  72. package/libs/index.js +166 -150
  73. package/libs/shared-utils/logger.js +1 -1
  74. package/package.json +2 -2
@@ -33,6 +33,15 @@ export type TagClickParams = {
33
33
  } | {
34
34
  target: 'TagPopoverContent';
35
35
  tag: TagInstance;
36
+ } | {
37
+ target: 'TagBoxModel';
38
+ tag: TagInstance;
39
+ } | {
40
+ target: 'TagPolygonModel';
41
+ tag: TagInstance;
42
+ } | {
43
+ target: 'TagMaskModel';
44
+ tag: TagInstance;
36
45
  });
37
46
  export interface PluginEventMap extends BasePlugin.EventMap<State> {
38
47
  loaded: () => void;
@@ -79,6 +88,7 @@ export type TagEvents<C extends TagContentType = TagContentType> = {
79
88
  }) => void;
80
89
  showPopover: () => void;
81
90
  hidePopover: () => void;
91
+ positionChanged: (position: TagInstance<C>['position']) => void;
82
92
  };
83
93
  export interface TagCacheInterface {
84
94
  visible?: boolean;
@@ -1,7 +1,7 @@
1
1
  import type { State as FiveState } from '@realsee/five';
2
2
  import type { TagConfig } from './TagConfig';
3
3
  import type { ContentTypeMap, TagContentType } from './TagData';
4
- import type { Position, TagId, StickType, TagStyle, ElementRenderer, TagConfigByKey, ContentTypeConfigKey } from './Utils';
4
+ import type { Position, TagId, StickType, TagStyle, ElementRenderer, TagConfigByKey, ContentTypeConfigKey, BoxPosition, PolygonPosition, MaskPosition } from './Utils';
5
5
  import type { DeprecatedTagProperty } from '../../Archive/deprecated';
6
6
  import type { LiteralUnion } from 'type-fest';
7
7
  export interface Tags {
@@ -33,7 +33,7 @@ export type Tag<C extends TagContentType = TagContentType, S extends StickType =
33
33
  */
34
34
  contentType: LiteralUnion<C, string>;
35
35
  /** 点 */
36
- position: S extends 'Plane' ? [Position, Position, Position, Position] : S extends '2DPoint' | '3DPoint' | 'Model' ? Position : Position | [Position, Position, Position, Position];
36
+ position: S extends 'Plane' ? [Position, Position, Position, Position] : S extends '2DPoint' | '3DPoint' | 'Model' ? Position : S extends '3DBox' ? BoxPosition : S extends 'Polygon' ? PolygonPosition : S extends 'Mask' ? MaskPosition : Position | [Position, Position, Position, Position];
37
37
  /** 法向量 */
38
38
  normal?: Position;
39
39
  /** 自定义标签内容 */
@@ -52,8 +52,13 @@ export type Tag<C extends TagContentType = TagContentType, S extends StickType =
52
52
  hoverEnabled?: boolean;
53
53
  } & (S extends '3DPoint' ? {
54
54
  normal: Position;
55
- } : unknown) & (S extends 'Model' ? {
55
+ } : unknown) & // 三维标签需要法向量
56
+ (S extends 'Model' ? {
56
57
  matrix: number[];
58
+ } : unknown) & // 模型标签需要模型
59
+ (S extends 'Mask' ? {
60
+ mask: string | HTMLCanvasElement;
61
+ color: [number, number, number] | number | string;
57
62
  } : unknown) & {
58
63
  [key: string]: any;
59
64
  };
@@ -15,7 +15,34 @@ export interface MinMax {
15
15
  min?: number;
16
16
  max?: number;
17
17
  }
18
- export type StickType = '2DPoint' | '3DPoint' | 'Plane' | 'Model';
18
+ export type StickType = '2DPoint' | '3DPoint' | 'Plane' | 'Model' | '3DBox' | 'Polygon' | 'Mask';
19
+ /**
20
+ * 3DBox 位置定义
21
+ */
22
+ export interface BoxPosition {
23
+ /** 起始点坐标 [x, y, z] */
24
+ start: ArrayPosition;
25
+ /** 结束点坐标 [x, y, z] */
26
+ end: ArrayPosition;
27
+ /** 旋转角度 [x, y, z](欧拉角) */
28
+ rotation: ArrayPosition;
29
+ }
30
+ /** 3DBox 标签 */
31
+ export type BoxTag<C extends TagContentType = TagContentType> = TagInstance<C, '3DBox'>;
32
+ /**
33
+ * Polygon 位置定义
34
+ * 多边形由多个点组成,至少需要 3 个点
35
+ */
36
+ export type PolygonPosition = ArrayPosition[];
37
+ /** Polygon 标签 */
38
+ export type PolygonTag<C extends TagContentType = TagContentType> = TagInstance<C, 'Polygon'>;
39
+ /**
40
+ * Mask 位置定义
41
+ * Mask 标签的 position 由 mask 图和 color 计算得出,类型为普通的 Position
42
+ */
43
+ export type MaskPosition = Position;
44
+ /** Mask 标签 */
45
+ export type MaskTag<C extends TagContentType = TagContentType> = TagInstance<C, 'Mask'>;
19
46
  /**
20
47
  * @description 标签 icon 动画配置
21
48
  */
@@ -67,6 +94,28 @@ export interface TagStyle {
67
94
  */
68
95
  size?: 'S' | 'M' | 'L' | 'XL' | number;
69
96
  } & TagIconUrl;
97
+ /** 3D Box 和Polygon样式 */
98
+ boxOrpolygon?: {
99
+ /** 填充颜色(十六进制) */
100
+ color?: number;
101
+ /** 填充透明度 0-1 */
102
+ opacity?: number;
103
+ /** 线条颜色(十六进制) */
104
+ lineColor?: number;
105
+ /** 线条宽度 */
106
+ lineWidth?: number;
107
+ };
108
+ /** Mask 标签样式 */
109
+ mask?: {
110
+ /** 高亮颜色(支持 RGB 数组、十六进制数字、#FFFFFF 格式字符串) */
111
+ color?: [number, number, number] | number | string;
112
+ /** 透明度 0-1,用于填充区域;描边区域始终完全不透明 */
113
+ opacity?: number;
114
+ /** 颜色匹配容差(归一化值 0-1,默认 0.001) */
115
+ tolerance?: number;
116
+ /** @deprecated 使用 color 代替 */
117
+ highlightColor?: [number, number, number] | number;
118
+ };
70
119
  }
71
120
  export type TagGLTFObject = GLTFObject & {
72
121
  customID: number | string;
@@ -0,0 +1,6 @@
1
+ import * as THREE from 'three';
2
+ import type { BoxPosition } from '../typings';
3
+ /**
4
+ * 将 Sculpt 数据转换为 BoxPosition
5
+ */
6
+ export declare function sculptDataToBoxPosition(bottomPoints: THREE.Vector3[], heightPoint: THREE.Vector3): BoxPosition;
@@ -1,9 +1,15 @@
1
1
  import type { TagContentType, TagInstance } from '../../typings';
2
2
  import type { ModelTagInterface } from '../../controller/Tag/ModelTag';
3
3
  import type { PlaneTagInterface } from '../../controller/Tag/PlaneTag';
4
+ import type { PolygonTagInterface } from '../../controller/Tag/PolygonTag';
5
+ import type { BoxTagInterface } from '../../controller/Tag/BoxTag';
6
+ import type { MaskTagInterface } from '../../controller/Tag/MaskTag';
4
7
  export declare function isPlaneTag<T extends TagContentType>(tag: TagInstance<T>): tag is PlaneTagInterface<T>;
5
8
  export declare function isPoint3DTag<T extends TagContentType>(tag: TagInstance<T>): tag is TagInstance<T, '3DPoint'>;
6
9
  export declare function is3DTag<T extends TagContentType>(tag: TagInstance): tag is TagInstance<T, '3DPoint'> | TagInstance<T, 'Plane'>;
7
10
  export declare function isMediaModelTag(tag: TagInstance): tag is ModelTagInterface<'MediaModel'>;
8
11
  export declare function isModelTag(tag: TagInstance): tag is ModelTagInterface<'Model'>;
9
12
  export declare function isMediaPlaneTag(tag: TagInstance): tag is PlaneTagInterface<'MediaModel'>;
13
+ export declare function isPolygonTag(tag: TagInstance): tag is PolygonTagInterface;
14
+ export declare function is3DBoxTag(tag: TagInstance): tag is BoxTagInterface;
15
+ export declare function isMaskTag(tag: TagInstance): tag is MaskTagInterface;
@@ -1,4 +1,13 @@
1
- import { Vector3 } from 'three';
2
- import type { TagInstance } from '../typings';
3
- export declare function getTagPosition(tag: TagInstance): Vector3 | [Vector3, Vector3, Vector3, Vector3];
1
+ import type { Vector3 } from 'three';
2
+ import { Matrix4 } from 'three';
3
+ import type { TagInstance, BoxPosition } from '../typings';
4
+ /**
5
+ * 计算 BoxPosition 的8个角点
6
+ */
7
+ export declare function getBoxCorners(boxPosition: BoxPosition, transform: Matrix4): Vector3[];
8
+ /**
9
+ * 应用 matrix 变换到点数组
10
+ */
11
+ export declare function applyMatrixToPoints(points: Vector3[], matrix?: number[]): Vector3[];
12
+ export declare function getTagPosition(tag: TagInstance): Vector3 | [Vector3, Vector3, Vector3, Vector3] | Vector3[];
4
13
  export declare function getTagCenterPosition(tag: TagInstance): Vector3;