@vertexvis/viewer 1.0.2-canary.7 → 1.0.2-testing.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 (145) hide show
  1. package/dist/cjs/{config-BsqvZSt9.js → config-20ozv4y8.js} +3 -3
  2. package/dist/cjs/{config-BsqvZSt9.js.map → config-20ozv4y8.js.map} +1 -1
  3. package/dist/cjs/{entities-ByDO45G0.js → entities-D6kgGria.js} +4 -4
  4. package/dist/cjs/{entities-ByDO45G0.js.map → entities-D6kgGria.js.map} +1 -1
  5. package/dist/cjs/{geometry_pb-CuOYGIHT.js → geometry_pb-BTko2Wi0.js} +3 -3
  6. package/dist/cjs/{geometry_pb-CuOYGIHT.js.map → geometry_pb-BTko2Wi0.js.map} +1 -1
  7. package/dist/cjs/index.cjs.js +5 -5
  8. package/dist/cjs/{png-decoder-3NSToOjc.js → png-decoder-CJbE7UJh.js} +112 -112
  9. package/dist/cjs/png-decoder-CJbE7UJh.js.map +1 -0
  10. package/dist/cjs/{queries-CwDJxlsL.js → queries-Da9I-xMf.js} +4 -4
  11. package/dist/cjs/{queries-CwDJxlsL.js.map → queries-Da9I-xMf.js.map} +1 -1
  12. package/dist/cjs/{regl-component-DTvmpYVa.js → regl-component-HhKCyGQ3.js} +3 -3
  13. package/dist/cjs/{regl-component-DTvmpYVa.js.map → regl-component-HhKCyGQ3.js.map} +1 -1
  14. package/dist/cjs/{representation_pb-BU8a5Ico.js → representation_pb-CrCGjlyP.js} +3 -3
  15. package/dist/cjs/{representation_pb-BU8a5Ico.js.map → representation_pb-CrCGjlyP.js.map} +1 -1
  16. package/dist/cjs/{streamAttributes-BVp1vEp3.js → streamAttributes-D_J-W8-2.js} +3 -3
  17. package/dist/cjs/{streamAttributes-BVp1vEp3.js.map → streamAttributes-D_J-W8-2.js.map} +1 -1
  18. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
  19. package/dist/cjs/vertex-scene-tree.cjs.entry.js +2 -2
  20. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
  21. package/dist/cjs/vertex-viewer-hit-result-indicator.cjs.entry.js +2 -2
  22. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +2 -2
  23. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +2 -2
  24. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +2 -2
  25. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +4 -4
  26. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +3 -3
  27. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +2 -2
  28. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +1 -1
  29. package/dist/cjs/vertex-viewer.cjs.entry.js +4 -4
  30. package/dist/components/index.js +1 -1
  31. package/dist/components/{p-BfAW7IWG.js → p-B9R0QWr4.js} +2 -2
  32. package/dist/components/{p-CmtoXwYo.js → p-BCOD9yfw.js} +2 -2
  33. package/dist/components/{p-ux26QLbe.js → p-BOJJZ1cN.js} +2 -2
  34. package/dist/components/{p-C7GhKZ4q.js → p-CAugdB_8.js} +2 -2
  35. package/dist/components/{p-C9y2eVBq.js → p-CZCXdo3t.js} +2 -2
  36. package/dist/components/p-CycTYKAk.js +5 -0
  37. package/dist/components/{p-BnIeyVZl.js.map → p-CycTYKAk.js.map} +1 -1
  38. package/dist/components/{p-DTDKqbV2.js → p-D12q-fpW.js} +2 -2
  39. package/dist/components/{p-kVbpvDF1.js → p-DF4kEsJU.js} +2 -2
  40. package/dist/components/{p-D9oqIZ3P.js → p-DRnMrHWY.js} +2 -2
  41. package/dist/components/{p-B6mpmA2-.js → p-abSJ29r7.js} +2 -2
  42. package/dist/components/{p-CCPuHP2m.js → p-ahjMltGJ.js} +2 -2
  43. package/dist/components/vertex-scene-tree-table-cell.js +1 -1
  44. package/dist/components/vertex-scene-tree.js +1 -1
  45. package/dist/components/vertex-viewer-dom-renderer.js +1 -1
  46. package/dist/components/vertex-viewer-hit-result-indicator.js +1 -1
  47. package/dist/components/vertex-viewer-measurement-details.js +1 -1
  48. package/dist/components/vertex-viewer-measurement-distance.js +1 -1
  49. package/dist/components/vertex-viewer-measurement-overlays.js +1 -1
  50. package/dist/components/vertex-viewer-measurement-precise.js +1 -1
  51. package/dist/components/vertex-viewer-pin-group.js +1 -1
  52. package/dist/components/vertex-viewer-pin-tool.js +1 -1
  53. package/dist/components/vertex-viewer-transform-widget.js +1 -1
  54. package/dist/components/vertex-viewer-view-cube.js +1 -1
  55. package/dist/components/vertex-viewer.js +1 -1
  56. package/dist/esm/{config-SMudJna8.js → config-lglER3mU.js} +3 -3
  57. package/dist/esm/{config-SMudJna8.js.map → config-lglER3mU.js.map} +1 -1
  58. package/dist/esm/{entities-uAlr5vlE.js → entities-zRken6VS.js} +4 -4
  59. package/dist/esm/{entities-uAlr5vlE.js.map → entities-zRken6VS.js.map} +1 -1
  60. package/dist/esm/{geometry_pb-CMlgBITt.js → geometry_pb-BiZRfctN.js} +3 -3
  61. package/dist/esm/{geometry_pb-CMlgBITt.js.map → geometry_pb-BiZRfctN.js.map} +1 -1
  62. package/dist/esm/index.js +5 -5
  63. package/dist/esm/index.mjs +5 -5
  64. package/dist/esm/{png-decoder-Bjioht9N.js → png-decoder-CiunTuhu.js} +112 -112
  65. package/dist/esm/png-decoder-CiunTuhu.js.map +1 -0
  66. package/dist/esm/{queries-CgeSF7hf.js → queries-DEzCmbTD.js} +4 -4
  67. package/dist/esm/{queries-CgeSF7hf.js.map → queries-DEzCmbTD.js.map} +1 -1
  68. package/dist/esm/{regl-component-WqWCp9d-.js → regl-component-DmkowWhg.js} +3 -3
  69. package/dist/esm/{regl-component-WqWCp9d-.js.map → regl-component-DmkowWhg.js.map} +1 -1
  70. package/dist/esm/{representation_pb-BXvH1L33.js → representation_pb-g4f0WC4k.js} +3 -3
  71. package/dist/esm/{representation_pb-BXvH1L33.js.map → representation_pb-g4f0WC4k.js.map} +1 -1
  72. package/dist/esm/{streamAttributes-6asiWDkT.js → streamAttributes-Cp8PEH9A.js} +3 -3
  73. package/dist/esm/{streamAttributes-6asiWDkT.js.map → streamAttributes-Cp8PEH9A.js.map} +1 -1
  74. package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
  75. package/dist/esm/vertex-scene-tree.entry.js +2 -2
  76. package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
  77. package/dist/esm/vertex-viewer-hit-result-indicator.entry.js +2 -2
  78. package/dist/esm/vertex-viewer-measurement-details.entry.js +2 -2
  79. package/dist/esm/vertex-viewer-measurement-distance.entry.js +2 -2
  80. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +2 -2
  81. package/dist/esm/vertex-viewer-measurement-precise.entry.js +4 -4
  82. package/dist/esm/vertex-viewer-pin-group.entry.js +3 -3
  83. package/dist/esm/vertex-viewer-transform-widget.entry.js +2 -2
  84. package/dist/esm/vertex-viewer-view-cube.entry.js +1 -1
  85. package/dist/esm/vertex-viewer.entry.js +4 -4
  86. package/dist/viewer/index.esm.js +1 -1
  87. package/dist/viewer/p-051b5154.entry.js +5 -0
  88. package/dist/viewer/{p-a5ed36cd.entry.js.map → p-051b5154.entry.js.map} +1 -1
  89. package/dist/viewer/{p-4dbad46f.entry.js → p-11cf755a.entry.js} +2 -2
  90. package/dist/viewer/{p-833d698b.entry.js → p-16775f7d.entry.js} +2 -2
  91. package/dist/viewer/{p-a866cbdb.entry.js → p-1eb636f8.entry.js} +2 -2
  92. package/dist/viewer/{p-bb18c218.entry.js → p-33f44cc1.entry.js} +2 -2
  93. package/dist/viewer/{p-9556c963.entry.js → p-35601c85.entry.js} +2 -2
  94. package/dist/viewer/{p-40dba623.entry.js → p-8c369777.entry.js} +2 -2
  95. package/dist/viewer/{p-Dx_kRMQd.js → p-BDvACHun.js} +2 -2
  96. package/dist/viewer/{p-Dx_kRMQd.js.map → p-BDvACHun.js.map} +1 -1
  97. package/dist/viewer/p-CZXGNc0T.js +5 -0
  98. package/dist/viewer/p-CZXGNc0T.js.map +1 -0
  99. package/dist/viewer/{p-B7IxKAst.js → p-ChqXy0cG.js} +2 -2
  100. package/dist/viewer/{p-B7IxKAst.js.map → p-ChqXy0cG.js.map} +1 -1
  101. package/dist/viewer/{p-BYm9621A.js → p-CyGlYje2.js} +2 -2
  102. package/dist/viewer/{p-BYm9621A.js.map → p-CyGlYje2.js.map} +1 -1
  103. package/dist/viewer/{p-DNam7E02.js → p-D6eJC1q4.js} +2 -2
  104. package/dist/viewer/{p-DNam7E02.js.map → p-D6eJC1q4.js.map} +1 -1
  105. package/dist/viewer/{p-BJm7oO2_.js → p-Dp56p_jX.js} +2 -2
  106. package/dist/viewer/{p-BJm7oO2_.js.map → p-Dp56p_jX.js.map} +1 -1
  107. package/dist/viewer/{p-Chfn1uMz.js → p-F8e15or2.js} +2 -2
  108. package/dist/viewer/{p-Chfn1uMz.js.map → p-F8e15or2.js.map} +1 -1
  109. package/dist/viewer/{p-CvVOQvMo.js → p-WPRMWirY.js} +2 -2
  110. package/dist/viewer/{p-CvVOQvMo.js.map → p-WPRMWirY.js.map} +1 -1
  111. package/dist/viewer/{p-04ebf937.entry.js → p-a8a81cba.entry.js} +2 -2
  112. package/dist/viewer/{p-4d5c68b4.entry.js → p-c7e62d66.entry.js} +2 -2
  113. package/dist/viewer/{p-578409b2.entry.js → p-e9b83dae.entry.js} +2 -2
  114. package/dist/viewer/{p-69aeb12a.entry.js → p-f271dc4a.entry.js} +2 -2
  115. package/dist/viewer/{p-9161d8c7.entry.js → p-f65c0769.entry.js} +2 -2
  116. package/dist/viewer/viewer.esm.js +1 -1
  117. package/package.json +10 -10
  118. package/dist/cjs/png-decoder-3NSToOjc.js.map +0 -1
  119. package/dist/components/p-BnIeyVZl.js +0 -5
  120. package/dist/esm/png-decoder-Bjioht9N.js.map +0 -1
  121. package/dist/types/web-workers.d.ts +0 -1
  122. package/dist/viewer/p-CmW2ZNHt.js +0 -5
  123. package/dist/viewer/p-CmW2ZNHt.js.map +0 -1
  124. package/dist/viewer/p-a5ed36cd.entry.js +0 -5
  125. /package/dist/components/{p-BfAW7IWG.js.map → p-B9R0QWr4.js.map} +0 -0
  126. /package/dist/components/{p-CmtoXwYo.js.map → p-BCOD9yfw.js.map} +0 -0
  127. /package/dist/components/{p-ux26QLbe.js.map → p-BOJJZ1cN.js.map} +0 -0
  128. /package/dist/components/{p-C7GhKZ4q.js.map → p-CAugdB_8.js.map} +0 -0
  129. /package/dist/components/{p-C9y2eVBq.js.map → p-CZCXdo3t.js.map} +0 -0
  130. /package/dist/components/{p-DTDKqbV2.js.map → p-D12q-fpW.js.map} +0 -0
  131. /package/dist/components/{p-kVbpvDF1.js.map → p-DF4kEsJU.js.map} +0 -0
  132. /package/dist/components/{p-D9oqIZ3P.js.map → p-DRnMrHWY.js.map} +0 -0
  133. /package/dist/components/{p-B6mpmA2-.js.map → p-abSJ29r7.js.map} +0 -0
  134. /package/dist/components/{p-CCPuHP2m.js.map → p-ahjMltGJ.js.map} +0 -0
  135. /package/dist/viewer/{p-4dbad46f.entry.js.map → p-11cf755a.entry.js.map} +0 -0
  136. /package/dist/viewer/{p-833d698b.entry.js.map → p-16775f7d.entry.js.map} +0 -0
  137. /package/dist/viewer/{p-a866cbdb.entry.js.map → p-1eb636f8.entry.js.map} +0 -0
  138. /package/dist/viewer/{p-bb18c218.entry.js.map → p-33f44cc1.entry.js.map} +0 -0
  139. /package/dist/viewer/{p-9556c963.entry.js.map → p-35601c85.entry.js.map} +0 -0
  140. /package/dist/viewer/{p-40dba623.entry.js.map → p-8c369777.entry.js.map} +0 -0
  141. /package/dist/viewer/{p-04ebf937.entry.js.map → p-a8a81cba.entry.js.map} +0 -0
  142. /package/dist/viewer/{p-4d5c68b4.entry.js.map → p-c7e62d66.entry.js.map} +0 -0
  143. /package/dist/viewer/{p-578409b2.entry.js.map → p-e9b83dae.entry.js.map} +0 -0
  144. /package/dist/viewer/{p-69aeb12a.entry.js.map → p-f271dc4a.entry.js.map} +0 -0
  145. /package/dist/viewer/{p-9161d8c7.entry.js.map → p-f65c0769.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"entities-uAlr5vlE.js","sources":["src/lib/measurement/controller.ts","src/lib/measurement/entities.ts"],"sourcesContent":["import { ModelEntity } from '@vertexvis/scene-view-protos/core/protos/model_entity_pb';\nimport {\n MeasureRequest,\n MeasureResponse,\n ModelEntityUpdate,\n UpdateModelEntitiesRequest,\n} from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { SceneViewAPIClient } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb_service';\nimport { BoolValue } from 'google-protobuf/google/protobuf/wrappers_pb';\n\nimport { createMetadata, JwtProvider, requestUnary } from '../grpc';\nimport { MeasurementEntity } from './entities';\nimport { mapMeasureResponseOrThrow } from './mapper';\nimport { MeasurementModel } from './model';\nimport { MeasurementOutcome } from './outcomes';\n\n/**\n * The `MeasurementController` is responsible for performing measurements of\n * registered entities, and updating the model with their measurement results.\n */\nexport class MeasurementController {\n private outcome = Promise.resolve<MeasurementOutcome | undefined>(undefined);\n private debugLogs = false;\n\n public constructor(\n private model: MeasurementModel,\n private client: SceneViewAPIClient,\n private jwtProvider: JwtProvider,\n private deviceId: string | undefined,\n ) {}\n\n /**\n * Registers an entity to measure and performs a measurement if this entity\n * has not been previously registered.\n *\n * @param entity The entity to measure.\n * @returns A promise that resolves with the results after registering this\n * entity.\n */\n public addEntity(\n entity: MeasurementEntity,\n ): Promise<MeasurementOutcome | undefined> {\n if (this.debugLogs) {\n const deserializedEntity = ModelEntity.deserializeBinary(\n entity.modelEntity,\n );\n\n this.log(\n `Adding ModelEntity. [entityId={${deserializedEntity.getEntityId()}}, sceneItemId={${deserializedEntity.getSceneItemId()}}]`,\n );\n }\n\n return this.performMeasurement(() => this.model.addEntity(entity));\n }\n\n /**\n * Clears all entities and returns a promise that resolves with an empty list\n * of measurement results.\n */\n public clearEntities(): Promise<MeasurementOutcome | undefined> {\n this.log('Clearing all ModelEntities.');\n\n return this.performMeasurement(() => {\n this.model.clearEntities();\n this.model.clearOutcome();\n return true;\n });\n }\n\n /**\n * Deregisters an entity and performs a measurement if this entity was\n * removed.\n *\n * @param entity The entity to remove.\n * @returns A promise that resolves with the results after removing this\n * entity.\n */\n public removeEntity(\n entity: MeasurementEntity,\n ): Promise<MeasurementOutcome | undefined> {\n if (this.debugLogs) {\n const deserializedEntity = ModelEntity.deserializeBinary(\n entity.modelEntity,\n );\n\n this.log(\n `Removing ModelEntity. [entityId={${deserializedEntity.getEntityId()}}, sceneItemId={${deserializedEntity.getSceneItemId()}}]`,\n );\n }\n\n return this.performMeasurement(() => this.model.removeEntity(entity));\n }\n\n /**\n * Registers a set of entities and performs a measurement\n *\n * @param entities The entities to measure.\n * @returns A promise that resolves with the results after registering these\n * entities.\n */\n public setEntities(\n entities: Set<MeasurementEntity>,\n ): Promise<MeasurementOutcome | undefined> {\n if (this.debugLogs) {\n const deserializedEntities = Array.from(entities).map((e) =>\n ModelEntity.deserializeBinary(e.modelEntity),\n );\n\n this.log(\n `Setting ${deserializedEntities.length} ModelEntities. [entityIds=[${deserializedEntities.map((e) => e.getEntityId()).join(', ')}], sceneItemIds=[${deserializedEntities.map((e) => e.getSceneItemId()).join(', ')}]]`,\n );\n }\n\n return this.performMeasurement(() => this.model.setEntities(entities));\n }\n\n public setDebugLogs(debugLogs: boolean): void {\n this.debugLogs = debugLogs;\n }\n\n private performMeasurement(\n effect: () => boolean,\n ): Promise<MeasurementOutcome | undefined> {\n const previous = this.model.getEntities();\n const changed = effect();\n const entities = this.model.getEntities();\n if (changed) {\n this.measureAndUpdateModel(entities);\n this.highlightEntities(previous, entities);\n }\n return this.outcome;\n }\n\n private measureAndUpdateModel(entities: MeasurementEntity[]): void {\n if (entities.length > 0) {\n this.outcome = this.measureEntities(entities).then((outcome) => {\n this.model.setOutcome(outcome);\n return this.model.getOutcome();\n });\n } else {\n this.outcome = Promise.resolve(undefined);\n }\n }\n\n private async measureEntities(\n entities: MeasurementEntity[],\n ): Promise<MeasurementOutcome | undefined> {\n if (entities.length > 0) {\n const res = await requestUnary<MeasureResponse>(async (handler) => {\n const meta = await createMetadata(this.jwtProvider, this.deviceId);\n const req = new MeasureRequest();\n req.setEntitiesList(entities.map((e) => e.toProto()));\n\n this.client.measure(req, meta, handler);\n });\n\n return mapMeasureResponseOrThrow(res.toObject());\n } else {\n return undefined;\n }\n }\n\n private async highlightEntities(\n previous: MeasurementEntity[],\n entities: MeasurementEntity[],\n ): Promise<void> {\n await requestUnary(async (handler) => {\n const meta = await createMetadata(this.jwtProvider, this.deviceId);\n\n const entitySet = new Set(entities);\n const newPrevious = previous.filter((e) => !entitySet.has(e));\n\n const clearEntities = newPrevious.map((e) => {\n const update = new ModelEntityUpdate();\n update.setModelEntity(ModelEntity.deserializeBinary(e.modelEntity));\n update.setHighlight(new BoolValue().setValue(false));\n return update;\n });\n const highlightEntities = entities.map((e) => {\n const update = new ModelEntityUpdate();\n update.setModelEntity(ModelEntity.deserializeBinary(e.modelEntity));\n update.setHighlight(new BoolValue().setValue(true));\n return update;\n });\n\n const req = new UpdateModelEntitiesRequest();\n req.setUpdatesList([...clearEntities, ...highlightEntities]);\n this.client.updateModelEntities(req, meta, handler);\n });\n }\n\n private log(message?: string, ...optionalParams: unknown[]): void {\n if (this.debugLogs) {\n console.debug(message, optionalParams);\n }\n }\n}\n","import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport { Vector3 } from '@vertexvis/geometry';\nimport { Vector3f } from '@vertexvis/scene-view-protos/core/protos/geometry_pb';\nimport { ModelEntity } from '@vertexvis/scene-view-protos/core/protos/model_entity_pb';\nimport { MeasureEntity } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { Mapper } from '@vertexvis/utils';\n\nimport { fromPbVector3f } from '../mappers';\n\nexport class MeasurementEntity {\n public constructor(\n public readonly point: Vector3.Vector3,\n public readonly modelEntity: Uint8Array,\n ) {}\n\n public static fromHit(\n hit: vertexvis.protobuf.stream.IHit,\n ): MeasurementEntity {\n if (hit.hitPoint != null && hit.modelEntity != null) {\n const hitPoint = Mapper.ifInvalidThrow(fromPbVector3f)(hit.hitPoint);\n const modelEntity = vertexvis.protobuf.core.ModelEntity.encode(\n hit.modelEntity,\n ).finish();\n return new MeasurementEntity(hitPoint, modelEntity);\n } else {\n throw new Error(\n 'Cannot create MeasurementEntity from Hit. Hit is missing hit point and model entity',\n );\n }\n }\n\n public toProto(): MeasureEntity {\n const entity = new MeasureEntity();\n\n const point = new Vector3f();\n point.setX(this.point.x);\n point.setY(this.point.y);\n point.setZ(this.point.z);\n entity.setPoint(point);\n\n const modelEntity = ModelEntity.deserializeBinary(this.modelEntity);\n entity.setModelEntity(modelEntity);\n\n return entity;\n }\n}\n"],"names":["ModelEntity","MeasureRequest","ModelEntityUpdate","BoolValue","UpdateModelEntitiesRequest","Mapper","MeasureEntity","Vector3f"],"mappings":"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"}
1
+ {"version":3,"file":"entities-zRken6VS.js","sources":["src/lib/measurement/controller.ts","src/lib/measurement/entities.ts"],"sourcesContent":["import { ModelEntity } from '@vertexvis/scene-view-protos/core/protos/model_entity_pb';\nimport {\n MeasureRequest,\n MeasureResponse,\n ModelEntityUpdate,\n UpdateModelEntitiesRequest,\n} from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { SceneViewAPIClient } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb_service';\nimport { BoolValue } from 'google-protobuf/google/protobuf/wrappers_pb';\n\nimport { createMetadata, JwtProvider, requestUnary } from '../grpc';\nimport { MeasurementEntity } from './entities';\nimport { mapMeasureResponseOrThrow } from './mapper';\nimport { MeasurementModel } from './model';\nimport { MeasurementOutcome } from './outcomes';\n\n/**\n * The `MeasurementController` is responsible for performing measurements of\n * registered entities, and updating the model with their measurement results.\n */\nexport class MeasurementController {\n private outcome = Promise.resolve<MeasurementOutcome | undefined>(undefined);\n private debugLogs = false;\n\n public constructor(\n private model: MeasurementModel,\n private client: SceneViewAPIClient,\n private jwtProvider: JwtProvider,\n private deviceId: string | undefined,\n ) {}\n\n /**\n * Registers an entity to measure and performs a measurement if this entity\n * has not been previously registered.\n *\n * @param entity The entity to measure.\n * @returns A promise that resolves with the results after registering this\n * entity.\n */\n public addEntity(\n entity: MeasurementEntity,\n ): Promise<MeasurementOutcome | undefined> {\n if (this.debugLogs) {\n const deserializedEntity = ModelEntity.deserializeBinary(\n entity.modelEntity,\n );\n\n this.log(\n `Adding ModelEntity. [entityId={${deserializedEntity.getEntityId()}}, sceneItemId={${deserializedEntity.getSceneItemId()}}]`,\n );\n }\n\n return this.performMeasurement(() => this.model.addEntity(entity));\n }\n\n /**\n * Clears all entities and returns a promise that resolves with an empty list\n * of measurement results.\n */\n public clearEntities(): Promise<MeasurementOutcome | undefined> {\n this.log('Clearing all ModelEntities.');\n\n return this.performMeasurement(() => {\n this.model.clearEntities();\n this.model.clearOutcome();\n return true;\n });\n }\n\n /**\n * Deregisters an entity and performs a measurement if this entity was\n * removed.\n *\n * @param entity The entity to remove.\n * @returns A promise that resolves with the results after removing this\n * entity.\n */\n public removeEntity(\n entity: MeasurementEntity,\n ): Promise<MeasurementOutcome | undefined> {\n if (this.debugLogs) {\n const deserializedEntity = ModelEntity.deserializeBinary(\n entity.modelEntity,\n );\n\n this.log(\n `Removing ModelEntity. [entityId={${deserializedEntity.getEntityId()}}, sceneItemId={${deserializedEntity.getSceneItemId()}}]`,\n );\n }\n\n return this.performMeasurement(() => this.model.removeEntity(entity));\n }\n\n /**\n * Registers a set of entities and performs a measurement\n *\n * @param entities The entities to measure.\n * @returns A promise that resolves with the results after registering these\n * entities.\n */\n public setEntities(\n entities: Set<MeasurementEntity>,\n ): Promise<MeasurementOutcome | undefined> {\n if (this.debugLogs) {\n const deserializedEntities = Array.from(entities).map((e) =>\n ModelEntity.deserializeBinary(e.modelEntity),\n );\n\n this.log(\n `Setting ${deserializedEntities.length} ModelEntities. [entityIds=[${deserializedEntities.map((e) => e.getEntityId()).join(', ')}], sceneItemIds=[${deserializedEntities.map((e) => e.getSceneItemId()).join(', ')}]]`,\n );\n }\n\n return this.performMeasurement(() => this.model.setEntities(entities));\n }\n\n public setDebugLogs(debugLogs: boolean): void {\n this.debugLogs = debugLogs;\n }\n\n private performMeasurement(\n effect: () => boolean,\n ): Promise<MeasurementOutcome | undefined> {\n const previous = this.model.getEntities();\n const changed = effect();\n const entities = this.model.getEntities();\n if (changed) {\n this.measureAndUpdateModel(entities);\n this.highlightEntities(previous, entities);\n }\n return this.outcome;\n }\n\n private measureAndUpdateModel(entities: MeasurementEntity[]): void {\n if (entities.length > 0) {\n this.outcome = this.measureEntities(entities).then((outcome) => {\n this.model.setOutcome(outcome);\n return this.model.getOutcome();\n });\n } else {\n this.outcome = Promise.resolve(undefined);\n }\n }\n\n private async measureEntities(\n entities: MeasurementEntity[],\n ): Promise<MeasurementOutcome | undefined> {\n if (entities.length > 0) {\n const res = await requestUnary<MeasureResponse>(async (handler) => {\n const meta = await createMetadata(this.jwtProvider, this.deviceId);\n const req = new MeasureRequest();\n req.setEntitiesList(entities.map((e) => e.toProto()));\n\n this.client.measure(req, meta, handler);\n });\n\n return mapMeasureResponseOrThrow(res.toObject());\n } else {\n return undefined;\n }\n }\n\n private async highlightEntities(\n previous: MeasurementEntity[],\n entities: MeasurementEntity[],\n ): Promise<void> {\n await requestUnary(async (handler) => {\n const meta = await createMetadata(this.jwtProvider, this.deviceId);\n\n const entitySet = new Set(entities);\n const newPrevious = previous.filter((e) => !entitySet.has(e));\n\n const clearEntities = newPrevious.map((e) => {\n const update = new ModelEntityUpdate();\n update.setModelEntity(ModelEntity.deserializeBinary(e.modelEntity));\n update.setHighlight(new BoolValue().setValue(false));\n return update;\n });\n const highlightEntities = entities.map((e) => {\n const update = new ModelEntityUpdate();\n update.setModelEntity(ModelEntity.deserializeBinary(e.modelEntity));\n update.setHighlight(new BoolValue().setValue(true));\n return update;\n });\n\n const req = new UpdateModelEntitiesRequest();\n req.setUpdatesList([...clearEntities, ...highlightEntities]);\n this.client.updateModelEntities(req, meta, handler);\n });\n }\n\n private log(message?: string, ...optionalParams: unknown[]): void {\n if (this.debugLogs) {\n console.debug(message, optionalParams);\n }\n }\n}\n","import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport { Vector3 } from '@vertexvis/geometry';\nimport { Vector3f } from '@vertexvis/scene-view-protos/core/protos/geometry_pb';\nimport { ModelEntity } from '@vertexvis/scene-view-protos/core/protos/model_entity_pb';\nimport { MeasureEntity } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { Mapper } from '@vertexvis/utils';\n\nimport { fromPbVector3f } from '../mappers';\n\nexport class MeasurementEntity {\n public constructor(\n public readonly point: Vector3.Vector3,\n public readonly modelEntity: Uint8Array,\n ) {}\n\n public static fromHit(\n hit: vertexvis.protobuf.stream.IHit,\n ): MeasurementEntity {\n if (hit.hitPoint != null && hit.modelEntity != null) {\n const hitPoint = Mapper.ifInvalidThrow(fromPbVector3f)(hit.hitPoint);\n const modelEntity = vertexvis.protobuf.core.ModelEntity.encode(\n hit.modelEntity,\n ).finish();\n return new MeasurementEntity(hitPoint, modelEntity);\n } else {\n throw new Error(\n 'Cannot create MeasurementEntity from Hit. Hit is missing hit point and model entity',\n );\n }\n }\n\n public toProto(): MeasureEntity {\n const entity = new MeasureEntity();\n\n const point = new Vector3f();\n point.setX(this.point.x);\n point.setY(this.point.y);\n point.setZ(this.point.z);\n entity.setPoint(point);\n\n const modelEntity = ModelEntity.deserializeBinary(this.modelEntity);\n entity.setModelEntity(modelEntity);\n\n return entity;\n }\n}\n"],"names":["ModelEntity","MeasureRequest","ModelEntityUpdate","BoolValue","UpdateModelEntitiesRequest","Mapper","MeasureEntity","Vector3f"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { e as requireModel_entity_pb, f as requireGeometry_pb } from './wrappers_pb-aFAwKqIf.js';
5
5
  import { m as mapper } from './bundle-DT9c7nCv.js';
6
- import { V as fromPbPlane, n as fromPbVector3f } from './streamAttributes-6asiWDkT.js';
6
+ import { V as fromPbPlane, n as fromPbVector3f } from './streamAttributes-Cp8PEH9A.js';
7
7
 
8
8
  var model_entity_pbExports = requireModel_entity_pb();
9
9
 
@@ -41,6 +41,6 @@ const mapMeasureResponseOrThrow = mapper.ifInvalidThrow(mapMeasureResponse);
41
41
  var geometry_pbExports = requireGeometry_pb();
42
42
 
43
43
  export { mapMeasureResponseOrThrow as a, geometry_pbExports as g, model_entity_pbExports as m };
44
- //# sourceMappingURL=geometry_pb-CMlgBITt.js.map
44
+ //# sourceMappingURL=geometry_pb-BiZRfctN.js.map
45
45
 
46
- //# sourceMappingURL=geometry_pb-CMlgBITt.js.map
46
+ //# sourceMappingURL=geometry_pb-BiZRfctN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"geometry_pb-CMlgBITt.js","sources":["src/lib/measurement/mapper.ts"],"sourcesContent":["import { Plane } from '@vertexvis/geometry';\nimport type {\n MeasurementResult as PbMeasurementResult,\n MinimumDistanceResult as PbMinimumDistanceResult,\n PlanarAngleResult as PbPlanarAngleResult,\n PlanarDistanceResult as PbPlanarDistanceResult,\n PlanePair as PbPlanePair,\n SurfaceAreaResult as PbSurfaceAreaResult,\n} from '@vertexvis/scene-view-protos/core/protos/measurement_pb';\nimport type { MeasureResponse as PbMeasureResponse } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { Mapper as M } from '@vertexvis/utils';\n\nimport { fromPbPlane, fromPbVector3f } from '../mappers';\nimport { MeasurementOutcome } from './outcomes';\nimport {\n MeasurementResult,\n MinimumDistanceMeasurementResult,\n PlanarAngleMeasurementResult,\n PlanarDistanceMeasurementResult,\n SurfaceAreaMeasurementResult,\n} from './results';\n\nconst mapPlanePair: M.Func<\n PbPlanePair.AsObject,\n { start: Plane.Plane; end: Plane.Plane }\n> = M.defineMapper(\n M.read(\n M.mapRequiredProp('start', fromPbPlane),\n M.mapRequiredProp('end', fromPbPlane),\n ),\n ([start, end]) => ({ start, end }),\n);\n\nconst mapPlanarDistance: M.Func<\n PbPlanarDistanceResult.AsObject,\n PlanarDistanceMeasurementResult\n> = M.defineMapper(\n M.read(\n M.getProp('distance'),\n M.mapRequiredProp(\n 'planes',\n M.compose(mapPlanePair, M.requiredProp('start')),\n ),\n M.mapRequiredProp('planes', M.compose(mapPlanePair, M.requiredProp('end'))),\n ),\n ([distance, plane1, plane2]) => ({\n type: 'planar-distance',\n distance,\n plane1,\n plane2,\n }),\n);\n\nconst mapPlanarAngle: M.Func<\n PbPlanarAngleResult.AsObject,\n PlanarAngleMeasurementResult\n> = M.defineMapper(\n M.read(\n M.getProp('angleInRadians'),\n M.mapRequiredProp(\n 'planes',\n M.compose(mapPlanePair, M.requiredProp('start')),\n ),\n M.mapRequiredProp('planes', M.compose(mapPlanePair, M.requiredProp('end'))),\n ),\n ([angle, plane1, plane2]) => ({\n type: 'planar-angle',\n angle,\n plane1,\n plane2,\n }),\n);\n\nconst mapMinimumDistance: M.Func<\n PbMinimumDistanceResult.AsObject,\n MinimumDistanceMeasurementResult\n> = M.defineMapper(\n M.read(\n M.getProp('distance'),\n M.mapRequiredProp('closestPoint1', fromPbVector3f),\n M.mapRequiredProp('closestPoint2', fromPbVector3f),\n ),\n ([distance, point1, point2]) => ({\n type: 'minimum-distance',\n distance,\n point1,\n point2,\n }),\n);\n\nconst mapSurfaceArea: M.Func<\n PbSurfaceAreaResult.AsObject,\n SurfaceAreaMeasurementResult\n> = M.defineMapper(M.read(M.getProp('area')), ([area]) => ({\n type: 'surface-area',\n area,\n}));\n\nconst mapPlanarDistanceFromResult: M.Func<\n PbMeasurementResult.AsObject,\n PlanarDistanceMeasurementResult | undefined | null\n> = M.mapProp('planarDistance', M.ifDefined(mapPlanarDistance));\n\nconst mapPlanarAngleFromResult: M.Func<\n PbMeasurementResult.AsObject,\n PlanarAngleMeasurementResult | undefined | null\n> = M.mapProp('planarAngle', M.ifDefined(mapPlanarAngle));\n\nconst mapMinimumDistanceFromResult: M.Func<\n PbMeasurementResult.AsObject,\n MinimumDistanceMeasurementResult | undefined | null\n> = M.mapProp('minimumDistance', M.ifDefined(mapMinimumDistance));\n\nconst mapSurfaceAreaFromResult: M.Func<\n PbMeasurementResult.AsObject,\n SurfaceAreaMeasurementResult | undefined | null\n> = M.mapProp('totalSurfaceArea', M.ifDefined(mapSurfaceArea));\n\nconst mapMeasurementResult: M.Func<\n PbMeasurementResult.AsObject,\n MeasurementResult\n> = M.compose(\n M.pickFirst(\n mapPlanarDistanceFromResult,\n mapPlanarAngleFromResult,\n mapMinimumDistanceFromResult,\n mapSurfaceAreaFromResult,\n ),\n M.required('Result field'),\n);\n\nexport const mapMeasureResponse: M.Func<\n PbMeasureResponse.AsObject,\n MeasurementOutcome\n> = M.defineMapper(\n M.read(\n M.mapRequiredProp(\n 'outcome',\n M.mapRequiredProp('resultsList', M.mapArray(mapMeasurementResult)),\n ),\n M.mapRequiredProp('outcome', M.getProp('isApproximate')),\n ),\n ([results, isApproximate]) => ({ results, isApproximate }),\n);\n\nexport const mapMeasureResponseOrThrow = M.ifInvalidThrow(mapMeasureResponse);\n"],"names":["M"],"mappings":"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"}
1
+ {"version":3,"file":"geometry_pb-BiZRfctN.js","sources":["src/lib/measurement/mapper.ts"],"sourcesContent":["import { Plane } from '@vertexvis/geometry';\nimport type {\n MeasurementResult as PbMeasurementResult,\n MinimumDistanceResult as PbMinimumDistanceResult,\n PlanarAngleResult as PbPlanarAngleResult,\n PlanarDistanceResult as PbPlanarDistanceResult,\n PlanePair as PbPlanePair,\n SurfaceAreaResult as PbSurfaceAreaResult,\n} from '@vertexvis/scene-view-protos/core/protos/measurement_pb';\nimport type { MeasureResponse as PbMeasureResponse } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { Mapper as M } from '@vertexvis/utils';\n\nimport { fromPbPlane, fromPbVector3f } from '../mappers';\nimport { MeasurementOutcome } from './outcomes';\nimport {\n MeasurementResult,\n MinimumDistanceMeasurementResult,\n PlanarAngleMeasurementResult,\n PlanarDistanceMeasurementResult,\n SurfaceAreaMeasurementResult,\n} from './results';\n\nconst mapPlanePair: M.Func<\n PbPlanePair.AsObject,\n { start: Plane.Plane; end: Plane.Plane }\n> = M.defineMapper(\n M.read(\n M.mapRequiredProp('start', fromPbPlane),\n M.mapRequiredProp('end', fromPbPlane),\n ),\n ([start, end]) => ({ start, end }),\n);\n\nconst mapPlanarDistance: M.Func<\n PbPlanarDistanceResult.AsObject,\n PlanarDistanceMeasurementResult\n> = M.defineMapper(\n M.read(\n M.getProp('distance'),\n M.mapRequiredProp(\n 'planes',\n M.compose(mapPlanePair, M.requiredProp('start')),\n ),\n M.mapRequiredProp('planes', M.compose(mapPlanePair, M.requiredProp('end'))),\n ),\n ([distance, plane1, plane2]) => ({\n type: 'planar-distance',\n distance,\n plane1,\n plane2,\n }),\n);\n\nconst mapPlanarAngle: M.Func<\n PbPlanarAngleResult.AsObject,\n PlanarAngleMeasurementResult\n> = M.defineMapper(\n M.read(\n M.getProp('angleInRadians'),\n M.mapRequiredProp(\n 'planes',\n M.compose(mapPlanePair, M.requiredProp('start')),\n ),\n M.mapRequiredProp('planes', M.compose(mapPlanePair, M.requiredProp('end'))),\n ),\n ([angle, plane1, plane2]) => ({\n type: 'planar-angle',\n angle,\n plane1,\n plane2,\n }),\n);\n\nconst mapMinimumDistance: M.Func<\n PbMinimumDistanceResult.AsObject,\n MinimumDistanceMeasurementResult\n> = M.defineMapper(\n M.read(\n M.getProp('distance'),\n M.mapRequiredProp('closestPoint1', fromPbVector3f),\n M.mapRequiredProp('closestPoint2', fromPbVector3f),\n ),\n ([distance, point1, point2]) => ({\n type: 'minimum-distance',\n distance,\n point1,\n point2,\n }),\n);\n\nconst mapSurfaceArea: M.Func<\n PbSurfaceAreaResult.AsObject,\n SurfaceAreaMeasurementResult\n> = M.defineMapper(M.read(M.getProp('area')), ([area]) => ({\n type: 'surface-area',\n area,\n}));\n\nconst mapPlanarDistanceFromResult: M.Func<\n PbMeasurementResult.AsObject,\n PlanarDistanceMeasurementResult | undefined | null\n> = M.mapProp('planarDistance', M.ifDefined(mapPlanarDistance));\n\nconst mapPlanarAngleFromResult: M.Func<\n PbMeasurementResult.AsObject,\n PlanarAngleMeasurementResult | undefined | null\n> = M.mapProp('planarAngle', M.ifDefined(mapPlanarAngle));\n\nconst mapMinimumDistanceFromResult: M.Func<\n PbMeasurementResult.AsObject,\n MinimumDistanceMeasurementResult | undefined | null\n> = M.mapProp('minimumDistance', M.ifDefined(mapMinimumDistance));\n\nconst mapSurfaceAreaFromResult: M.Func<\n PbMeasurementResult.AsObject,\n SurfaceAreaMeasurementResult | undefined | null\n> = M.mapProp('totalSurfaceArea', M.ifDefined(mapSurfaceArea));\n\nconst mapMeasurementResult: M.Func<\n PbMeasurementResult.AsObject,\n MeasurementResult\n> = M.compose(\n M.pickFirst(\n mapPlanarDistanceFromResult,\n mapPlanarAngleFromResult,\n mapMinimumDistanceFromResult,\n mapSurfaceAreaFromResult,\n ),\n M.required('Result field'),\n);\n\nexport const mapMeasureResponse: M.Func<\n PbMeasureResponse.AsObject,\n MeasurementOutcome\n> = M.defineMapper(\n M.read(\n M.mapRequiredProp(\n 'outcome',\n M.mapRequiredProp('resultsList', M.mapArray(mapMeasurementResult)),\n ),\n M.mapRequiredProp('outcome', M.getProp('isApproximate')),\n ),\n ([results, isApproximate]) => ({ results, isApproximate }),\n);\n\nexport const mapMeasureResponseOrThrow = M.ifInvalidThrow(mapMeasureResponse);\n"],"names":["M"],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -1,19 +1,19 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- export { C as Camera, c as ColorMaterial, a as CrossSectioner, I as ItemOperationBuilder, l as LoadableResource, M as ModelViewController, P as PmiAnnotationOperationsBuilder, b as PmiAnnotationsQueryExecutor, k as PmiController, R as Raycaster, d as RootQuery, S as Scene, e as SceneElementQueryExecutor, f as SceneElementsOperationExecutor, g as SceneItemOperationsBuilder, h as SceneItemQueryExecutor, i as SceneItemsOperationExecutor, s as SceneViewStateIdentifier, j as SynchronizedClock } from './queries-CgeSF7hf.js';
4
+ export { C as Camera, c as ColorMaterial, a as CrossSectioner, I as ItemOperationBuilder, l as LoadableResource, M as ModelViewController, P as PmiAnnotationOperationsBuilder, b as PmiAnnotationsQueryExecutor, k as PmiController, R as Raycaster, d as RootQuery, S as Scene, e as SceneElementQueryExecutor, f as SceneElementsOperationExecutor, g as SceneItemOperationsBuilder, h as SceneItemQueryExecutor, i as SceneItemsOperationExecutor, s as SceneViewStateIdentifier, j as SynchronizedClock } from './queries-DEzCmbTD.js';
5
5
  export { S as SceneTreeController } from './controller-BMWGs-I6.js';
6
6
  export { f as fromNodeProto, i as isLoadedRow } from './row-CiSHWNC4.js';
7
7
  export { S as SCENE_ITEM_NAME_METADATA_KEY } from './types-BZwvQkyb.js';
8
8
  export { C as CursorManager, b as boxQueryCursor, l as labelPinCursor, m as measurementCursor, a as measurementWithArrowCursor, p as pinCursor } from './cursors-BbBDEutb.js';
9
- export { M as MeasurementController, a as MeasurementEntity } from './entities-uAlr5vlE.js';
9
+ export { M as MeasurementController, a as MeasurementEntity } from './entities-zRken6VS.js';
10
10
  export { M as MeasurementModel } from './model-D0EJdHmW.js';
11
11
  export { M as MeasurementOverlayManager } from './overlays-BE1oqniA.js';
12
12
  export { m as makeMinimumDistanceResult } from './results-CFB6nKu8.js';
13
13
  import { v as vector3, q as quaternion, m as matrix4 } from './bundle-CkIzrpO0.js';
14
14
  export { T as TransformController } from './controller-Iymb_J2R.js';
15
15
  export { f as flattenPointArray, a as toDegreesTransform, e as toLocalTransform, b as toMatrix, t as toRadiansTransform, c as toTransform, d as toWorldTransform } from './util-BCZZYmp4.js';
16
- export { A as AngleUnits, g as AreaUnits, c as CrossSectioning, D as DistanceUnits, F as FrameCameraBase, O as Orientation, a as ReceivedFrame, b as ReceivedFrameImage, d as ReceivedFrameScene, e as ReceivedOrthographicCamera, f as ReceivedPerspectiveCamera, S as StandardView } from './streamAttributes-6asiWDkT.js';
16
+ export { A as AngleUnits, g as AreaUnits, c as CrossSectioning, D as DistanceUnits, F as FrameCameraBase, O as Orientation, a as ReceivedFrame, b as ReceivedFrameImage, d as ReceivedFrameScene, e as ReceivedOrthographicCamera, f as ReceivedPerspectiveCamera, S as StandardView } from './streamAttributes-Cp8PEH9A.js';
17
17
  export { E as EntityType } from './entities-BAhfr1Nx.js';
18
18
  export { A as ArrowMarkup, C as CircleMarkup, F as FreeformMarkup } from './markup-C8f4n2-x.js';
19
19
  export { V as Viewport } from './viewport-C8WQZxvx.js';
@@ -22,11 +22,11 @@ import './bundle-DT9c7nCv.js';
22
22
  import './_commonjsHelpers-CG9AChtV.js';
23
23
  import './errors-Cs13_LRq.js';
24
24
  import './wrappers_pb-Xw_x1jYm.js';
25
- import './representation_pb-BXvH1L33.js';
25
+ import './representation_pb-g4f0WC4k.js';
26
26
  import './wrappers_pb-aFAwKqIf.js';
27
27
  import './grpc-CZAYqbTu.js';
28
28
  import './bundle-BOQPDi0i.js';
29
- import './geometry_pb-CMlgBITt.js';
29
+ import './geometry_pb-BiZRfctN.js';
30
30
 
31
31
  const ALMOST_ONE = 0.9999;
32
32
  /**
@@ -1,19 +1,19 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- export { C as Camera, c as ColorMaterial, a as CrossSectioner, I as ItemOperationBuilder, l as LoadableResource, M as ModelViewController, P as PmiAnnotationOperationsBuilder, b as PmiAnnotationsQueryExecutor, k as PmiController, R as Raycaster, d as RootQuery, S as Scene, e as SceneElementQueryExecutor, f as SceneElementsOperationExecutor, g as SceneItemOperationsBuilder, h as SceneItemQueryExecutor, i as SceneItemsOperationExecutor, s as SceneViewStateIdentifier, j as SynchronizedClock } from './queries-CgeSF7hf.js';
4
+ export { C as Camera, c as ColorMaterial, a as CrossSectioner, I as ItemOperationBuilder, l as LoadableResource, M as ModelViewController, P as PmiAnnotationOperationsBuilder, b as PmiAnnotationsQueryExecutor, k as PmiController, R as Raycaster, d as RootQuery, S as Scene, e as SceneElementQueryExecutor, f as SceneElementsOperationExecutor, g as SceneItemOperationsBuilder, h as SceneItemQueryExecutor, i as SceneItemsOperationExecutor, s as SceneViewStateIdentifier, j as SynchronizedClock } from './queries-DEzCmbTD.js';
5
5
  export { S as SceneTreeController } from './controller-BMWGs-I6.js';
6
6
  export { f as fromNodeProto, i as isLoadedRow } from './row-CiSHWNC4.js';
7
7
  export { S as SCENE_ITEM_NAME_METADATA_KEY } from './types-BZwvQkyb.js';
8
8
  export { C as CursorManager, b as boxQueryCursor, l as labelPinCursor, m as measurementCursor, a as measurementWithArrowCursor, p as pinCursor } from './cursors-BbBDEutb.js';
9
- export { M as MeasurementController, a as MeasurementEntity } from './entities-uAlr5vlE.js';
9
+ export { M as MeasurementController, a as MeasurementEntity } from './entities-zRken6VS.js';
10
10
  export { M as MeasurementModel } from './model-D0EJdHmW.js';
11
11
  export { M as MeasurementOverlayManager } from './overlays-BE1oqniA.js';
12
12
  export { m as makeMinimumDistanceResult } from './results-CFB6nKu8.js';
13
13
  import { v as vector3, q as quaternion, m as matrix4 } from './bundle-CkIzrpO0.js';
14
14
  export { T as TransformController } from './controller-Iymb_J2R.js';
15
15
  export { f as flattenPointArray, a as toDegreesTransform, e as toLocalTransform, b as toMatrix, t as toRadiansTransform, c as toTransform, d as toWorldTransform } from './util-BCZZYmp4.js';
16
- export { A as AngleUnits, g as AreaUnits, c as CrossSectioning, D as DistanceUnits, F as FrameCameraBase, O as Orientation, a as ReceivedFrame, b as ReceivedFrameImage, d as ReceivedFrameScene, e as ReceivedOrthographicCamera, f as ReceivedPerspectiveCamera, S as StandardView } from './streamAttributes-6asiWDkT.js';
16
+ export { A as AngleUnits, g as AreaUnits, c as CrossSectioning, D as DistanceUnits, F as FrameCameraBase, O as Orientation, a as ReceivedFrame, b as ReceivedFrameImage, d as ReceivedFrameScene, e as ReceivedOrthographicCamera, f as ReceivedPerspectiveCamera, S as StandardView } from './streamAttributes-Cp8PEH9A.js';
17
17
  export { E as EntityType } from './entities-BAhfr1Nx.js';
18
18
  export { A as ArrowMarkup, C as CircleMarkup, F as FreeformMarkup } from './markup-C8f4n2-x.js';
19
19
  export { V as Viewport } from './viewport-C8WQZxvx.js';
@@ -22,11 +22,11 @@ import './bundle-DT9c7nCv.js';
22
22
  import './_commonjsHelpers-CG9AChtV.js';
23
23
  import './errors-Cs13_LRq.js';
24
24
  import './wrappers_pb-Xw_x1jYm.js';
25
- import './representation_pb-BXvH1L33.js';
25
+ import './representation_pb-g4f0WC4k.js';
26
26
  import './wrappers_pb-aFAwKqIf.js';
27
27
  import './grpc-CZAYqbTu.js';
28
28
  import './bundle-BOQPDi0i.js';
29
- import './geometry_pb-CMlgBITt.js';
29
+ import './geometry_pb-BiZRfctN.js';
30
30
 
31
31
  const ALMOST_ONE = 0.9999;
32
32
  /**
@@ -3157,120 +3157,120 @@ function requireDist () {
3157
3157
 
3158
3158
  var distExports = /*@__PURE__*/ requireDist();
3159
3159
 
3160
- var TerminateController = /** @class */ (function () {
3161
- function TerminateController() {
3162
- this.threads = [];
3163
- this.pools = [];
3164
- }
3165
- TerminateController.prototype.addThread = function (thread) {
3166
- this.threads.push(thread);
3167
- };
3168
- TerminateController.prototype.addPool = function (pool) {
3169
- this.pools.push(pool);
3170
- };
3171
- TerminateController.prototype.terminate = function () {
3172
- return __awaiter$5(this, arguments, void 0, function (force) {
3173
- if (force === void 0) { force = false; }
3174
- return __generator(this, function (_a) {
3175
- switch (_a.label) {
3176
- case 0: return [4 /*yield*/, Promise.all(__spreadArray(__spreadArray([], this.threads.map(function (t) { return distExports.Thread.terminate(t); }), true), this.pools.map(function (p) { return p.terminate(force); }), true))];
3177
- case 1:
3178
- _a.sent();
3179
- return [2 /*return*/];
3180
- }
3181
- });
3182
- });
3183
- };
3184
- return TerminateController;
3160
+ var TerminateController = /** @class */ (function () {
3161
+ function TerminateController() {
3162
+ this.threads = [];
3163
+ this.pools = [];
3164
+ }
3165
+ TerminateController.prototype.addThread = function (thread) {
3166
+ this.threads.push(thread);
3167
+ };
3168
+ TerminateController.prototype.addPool = function (pool) {
3169
+ this.pools.push(pool);
3170
+ };
3171
+ TerminateController.prototype.terminate = function (force) {
3172
+ if (force === void 0) { force = false; }
3173
+ return __awaiter$5(this, void 0, void 0, function () {
3174
+ return __generator(this, function (_a) {
3175
+ switch (_a.label) {
3176
+ case 0: return [4 /*yield*/, Promise.all(__spreadArray(__spreadArray([], this.threads.map(function (t) { return distExports.Thread.terminate(t); })), this.pools.map(function (p) { return p.terminate(force); })))];
3177
+ case 1:
3178
+ _a.sent();
3179
+ return [2 /*return*/];
3180
+ }
3181
+ });
3182
+ });
3183
+ };
3184
+ return TerminateController;
3185
3185
  }());
3186
3186
 
3187
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3188
- function getGlobal() {
3189
- if (typeof globalThis !== 'undefined') {
3190
- return globalThis;
3191
- }
3192
- else if (typeof self !== 'undefined') {
3193
- return self;
3194
- }
3195
- else if (typeof window !== 'undefined') {
3196
- return window;
3197
- }
3198
- else if (typeof global !== 'undefined') {
3199
- return global;
3200
- }
3201
- throw new Error('unable to locate global object');
3202
- }
3187
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3188
+ function getGlobal() {
3189
+ if (typeof globalThis !== 'undefined') {
3190
+ return globalThis;
3191
+ }
3192
+ else if (typeof self !== 'undefined') {
3193
+ return self;
3194
+ }
3195
+ else if (typeof window !== 'undefined') {
3196
+ return window;
3197
+ }
3198
+ else if (typeof global !== 'undefined') {
3199
+ return global;
3200
+ }
3201
+ throw new Error('unable to locate global object');
3202
+ }
3203
3203
  var globalThis$1 = getGlobal();
3204
3204
 
3205
- function instanceOf(obj, className) {
3206
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3207
- var Type = globalThis$1[className];
3208
- return Type != null && obj instanceof Type;
3209
- }
3210
- function isTransferable(obj) {
3211
- return (instanceOf(obj, 'ArrayBuffer') ||
3212
- instanceOf(obj, 'MessagePort') ||
3213
- instanceOf(obj, 'ImageBitmap') ||
3214
- instanceOf(obj, 'OffscreenCanvas'));
3215
- }
3216
- function isTypedArray(obj) {
3217
- return (instanceOf(obj, 'Int8Array') ||
3218
- instanceOf(obj, 'Uint8Array') ||
3219
- instanceOf(obj, 'Uint8ClampedArray') ||
3220
- instanceOf(obj, 'Int16Array') ||
3221
- instanceOf(obj, 'Uint16Array') ||
3222
- instanceOf(obj, 'Int32Array') ||
3223
- instanceOf(obj, 'Uint32Array') ||
3224
- instanceOf(obj, 'Float32Array') ||
3225
- instanceOf(obj, 'Float64Array') ||
3226
- instanceOf(obj, 'BigInt64Array') ||
3227
- instanceOf(obj, 'BigUint64Array'));
3228
- }
3229
- /**
3230
- * A function that will recursively inspect an object and return a Threads
3231
- * `Transfer` that contains all the `Transferable`s in the given object.
3232
- *
3233
- * @param obj The object to make transferable.
3234
- * @returns A `Transfer` from Threads.
3235
- */
3236
- function makeTransferable(obj) {
3237
- if (isTransferable(obj)) {
3238
- return distExports.Transfer(obj);
3239
- }
3240
- else if (obj != null && typeof obj === 'object') {
3241
- var transferables = findTransferables(obj);
3242
- return distExports.Transfer(obj, transferables);
3243
- }
3244
- else {
3245
- return obj;
3246
- }
3247
- }
3248
- function findTransferables(obj) {
3249
- if (isTransferable(obj)) {
3250
- return [obj];
3251
- }
3252
- else if (typeof obj === 'object') {
3253
- if (Array.isArray(obj)) {
3254
- var result_1 = [];
3255
- obj.forEach(function (o) { return result_1.push.apply(result_1, findTransferables(o)); });
3256
- return result_1;
3257
- }
3258
- else if (isTypedArray(obj)) {
3259
- return [obj.buffer];
3260
- }
3261
- else if (obj != null) {
3262
- return Object.values(obj).reduce(function (acc, value) {
3263
- acc.push.apply(acc, findTransferables(value));
3264
- return acc;
3265
- }, []);
3266
- }
3267
- else {
3268
- return [];
3269
- }
3270
- }
3271
- else {
3272
- return [];
3273
- }
3205
+ function instanceOf(obj, className) {
3206
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3207
+ var Type = globalThis$1[className];
3208
+ return Type != null && obj instanceof Type;
3209
+ }
3210
+ function isTransferable(obj) {
3211
+ return (instanceOf(obj, 'ArrayBuffer') ||
3212
+ instanceOf(obj, 'MessagePort') ||
3213
+ instanceOf(obj, 'ImageBitmap') ||
3214
+ instanceOf(obj, 'OffscreenCanvas'));
3215
+ }
3216
+ function isTypedArray(obj) {
3217
+ return (instanceOf(obj, 'Int8Array') ||
3218
+ instanceOf(obj, 'Uint8Array') ||
3219
+ instanceOf(obj, 'Uint8ClampedArray') ||
3220
+ instanceOf(obj, 'Int16Array') ||
3221
+ instanceOf(obj, 'Uint16Array') ||
3222
+ instanceOf(obj, 'Int32Array') ||
3223
+ instanceOf(obj, 'Uint32Array') ||
3224
+ instanceOf(obj, 'Float32Array') ||
3225
+ instanceOf(obj, 'Float64Array') ||
3226
+ instanceOf(obj, 'BigInt64Array') ||
3227
+ instanceOf(obj, 'BigUint64Array'));
3228
+ }
3229
+ /**
3230
+ * A function that will recursively inspect an object and return a Threads
3231
+ * `Transfer` that contains all the `Transferable`s in the given object.
3232
+ *
3233
+ * @param obj The object to make transferable.
3234
+ * @returns A `Transfer` from Threads.
3235
+ */
3236
+ function makeTransferable(obj) {
3237
+ if (isTransferable(obj)) {
3238
+ return distExports.Transfer(obj);
3239
+ }
3240
+ else if (obj != null && typeof obj === 'object') {
3241
+ var transferables = findTransferables(obj);
3242
+ return distExports.Transfer(obj, transferables);
3243
+ }
3244
+ else {
3245
+ return obj;
3246
+ }
3247
+ }
3248
+ function findTransferables(obj) {
3249
+ if (isTransferable(obj)) {
3250
+ return [obj];
3251
+ }
3252
+ else if (typeof obj === 'object') {
3253
+ if (Array.isArray(obj)) {
3254
+ var result_1 = [];
3255
+ obj.forEach(function (o) { return result_1.push.apply(result_1, findTransferables(o)); });
3256
+ return result_1;
3257
+ }
3258
+ else if (isTypedArray(obj)) {
3259
+ return [obj.buffer];
3260
+ }
3261
+ else if (obj != null) {
3262
+ return Object.values(obj).reduce(function (acc, value) {
3263
+ acc.push.apply(acc, findTransferables(value));
3264
+ return acc;
3265
+ }, []);
3266
+ }
3267
+ else {
3268
+ return [];
3269
+ }
3270
+ }
3271
+ else {
3272
+ return [];
3273
+ }
3274
3274
  }
3275
3275
 
3276
3276
  const workerName = "png-decoder-worker.js";
@@ -3300,6 +3300,6 @@ function spawnPool(options) {
3300
3300
  }
3301
3301
 
3302
3302
  export { makeController, makeWorker, spawnPool, spawnWorker };
3303
- //# sourceMappingURL=png-decoder-Bjioht9N.js.map
3303
+ //# sourceMappingURL=png-decoder-CiunTuhu.js.map
3304
3304
 
3305
- //# sourceMappingURL=png-decoder-Bjioht9N.js.map
3305
+ //# sourceMappingURL=png-decoder-CiunTuhu.js.map