bimatter-viewer-react 0.9.0 → 0.10.1

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.
@@ -7,6 +7,7 @@ type IfcParserOptions = {
7
7
  geometryTransformation?: number[];
8
8
  maxGeometriesPerMesh: number;
9
9
  maxMeshBytes: number;
10
+ mergeVertices: boolean;
10
11
  };
11
12
  type IfcModelDataResult = {
12
13
  data: BmtModelData;
@@ -43,6 +44,7 @@ export declare class IFCLoader {
43
44
  useIfcElemetAssembly: boolean;
44
45
  useIfcColors: boolean;
45
46
  useIfcSpace: boolean;
47
+ mergeVertices: boolean;
46
48
  private coordinationMatrix;
47
49
  private parser;
48
50
  private propertySerializer;
@@ -112,6 +114,9 @@ export declare class IfcParser {
112
114
  private getTotalChunkCount;
113
115
  private emitCompletedGeometryChunk;
114
116
  private createGeometryDataFromBuilder;
117
+ private optimizeIfcGeometryData;
118
+ private mergeIfcGeometryData;
119
+ private toUint32Array;
115
120
  private getElementId;
116
121
  private getFiniteNumber;
117
122
  private getDisplayColor;
@@ -39,10 +39,24 @@ export type IfcPropertiesProgressCallback = (progress: IfcPropertiesProgressData
39
39
  export declare class PropertySerializer {
40
40
  private PropsNames;
41
41
  readonly parser: IfcAPI;
42
+ private itemPropertyCache;
43
+ private spatialLinesCache;
44
+ private spatialTreeChunksCache;
45
+ private typeNameCache;
42
46
  constructor(parser: IfcAPI);
43
47
  serializeAllProperties(modelID: number, ids: Set<number>, onProgress?: IfcPropertiesProgressCallback): Promise<BmtModelProps>;
48
+ resetCaches(): void;
44
49
  getPropertiesAsBlobs(modelID: number, ids: Set<number>, onProgress?: IfcPropertiesProgressCallback): Promise<BmtModelProps>;
45
50
  getItemProperty(modelID: number, id: number, flatten?: boolean): Promise<IfcLineData | null>;
51
+ private getItemPropertiesBatch;
52
+ private readItemProperty;
53
+ private readItemPropertiesBatch;
54
+ private prepareItemProperty;
55
+ private getItemPropertyCacheKey;
56
+ private getTypeName;
57
+ private clearPropertyCaches;
58
+ private getPropertySetData;
59
+ private readPropertySetItems;
46
60
  getElementsAssembly(modelID: number): Promise<IfcElementsAssembly>;
47
61
  private formatItemProperties;
48
62
  private getAllRelDefinesByProps;
@@ -54,10 +68,14 @@ export declare class PropertySerializer {
54
68
  private getStructureProperties;
55
69
  newIfcProject(data: IfcLineData): BmtModelStructureNode;
56
70
  newIfcItem(expressID: number): BmtModelStructureNode;
57
- getSpatialNode(modelID: number, node: BmtModelStructureNode, treeChunks: SpatialTreeChunks, includeProperties: boolean): Promise<void>;
58
- getChildren(modelID: number, node: BmtModelStructureNode, treeChunks: SpatialTreeChunks, propNames: PropertyRelationConfig, includeProperties: boolean): Promise<void>;
71
+ getSpatialNode(modelID: number, node: BmtModelStructureNode, treeChunks: SpatialTreeChunks, includeProperties: boolean, lineById: Map<number, IfcLineData | null>): Promise<void>;
72
+ getChildren(modelID: number, node: BmtModelStructureNode, treeChunks: SpatialTreeChunks, propNames: PropertyRelationConfig, includeProperties: boolean, lineById: Map<number, IfcLineData | null>): Promise<void>;
59
73
  newNode(id: number, data: IfcLineData): BmtModelStructureNode;
60
74
  getSpatialTreeChunks(modelID: number): Promise<SpatialTreeChunks>;
75
+ private readSpatialTreeChunks;
76
+ private getSpatialLineMap;
77
+ private readSpatialLineMap;
78
+ private getProjectID;
61
79
  saveChunk(chunks: SpatialTreeChunks, propNames: PropertyRelationConfig, rel: IfcLineData): void;
62
80
  private shouldEmitProgress;
63
81
  }
@@ -11,6 +11,7 @@ export type ViewerLoadModelOptions = {
11
11
  collectWorkerChunks?: boolean;
12
12
  materialMode?: ViewerMaterialMode;
13
13
  maxMeshBytes?: number;
14
+ mergeVertices?: boolean;
14
15
  onChunk?: (chunk: ViewerLoaderWorkerChunk) => void;
15
16
  onProgress?: (progress: WorkerProgressEvent) => void;
16
17
  streamGeometryChunks?: boolean;