gl-draw 0.17.0-beta.40 → 0.17.0-beta.42

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.
@@ -1,5 +1,5 @@
1
1
  import type { Camera } from 'three';
2
- import type Node from './index';
2
+ import type Node from "../../objects/node";
3
3
  interface CollisionManagerOptions {
4
4
  /** 标签之间的最小间距(像素) */
5
5
  padding?: number;
@@ -32,7 +32,6 @@ export declare class CollisionManager {
32
32
  /**
33
33
  * 添加标签到碰撞检测系统
34
34
  * @param node Node 实例
35
- * @param options 配置项,priority 越大越优先显示,不传则使用 node.options.priority
36
35
  */
37
36
  add(node: Node, options?: {
38
37
  priority?: number;
@@ -71,7 +70,7 @@ export declare class CollisionManager {
71
70
  */
72
71
  private rectsIntersect;
73
72
  /**
74
- * 设置节点可见性
73
+ * 设置节点可见性(操作子元素)
75
74
  */
76
75
  private setNodeVisibility;
77
76
  /**
@@ -82,6 +81,10 @@ export declare class CollisionManager {
82
81
  * 获取所有标签数量
83
82
  */
84
83
  getTotalCount(): number;
84
+ /**
85
+ * 调试执行碰撞检测(带详细日志)
86
+ */
87
+ debugRun(): void;
85
88
  /**
86
89
  * 清空所有标签
87
90
  */
@@ -1,19 +1,31 @@
1
1
  import { CSS2DRenderer } from 'three@latest/examples/jsm/renderers/CSS2DRenderer';
2
2
  import { CSS3DRenderer } from 'three@latest/examples/jsm/renderers/CSS3DRenderer';
3
3
  import type { PerspectiveCamera, Scene } from 'three';
4
+ import { CollisionManager } from './CollisionManager';
4
5
  export interface CSSRendererParams {
5
- zIndex: string;
6
+ zIndex?: string;
6
7
  container?: HTMLElement;
8
+ /** 碰撞检测配置 */
9
+ collision?: {
10
+ /** 是否启用碰撞检测,默认 true */
11
+ enabled?: boolean;
12
+ /** 标签之间的最小间距(像素),默认 4 */
13
+ padding?: number;
14
+ /** 更新节流时间(毫秒),默认 16 */
15
+ throttleTime?: number;
16
+ /** 视口边距,默认 50 */
17
+ viewportMargin?: number;
18
+ };
7
19
  }
8
- export declare const defaultCSSRendererParams: {
9
- zIndex: string;
10
- };
20
+ export declare const defaultCSSRendererParams: CSSRendererParams;
11
21
  export default class {
12
22
  css2Drenderer?: CSS2DRenderer;
13
23
  css3Drenderer?: CSS3DRenderer;
14
24
  container: HTMLElement;
15
- constructor(container: HTMLElement);
16
- addRenderer(type: 'css2d' | 'css3d', cssRendererParams: CSSRendererParams): void;
25
+ /** 标签碰撞检测管理器 */
26
+ collisionManager: CollisionManager;
27
+ constructor(container: HTMLElement, options?: CSSRendererParams);
28
+ addRenderer(type: 'css2d' | 'css3d', options?: CSSRendererParams): void;
17
29
  setSize(width: number, height: number): void;
18
30
  render(scene: Scene, camera: PerspectiveCamera): void;
19
31
  dispose(): void;
@@ -126,11 +126,25 @@ export default class Pencil {
126
126
  };
127
127
  css2DRenderer: boolean;
128
128
  css2DRendererParams: {
129
- zIndex: string;
129
+ zIndex?: string;
130
+ container?: HTMLElement;
131
+ collision?: {
132
+ enabled?: boolean;
133
+ padding?: number;
134
+ throttleTime?: number;
135
+ viewportMargin?: number;
136
+ };
130
137
  };
131
138
  css3DRenderer: boolean;
132
139
  css3DRendererParams: {
133
- zIndex: string;
140
+ zIndex?: string;
141
+ container?: HTMLElement;
142
+ collision?: {
143
+ enabled?: boolean;
144
+ padding?: number;
145
+ throttleTime?: number;
146
+ viewportMargin?: number;
147
+ };
134
148
  };
135
149
  };
136
150
  private TweenRaf;