fcs-core-viewer 0.19.1 → 0.20.0

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 (36) hide show
  1. package/fcs-core-viewer@types/CloudModelOperations/CAE/CreationTools_0D_1D/Response/CreateNodeByXYZ.d.ts +1 -2
  2. package/fcs-core-viewer@types/CloudModelOperations/CAE/CreationTools_2D/Response/ManualElementCreation.d.ts +1 -2
  3. package/fcs-core-viewer@types/CloudModelOperations/Common/Core/Response/Paste.d.ts +1 -1
  4. package/fcs-core-viewer@types/CloudModelOperations/ModelTree/Request/TreeViewEventHandler.d.ts +5 -0
  5. package/fcs-core-viewer@types/CloudModelOperations/Topbar/View/Representation.d.ts +4 -2
  6. package/fcs-core-viewer@types/CloudModelOperations/Visualization/Response/Color.d.ts +4 -0
  7. package/fcs-core-viewer@types/CloudModelOperations/Visualization/Response/Visibility.d.ts +5 -0
  8. package/fcs-core-viewer@types/CloudViewer/ViewerWrapper.d.ts +1 -2
  9. package/fcs-core-viewer@types/DataStorage/MaterialData/Element0DMaterial.d.ts +7 -0
  10. package/fcs-core-viewer@types/DataStorage/MaterialData/Index.d.ts +2 -0
  11. package/fcs-core-viewer@types/DataStorage/ModelData/Containers/BorderContainer.d.ts +0 -7
  12. package/fcs-core-viewer@types/DataStorage/ModelData/Containers/Element0DContainer.d.ts +30 -0
  13. package/fcs-core-viewer@types/DataStorage/ModelData/Containers/Element1DContainer.d.ts +1 -2
  14. package/fcs-core-viewer@types/DataStorage/ModelData/Containers/ElementContainer.d.ts +0 -7
  15. package/fcs-core-viewer@types/DataStorage/ModelData/Containers/FaceContainer.d.ts +0 -7
  16. package/fcs-core-viewer@types/DataStorage/ModelData/Containers/LineContainer.d.ts +0 -7
  17. package/fcs-core-viewer@types/DataStorage/ModelData/Containers/NodeContainer.d.ts +1 -8
  18. package/fcs-core-viewer@types/DataStorage/ModelData/Containers/PointContainer.d.ts +0 -7
  19. package/fcs-core-viewer@types/DataStorage/ModelData/GPUPicking/GPUPicking.d.ts +13 -0
  20. package/fcs-core-viewer@types/DataStorage/ModelData/Index.d.ts +17 -1
  21. package/fcs-core-viewer@types/DataStorage/ModelData/OctreeDataStructure/Octree.d.ts +11 -1
  22. package/fcs-core-viewer@types/DataStorage/ModelData/Shapes/ElementTypes/Line_2N.d.ts +1 -1
  23. package/fcs-core-viewer@types/DataStorage/ModelData/Shapes/ElementTypes/Node_1N.d.ts +16 -0
  24. package/fcs-core-viewer@types/DataStorage/ModelData/Shapes/TopoElement0D.d.ts +52 -0
  25. package/fcs-core-viewer@types/DataStorage/ModelData/Shapes/TopoMesh.d.ts +6 -0
  26. package/fcs-core-viewer@types/DataStorage/ModelData/Shapes/TopoNode.d.ts +1 -1
  27. package/fcs-core-viewer@types/Loader/MESHLoader/mshpReader.d.ts +2 -0
  28. package/fcs-core-viewer@types/Loader/MESHLoader/payloadReader.d.ts +3 -1
  29. package/fcs-core-viewer@types/SelectionTools/SelectionUtils.d.ts +0 -66
  30. package/fcs-core-viewer@types/StyleHandler/MainMenuStyle.d.ts +9 -0
  31. package/fcs-core-viewer@types/UserInterface/EventListeners/EventListeners.d.ts +1 -3
  32. package/fcs-core-viewer@types/UserInterface/UIComponents/Legend/Legend.d.ts +44 -0
  33. package/fcs-core-viewer@types/UserInterface/UIComponents/MainMenu/MainMenu.d.ts +2 -0
  34. package/fcs-core-viewer@types/UserInterface/UIComponents/TreeView/TreeView.d.ts +41 -15
  35. package/package.json +1 -1
  36. package/fcs-core-viewer@types/DataStorage/MaterialData/PointMaterial.d.ts +0 -7
@@ -1,7 +1,6 @@
1
- import { ModelData } from "../../../../DataStorage/ModelData/Index";
2
1
  export declare class CreateNodeByXYZ {
3
2
  constructor();
4
- process(itemName: string, itemUID: number, parentUID: number, shapeUID: number, shapeType: ModelData.dataTypes, data: {
3
+ process(itemName: string, itemUID: number, parentUID: number, shapeUID: number, /*shapeType: ModelData.dataTypes,*/ data: {
5
4
  type: number;
6
5
  existingNodes: {};
7
6
  addedNodes: {};
@@ -1,7 +1,6 @@
1
- import { ModelData } from "../../../../DataStorage/ModelData/Index";
2
1
  export declare class ManualElementCreation {
3
2
  constructor();
4
- process(itemName: string, itemUID: number, parentUID: number, shapeUID: number, shapeType: ModelData.dataTypes, data: {
3
+ process(itemName: string, parentUID: number, data: {
5
4
  existingNodes: {};
6
5
  addedNodes: {};
7
6
  elements: {};
@@ -12,5 +12,5 @@ export declare class Paste {
12
12
  components: {};
13
13
  activeButton: EntityButton;
14
14
  constructor();
15
- process(data: {}): void;
15
+ process(data: {}): Promise<void>;
16
16
  }
@@ -39,6 +39,11 @@ export declare class TreeViewEventHandler {
39
39
  showOnly(): void;
40
40
  hide(): void;
41
41
  hideAll(): void;
42
+ showOnlyOrphanNodes(): Promise<void>;
43
+ showOnlyElements0D(): Promise<void>;
44
+ showOnlyElements1D(): Promise<void>;
45
+ showOnlyElements2D(): Promise<void>;
46
+ showOnlyElements3D(): Promise<void>;
42
47
  /**
43
48
  * Method is called when the user renames an item in the model tree.
44
49
  * @param targetName The name we want to rename the item to.
@@ -7,8 +7,10 @@ declare class Representation {
7
7
  scene: THREE.Scene;
8
8
  currentCamera: THREE.OrthographicCamera;
9
9
  renderer: THREE.WebGLRenderer;
10
- materialGeom: THREE.MeshPhongMaterial;
11
- materialFEMesh: THREE.MeshPhongMaterial;
10
+ materialGeom: THREE.ShaderMaterial;
11
+ elementMaterial: THREE.ShaderMaterial;
12
+ element0DMaterial: THREE.ShaderMaterial;
13
+ element1DMaterial: THREE.ShaderMaterial;
12
14
  borderMaterial: THREE.ShaderMaterial;
13
15
  lineMaterial: LineMaterial;
14
16
  nodeMaterial: THREE.ShaderMaterial;
@@ -1,5 +1,9 @@
1
+ import * as THREE from "../../../three/build/three.module";
1
2
  export declare class SetColor {
2
3
  uniqueID_To_Instance: {};
4
+ scene: THREE.Scene;
5
+ currentCamera: THREE.OrthographicCamera;
6
+ renderer: THREE.WebGLRenderer;
3
7
  constructor();
4
8
  process(entityUIDs: number[], colorData: any[]): void;
5
9
  private updateColorAttributes;
@@ -18,5 +18,10 @@ export declare class Visibility {
18
18
  hideSelected(): void;
19
19
  show(entityUIDs: number[]): void;
20
20
  hide(entityUIDs: number[]): void;
21
+ showOnlyOrphanNodes(): void;
22
+ showOnlyElements0D(): void;
23
+ showOnlyElements1D(): void;
24
+ showOnlyElements2D(): void;
25
+ showOnlyElements3D(): void;
21
26
  private updateVisibilityAttributes;
22
27
  }
@@ -3,7 +3,6 @@ import { SceneWrapper } from './SceneWrapper';
3
3
  import { ThreeJsExtensions } from '../Common/Utilities/ThreeJsExtensions';
4
4
  import { StyleHandler } from '../StyleHandler/StyleHandler';
5
5
  import { ValidateOnSelection } from '../SelectionTools/SelectionValidation/ValidateOnSelection';
6
- import { SelectionUtils } from '../SelectionTools/SelectionUtils';
7
6
  import { ValidationMethods } from '../SelectionTools/SelectionValidation/ValidationMethods';
8
7
  import { ExplodedView } from '../CloudModelOperations/Topbar/View/ExplodedView';
9
8
  import { TreeEvents } from '../FrontendEvents/TreeEvents';
@@ -113,7 +112,6 @@ export declare class ViewerWrapper {
113
112
  enabledDepth: any;
114
113
  defaultButton: any;
115
114
  ValidateOnSelection: ValidateOnSelection;
116
- SelectionUtils: SelectionUtils;
117
115
  ValidationMethods: ValidationMethods;
118
116
  ExplodedView: ExplodedView;
119
117
  Loader: Loader;
@@ -135,6 +133,7 @@ export declare class ViewerWrapper {
135
133
  UIDGenerator: UIDGenerator;
136
134
  ElementContainer: InstanceType<typeof ModelData.ContainerType.ElementContainer>;
137
135
  Element1DContainer: InstanceType<typeof ModelData.ContainerType.Element1DContainer>;
136
+ Element0DContainer: InstanceType<typeof ModelData.ContainerType.Element0DContainer>;
138
137
  BorderContainer: InstanceType<typeof ModelData.ContainerType.BorderContainer>;
139
138
  NodeContainer: InstanceType<typeof ModelData.ContainerType.NodeContainer>;
140
139
  MeshContainer: InstanceType<typeof ModelData.ContainerType.MeshContainer>;
@@ -0,0 +1,7 @@
1
+ import * as THREE from '../../three/build/three.module';
2
+ export declare class Element0DMaterial extends THREE.ShaderMaterial {
3
+ static instance: Element0DMaterial;
4
+ gpuPicking: boolean;
5
+ constructor(currentCamera: THREE.OrthographicCamera);
6
+ static getInstance(): Element0DMaterial;
7
+ }
@@ -4,7 +4,9 @@ import * as VertexMaterial from './VertexMaterial';
4
4
  import * as NodeMaterial from './NodeMaterial';
5
5
  import * as MeshMaterial from './MeshMaterial';
6
6
  import * as Element1DMaterial from './Element1DMaterial';
7
+ import * as Element0DMaterial from './Element0DMaterial';
7
8
  declare const MaterialData: {
9
+ Element0DMaterial: typeof Element0DMaterial.Element0DMaterial;
8
10
  Element1DMaterial: typeof Element1DMaterial.Element1DMaterial;
9
11
  FaceMaterial: typeof MeshMaterial.FaceMaterial;
10
12
  ElementMaterial: typeof MeshMaterial.ElementMaterial;
@@ -3,13 +3,6 @@ import { SceneWrapper } from '../../../CloudViewer/SceneWrapper';
3
3
  export declare class BorderContainer {
4
4
  static instance: BorderContainer;
5
5
  sceneWrapper: SceneWrapper;
6
- shapeVIDs: {};
7
- index_To_Shapes: {
8
- [index: number]: {
9
- length: number;
10
- shapeVIDs: {};
11
- };
12
- };
13
6
  cntObject: THREE.Line;
14
7
  borderMaterial: THREE.ShaderMaterial;
15
8
  sharedPositionBuffer: ArrayBuffer;
@@ -0,0 +1,30 @@
1
+ import * as THREE from '../../../three/build/three.module';
2
+ import { SceneWrapper } from "../../../CloudViewer/SceneWrapper";
3
+ /**
4
+ * Egy THREE.Point objektum az osszes FE Node-nak
5
+ */
6
+ export declare class Element0DContainer {
7
+ static instance: Element0DContainer;
8
+ sceneWrapper: SceneWrapper;
9
+ cntObject: THREE.Points;
10
+ element0DMaterial: THREE.ShaderMaterial;
11
+ sharedPositionBuffer: ArrayBuffer;
12
+ sharedColorBuffer: ArrayBuffer;
13
+ sharedPickingColorBuffer: ArrayBuffer;
14
+ sharedIsVisibleBuffer: ArrayBuffer;
15
+ sharedIsSelectedBuffer: ArrayBuffer;
16
+ sharedPositionArray: Float32Array;
17
+ sharedColorArray: Float32Array;
18
+ sharedPickingColorArray: Float32Array;
19
+ sharedIsVisibleArray: Float32Array;
20
+ sharedIsSelectedArray: Float32Array;
21
+ controls: THREE.TrackballControls;
22
+ constructor(element0DMaterial: THREE.ShaderMaterial);
23
+ static getInstance(): Element0DContainer;
24
+ updatePositionAttribute(): void;
25
+ updateColorAttribute(): void;
26
+ updateIsVisibleAttribute(): void;
27
+ updateIsSelectedAttribute(): void;
28
+ createContainer(): any;
29
+ addNodeToScene(data: {}): void;
30
+ }
@@ -3,8 +3,7 @@ import { SceneWrapper } from '../../../CloudViewer/SceneWrapper';
3
3
  export declare class Element1DContainer {
4
4
  static instance: Element1DContainer;
5
5
  sceneWrapper: SceneWrapper;
6
- shapeVIDs: {};
7
- cntObject: THREE.Line;
6
+ cntObject: THREE.LineSegments;
8
7
  Element1DMaterial: THREE.ShaderMaterial;
9
8
  sharedPositionBuffer: ArrayBuffer;
10
9
  sharedColorBuffer: ArrayBuffer;
@@ -3,13 +3,6 @@ import { SceneWrapper } from "../../../CloudViewer/SceneWrapper";
3
3
  export declare class ElementContainer {
4
4
  static instance: ElementContainer;
5
5
  sceneWrapper: SceneWrapper;
6
- shapeVIDs: {};
7
- index_To_Shapes: {
8
- [index: number]: {
9
- length: number;
10
- shapeVIDs: {};
11
- };
12
- };
13
6
  cntObject: THREE.Mesh;
14
7
  elementMaterial: THREE.ShaderMaterial;
15
8
  sharedPositionBuffer: ArrayBuffer;
@@ -3,13 +3,6 @@ import { SceneWrapper } from "../../../CloudViewer/SceneWrapper";
3
3
  export declare class MeshContainer {
4
4
  static instance: MeshContainer;
5
5
  sceneWrapper: SceneWrapper;
6
- shapeVIDs: {};
7
- index_To_Shapes: {
8
- [index: number]: {
9
- length: number;
10
- shapeVIDs: {};
11
- };
12
- };
13
6
  cntObject: THREE.Mesh;
14
7
  faceMaterial: THREE.ShaderMaterial;
15
8
  sharedPositionBuffer: ArrayBuffer;
@@ -3,13 +3,6 @@ import { SceneWrapper } from '../../../CloudViewer/SceneWrapper';
3
3
  export declare class LineContainer {
4
4
  static instance: LineContainer;
5
5
  sceneWrapper: SceneWrapper;
6
- shapeVIDs: {};
7
- index_To_Shapes: {
8
- [index: number]: {
9
- length: number;
10
- shapeVIDs: {};
11
- };
12
- };
13
6
  cntObject: THREE.LineSegments;
14
7
  lineMaterial: THREE.ShaderMaterial;
15
8
  sharedPositionBuffer: ArrayBuffer;
@@ -6,14 +6,7 @@ import { SceneWrapper } from "../../../CloudViewer/SceneWrapper";
6
6
  export declare class NodeContainer {
7
7
  static instance: NodeContainer;
8
8
  sceneWrapper: SceneWrapper;
9
- shapeVIDs: {};
10
- index_To_Shapes: {
11
- [index: number]: {
12
- length: number;
13
- shapeVIDs: {};
14
- };
15
- };
16
- cntObject: THREE.Point;
9
+ cntObject: THREE.Points;
17
10
  nodeMaterial: THREE.ShaderMaterial;
18
11
  sharedPositionBuffer: ArrayBuffer;
19
12
  sharedColorBuffer: ArrayBuffer;
@@ -3,13 +3,6 @@ import { SceneWrapper } from "../../../CloudViewer/SceneWrapper";
3
3
  export declare class PointContainer {
4
4
  static instance: PointContainer;
5
5
  sceneWrapper: SceneWrapper;
6
- shapeVIDs: {};
7
- index_To_Shapes: {
8
- [index: number]: {
9
- length: number;
10
- shapeVIDs: {};
11
- };
12
- };
13
6
  cntObject: THREE.Point;
14
7
  vertexMaterial: THREE.ShaderMaterial;
15
8
  sharedPositionBuffer: ArrayBuffer;
@@ -38,8 +38,20 @@ declare abstract class GPUPicking<T> {
38
38
  }
39
39
  export declare class GPUVertexPicking extends GPUPicking<GPUPickingType.Vertex> {
40
40
  vertexMaterial: THREE.ShaderMaterial;
41
+ lineMaterial: THREE.ShaderMaterial;
42
+ faceMaterial: THREE.ShaderMaterial;
43
+ element0DMaterial: THREE.ShaderMaterial;
44
+ element1DMaterial: THREE.ShaderMaterial;
45
+ elementMaterial: THREE.ShaderMaterial;
46
+ borderMaterial: THREE.ShaderMaterial;
47
+ nodeMaterial: THREE.ShaderMaterial;
41
48
  container: InstanceType<typeof ModelData.ContainerType.PointContainer>;
42
49
  isVertexVisible: number;
50
+ isElement0DVisible: number;
51
+ isElement1DVisible: number;
52
+ isElementVisible: number;
53
+ isBorderVisible: number;
54
+ isNodeVisible: number;
43
55
  constructor();
44
56
  reset(): void;
45
57
  getEntity(hash: string): void;
@@ -73,6 +85,7 @@ export declare class GPUNodePicking extends GPUPicking<GPUPickingType.Node> {
73
85
  export declare class GPUElementPicking extends GPUPicking<GPUPickingType.Element> {
74
86
  elementMaterial: THREE.ShaderMaterial;
75
87
  element1DMaterial: THREE.ShaderMaterial;
88
+ element0DMaterial: THREE.ShaderMaterial;
76
89
  gpuPickingElementMaterial: THREE.ShaderMaterial;
77
90
  constructor();
78
91
  reset(): void;
@@ -1,6 +1,7 @@
1
1
  import * as Box from './OctreeDataStructure/Octree';
2
2
  import * as ElementContainer from './Containers/ElementContainer';
3
3
  import * as Element1DContainer from './Containers/Element1DContainer';
4
+ import * as Element0DContainer from './Containers/Element0DContainer';
4
5
  import * as BorderContainer from './Containers/BorderContainer';
5
6
  import * as NodeContainer from './Containers/NodeContainer';
6
7
  import * as MeshContainer from './Containers/FaceContainer';
@@ -16,6 +17,7 @@ import * as TopoNode from './Shapes/TopoNode';
16
17
  import * as TopoBorder from './Shapes/TopoBorder';
17
18
  import * as TopoElement from './Shapes/TopoElement';
18
19
  import * as TopoMesh0D from './Shapes/TopoMesh';
20
+ import * as Node_1N from './Shapes/ElementTypes/Node_1N';
19
21
  import * as Line_2N from './Shapes/ElementTypes/Line_2N';
20
22
  import * as Tria_3N from './Shapes/ElementTypes/Tria_3N';
21
23
  import * as Quad_4N from './Shapes/ElementTypes/Quad_4N';
@@ -40,6 +42,7 @@ export declare namespace ModelData {
40
42
  Raycaster: typeof Box.Raycaster;
41
43
  ElementOctree: typeof Box.ElementOctree;
42
44
  Element1DOctree: typeof Box.Element1DOctree;
45
+ Element0DOctree: typeof Box.Element0DOctree;
43
46
  NodeOctree: typeof Box.NodeOctree;
44
47
  FaceOctree: typeof Box.FaceOctree;
45
48
  EdgeOctree: typeof Box.EdgeOctree;
@@ -51,6 +54,7 @@ export declare namespace ModelData {
51
54
  MeshContainer: typeof MeshContainer.MeshContainer;
52
55
  NodeContainer: typeof NodeContainer.NodeContainer;
53
56
  BorderContainer: typeof BorderContainer.BorderContainer;
57
+ Element0DContainer: typeof Element0DContainer.Element0DContainer;
54
58
  Element1DContainer: typeof Element1DContainer.Element1DContainer;
55
59
  ElementContainer: typeof ElementContainer.ElementContainer;
56
60
  };
@@ -75,6 +79,7 @@ export declare namespace ModelData {
75
79
  Quad_4N: typeof Quad_4N.Quad_4N;
76
80
  Tria_3N: typeof Tria_3N.Tria_3N;
77
81
  Line_2N: typeof Line_2N.Line_2N;
82
+ Node_1N: typeof Node_1N.Node_1N;
78
83
  TopoMesh: typeof TopoMesh0D.TopoMesh;
79
84
  TopoMesh0D: typeof TopoMesh0D.TopoMesh0D;
80
85
  TopoMesh1D: typeof TopoMesh0D.TopoMesh1D;
@@ -138,7 +143,7 @@ export declare namespace ModelData {
138
143
  CollaborationContainer = 29
139
144
  }
140
145
  enum elementTypes {
141
- Node = 15,
146
+ Node_1N = 15,
142
147
  Line_2N = 1,
143
148
  Tria_3N = 2,
144
149
  Quad_4N = 3,
@@ -165,6 +170,7 @@ export declare namespace ModelData {
165
170
  Second = 2
166
171
  }
167
172
  const elementTypesToObjects: {
173
+ 15: typeof Node_1N.Node_1N;
168
174
  1: typeof Line_2N.Line_2N;
169
175
  2: typeof Tria_3N.Tria_3N;
170
176
  3: typeof Quad_4N.Quad_4N;
@@ -173,6 +179,16 @@ export declare namespace ModelData {
173
179
  6: typeof Prism_6N.Prism_6N;
174
180
  5: typeof Hexa_8N.Hexa_8N;
175
181
  };
182
+ const elementTypesToShapeTypes: {
183
+ 15: dataTypes[];
184
+ 1: dataTypes[];
185
+ 2: dataTypes[];
186
+ 3: dataTypes[];
187
+ 4: dataTypes[];
188
+ 7: dataTypes[];
189
+ 6: dataTypes[];
190
+ 5: dataTypes[];
191
+ };
176
192
  const dataTypesToObjects: {
177
193
  shapeTypes: {
178
194
  5: typeof TopoFace.TopoFace;
@@ -18,7 +18,8 @@ declare enum OctreeType {
18
18
  Face = 2,
19
19
  Element = 3,
20
20
  Element1D = 4,
21
- Node = 5
21
+ Element0D = 5,
22
+ Node = 6
22
23
  }
23
24
  declare abstract class Octree<T> {
24
25
  boundary: THREE.OBB;
@@ -72,6 +73,15 @@ export declare class Element1DOctree extends Octree<OctreeType.Element1D> {
72
73
  updateInstance(newInstance: Element1DOctree): void;
73
74
  getContainer(): import("../Containers/Element1DContainer").Element1DContainer;
74
75
  }
76
+ export declare class Element0DOctree extends Octree<OctreeType.Element0D> {
77
+ static instance: Element0DOctree;
78
+ container: InstanceType<typeof ModelData.ContainerType.Element0DContainer>;
79
+ constructor(boundary: OBB, capacity: number, maxDepth: number);
80
+ static getInstance(): Element0DOctree;
81
+ createOctree(obb: OBB, capacity: number, maxDepth: number): Octree<OctreeType.Element0D>;
82
+ updateInstance(newInstance: Element0DOctree): void;
83
+ getContainer(): import("../Containers/Element0DContainer").Element0DContainer;
84
+ }
75
85
  export declare class NodeOctree extends Octree<OctreeType.Node> {
76
86
  static instance: NodeOctree;
77
87
  container: InstanceType<typeof ModelData.ContainerType.NodeContainer>;
@@ -12,5 +12,5 @@ export declare class Line_2N extends TopoElement1D {
12
12
  length: number;
13
13
  maxIdx: number;
14
14
  nodeUID_To_index: {};
15
- }, nodesXYZ: number[], nodeUID_To_coords: {}): number[][];
15
+ }, nodesXYZ: number[], colorsRGBA: number[], nodeUID_To_coords: {}): number[][];
16
16
  }
@@ -0,0 +1,16 @@
1
+ import { TopoElement0D } from "../TopoElement0D";
2
+ export declare class Node_1N extends TopoElement0D {
3
+ static title: string;
4
+ constructor(shapeUID: number);
5
+ /**
6
+ * Az. msh filebol kigyujti az elemet alkoto node-ok xyz koordinatait es adott elemre specifikus logikaval
7
+ * osszekoti a node-okat haromszogekke, mintha STL lenne. Ez a megjelenites miatt fontos, hiszen a three.js
8
+ * háromszogeket tud megjeleniteni
9
+ */
10
+ static extractElement(nodeUIDs: number[], startIndex: number, elementIndexData: {
11
+ indices: {};
12
+ length: number;
13
+ maxIdx: number;
14
+ nodeUID_To_index: {};
15
+ }, nodesXYZ: number[], colorsRGBA: number[], nodeUID_To_coords: {}): number[][];
16
+ }
@@ -0,0 +1,52 @@
1
+ import * as THREE from '../../../three/build/three.module';
2
+ import { ModelData } from "../Index";
3
+ import { Shape } from "./TopoShape";
4
+ import { Element0DOctree } from '../OctreeDataStructure/Octree';
5
+ export declare class TopoElement0D extends Shape {
6
+ static title: string;
7
+ type: ModelData.dataTypes;
8
+ itemVID: number;
9
+ itemUID: number;
10
+ shapeUID: number;
11
+ shapeVID: number;
12
+ objectVID: number;
13
+ objectUIDs: number[];
14
+ provokingVertexIndices: number[];
15
+ vertexIndices: number[];
16
+ vertexXYZ: number[];
17
+ nodesCount: number;
18
+ avgNodeXYZ: number[];
19
+ nodes: {};
20
+ baseColor: number[];
21
+ pickingColor: number[];
22
+ isVisible: number;
23
+ isSelected: boolean;
24
+ buttonName: string;
25
+ setUIDs: {};
26
+ octrees: Element0DOctree[];
27
+ selectionOrder: number;
28
+ constructor(shapeUID: number);
29
+ private createElementVID;
30
+ private createShapeVID;
31
+ private add;
32
+ /**
33
+ * Ezt meg nezzuk at, mert a TopoNode-bol van atveve es nem biztos hogy 0D elemet ugyanugy kell torolni, mint egy TopoNode-ot
34
+ * @param iElement
35
+ * @param iBorder
36
+ */
37
+ delete(): void;
38
+ select(): void;
39
+ unselect(): void;
40
+ static boxcaster(event: MouseEvent, startPoint: THREE.Vector3, endPoint: THREE.Vector3): any[];
41
+ static raycaster(event: MouseEvent): any[];
42
+ /**
43
+ * Csak a szinet valtoztatja ha kijeloljuk.
44
+ * A baseColor-t nem valtoztatja
45
+ */
46
+ highlight(): void;
47
+ unhighlight(): void;
48
+ setColor(colorData: any[]): void;
49
+ setTransparency(alpha: number): void;
50
+ hide(): void;
51
+ show(): void;
52
+ }
@@ -1,3 +1,4 @@
1
+ import { ModelData } from "../Index";
1
2
  import { Shape } from "./TopoShape";
2
3
  /**
3
4
  * Tobb TopoElement alkot egy TopoMesh-t (olyan, mint a TopoShell)
@@ -34,6 +35,7 @@ export declare class TopoMesh extends Shape {
34
35
  show(): void;
35
36
  }
36
37
  export declare class TopoMesh0D extends TopoMesh {
38
+ type: ModelData.dataTypes;
37
39
  constructor(shapeUID: number);
38
40
  delete(): void;
39
41
  setColor(colorData: any[]): void;
@@ -43,7 +45,9 @@ export declare class TopoMesh0D extends TopoMesh {
43
45
  show(): void;
44
46
  }
45
47
  export declare class TopoMesh1D extends TopoMesh {
48
+ type: ModelData.dataTypes;
46
49
  constructor(shapeUID: number);
50
+ delete(): void;
47
51
  setColor(colorData: any[]): void;
48
52
  highlight(): void;
49
53
  select(): void;
@@ -51,8 +55,10 @@ export declare class TopoMesh1D extends TopoMesh {
51
55
  show(): void;
52
56
  }
53
57
  export declare class TopoMesh2D extends TopoMesh {
58
+ type: ModelData.dataTypes;
54
59
  constructor(shapeUID: number);
55
60
  }
56
61
  export declare class TopoMesh3D extends TopoMesh {
62
+ type: ModelData.dataTypes;
57
63
  constructor(shapeUID: number);
58
64
  }
@@ -5,7 +5,6 @@ import { NodeOctree } from '../OctreeDataStructure/Octree';
5
5
  export declare class TopoNode extends Shape {
6
6
  static title: string;
7
7
  type: ModelData.dataTypes;
8
- isOrphan: boolean;
9
8
  itemVID: number;
10
9
  itemUID: number;
11
10
  shapeVID: number;
@@ -21,6 +20,7 @@ export declare class TopoNode extends Shape {
21
20
  nodeIndex: number;
22
21
  elementIndex: number;
23
22
  element1DIndex: number;
23
+ element0DIndex: number;
24
24
  borderIndex: number;
25
25
  isVisible: number;
26
26
  isSelected: boolean;
@@ -23,10 +23,12 @@ export declare class mshpReader {
23
23
  nodeMaterial: THREE.ShaderMaterial;
24
24
  elementContainer: InstanceType<typeof ModelData.ContainerType.ElementContainer>;
25
25
  element1DContainer: InstanceType<typeof ModelData.ContainerType.Element1DContainer>;
26
+ element0DContainer: InstanceType<typeof ModelData.ContainerType.Element0DContainer>;
26
27
  borderContainer: InstanceType<typeof ModelData.ContainerType.BorderContainer>;
27
28
  nodeContainer: InstanceType<typeof ModelData.ContainerType.NodeContainer>;
28
29
  elementOctree: InstanceType<typeof ModelData.OctreeDataStructure.ElementOctree>;
29
30
  element1DOctree: InstanceType<typeof ModelData.OctreeDataStructure.Element1DOctree>;
31
+ element0DOctree: InstanceType<typeof ModelData.OctreeDataStructure.Element0DOctree>;
30
32
  nodeOctree: InstanceType<typeof ModelData.OctreeDataStructure.NodeOctree>;
31
33
  constructor(mshpFileUrl: string, allActiveNodesFileUrl: string);
32
34
  /**
@@ -17,13 +17,15 @@ export declare class PayloadReader {
17
17
  nodeMaterial: THREE.ShaderMaterial;
18
18
  elementContainer: InstanceType<typeof ModelData.ContainerType.ElementContainer>;
19
19
  element1DContainer: InstanceType<typeof ModelData.ContainerType.Element1DContainer>;
20
+ element0DContainer: InstanceType<typeof ModelData.ContainerType.Element0DContainer>;
20
21
  borderContainer: InstanceType<typeof ModelData.ContainerType.BorderContainer>;
21
22
  nodeContainer: InstanceType<typeof ModelData.ContainerType.NodeContainer>;
22
23
  elementOctree: InstanceType<typeof ModelData.OctreeDataStructure.ElementOctree>;
23
24
  element1DOctree: InstanceType<typeof ModelData.OctreeDataStructure.Element1DOctree>;
25
+ element0DOctree: InstanceType<typeof ModelData.OctreeDataStructure.Element0DOctree>;
24
26
  nodeOctree: InstanceType<typeof ModelData.OctreeDataStructure.NodeOctree>;
25
27
  constructor();
26
- perform(itemName: string, itemUID: number, parentUID: number, shapeUID: number, shapeType: ModelData.dataTypes, data: {
28
+ perform(itemName: string, parentUID: number, data: {
27
29
  existingNodes: {};
28
30
  addedNodes: {};
29
31
  elements: {};
@@ -1,66 +0,0 @@
1
- import { SceneWrapper } from "../CloudViewer/SceneWrapper";
2
- export declare class SelectionUtils {
3
- sceneWrapper: SceneWrapper;
4
- readonly myCanvas: HTMLElement;
5
- readonly distTol: number;
6
- readonly posTol: number;
7
- readonly distToRayTol: number;
8
- width: any;
9
- height: any;
10
- grMesh: any;
11
- grLine: any;
12
- grPoint: any;
13
- scene: any;
14
- renderer: any;
15
- currentCamera: any;
16
- intersected: any[];
17
- polygons: any[];
18
- polygonsAll: any[];
19
- segments: any[];
20
- segmentsAll: any[];
21
- vertices: any[];
22
- verticesAll: any[];
23
- selectedVertex: any;
24
- selectedEdge: any;
25
- boxX: any;
26
- boxY: any;
27
- buttonToEntType: any;
28
- enabledMethod: any;
29
- enabledEntity: any;
30
- mouseStart: any;
31
- mouseEnd: any;
32
- startPoint: any;
33
- endPoint: any;
34
- startX: number;
35
- startY: number;
36
- endX: number;
37
- endY: number;
38
- isVisible: any;
39
- enabledDepth: any;
40
- fcs_viewer_div: HTMLDivElement;
41
- components: {};
42
- constructor(sceneWrapper: SceneWrapper);
43
- selectionBoxStart(event: MouseEvent): number[];
44
- selectionBoxEnd(event: MouseEvent): number[];
45
- /**
46
- * Ha rajzoltam egy negyzetet es box-ot csinalt belole megnezi, hogy mely entity-k vannak benen a box-ban
47
- * @param event
48
- * @param enabledEntity
49
- * @returns
50
- */
51
- detectByBox(event: MouseEvent): any[];
52
- /**
53
- * Tavolsag (a ray-re meroleges tavolsag) alapjan kivalasztja a megengedett tipusu entity-kbol azokat,
54
- * amik a legkozelebb vannak. Mivel toleranciat hasznalunk, a doubleFace-ek kozul mindkettot kijeloli
55
- * (vagy doubleEdge, doubleVertex)
56
- * @param event
57
- * @param enabledEntity
58
- */
59
- detectByRay(event: any, enabledEntity: any): void;
60
- /**
61
- * Ennek akkor lenne ertelme, ha nem spcifikalnak hogy mely entity-t szeretnem engedelyezni, Ha mindharom engelyezve van, akkor abbol hogy mihez kattintottam kozel, kitalalja, hogy mire szeretnek kattintani.
62
- * @param event
63
- * @returns
64
- */
65
- setPriority(event: any): any[];
66
- }
@@ -1,3 +1,4 @@
1
+ import { LegendConfig } from "../UserInterface/UIComponents/Legend/Legend";
1
2
  export declare class MainMenuStyle {
2
3
  constructor();
3
4
  /**
@@ -23,4 +24,12 @@ export declare class MainMenuStyle {
23
24
  setViewerOperationButtonStyle(button: HTMLButtonElement): void;
24
25
  setViewerButtonStyle(button: HTMLButtonElement): void;
25
26
  setViewerDropdownStyle(dropdown: HTMLElement): void;
27
+ setLegendTitleStyle(title: HTMLElement, config: LegendConfig): void;
28
+ setLegendMinLabelStyle(minLabel: HTMLElement): void;
29
+ setScaleContainerStyle(scaleContainer: HTMLElement): void;
30
+ setValueContainerStyle(valueContainer: HTMLElement, config: LegendConfig): void;
31
+ setColorBoxStyle(colorBox: HTMLElement, config: LegendConfig, color: string): void;
32
+ setLabelStyle(label: HTMLElement, config: LegendConfig, reversedIntervals: number[], index: number): void;
33
+ setMinLabelContainerStyle(label: HTMLElement): void;
34
+ setLegendParentStyle(parent: HTMLElement, config: LegendConfig): void;
26
35
  }
@@ -1,14 +1,12 @@
1
1
  import * as THREE from '../../three/build/three.module';
2
2
  import { SceneWrapper } from '../../CloudViewer/SceneWrapper';
3
3
  import { ValidateOnSelection } from '../../SelectionTools/SelectionValidation/ValidateOnSelection';
4
- import { SelectionUtils } from '../../SelectionTools/SelectionUtils';
5
4
  import { UIComponents } from '../UIComponents/UIComponents';
6
5
  import { SelectionData } from '../../DataStorage/SelectionData';
7
6
  export declare class EventListeners {
8
7
  sceneWrapper: SceneWrapper;
9
8
  selectionData: SelectionData;
10
9
  validateOnSelection: ValidateOnSelection;
11
- selectionUtils: SelectionUtils;
12
10
  uiComponents: UIComponents;
13
11
  div_treeHTML: HTMLElement;
14
12
  div_leftSidebar: HTMLElement;
@@ -29,7 +27,7 @@ export declare class EventListeners {
29
27
  endPoint: THREE.Vector3;
30
28
  intersectionsByClick: any[];
31
29
  intersectionsByBox: any[];
32
- constructor(sceneWrapper: SceneWrapper, selectionData: SelectionData, validateOnSelection: ValidateOnSelection, selectionUtils: SelectionUtils);
30
+ constructor(sceneWrapper: SceneWrapper, selectionData: SelectionData, validateOnSelection: ValidateOnSelection);
33
31
  /**
34
32
  * Register all event listeners used throughout the application
35
33
  */
@@ -0,0 +1,44 @@
1
+ import { IViewerHtmlElement } from "../MainMenu/BuildingBlocks/MainMenuComponents/HtmlElementInterface";
2
+ export interface LegendConfig {
3
+ title: string;
4
+ minValue: number;
5
+ maxValue: number;
6
+ numberOfIntervals: number;
7
+ config?: {
8
+ type: "interpolated" | "discrete";
9
+ colors?: string[];
10
+ };
11
+ styles?: {
12
+ width?: string;
13
+ height?: string;
14
+ titleFontSize?: string;
15
+ colorBoxTitleFontSize?: string;
16
+ colorBoxTitleTop?: string;
17
+ legendWidth?: string;
18
+ };
19
+ }
20
+ export declare class Legend implements IViewerHtmlElement {
21
+ private readonly element;
22
+ private parent;
23
+ private intervals;
24
+ private mainStyles;
25
+ /**
26
+ * Singleton instance
27
+ */
28
+ private static _instance;
29
+ constructor();
30
+ /**
31
+ * Getter for singleton instance.
32
+ */
33
+ static getInstance(): Legend;
34
+ tryShow(config: LegendConfig): boolean;
35
+ hide(): void;
36
+ private generateColors;
37
+ private interpolateColor;
38
+ getHtmlElement(): HTMLElement;
39
+ remove(): void;
40
+ setHtmlParent(parent: HTMLElement): void;
41
+ setParent(parent: IViewerHtmlElement): void;
42
+ init(): void;
43
+ reset(): void;
44
+ }
@@ -2,10 +2,12 @@ import { MainMenuStyle } from '../../../StyleHandler/MainMenuStyle';
2
2
  import { MeshWrapper } from '../../../Model/MeshWrapper';
3
3
  import { ViewerCADToolbox } from './Toolboxes/CADToolbox';
4
4
  import { ViewerCAEToolbox } from './Toolboxes/CAEToolbox';
5
+ import { Legend } from "../Legend/Legend";
5
6
  export declare class MainMenu {
6
7
  style: MainMenuStyle;
7
8
  viewerCADToolbox: ViewerCADToolbox;
8
9
  viewerCAEToolbox: ViewerCAEToolbox;
10
+ legend: Legend;
9
11
  meshWrapper: MeshWrapper;
10
12
  /**
11
13
  * Singleton instance
@@ -39,24 +39,30 @@ declare enum TreeViewContextMenuButtons {
39
39
  show = 1,
40
40
  hide = 2,
41
41
  showOnly = 3,
42
- showAll = 4,
43
- hideAll = 5,
44
- edit = 6,
45
- rename = 7,
46
- current = 8,
47
- assign = 9,
48
- copy = 10,
49
- cut = 11,
50
- paste = 12,
51
- explode = 13,
52
- delete = 14
42
+ showOnlyByDim = 4,
43
+ showAll = 5,
44
+ hideAll = 6,
45
+ edit = 7,
46
+ rename = 8,
47
+ current = 9,
48
+ assign = 10,
49
+ copy = 11,
50
+ cut = 12,
51
+ paste = 13,
52
+ explode = 14,
53
+ delete = 15
53
54
  }
54
- declare enum TreeViewContextSubmenuAddButtons {
55
+ declare enum TreeViewContextSubmenuButtons {
55
56
  part = 0,
56
57
  assembly = 1,
57
58
  mesh = 2,
58
59
  nodeSet = 3,
59
- elementSet = 4
60
+ elementSet = 4,
61
+ orphanNodes = 5,
62
+ elements0D = 6,
63
+ elements1D = 7,
64
+ elements2D = 8,
65
+ elements3D = 9
60
66
  }
61
67
  export declare class TreeViewContextMenu {
62
68
  meshWrapper: MeshWrapper;
@@ -64,11 +70,14 @@ export declare class TreeViewContextMenu {
64
70
  element: HTMLDivElement;
65
71
  parent: HTMLDivElement;
66
72
  buttons: typeof TreeViewContextMenuButtons;
67
- submenuButtons: typeof TreeViewContextSubmenuAddButtons;
73
+ submenuButtons: typeof TreeViewContextSubmenuButtons;
74
+ buttonElements: {
75
+ [key: number]: HTMLAnchorElement;
76
+ };
68
77
  submenuAddButtons: {
69
78
  [key: number]: HTMLAnchorElement;
70
79
  };
71
- buttonElements: {
80
+ submenuShowOnlyButtons: {
72
81
  [key: number]: HTMLAnchorElement;
73
82
  };
74
83
  constructor();
@@ -87,6 +96,23 @@ export declare class TreeViewContextMenu {
87
96
  * @param location
88
97
  */
89
98
  setPosition(location: THREE.Vector3): void;
99
+ /**
100
+ * Creates a horizontal line under a button
101
+ * @returns
102
+ */
90
103
  createSeparator(): HTMLHRElement;
104
+ /**
105
+ * Adds a simple button to the TreeViewContextMenu
106
+ * @param buttonHTML
107
+ */
108
+ addButton(buttonHTML: HTMLAnchorElement): void;
109
+ /**
110
+ * Adds a button to the TreeViewContextMenu with a submenu
111
+ * @param buttonHTML
112
+ * @param submenuButtons
113
+ */
114
+ addButtonWithSubmenu(buttonHTML: HTMLAnchorElement, submenuButtons: {
115
+ [key: number]: HTMLAnchorElement;
116
+ }): void;
91
117
  }
92
118
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fcs-core-viewer",
3
- "version": "0.19.1",
3
+ "version": "0.20.0",
4
4
  "description": "3D Viewer in the Cloud",
5
5
  "author": {
6
6
  "name": "Femsolve Kft."
@@ -1,7 +0,0 @@
1
- import * as THREE from '../../three/build/three.module';
2
- export declare class PointMaterial extends THREE.ShaderMaterial {
3
- static instance: PointMaterial;
4
- gpuPicking: boolean;
5
- constructor(currentCamera: THREE.OrthographicCamera);
6
- static getInstance(): PointMaterial;
7
- }