@ccpc/core 0.1.1 → 0.1.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 (120) hide show
  1. package/index.js +2080 -0
  2. package/package.json +4 -23
  3. package/types/display/dirty_prop.d.ts +3 -0
  4. package/types/display/state_object.d.ts +30 -0
  5. package/types/document/doc_saver.d.ts +13 -0
  6. package/types/document/document.d.ts +37 -0
  7. package/types/document/element_mgr.d.ts +28 -0
  8. package/types/document/i_document.d.ts +60 -0
  9. package/{dist → types}/document/id_pool.d.ts +3 -1
  10. package/types/element/db.d.ts +49 -0
  11. package/types/element/element.d.ts +55 -0
  12. package/{dist → types}/element/element_decorator.d.ts +0 -1
  13. package/{dist → types}/element/element_id.d.ts +1 -2
  14. package/types/element/i_element.d.ts +64 -0
  15. package/types/element/tmp_element/tmp_element.d.ts +6 -0
  16. package/types/element/tmp_element/tmp_element_painter.d.ts +27 -0
  17. package/types/grep/display/display_object.d.ts +37 -0
  18. package/types/grep/display/display_object_mgr.d.ts +23 -0
  19. package/types/grep/display/grep_display.d.ts +16 -0
  20. package/types/grep/gcurve2d.d.ts +15 -0
  21. package/types/grep/ggroup.d.ts +29 -0
  22. package/types/grep/gnode.d.ts +110 -0
  23. package/types/grep/gnode2d.d.ts +9 -0
  24. package/types/grep/gnode_type.d.ts +10 -0
  25. package/types/grep/gpoint2d.d.ts +14 -0
  26. package/types/grep/gpolycurve.d.ts +13 -0
  27. package/types/grep/gpolygon.d.ts +14 -0
  28. package/types/grep/grep.d.ts +15 -0
  29. package/types/grep/gtext2d.d.ts +14 -0
  30. package/types/grep/i_style.d.ts +42 -0
  31. package/types/grep/style_utils.d.ts +22 -0
  32. package/types/index.d.ts +41 -0
  33. package/types/model_view/i_high_light.d.ts +6 -0
  34. package/types/model_view/i_selection.d.ts +6 -0
  35. package/types/model_view/model_changed_cache.d.ts +35 -0
  36. package/types/model_view/model_view.d.ts +45 -0
  37. package/types/render/i_render.d.ts +24 -0
  38. package/types/render/null_render.d.ts +10 -0
  39. package/types/render/render_node.d.ts +68 -0
  40. package/types/render/render_node_util.d.ts +4 -0
  41. package/types/request/buildin_request/redo_request.d.ts +5 -0
  42. package/types/request/buildin_request/undo_request.d.ts +5 -0
  43. package/{dist → types}/request/i_request.d.ts +0 -1
  44. package/{dist → types}/request/request.d.ts +0 -1
  45. package/{dist → types}/request/request_decorator.d.ts +0 -1
  46. package/{dist → types}/request/request_mgr.d.ts +0 -1
  47. package/{dist → types}/toolkit/class_manager.d.ts +0 -1
  48. package/types/toolkit/cmath_util.d.ts +4 -0
  49. package/{dist → types}/toolkit/debug_util.d.ts +0 -1
  50. package/{dist → types}/transaction/i_transaction.d.ts +0 -1
  51. package/{dist → types}/transaction/i_transaction_base.d.ts +0 -1
  52. package/{dist → types}/transaction/i_transaction_group.d.ts +0 -1
  53. package/{dist → types}/transaction/transaction.d.ts +0 -1
  54. package/{dist → types}/transaction/transaction_base.d.ts +0 -1
  55. package/{dist → types}/transaction/transaction_group.d.ts +0 -1
  56. package/{dist → types}/transaction/transaction_mgr.d.ts +0 -1
  57. package/{dist → types}/transaction/undo_redo_entity.d.ts +0 -1
  58. package/types/types/type_define.d.ts +31 -0
  59. package/{dist → types}/types/type_guard.d.ts +1 -1
  60. package/README.md +0 -11
  61. package/dist/document/document.d.ts +0 -21
  62. package/dist/document/document.d.ts.map +0 -1
  63. package/dist/document/document.js +0 -53
  64. package/dist/document/element_mgr.d.ts +0 -11
  65. package/dist/document/element_mgr.d.ts.map +0 -1
  66. package/dist/document/element_mgr.js +0 -27
  67. package/dist/document/i_document.d.ts +0 -19
  68. package/dist/document/i_document.d.ts.map +0 -1
  69. package/dist/document/i_document.js +0 -1
  70. package/dist/document/id_pool.d.ts.map +0 -1
  71. package/dist/document/id_pool.js +0 -67
  72. package/dist/element/c_element.d.ts +0 -6
  73. package/dist/element/c_element.d.ts.map +0 -1
  74. package/dist/element/c_element.js +0 -6
  75. package/dist/element/element.d.ts +0 -42
  76. package/dist/element/element.d.ts.map +0 -1
  77. package/dist/element/element.js +0 -72
  78. package/dist/element/element_decorator.d.ts.map +0 -1
  79. package/dist/element/element_decorator.js +0 -40
  80. package/dist/element/element_id.d.ts.map +0 -1
  81. package/dist/element/element_id.js +0 -30
  82. package/dist/element/i_element.d.ts +0 -30
  83. package/dist/element/i_element.d.ts.map +0 -1
  84. package/dist/element/i_element.js +0 -1
  85. package/dist/index.d.ts +0 -12
  86. package/dist/index.d.ts.map +0 -1
  87. package/dist/index.js +0 -8
  88. package/dist/request/i_request.d.ts.map +0 -1
  89. package/dist/request/i_request.js +0 -1
  90. package/dist/request/request.d.ts.map +0 -1
  91. package/dist/request/request.js +0 -11
  92. package/dist/request/request_decorator.d.ts.map +0 -1
  93. package/dist/request/request_decorator.js +0 -10
  94. package/dist/request/request_mgr.d.ts.map +0 -1
  95. package/dist/request/request_mgr.js +0 -77
  96. package/dist/toolkit/class_manager.d.ts.map +0 -1
  97. package/dist/toolkit/class_manager.js +0 -54
  98. package/dist/toolkit/debug_util.d.ts.map +0 -1
  99. package/dist/toolkit/debug_util.js +0 -15
  100. package/dist/transaction/i_transaction.d.ts.map +0 -1
  101. package/dist/transaction/i_transaction.js +0 -1
  102. package/dist/transaction/i_transaction_base.d.ts.map +0 -1
  103. package/dist/transaction/i_transaction_base.js +0 -11
  104. package/dist/transaction/i_transaction_group.d.ts.map +0 -1
  105. package/dist/transaction/i_transaction_group.js +0 -1
  106. package/dist/transaction/transaction.d.ts.map +0 -1
  107. package/dist/transaction/transaction.js +0 -41
  108. package/dist/transaction/transaction_base.d.ts.map +0 -1
  109. package/dist/transaction/transaction_base.js +0 -32
  110. package/dist/transaction/transaction_group.d.ts.map +0 -1
  111. package/dist/transaction/transaction_group.js +0 -242
  112. package/dist/transaction/transaction_mgr.d.ts.map +0 -1
  113. package/dist/transaction/transaction_mgr.js +0 -84
  114. package/dist/transaction/undo_redo_entity.d.ts.map +0 -1
  115. package/dist/transaction/undo_redo_entity.js +0 -261
  116. package/dist/types/dump_type.d.ts +0 -4
  117. package/dist/types/dump_type.d.ts.map +0 -1
  118. package/dist/types/dump_type.js +0 -1
  119. package/dist/types/type_guard.d.ts.map +0 -1
  120. package/dist/types/type_guard.js +0 -1
@@ -0,0 +1,9 @@
1
+ import { Curve2, Plane, PolyCurve, Polygon, Vec2 } from '@ccpc/math';
2
+ import { GNode } from './gnode';
3
+ export declare abstract class GNode2d extends GNode {
4
+ plane: Plane;
5
+ geo: Vec2 | Curve2 | Polygon | PolyCurve;
6
+ constructor(plane: Plane, geo: Vec2 | Curve2 | Polygon | PolyCurve);
7
+ abstract clone(): GNode2d;
8
+ protected _copyFrom(another: GNode2d): this;
9
+ }
@@ -0,0 +1,10 @@
1
+ export declare enum GNODE_TYPE {
2
+ INVALID = -1,// 默认(非法)
3
+ GPoint2d = 1,
4
+ GCurve2d = 2,
5
+ GGroup = 3,
6
+ GRep = 4,
7
+ GPolygon = 5,
8
+ GPolycurve = 6,
9
+ GText2d = 7
10
+ }
@@ -0,0 +1,14 @@
1
+ import { types, Plane, Vec2 } from '@ccpc/math';
2
+ import { GNode2d } from './gnode2d';
3
+ import { RenderNode } from '../render/render_node';
4
+ import { GNODE_TYPE } from './gnode_type';
5
+ import { IStyle } from './i_style';
6
+ export declare class GPoint2d extends GNode2d {
7
+ geo: Vec2;
8
+ constructor(plane: Plane, geo: Vec2);
9
+ setStyle(style: IStyle): this;
10
+ getType(): GNODE_TYPE;
11
+ protected _toRenderNodeWithoutMatrix(): RenderNode;
12
+ getPoint(): types.IXYZ;
13
+ clone(cloneGeo?: boolean): GPoint2d;
14
+ }
@@ -0,0 +1,13 @@
1
+ import { DiscreteParam, Plane, PolyCurve } from '@ccpc/math';
2
+ import { GNode2d } from './gnode2d';
3
+ import { RenderEdge } from '../render/render_node';
4
+ import { GNODE_TYPE } from './gnode_type';
5
+ import { IStyle } from './i_style';
6
+ export declare class GPolycurve extends GNode2d {
7
+ geo: PolyCurve;
8
+ constructor(plane: Plane, geo: PolyCurve);
9
+ setStyle(style: IStyle): this;
10
+ getType(): GNODE_TYPE;
11
+ protected _toRenderNodeWithoutMatrix(discreteParams?: DiscreteParam): RenderEdge;
12
+ clone(cloneGeo?: boolean): GPolycurve;
13
+ }
@@ -0,0 +1,14 @@
1
+ import { DiscreteParam, Plane, Polygon } from '@ccpc/math';
2
+ import { GNode2d } from './gnode2d';
3
+ import { RenderMesh, RenderNode } from '../render/render_node';
4
+ import { GNODE_TYPE } from './gnode_type';
5
+ import { IStyle } from './i_style';
6
+ export declare class GPolygon extends GNode2d {
7
+ geo: Polygon;
8
+ constructor(plane: Plane, geo: Polygon);
9
+ setStyle(style: IStyle): this;
10
+ getType(): GNODE_TYPE;
11
+ protected _toRenderNodeWithoutMatrix(discreteParams?: DiscreteParam): RenderNode;
12
+ toRenderNodeForActive(discreteParams?: DiscreteParam): RenderMesh;
13
+ clone(cloneGeo?: boolean): GPolygon;
14
+ }
@@ -0,0 +1,15 @@
1
+ import { ElementId } from '../element/element_id';
2
+ import { GGroup } from './ggroup';
3
+ import { GNODE_TYPE } from './gnode_type';
4
+ export declare class GRep extends GGroup {
5
+ protected _elementId: ElementId;
6
+ /**
7
+ * 为减少对象的构造,可直接引用GRep.empty,来构造空的grep
8
+ */
9
+ static get empty(): GRep;
10
+ get elementId(): ElementId;
11
+ set elementId(eId: ElementId);
12
+ getType(): GNODE_TYPE;
13
+ clone(cloneGeo?: boolean): GRep;
14
+ protected _copyFrom(another: GRep, cloneGeo?: boolean): this;
15
+ }
@@ -0,0 +1,14 @@
1
+ import { Plane, Vec2 } from '@ccpc/math';
2
+ import { GNode2d } from './gnode2d';
3
+ import { RenderNode } from '../render/render_node';
4
+ import { GNODE_TYPE } from './gnode_type';
5
+ import { IStyle } from './i_style';
6
+ export declare class GText2d extends GNode2d {
7
+ text: string;
8
+ position: Vec2;
9
+ constructor(text: string, plane: Plane, pos?: Vec2);
10
+ setStyle(style: IStyle): this;
11
+ getType(): GNODE_TYPE;
12
+ protected _toRenderNodeWithoutMatrix(): RenderNode;
13
+ clone(): GText2d;
14
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * 文字水平对齐
3
+ */
4
+ export declare enum EN_AnchorX {
5
+ Left = "left",
6
+ Center = "center",
7
+ Right = "right"
8
+ }
9
+ /**
10
+ * 文字垂直对齐
11
+ */
12
+ export declare enum EN_AnchorY {
13
+ Top = "top",
14
+ Middle = "middle",
15
+ Bottom = "bottom"
16
+ }
17
+ export type IPointStyle = Partial<{
18
+ color: number | string;
19
+ opacity: number;
20
+ size: number;
21
+ }>;
22
+ export type ILineStyle = Partial<{
23
+ opacity: number;
24
+ color: number | string;
25
+ width: number;
26
+ }>;
27
+ export type IFaceStyle = Partial<{
28
+ opacity: number;
29
+ color: number | string;
30
+ }>;
31
+ export type ITextStyle = Partial<{
32
+ color: number | string;
33
+ fontSize: number;
34
+ anchorX: EN_AnchorX;
35
+ anchorY: EN_AnchorY;
36
+ }>;
37
+ export type IStyle = Partial<{
38
+ point: IPointStyle;
39
+ line: ILineStyle;
40
+ face: IFaceStyle;
41
+ text: ITextStyle;
42
+ }>;
@@ -0,0 +1,22 @@
1
+ import { IStyle } from './i_style';
2
+ export declare class StyleUtils {
3
+ private static default_opacity;
4
+ private static default_point_color;
5
+ private static default_point_size;
6
+ private static default_line_color;
7
+ private static default_line_width;
8
+ private static default_face_color;
9
+ private static default_text_color;
10
+ private static default_text_fontSize;
11
+ private static default_text_anchorX;
12
+ private static default_text_anchorY;
13
+ static defaultActiveStyle: IStyle;
14
+ static defaultSelectionStyle: IStyle;
15
+ static mergeStateStyle(base?: IStyle, state?: IStyle): IStyle;
16
+ private static _isValidNumber;
17
+ private static _isValidColor;
18
+ static getPointStyle(style?: IStyle): IStyle;
19
+ static getLineStyle(style?: IStyle): IStyle;
20
+ static getFaceStyle(style?: IStyle): IStyle;
21
+ static getTextStyle(style?: IStyle): IStyle;
22
+ }
@@ -0,0 +1,41 @@
1
+ export { Element as CElement } from './element/element';
2
+ export { Element } from './element/element';
3
+ export { RegisterElement } from './element/element_decorator';
4
+ export { ElementId } from './element/element_id';
5
+ export { DBGenerator, MathSymbol } from './element/i_element';
6
+ export type { IElement } from './element/i_element';
7
+ export { TmpElement } from './element/tmp_element/tmp_element';
8
+ export { TmpElementPainter } from './element/tmp_element/tmp_element_painter';
9
+ export { Document } from './document/document';
10
+ export type { IDocument } from './document/i_document';
11
+ export { ElementMgr } from './document/element_mgr';
12
+ export { GCurve2d } from './grep/gcurve2d';
13
+ export { GPolycurve } from './grep/gpolycurve';
14
+ export { DisplayObject } from './grep/display/display_object';
15
+ export type { IDisplayRenderData, IMgrDisplayRenderData } from './grep/display/display_object';
16
+ export { DisplayObjectMgr } from './grep/display/display_object_mgr';
17
+ export { GGroup } from './grep/ggroup';
18
+ export { GNode } from './grep/gnode';
19
+ export { GNode2d } from './grep/gnode2d';
20
+ export { GNODE_TYPE } from './grep/gnode_type';
21
+ export { GPoint2d } from './grep/gpoint2d';
22
+ export { GPolygon } from './grep/gpolygon';
23
+ export { GText2d } from './grep/gtext2d';
24
+ export { EN_AnchorX, EN_AnchorY } from './grep/i_style';
25
+ export type { IFaceStyle, ILineStyle, IPointStyle, IStyle, ITextStyle } from './grep/i_style';
26
+ export { GrepDisplay } from './grep/display/grep_display';
27
+ export { GRep } from './grep/grep';
28
+ export { ModelView } from './model_view/model_view';
29
+ export { IRender } from './render/i_render';
30
+ export { RenderEdge, RenderGroup, RenderMesh, RenderNode, RenderPoint, RenderText } from './render/render_node';
31
+ export { RenderNodeUtil } from './render/render_node_util';
32
+ export { Request } from './request/request';
33
+ export type { IRequest } from './request/i_request';
34
+ export { RequestMgr, requestMgr } from './request/request_mgr';
35
+ export { registerRequest } from './request/request_decorator';
36
+ export { UndoRequest } from './request/buildin_request/undo_request';
37
+ export { RedoRequest } from './request/buildin_request/redo_request';
38
+ export { ClassManager } from './toolkit/class_manager';
39
+ export { DebugUtil } from './toolkit/debug_util';
40
+ export { EN_CoreRequestIds, EN_ModelViewChanged, EN_RNODE_TYPE } from './types/type_define';
41
+ export type { IConstructor } from './types/type_guard';
@@ -0,0 +1,6 @@
1
+ import { IElement } from '../element/i_element';
2
+ import { GNode } from '../grep/gnode';
3
+ export interface IHighLight {
4
+ getActiveGNodes(): Array<GNode>;
5
+ getActiveElements(): Array<IElement>;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { IElement } from '../element/i_element';
2
+ import { GNode } from '../grep/gnode';
3
+ export interface ISelection {
4
+ getSelectedGNodes(): Array<GNode>;
5
+ getSelectedElements(): Array<IElement>;
6
+ }
@@ -0,0 +1,35 @@
1
+ import { IElement } from '../element/i_element';
2
+ import { IHighLight } from './i_high_light';
3
+ import { ISelection } from './i_selection';
4
+ import { EN_ModelViewChanged } from '../types/type_define';
5
+ /**
6
+ * 缓存视图层发生的变化
7
+ */
8
+ export declare class ModelChangedCache {
9
+ container: Map<EN_ModelViewChanged, Set<number>>;
10
+ highLight?: IHighLight;
11
+ selection?: ISelection;
12
+ constructor();
13
+ /**
14
+ * 是否发生改变
15
+ */
16
+ isChange(): true | IHighLight | ISelection | undefined;
17
+ /**
18
+ * 缓存变化的Element
19
+ * 先删+更新/创建 = 更新
20
+ * 更新/创建+删除 = 删除
21
+ */
22
+ cacheElementChanged(type: EN_ModelViewChanged, elements: IElement[]): void;
23
+ /**
24
+ * 缓存高亮
25
+ */
26
+ cacheHighLight(highLight: IHighLight): void;
27
+ /**
28
+ * 缓存选择集
29
+ */
30
+ cacheSelection(selection: ISelection): void;
31
+ /**
32
+ * 清空缓存
33
+ */
34
+ clear(): void;
35
+ }
@@ -0,0 +1,45 @@
1
+ import { IDocument } from '../document/i_document';
2
+ import { IRender } from '../render/i_render';
3
+ import { ModelChangedCache } from './model_changed_cache';
4
+ /**
5
+ * 模型层视图,不依赖具体 UI。
6
+ * 调用 `updateView()` 时,根据缓存的元素变化刷新渲染层。
7
+ */
8
+ export declare class ModelView {
9
+ private _doc;
10
+ /**标记渲染脏*/
11
+ private _renderDirty;
12
+ iRender: IRender;
13
+ readonly cacheForView: ModelChangedCache;
14
+ /**
15
+ * eId->did缓存
16
+ */
17
+ private _eid2didMap;
18
+ constructor(doc: IDocument);
19
+ updateView(rebuild?: boolean): void;
20
+ generateAll(): void;
21
+ /**
22
+ * 清空modelview
23
+ */
24
+ clearAll(): void;
25
+ private _updateElements;
26
+ /**
27
+ * 元素是否有效可显示
28
+ */
29
+ private _isElementValid;
30
+ private _addGRep;
31
+ private _updateGRep;
32
+ private _removeGRep;
33
+ /**
34
+ * 刷新选择集
35
+ */
36
+ private _updateSelection;
37
+ /**
38
+ * 刷新高亮集合
39
+ */
40
+ private _updateHighLight;
41
+ /**
42
+ * 高亮选中对象转grep
43
+ */
44
+ private _toGReps;
45
+ }
@@ -0,0 +1,24 @@
1
+ import { GRep } from '../grep/grep';
2
+ export declare abstract class IRender {
3
+ /**
4
+ * 修改完场景后通常调用updat才会真正刷新
5
+ */
6
+ abstract updateView(): void;
7
+ abstract updateImmediately(): void;
8
+ /**
9
+ * 清空高亮
10
+ */
11
+ clearActive(): void;
12
+ /**
13
+ * 清空选择集
14
+ */
15
+ clearSelection(): void;
16
+ /**
17
+ * 绘制高亮对象
18
+ */
19
+ abstract drawActives(_greps: GRep[]): void;
20
+ /**
21
+ * 绘制选中对象
22
+ */
23
+ abstract drawSelections(_greps: GRep[]): void;
24
+ }
@@ -0,0 +1,10 @@
1
+ import { GRep } from '../grep/grep';
2
+ import { IRender } from './i_render';
3
+ export declare class NullRender implements IRender {
4
+ drawActives(_greps: GRep[]): void;
5
+ clearActive(): void;
6
+ clearSelection(): void;
7
+ drawSelections(_greps: GRep[]): void;
8
+ updateView(): void;
9
+ updateImmediately(): void;
10
+ }
@@ -0,0 +1,68 @@
1
+ import { EN_RNODE_TYPE } from '../types/type_define';
2
+ import { Matrix4, types, Vec3 } from '@ccpc/math';
3
+ import { GNode } from '../grep/gnode';
4
+ import { IStyle } from '../grep/i_style';
5
+ /**
6
+ * 渲染对象,所有的几何对象都要离散为此数据结构
7
+ */
8
+ export declare class RenderNode {
9
+ parent?: RenderGroup;
10
+ gnode: GNode;
11
+ style: IStyle;
12
+ type: EN_RNODE_TYPE;
13
+ globalMatrix?: Matrix4;
14
+ copyWorldMatrix(m?: Matrix4): void;
15
+ traverse(callback: (rNode: RenderNode) => void): void;
16
+ clone(): this;
17
+ }
18
+ export declare class RenderGroup extends RenderNode {
19
+ children: Array<RenderNode>;
20
+ type: EN_RNODE_TYPE;
21
+ add(node: RenderNode): void;
22
+ clone(): this;
23
+ }
24
+ export declare class RenderPoint extends RenderNode {
25
+ point: Vec3;
26
+ type: EN_RNODE_TYPE;
27
+ }
28
+ export declare class RenderEdge extends RenderNode {
29
+ points: Vec3[];
30
+ type: EN_RNODE_TYPE;
31
+ }
32
+ /**
33
+ * 文字
34
+ */
35
+ export declare class RenderText extends RenderNode {
36
+ text: string;
37
+ opacity: number;
38
+ position: types.IXYZ;
39
+ clone(): this;
40
+ }
41
+ /**
42
+ * 三角面片
43
+ */
44
+ export declare class RenderMesh extends RenderNode {
45
+ private _verts;
46
+ private _indices;
47
+ private _normals;
48
+ private _uvs;
49
+ /**
50
+ * 点集,一个点由一个索引组成
51
+ * 离散后的所有顶点, 此数据不渲染,只做存储使用
52
+ */
53
+ setVerts(verts: types.IXYZ[] | Float32Array): void;
54
+ setIndices(indices: number[][] | Uint32Array): void;
55
+ setNormals(normals: types.IXYZ[] | Float32Array): void;
56
+ setUVs(uvs: types.IXY[] | Float32Array): void;
57
+ getVertexes(): Vec3[];
58
+ getVerts(): Float32Array;
59
+ getIndices(): Uint32Array;
60
+ getNormals(): Float32Array;
61
+ getUVs(): Float32Array;
62
+ clone(): this;
63
+ /**
64
+ * 将目标RenderMesh合并到当前RenderMesh, 会改变this
65
+ * @param 目标RenderMesh
66
+ */
67
+ merge(renderMesh: RenderMesh): void;
68
+ }
@@ -0,0 +1,4 @@
1
+ import { RenderNode } from './render_node';
2
+ export declare class RenderNodeUtil {
3
+ static flatLeafRNodes(rNode: RenderNode): RenderNode[];
4
+ }
@@ -0,0 +1,5 @@
1
+ import { Request } from '../request';
2
+ export declare class RedoRequest extends Request {
3
+ execute(): void;
4
+ canTransact(): boolean;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { Request } from '../request';
2
+ export declare class UndoRequest extends Request {
3
+ execute(): void;
4
+ canTransact(): boolean;
5
+ }
@@ -5,4 +5,3 @@ export interface IRequest {
5
5
  execute(): unknown;
6
6
  canTransact(): boolean;
7
7
  }
8
- //# sourceMappingURL=i_request.d.ts.map
@@ -9,4 +9,3 @@ export declare abstract class Request implements IRequest {
9
9
  */
10
10
  canTransact(): boolean;
11
11
  }
12
- //# sourceMappingURL=request.d.ts.map
@@ -5,4 +5,3 @@ import { Request } from './request';
5
5
  * @param requestId 请求id
6
6
  */
7
7
  export declare function registerRequest(requestId: string): (ctor: IConstructor<Request>) => void;
8
- //# sourceMappingURL=request_decorator.d.ts.map
@@ -39,4 +39,3 @@ export declare class RequestMgr {
39
39
  cancelReq(): void;
40
40
  }
41
41
  export declare const requestMgr: RequestMgr;
42
- //# sourceMappingURL=request_mgr.d.ts.map
@@ -27,4 +27,3 @@ export declare class ClassManager<T, K> {
27
27
  */
28
28
  getClsLength(): number;
29
29
  }
30
- //# sourceMappingURL=class_manager.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { Matrix4 } from '@ccpc/math';
2
+ export declare class CMathUtil {
3
+ static composeMatrix(mat1?: Matrix4, mat2?: Matrix4): Matrix4 | undefined;
4
+ }
@@ -2,4 +2,3 @@ export declare class DebugUtil {
2
2
  static assert<T>(value: T, message: string, name: string, time: string): asserts value is NonNullable<T>;
3
3
  static warn(value: boolean, message: string, name: string, time: string): void;
4
4
  }
5
- //# sourceMappingURL=debug_util.d.ts.map
@@ -18,4 +18,3 @@ export interface ITransaction extends ITransactionBase {
18
18
  */
19
19
  merge(another: ITransaction): this;
20
20
  }
21
- //# sourceMappingURL=i_transaction.d.ts.map
@@ -41,4 +41,3 @@ export interface ITransactionBase {
41
41
  /**搜集占用的ID*/
42
42
  collectUsedIds(set: Set<number>): void;
43
43
  }
44
- //# sourceMappingURL=i_transaction_base.d.ts.map
@@ -38,4 +38,3 @@ export interface ITransactionGroup extends ITransactionBase {
38
38
  replaceTailTransaction(tail: ITransactionBase, t: ITransaction): boolean;
39
39
  undoWithoutRedo(ut: ITransaction): boolean;
40
40
  }
41
- //# sourceMappingURL=i_transaction_group.d.ts.map
@@ -15,4 +15,3 @@ export declare class Transaction extends TransactionBase implements ITransaction
15
15
  merge(another: ITransaction): this;
16
16
  collectUsedIds(set: Set<number>): void;
17
17
  }
18
- //# sourceMappingURL=transaction.d.ts.map
@@ -14,4 +14,3 @@ export declare abstract class TransactionBase implements ITransactionBase {
14
14
  rollBack(): boolean;
15
15
  isTransactionLike<T extends ITransactionBase>(this: ITransactionBase, ctor: IConstructor<T>): this is T;
16
16
  }
17
- //# sourceMappingURL=transaction_base.d.ts.map
@@ -48,4 +48,3 @@ export declare class TransactionGroup extends TransactionBase implements ITransa
48
48
  getMaxUndoStackSize(): number;
49
49
  collectUsedIds(set: Set<number>): void;
50
50
  }
51
- //# sourceMappingURL=transaction_group.d.ts.map
@@ -51,4 +51,3 @@ export declare class TransactionMgr {
51
51
  canRedo(): boolean;
52
52
  idPoolGC(): Set<number>;
53
53
  }
54
- //# sourceMappingURL=transaction_mgr.d.ts.map
@@ -68,4 +68,3 @@ export declare class UndoRedoEntity {
68
68
  getModifiedElementIds(): Set<number>;
69
69
  private _updateViewCache;
70
70
  }
71
- //# sourceMappingURL=undo_redo_entity.d.ts.map
@@ -0,0 +1,31 @@
1
+ /**
2
+ * 模型层视图变化类型
3
+ */
4
+ export declare enum EN_ModelViewChanged {
5
+ ELEMENT_CREATE = 0,
6
+ ELEMENT_UPDATE = 1,
7
+ ELEMENT_DELETE = 2
8
+ }
9
+ export declare enum EN_RNODE_TYPE {
10
+ UNKOWN = 0,
11
+ POINT = 1,
12
+ EDGE = 2,
13
+ GROUP = 5
14
+ }
15
+ /**
16
+ * 不参与序列化的属性名前缀
17
+ */
18
+ export declare enum EN_DontSavePropPrefix {
19
+ UNDER_SCORE = "_",
20
+ C_UNDER_SCORE = "C_"
21
+ }
22
+ export declare enum EN_CoreRequestIds {
23
+ UNDO = "core.undo",
24
+ REDO = "core.redo"
25
+ }
26
+ export type IDBEleId = {
27
+ id: number;
28
+ };
29
+ export type IJSON = {
30
+ [key: string]: unknown;
31
+ };
@@ -2,4 +2,4 @@ export type IConstructor<T> = {
2
2
  new (...args: any[]): T;
3
3
  prototype: T;
4
4
  };
5
- //# sourceMappingURL=type_guard.d.ts.map
5
+ export type IPrototype<T> = IConstructor<T>['prototype'];
package/README.md DELETED
@@ -1,11 +0,0 @@
1
- # core
2
-
3
- Core data model layer for editor domain objects.
4
-
5
- ## Element 字段约定
6
-
7
- `Element` 类字段使用以下命名规则:
8
-
9
- - `_xx`:不保存,不走事务
10
- - `C_xx`:不保存,走事务
11
- - 其它:保存并走事务
@@ -1,21 +0,0 @@
1
- import type { IElement } from '../element/i_element';
2
- import type { IDocument } from './i_document';
3
- import { ElementMgr } from './element_mgr';
4
- import { IDPool } from './id_pool';
5
- import { ElementId } from '../element/element_id';
6
- import { TransactionMgr } from '../transaction/transaction_mgr';
7
- import { IConstructor } from '../types/type_guard';
8
- export declare class Document implements IDocument {
9
- /**是否可以创建对象*/
10
- static canCreate: boolean;
11
- readonly idPool: IDPool;
12
- readonly elementMgr: ElementMgr;
13
- readonly transactionMgr: TransactionMgr;
14
- readonly requestMgr: import("..").RequestMgr;
15
- constructor();
16
- create<T extends IElement>(ctor: IConstructor<T>): T;
17
- getElementById<T extends IElement>(id: ElementId | number): T | undefined;
18
- getElementByIdEnsure<T extends IElement>(eleId: ElementId | number): T;
19
- checkIfCanModifyDoc(): void;
20
- }
21
- //# sourceMappingURL=document.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/document/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,qBAAa,QAAS,YAAW,SAAS;IAEtC,aAAa;IACb,OAAc,SAAS,UAAS;IAEhC,SAAgB,MAAM,SAAe;IAErC,SAAgB,UAAU,EAAE,UAAU,CAAA;IAEtC,SAAgB,cAAc,EAAE,cAAc,CAAC;IAE/C,SAAgB,UAAU,0BAAa;;IAShC,MAAM,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;IA6BpD,cAAc,CAAC,CAAC,SAAS,QAAQ,EAAE,EAAE,EAAE,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS;IAKzE,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,CAAC;IAOtE,mBAAmB,IAAI,IAAI;CAGrC"}
@@ -1,53 +0,0 @@
1
- import { ElementMgr } from './element_mgr';
2
- import { IDPool } from './id_pool';
3
- import { ElementId } from '../element/element_id';
4
- import { TransactionMgr } from '../transaction/transaction_mgr';
5
- import { DebugUtil } from '../toolkit/debug_util';
6
- import { requestMgr } from '../request/request_mgr';
7
- export class Document {
8
- constructor() {
9
- this.idPool = new IDPool();
10
- this.requestMgr = requestMgr;
11
- this.elementMgr = new ElementMgr();
12
- this.transactionMgr = new TransactionMgr();
13
- this.transactionMgr.init(this);
14
- this.requestMgr.init(this);
15
- }
16
- create(ctor) {
17
- Document.canCreate = true;
18
- const e = new ctor();
19
- e.setDoc(this);
20
- let id = this.idPool.genId(e);
21
- if (!id) {
22
- const usedIds = this.transactionMgr.idPoolGC();
23
- this.elementMgr.getAllElementIds().forEach(_ => usedIds.add(_));
24
- this.idPool.reset(usedIds);
25
- id = this.idPool.genId(e);
26
- }
27
- DebugUtil.assert(id, 'Id资源已耗尽', 'wg', '2026-03-05');
28
- e.id = id;
29
- Document.canCreate = false;
30
- DebugUtil.assert(!this.getElementById(e.id), '该Id已存在', 'wg', '2026-03-05');
31
- if (!e.isTemporary()) {
32
- this.checkIfCanModifyDoc();
33
- this.transactionMgr.getCurrentUndoRedoEntity().onElementsAdded([e]);
34
- }
35
- this.elementMgr.add(e);
36
- return e;
37
- }
38
- getElementById(id) {
39
- const eId = id instanceof ElementId ? id.asInt() : id;
40
- return this.elementMgr.getElementById(eId);
41
- }
42
- getElementByIdEnsure(eleId) {
43
- const eId = eleId instanceof ElementId ? eleId.asInt() : eleId;
44
- const ele = this.getElementById(eId);
45
- DebugUtil.assert(ele, `${eId}不存在`, 'wg', '2026-03-05');
46
- return ele;
47
- }
48
- checkIfCanModifyDoc() {
49
- DebugUtil.assert(this.transactionMgr.getCurrentTransaction(), '事务外不可修改文档', 'wg', '2025-11-18');
50
- }
51
- }
52
- /**是否可以创建对象*/
53
- Document.canCreate = false;