build-dxf 0.0.9 → 0.0.11

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 (50) hide show
  1. package/README.md +21 -3
  2. package/package.json +16 -21
  3. package/src/App.vue.d.ts +2 -0
  4. package/src/build.d.ts +3 -0
  5. package/src/build.js +2023 -0
  6. package/src/components/Card.vue.d.ts +9 -0
  7. package/src/index.css +1 -0
  8. package/src/index.js +5 -1758
  9. package/src/index2.js +7367 -0
  10. package/src/main.d.ts +0 -0
  11. package/src/pages/Dxf.vue.d.ts +2 -0
  12. package/src/router/index.d.ts +2 -0
  13. package/src/utils/ComponentManager/Component.d.ts +17 -0
  14. package/src/utils/ComponentManager/ComponentManager.d.ts +47 -0
  15. package/src/utils/ComponentManager/EventDispatcher.d.ts +4 -0
  16. package/src/utils/ComponentManager/index.d.ts +4 -0
  17. package/src/utils/ComponentManager/uuid.d.ts +1 -0
  18. package/src/utils/DxfSystem/components/Dxf.d.ts +150 -0
  19. package/src/utils/DxfSystem/components/LineAnalysis.d.ts +85 -0
  20. package/src/utils/DxfSystem/components/Variable.d.ts +33 -0
  21. package/src/utils/DxfSystem/index.d.ts +16 -0
  22. package/src/utils/DxfSystem/plugin/ModelDataPlugin/components/DetailsPoint.d.ts +39 -0
  23. package/src/utils/DxfSystem/plugin/ModelDataPlugin/components/DxfLineModel.d.ts +10 -0
  24. package/src/utils/DxfSystem/plugin/ModelDataPlugin/components/WhiteModel.d.ts +21 -0
  25. package/src/utils/DxfSystem/plugin/ModelDataPlugin/components/index.d.ts +3 -0
  26. package/src/utils/DxfSystem/plugin/ModelDataPlugin/index.d.ts +4 -0
  27. package/src/utils/DxfSystem/plugin/RenderPlugin/components/DetailsPointRender.d.ts +48 -0
  28. package/src/utils/DxfSystem/plugin/RenderPlugin/components/DomContainer.d.ts +8 -0
  29. package/src/utils/DxfSystem/plugin/RenderPlugin/components/DomEventRegister.d.ts +23 -0
  30. package/src/utils/DxfSystem/plugin/RenderPlugin/components/ModelDataRender.d.ts +13 -0
  31. package/src/utils/DxfSystem/plugin/RenderPlugin/components/OriginalLineRender.d.ts +16 -0
  32. package/src/utils/DxfSystem/plugin/RenderPlugin/components/Renderer.d.ts +82 -0
  33. package/src/utils/DxfSystem/plugin/RenderPlugin/components/index.d.ts +6 -0
  34. package/src/utils/DxfSystem/plugin/RenderPlugin/index.d.ts +5 -0
  35. package/src/utils/DxfSystem/plugin/RenderPlugin/pages/Dxf.vue.d.ts +21 -0
  36. package/src/utils/DxfSystem/plugin/index.d.ts +1 -0
  37. package/src/utils/Lines.d.ts +11 -0
  38. package/src/utils/PointVirtualGrid/index.d.ts +70 -0
  39. package/src/utils/Quadtree/Box2.d.ts +89 -0
  40. package/src/utils/Quadtree/LineSegment.d.ts +29 -0
  41. package/src/utils/Quadtree/Point.d.ts +113 -0
  42. package/src/utils/Quadtree/Quadtree.d.ts +60 -0
  43. package/src/utils/Quadtree/Rectangle.d.ts +40 -0
  44. package/src/utils/drawLinePathToPng.d.ts +7 -0
  45. package/src/utils/selectLocalFile.d.ts +7 -0
  46. package/src/index.d.ts +0 -525
  47. package/src/plugins/ModelDataPlugin/index.d.ts +0 -596
  48. package/src/plugins/ModelDataPlugin/index.js +0 -498
  49. package/src/plugins/RenderPlugin/index.d.ts +0 -762
  50. package/src/plugins/RenderPlugin/index.js +0 -19348
package/src/main.d.ts ADDED
File without changes
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { App } from 'vue';
2
+ export declare function useRouter(app: App): void;
@@ -0,0 +1,17 @@
1
+ import { ComponentManager } from './ComponentManager';
2
+ import { EventDispatcher } from './EventDispatcher';
3
+ export declare class Component<TEventMap extends {} = {}> extends EventDispatcher<{
4
+ addFromParent: {
5
+ parent: ComponentManager;
6
+ };
7
+ removeFromParent: {
8
+ parent: ComponentManager;
9
+ };
10
+ update: {};
11
+ } & TEventMap> {
12
+ parent?: ComponentManager;
13
+ constructor(...arg: any[]);
14
+ onAddFromParent(parent: ComponentManager): void;
15
+ onRemoveFromParent(parent: ComponentManager): void;
16
+ destroy(): void;
17
+ }
@@ -0,0 +1,47 @@
1
+ import { Component } from './Component';
2
+ import { EventDispatcher } from './EventDispatcher';
3
+ interface EventTypeMap {
4
+ addComponent: {
5
+ component: Component;
6
+ };
7
+ removeComponent: {
8
+ component: Component;
9
+ };
10
+ }
11
+ export declare class ComponentManager<TEventMap extends {} = {}> extends EventDispatcher<TEventMap & EventTypeMap> {
12
+ static readonly EventType: {
13
+ ADD_COMPONENT: string;
14
+ };
15
+ components: Component[];
16
+ /**
17
+ * 添加组件
18
+ * @param component
19
+ */
20
+ addComponent(component: Component): this;
21
+ /**
22
+ * 移除组件
23
+ * @param component
24
+ */
25
+ removeComponent(component: Component): void;
26
+ /**
27
+ * 查找符合条件的第一个组件
28
+ * @param callBack
29
+ */
30
+ findComponent(predicate: (component: Component, index: number) => boolean): Component<{}> | undefined;
31
+ /**
32
+ * 查找所有符合条件的组件
33
+ * @param callBack
34
+ */
35
+ findComponents(predicate: (component: Component, index: number) => boolean): Component<{}> | undefined;
36
+ /**
37
+ *
38
+ * @param type
39
+ */
40
+ findComponentByType<T extends typeof Component>(type: T): InstanceType<T> | null;
41
+ /**
42
+ *
43
+ * @param type
44
+ */
45
+ findComponentByName(name: string): Component<{}> | null;
46
+ }
47
+ export {};
@@ -0,0 +1,4 @@
1
+ import { EventDispatcher as ED } from 'three';
2
+ export declare class EventDispatcher<TEventMap extends {} = {}> extends ED<TEventMap> {
3
+ uuid: string;
4
+ }
@@ -0,0 +1,4 @@
1
+ export * from './Component';
2
+ export * from './ComponentManager';
3
+ export * from './EventDispatcher';
4
+ export * from './uuid';
@@ -0,0 +1 @@
1
+ export declare function uuid(): string;
@@ -0,0 +1,150 @@
1
+ import { Component } from '../../ComponentManager';
2
+ import { Point } from '../../Quadtree/Point';
3
+ import { Box2 } from '../../Quadtree/Box2';
4
+ import { LineSegment } from '../../Quadtree/LineSegment';
5
+ type Unit = "Unitless" | "Inches" | "Feet" | "Miles" | "Millimeters" | "Centimeters" | "Meters" | "Kilometers" | "Microinches" | "Mils" | "Yards" | "Angstroms" | "Nanometers" | "Microns" | "Decimeters" | "Decameters" | "Hectometers" | "Gigameters" | "Astronomical units" | "Light years" | "Parsecs";
6
+ export interface OriginalDataItem {
7
+ start: {
8
+ x: number;
9
+ y: number;
10
+ z: number;
11
+ };
12
+ end: {
13
+ x: number;
14
+ y: number;
15
+ z: number;
16
+ };
17
+ insetionArr: {
18
+ index: number;
19
+ p: {
20
+ x: number;
21
+ y: number;
22
+ z: number;
23
+ };
24
+ }[];
25
+ isDoor?: boolean;
26
+ }
27
+ /**
28
+ * [开始点, 结束点, 相交点, 是否是门, 索引]
29
+ */
30
+ export type DataItem = [Point, Point, number[], boolean, number];
31
+ /**
32
+ *
33
+ */
34
+ export interface PointGroup {
35
+ points: Point[];
36
+ indices: number[];
37
+ }
38
+ /**
39
+ * 将点云结构转换为DXF格式
40
+ */
41
+ export declare class Dxf extends Component<{
42
+ setDta: {
43
+ originalData: OriginalDataItem[];
44
+ data: DataItem[];
45
+ };
46
+ lineOffset: {
47
+ wallsGroup: Point[][];
48
+ };
49
+ createGroup: {
50
+ groups: Point[][][];
51
+ };
52
+ }> {
53
+ static name: string;
54
+ width: number;
55
+ scale: number;
56
+ originalData: OriginalDataItem[];
57
+ data: DataItem[];
58
+ originalBox: Box2;
59
+ box: Box2;
60
+ pointsGroups: Point[][][];
61
+ wallsGroup: Point[][];
62
+ doors: DataItem[];
63
+ lineSegments: LineSegment<{
64
+ isDoor: boolean;
65
+ }>[];
66
+ originalZAverage: number;
67
+ static EndType: {
68
+ etOpenSquare: number;
69
+ etOpenRound: number;
70
+ etOpenButt: number;
71
+ };
72
+ static JoinType: {
73
+ jtSquare: number;
74
+ jtRound: number;
75
+ jtMiter: number;
76
+ };
77
+ /** 原始数据组
78
+ */
79
+ get lines(): LineSegment<{
80
+ isDoor: boolean;
81
+ }>[];
82
+ /**初始化
83
+ * @param data 点云数据
84
+ * @param width 墙体宽度
85
+ * @param scale 缩放比例
86
+ */
87
+ constructor(width?: number, scale?: number);
88
+ /**
89
+ * 设置
90
+ * @param data
91
+ * @param width
92
+ * @param scale
93
+ */
94
+ set(data: OriginalDataItem[] | string, width?: number, scale?: number): Promise<any>;
95
+ /** 创建分组
96
+ * @description 根据相交数组insetionArr, 把相交的线段,划分到一组内,方便后续路径查找合并使用
97
+ * @returns
98
+ */
99
+ private createGroups;
100
+ /** 计算当前墙体数据的边界框
101
+ * @description 根据分组数据pointsGroups,计算包围盒, pointsGroups数据为缩放后数据。
102
+ * @description 可通过box属性查看计算结果。
103
+ * @returns
104
+ */
105
+ computedSize(): Box2;
106
+ /** 线路拓扑
107
+ * @description 处理线路拓扑,使线路有序链接,形成长路径
108
+ * @param lines
109
+ */
110
+ private lineTopology;
111
+ /** etOpenRound 去除毛刺
112
+ * @description 检查连续的短线段数量,去除合并后产生的毛刺
113
+ */
114
+ private squareRemoveBurr;
115
+ /** 线偏移
116
+ * @description 使用 ClipperLib 对每个点组进行线偏移处理,生成具有指定宽度的墙体路径
117
+ */
118
+ lineOffset(endType?: number, joinType?: number, scale?: number): Point[][];
119
+ /**
120
+ * 将点云结构转换为Float32Array
121
+ */
122
+ to3DArray(scale: number): Float32Array<ArrayBuffer>;
123
+ /**
124
+ * 将点云结构转换为string
125
+ */
126
+ toDxfString(unit?: Unit): string;
127
+ /**
128
+ * 将点云结构转换为DXF格式
129
+ * @returns
130
+ */
131
+ toDxfBlob(unit?: Unit): Blob;
132
+ /**
133
+ * 下载
134
+ * @param filename
135
+ */
136
+ download(filename: string, unit?: Unit): Promise<void>;
137
+ /**
138
+ * 计算原始数据的边界框
139
+ * @description 计算所有线段的起点和终点的最小最大值,形成一个边界框
140
+ * @returns
141
+ */
142
+ private computedOriginalSize;
143
+ /**
144
+ * 创建数据
145
+ * @param pointsGroups
146
+ * @returns
147
+ */
148
+ static createData(pointsGroups: Point[][], sealed?: boolean): OriginalDataItem[];
149
+ }
150
+ export {};
@@ -0,0 +1,85 @@
1
+ import { Component, ComponentManager } from '../../ComponentManager';
2
+ import { Dxf } from './Dxf';
3
+ import { Variable } from './Variable';
4
+ import { Quadtree } from '../../Quadtree/Quadtree';
5
+ import { LineSegment } from '../../Quadtree/LineSegment';
6
+ import { Point } from '../../Quadtree/Point';
7
+ import { PointVirtualGrid } from '../../PointVirtualGrid';
8
+ import * as THREE from "three";
9
+ type ProjectionAnalysisResult = {
10
+ source: LineSegment;
11
+ sourceIndex: number;
12
+ target: LineSegment;
13
+ targetIndex: number;
14
+ project: LineSegment;
15
+ project2: LineSegment;
16
+ };
17
+ export declare class LineAnalysis extends Component {
18
+ static name: string;
19
+ Dxf: Dxf | null;
20
+ Variable: Variable | null;
21
+ lineSegmentList: LineSegment[];
22
+ container: THREE.Group<THREE.Object3DEventMap>;
23
+ errorAngle: number;
24
+ width: number;
25
+ /**
26
+ *
27
+ * @param parent
28
+ */
29
+ onAddFromParent(parent: ComponentManager): void;
30
+ /**
31
+ * 去除路径上重复的点
32
+ * @description 判断方向向量,一个连续的方向上,只应该出现两个点
33
+ */
34
+ duplicatePointFiltering(): void;
35
+ /**
36
+ *
37
+ * @param p1
38
+ * @param p2
39
+ * @param width
40
+ * @returns
41
+ */
42
+ expandLineSegment(p1: Point, p2: Point, width?: number): {
43
+ points: Point[];
44
+ indices: number[];
45
+ rectIndices: number[];
46
+ };
47
+ appendLineSegmentList: LineSegment[];
48
+ /**
49
+ * 追加数据
50
+ * @param p1
51
+ * @param p2
52
+ */
53
+ addData(p1: Point, p2: Point): void;
54
+ /** 结果分析创建矩形
55
+ * @param result
56
+ */
57
+ createRectangle(result: ProjectionAnalysisResult): void;
58
+ pointVirtualGrid: PointVirtualGrid<{
59
+ index: number;
60
+ type: "start" | "end";
61
+ }>;
62
+ /**
63
+ * 构建点的虚拟网格索引
64
+ */
65
+ buildVirtualGrid(): void;
66
+ quadtree?: Quadtree;
67
+ /**
68
+ * 构建线段四叉树,快速查找,
69
+ */
70
+ buildQuadtree(): void;
71
+ resultList: ProjectionAnalysisResult[];
72
+ /** 线段分析
73
+ * @description 判断两条线段距离是否较短且趋近平行,然后查找两条线段的重合部分的投影线,以此判断两根线是否需要合并
74
+ * @param data
75
+ */
76
+ lineAnalysis(): void;
77
+ /** 线段投影分析
78
+ * @param index
79
+ * @param sourceLineSegment
80
+ * @param lineSegmentList
81
+ * @returns
82
+ */
83
+ private projectionAnalysis;
84
+ }
85
+ export {};
@@ -0,0 +1,33 @@
1
+ import { Component } from '../../ComponentManager';
2
+ type EventData<T> = {
3
+ value: T;
4
+ oldValue: T;
5
+ };
6
+ interface EventType {
7
+ originalLineVisible: EventData<boolean>;
8
+ dxfVisible: EventData<boolean>;
9
+ whiteModelVisible: EventData<boolean>;
10
+ isLook: EventData<boolean>;
11
+ currentWheel: EventData<number>;
12
+ pointerMove: EventData<{
13
+ x: number;
14
+ y: number;
15
+ }>;
16
+ currentKeyUp: EventData<string>;
17
+ }
18
+ export declare class Variable extends Component<EventType> {
19
+ static name: string;
20
+ originalLineVisible: boolean;
21
+ dxfVisible: boolean;
22
+ whiteModelVisible: boolean;
23
+ isLook: boolean;
24
+ currentWheel: number;
25
+ pointerMove: {
26
+ x: number;
27
+ y: number;
28
+ };
29
+ currentKeyUp: string;
30
+ set<KeyT extends keyof EventType>(key: KeyT, value: any): void;
31
+ get<KeyT extends keyof EventType>(key: KeyT): this[KeyT] | undefined;
32
+ }
33
+ export {};
@@ -0,0 +1,16 @@
1
+ import { ComponentManager } from '../ComponentManager';
2
+ import { Dxf } from './components/Dxf';
3
+ import { Variable } from './components/Variable';
4
+ export declare class DxfSystem extends ComponentManager {
5
+ Dxf: Dxf;
6
+ Variable: Variable;
7
+ wallWidth: number;
8
+ environment: "node" | "browser" | "unknown";
9
+ /** 构造函数
10
+ * @param wallWidth 输出墙壁厚度,该墙壁厚度不受缩放影响
11
+ * @param scale 原始数据缩放比例
12
+ */
13
+ constructor(wallWidth?: number, scale?: number);
14
+ usePlugin(plugin: (this: DxfSystem, dxfSystem: DxfSystem) => void): this;
15
+ destroy(): void;
16
+ }
@@ -0,0 +1,39 @@
1
+ import { Component, ComponentManager } from '../../../../ComponentManager';
2
+ import { Dxf } from '../../../components/Dxf';
3
+ import { Variable } from '../../../components/Variable';
4
+ import { WhiteModel } from './WhiteModel';
5
+ import * as THREE from "three";
6
+ interface IDesPointItem {
7
+ message: string;
8
+ position: THREE.Vector3;
9
+ intersection: THREE.Vector3;
10
+ }
11
+ export declare class DetailsPoint extends Component<{
12
+ handleSuccess: {
13
+ desPoints: IDesPointItem[];
14
+ };
15
+ }> {
16
+ static name: string;
17
+ Dxf: Dxf | null;
18
+ WhiteModel: WhiteModel | null;
19
+ Variable: Variable | null;
20
+ desPoints: IDesPointItem[];
21
+ raylines: [THREE.Vector3, THREE.Vector3][];
22
+ data: any[];
23
+ onAddFromParent(parent: ComponentManager): void;
24
+ /**
25
+ * 设置值
26
+ * @param data
27
+ */
28
+ set(data: any): Promise<void>;
29
+ /**
30
+ * 设置射线辅助
31
+ */
32
+ racasterHelper(position: THREE.Vector3, direction: THREE.Vector3, far: number): void;
33
+ private _timer;
34
+ /**
35
+ * 更新模型
36
+ */
37
+ updateModel(): void;
38
+ }
39
+ export {};
@@ -0,0 +1,10 @@
1
+ import { Component, ComponentManager } from '../../../../ComponentManager';
2
+ import * as THREE from "three";
3
+ export declare class DxfLineModel extends Component {
4
+ static name: string;
5
+ private dxfLineModel;
6
+ private dxfDoorsLineModel;
7
+ dxfModelGroup: THREE.Group<THREE.Object3DEventMap>;
8
+ onAddFromParent(parent: ComponentManager): void;
9
+ updateMode(): void;
10
+ }
@@ -0,0 +1,21 @@
1
+ import { Component, ComponentManager } from '../../../../ComponentManager';
2
+ import { Dxf } from '../../../components/Dxf';
3
+ import { Variable } from '../../../components/Variable';
4
+ import * as THREE from "three";
5
+ export declare class WhiteModel extends Component<{
6
+ updateModel: {
7
+ whiteModelGroup: THREE.Group;
8
+ originalWhiteMode: THREE.Group;
9
+ };
10
+ }> {
11
+ static name: string;
12
+ Dxf: Dxf | null;
13
+ Variable: Variable | null;
14
+ whiteModelGroup: THREE.Group<THREE.Object3DEventMap>;
15
+ originalWhiteMode: THREE.Group<THREE.Object3DEventMap>;
16
+ onAddFromParent(parent: ComponentManager): void;
17
+ updateModel(): void;
18
+ toOBJ(): Promise<string>;
19
+ toBlob(): Promise<Blob | undefined>;
20
+ download(filename: string): Promise<void>;
21
+ }
@@ -0,0 +1,3 @@
1
+ export * from './WhiteModel';
2
+ export * from './DetailsPoint';
3
+ export * from './DxfLineModel';
@@ -0,0 +1,4 @@
1
+ import { DxfSystem } from '../..';
2
+ import * as components from "./components";
3
+ declare function ModelDataPlugin(dxfSystem: DxfSystem): void;
4
+ export { components, ModelDataPlugin };
@@ -0,0 +1,48 @@
1
+ import { Component, ComponentManager } from '../../../../ComponentManager';
2
+ import { Dxf } from '../../../components/Dxf';
3
+ import { Renderer } from './Renderer';
4
+ import { Variable } from '../../../components/Variable';
5
+ import { WhiteModel } from '../../ModelDataPlugin/components';
6
+ import * as THREE from "three";
7
+ export declare class DetailsPointRender extends Component {
8
+ static name: string;
9
+ Dxf: Dxf | null;
10
+ Renderer: Renderer | null;
11
+ WhiteModel: WhiteModel | null;
12
+ Variable: Variable | null;
13
+ desPointGroup: THREE.Group<THREE.Object3DEventMap>;
14
+ rayLineGroup: THREE.Group<THREE.Object3DEventMap>;
15
+ data: any[];
16
+ onAddFromParent(parent: ComponentManager): void;
17
+ /**
18
+ * 更新模型
19
+ */
20
+ updateModel(): void;
21
+ createDesPoint(): void;
22
+ createRayline(): void;
23
+ private _desBoxInfo;
24
+ /**
25
+ * 显示详情div盒子
26
+ * @param point
27
+ * @param div
28
+ * @param param2
29
+ * @returns
30
+ */
31
+ showDesBox(point: THREE.Vector3, div: HTMLDivElement, { message, position }: any): void;
32
+ /**
33
+ * 隐藏详情盒子
34
+ */
35
+ hideDesBox(): void;
36
+ private orbitControlsTarget;
37
+ private fov;
38
+ /**
39
+ * 查看详情点
40
+ * @param point
41
+ * @param position
42
+ */
43
+ onLook(point: THREE.Vector3, position: THREE.Vector3): void;
44
+ /**
45
+ * 取消查看详情点
46
+ */
47
+ cancelLook(): void;
48
+ }
@@ -0,0 +1,8 @@
1
+ import { Component } from '../../../../ComponentManager';
2
+ export declare class DomContainer extends Component {
3
+ static name: string;
4
+ domElement: HTMLDivElement;
5
+ canvas: HTMLCanvasElement;
6
+ html2DRenderer: HTMLDivElement;
7
+ constructor();
8
+ }
@@ -0,0 +1,23 @@
1
+ import { Component, ComponentManager } from '../../../../ComponentManager';
2
+ export declare class DomEventRegister extends Component {
3
+ static name: string;
4
+ /**
5
+ *
6
+ * @param parent
7
+ */
8
+ onAddFromParent(parent: ComponentManager): void;
9
+ /**
10
+ *
11
+ * @param el
12
+ * @param callBack
13
+ * @param offset
14
+ * @param condition
15
+ */
16
+ dragMoveHelper(el: HTMLElement, callBack: (offset: {
17
+ x: number;
18
+ y: number;
19
+ }, mx: number, my: number) => void, offset?: {
20
+ x: number;
21
+ y: number;
22
+ }, condition?: () => boolean): void;
23
+ }
@@ -0,0 +1,13 @@
1
+ import { Component, ComponentManager } from '../../../../ComponentManager';
2
+ import { Point } from '../../../../Quadtree/Point';
3
+ export interface PointGroup {
4
+ points: Point[];
5
+ indices: number[];
6
+ rectIndices: number[];
7
+ }
8
+ export declare class ModelDataRender extends Component {
9
+ static name: string;
10
+ onAddFromParent(parent: ComponentManager): void;
11
+ dxf(parent: ComponentManager): void;
12
+ whiteModel(parent: ComponentManager): void;
13
+ }
@@ -0,0 +1,16 @@
1
+ import { Component, ComponentManager } from '../../../../ComponentManager';
2
+ import { Dxf } from '../../../components/Dxf';
3
+ import { Renderer } from './Renderer';
4
+ import * as THREE from "three";
5
+ export declare class OriginalLineRender extends Component {
6
+ static name: string;
7
+ Dxf: Dxf | null;
8
+ Renderer: Renderer | null;
9
+ originalLineMode: THREE.LineSegments<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
10
+ appendLineMode: THREE.LineSegments<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
11
+ textGroup: THREE.Group<THREE.Object3DEventMap>;
12
+ pointGroup: THREE.Group<THREE.Object3DEventMap>;
13
+ distanceGroup: THREE.Group<THREE.Object3DEventMap>;
14
+ onAddFromParent(parent: ComponentManager): void;
15
+ updateMode(data: any): void;
16
+ }
@@ -0,0 +1,82 @@
1
+ import { CSS3DRenderer, CSS3DObject, CSS3DSprite } from 'three/addons/renderers/CSS3DRenderer.js';
2
+ import { CSS2DRenderer, CSS2DObject } from 'three/addons/renderers/CSS2DRenderer.js';
3
+ import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
4
+ import { Component } from '../../../../ComponentManager';
5
+ import { Point } from '../../../../Quadtree/Point';
6
+ import * as THREE from "three";
7
+ export interface RendererDescription {
8
+ canvas: HTMLCanvasElement;
9
+ orbitControls?: {
10
+ enableDamping?: boolean;
11
+ dampingFactor?: number;
12
+ domElement: HTMLElement;
13
+ };
14
+ htmlRenderer?: {
15
+ '2d'?: HTMLElement;
16
+ '3d'?: HTMLElement;
17
+ };
18
+ resizeObserver?: HTMLElement | null;
19
+ scene?: THREE.Scene;
20
+ camera?: THREE.PerspectiveCamera | THREE.OrthographicCamera;
21
+ }
22
+ export declare class Renderer extends Component {
23
+ static name: string;
24
+ static CSS2DObject: typeof CSS2DObject;
25
+ static CSS3DObject: typeof CSS3DObject;
26
+ static CSS3DSprite: typeof CSS3DSprite;
27
+ static Group: typeof THREE.Group;
28
+ static Object3D: typeof THREE.Object3D;
29
+ static Mesh: typeof THREE.Mesh;
30
+ static Line: typeof THREE.Line;
31
+ static LineSegments: typeof THREE.LineSegments;
32
+ static Points: typeof THREE.Points;
33
+ scene: THREE.Scene;
34
+ camera: THREE.PerspectiveCamera | THREE.OrthographicCamera;
35
+ renderer: THREE.WebGLRenderer;
36
+ orbitControls?: OrbitControls;
37
+ private resizeObserver?;
38
+ private description;
39
+ html2DRenderer?: CSS2DRenderer;
40
+ html3DRenderer?: CSS3DRenderer;
41
+ container: THREE.Group<THREE.Object3DEventMap>;
42
+ onUpdate?: () => void;
43
+ onResize?: (width: number, height: number) => void;
44
+ private tweenTaskList;
45
+ constructor(description: RendererDescription);
46
+ /**
47
+ * 世界坐标转屏幕坐标
48
+ * @param worldPosition
49
+ * @param camera
50
+ * @param renderer
51
+ * @returns
52
+ */
53
+ worldToScreenPosition(worldPosition: THREE.Vector3): THREE.Vector2;
54
+ cameraPositionRecord: [THREE.Vector3, THREE.Quaternion][];
55
+ /**
56
+ * 相机
57
+ * @param position
58
+ * @param lookAt
59
+ * @param onEnd
60
+ */
61
+ cameraTo(position: THREE.Vector3, lookAt: THREE.Vector3, onEnd?: any): void;
62
+ cameraBack(): void;
63
+ /**
64
+ * 创建点
65
+ * @param pos
66
+ */
67
+ createPointMesh(pos?: Point | THREE.Vector3, size?: number, parameters?: THREE.MeshBasicMaterialParameters, parent?: THREE.Object3D): void;
68
+ /**
69
+ * 创建文本
70
+ * @param text
71
+ * @param pos
72
+ * @param style
73
+ */
74
+ createText(text: any, pos?: Point | THREE.Vector3, style?: any, parent?: THREE.Object3D): void;
75
+ /**
76
+ * 创建几何缓冲区
77
+ * @param map
78
+ * @param count
79
+ */
80
+ createLineSegments(map: Record<string, number[]>, count: number, parameters?: THREE.LineBasicMaterialParameters, parent?: THREE.Object3D): THREE.LineSegments<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.LineBasicMaterial, THREE.Object3DEventMap>;
81
+ destroy(): void;
82
+ }
@@ -0,0 +1,6 @@
1
+ export * from './DetailsPointRender';
2
+ export * from './DomContainer';
3
+ export * from './OriginalLineRender';
4
+ export * from './Renderer';
5
+ export * from './ModelDataRender';
6
+ export * from './DomEventRegister';
@@ -0,0 +1,5 @@
1
+ import { DxfSystem } from '../..';
2
+ import { default as Dxf3DView } from './pages/Dxf.vue';
3
+ import * as components from "./components";
4
+ declare function RenderPlugin(dxfSystem: DxfSystem): void;
5
+ export { components, RenderPlugin, Dxf3DView };