@xeokit/xeokit-sdk 2.4.0-alpha-81 → 2.4.0-alpha-83
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.
- package/dist/xeokit-sdk.cjs.js +5 -1
- package/dist/xeokit-sdk.es.js +5 -1
- package/dist/xeokit-sdk.es5.js +1 -1
- package/dist/xeokit-sdk.min.cjs.js +1 -1
- package/dist/xeokit-sdk.min.es.js +1 -1
- package/dist/xeokit-sdk.min.es5.js +1 -1
- package/package.json +2 -1
- package/src/extras/ContextMenu/ContextMenu.js +907 -0
- package/src/extras/ContextMenu/index.js +1 -0
- package/src/extras/index.js +1 -0
- package/src/index.js +3 -0
- package/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +658 -0
- package/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +418 -0
- package/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +400 -0
- package/src/plugins/AngleMeasurementsPlugin/index.js +1 -0
- package/src/plugins/AnnotationsPlugin/Annotation.js +368 -0
- package/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +583 -0
- package/src/plugins/AnnotationsPlugin/index.js +1 -0
- package/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +333 -0
- package/src/plugins/AxisGizmoPlugin/index.js +1 -0
- package/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +955 -0
- package/src/plugins/BCFViewpointsPlugin/index.js +1 -0
- package/src/plugins/CityJSONLoaderPlugin/CityJSONDefaultDataSource.js +29 -0
- package/src/plugins/CityJSONLoaderPlugin/CityJSONLoaderPlugin.js +751 -0
- package/src/plugins/CityJSONLoaderPlugin/index.js +1 -0
- package/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +870 -0
- package/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +376 -0
- package/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +454 -0
- package/src/plugins/DistanceMeasurementsPlugin/index.js +1 -0
- package/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesControl.js +639 -0
- package/src/plugins/FaceAlignedSectionPlanesPlugin/FaceAlignedSectionPlanesPlugin.js +436 -0
- package/src/plugins/FaceAlignedSectionPlanesPlugin/Overview.js +247 -0
- package/src/plugins/FaceAlignedSectionPlanesPlugin/Plane.js +167 -0
- package/src/plugins/FaceAlignedSectionPlanesPlugin/index.js +1 -0
- package/src/plugins/FastNavPlugin/FastNavPlugin.js +429 -0
- package/src/plugins/FastNavPlugin/index.js +1 -0
- package/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +139 -0
- package/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +421 -0
- package/src/plugins/GLTFLoaderPlugin/GLTFSceneModelLoader.js +669 -0
- package/src/plugins/GLTFLoaderPlugin/index.js +2 -0
- package/src/plugins/LASLoaderPlugin/LASDefaultDataSource.js +58 -0
- package/src/plugins/LASLoaderPlugin/LASLoaderPlugin.js +518 -0
- package/src/plugins/LASLoaderPlugin/index.js +1 -0
- package/src/plugins/LASLoaderPlugin/loadLASHeader.js +183 -0
- package/src/plugins/NavCubePlugin/CubeTextureCanvas.js +289 -0
- package/src/plugins/NavCubePlugin/NavCubePlugin.js +752 -0
- package/src/plugins/NavCubePlugin/index.js +1 -0
- package/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +145 -0
- package/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +777 -0
- package/src/plugins/OBJLoaderPlugin/index.js +1 -0
- package/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +33 -0
- package/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +274 -0
- package/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +313 -0
- package/src/plugins/STLLoaderPlugin/index.js +2 -0
- package/src/plugins/SectionPlanesPlugin/Control.js +1328 -0
- package/src/plugins/SectionPlanesPlugin/Overview.js +249 -0
- package/src/plugins/SectionPlanesPlugin/Plane.js +169 -0
- package/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +404 -0
- package/src/plugins/SectionPlanesPlugin/index.js +1 -0
- package/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +134 -0
- package/src/plugins/SkyboxesPlugin/index.js +1 -0
- package/src/plugins/StoreyViewsPlugin/IFCStoreyPlanObjectStates.js +77 -0
- package/src/plugins/StoreyViewsPlugin/Storey.js +61 -0
- package/src/plugins/StoreyViewsPlugin/StoreyMap.js +57 -0
- package/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +825 -0
- package/src/plugins/StoreyViewsPlugin/index.js +1 -0
- package/src/plugins/TreeViewPlugin/TreeViewNode.js +97 -0
- package/src/plugins/TreeViewPlugin/TreeViewPlugin.js +1424 -0
- package/src/plugins/TreeViewPlugin/index.js +1 -0
- package/src/plugins/ViewCullPlugin/ViewCullPlugin.js +295 -0
- package/src/plugins/ViewCullPlugin/index.js +1 -0
- package/src/plugins/WebIFCLoaderPlugin/WebIFCDefaultDataSource.js +58 -0
- package/src/plugins/WebIFCLoaderPlugin/WebIFCLoaderPlugin.js +942 -0
- package/src/plugins/WebIFCLoaderPlugin/index.js +1 -0
- package/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +95 -0
- package/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +1107 -0
- package/src/plugins/XKTLoaderPlugin/index.js +2 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +169 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV10.js +656 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +230 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +223 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +283 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +246 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +301 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +439 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +563 -0
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV9.js +518 -0
- package/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +2 -0
- package/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +238 -0
- package/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +1279 -0
- package/src/plugins/XML3DLoaderPlugin/index.js +1 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +11 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +2060 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +2155 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +1002 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +64 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +153 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +267 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +553 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +991 -0
- package/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +49 -0
- package/src/plugins/index.js +21 -0
- package/src/plugins/lib/culling/ObjectCullStates.js +208 -0
- package/src/plugins/lib/earcut.js +677 -0
- package/src/plugins/lib/html/Dot.js +145 -0
- package/src/plugins/lib/html/Label.js +156 -0
- package/src/plugins/lib/html/Wire.js +191 -0
- package/src/viewer/Configs.js +79 -0
- package/src/viewer/Plugin.js +224 -0
- package/src/viewer/Viewer.js +535 -0
- package/src/viewer/index.js +5 -0
- package/src/viewer/localization/LocaleService.js +475 -0
- package/src/viewer/metadata/IFCObjectDefaultColors.js +162 -0
- package/src/viewer/metadata/IFCObjectDefaults.js +17 -0
- package/src/viewer/metadata/MetaModel.js +389 -0
- package/src/viewer/metadata/MetaObject.js +218 -0
- package/src/viewer/metadata/MetaScene.js +336 -0
- package/src/viewer/metadata/Property.js +55 -0
- package/src/viewer/metadata/PropertySet.js +77 -0
- package/src/viewer/scene/Bitmap/Bitmap.js +470 -0
- package/src/viewer/scene/Bitmap/index.js +1 -0
- package/src/viewer/scene/CameraControl/CameraControl.js +1737 -0
- package/src/viewer/scene/CameraControl/lib/CameraUpdater.js +312 -0
- package/src/viewer/scene/CameraControl/lib/controllers/PanController.js +112 -0
- package/src/viewer/scene/CameraControl/lib/controllers/PickController.js +264 -0
- package/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +384 -0
- package/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +122 -0
- package/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +183 -0
- package/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +68 -0
- package/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +345 -0
- package/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +372 -0
- package/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +269 -0
- package/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +235 -0
- package/src/viewer/scene/Component.js +907 -0
- package/src/viewer/scene/Entity.js +502 -0
- package/src/viewer/scene/ImagePlane/ImagePlane.js +570 -0
- package/src/viewer/scene/ImagePlane/index.js +1 -0
- package/src/viewer/scene/LineSet/LineSet.js +164 -0
- package/src/viewer/scene/LineSet/index.js +1 -0
- package/src/viewer/scene/camera/Camera.js +912 -0
- package/src/viewer/scene/camera/CameraFlightAnimation.js +669 -0
- package/src/viewer/scene/camera/CameraPath.js +194 -0
- package/src/viewer/scene/camera/CameraPathAnimation.js +326 -0
- package/src/viewer/scene/camera/CustomProjection.js +149 -0
- package/src/viewer/scene/camera/Frustum.js +316 -0
- package/src/viewer/scene/camera/Ortho.js +286 -0
- package/src/viewer/scene/camera/Perspective.js +304 -0
- package/src/viewer/scene/camera/index.js +2 -0
- package/src/viewer/scene/canvas/Canvas.js +492 -0
- package/src/viewer/scene/canvas/Spinner.js +323 -0
- package/src/viewer/scene/constants/constants.js +371 -0
- package/src/viewer/scene/core.js +233 -0
- package/src/viewer/scene/geometry/Geometry.js +33 -0
- package/src/viewer/scene/geometry/ReadableGeometry.js +682 -0
- package/src/viewer/scene/geometry/VBOGeometry.js +319 -0
- package/src/viewer/scene/geometry/builders/buildBoxGeometry.js +238 -0
- package/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +106 -0
- package/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +271 -0
- package/src/viewer/scene/geometry/builders/buildGridGeometry.js +102 -0
- package/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +168 -0
- package/src/viewer/scene/geometry/builders/buildSphereGeometry.js +161 -0
- package/src/viewer/scene/geometry/builders/buildTorusGeometry.js +172 -0
- package/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +1721 -0
- package/src/viewer/scene/geometry/builders/index.js +8 -0
- package/src/viewer/scene/geometry/index.js +4 -0
- package/src/viewer/scene/geometry/loaders/index.js +2 -0
- package/src/viewer/scene/geometry/loaders/load3DSGeometry.js +103 -0
- package/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +130 -0
- package/src/viewer/scene/index.js +23 -0
- package/src/viewer/scene/input/Input.js +1325 -0
- package/src/viewer/scene/libs/k3d.js +1032 -0
- package/src/viewer/scene/lights/AmbientLight.js +175 -0
- package/src/viewer/scene/lights/CubeTexture.js +156 -0
- package/src/viewer/scene/lights/DirLight.js +314 -0
- package/src/viewer/scene/lights/Light.js +29 -0
- package/src/viewer/scene/lights/LightMap.js +77 -0
- package/src/viewer/scene/lights/PointLight.js +395 -0
- package/src/viewer/scene/lights/ReflectionMap.js +79 -0
- package/src/viewer/scene/lights/Shadow.js +138 -0
- package/src/viewer/scene/lights/index.js +5 -0
- package/src/viewer/scene/lod/LOD.js +162 -0
- package/src/viewer/scene/lod/LODCullingManager.js +83 -0
- package/src/viewer/scene/lod/LODState.js +125 -0
- package/src/viewer/scene/lod/index.js +1 -0
- package/src/viewer/scene/marker/Marker.js +383 -0
- package/src/viewer/scene/marker/SpriteMarker.js +356 -0
- package/src/viewer/scene/marker/index.js +2 -0
- package/src/viewer/scene/materials/EdgeMaterial.js +359 -0
- package/src/viewer/scene/materials/EmphasisMaterial.js +613 -0
- package/src/viewer/scene/materials/Fresnel.js +222 -0
- package/src/viewer/scene/materials/LambertMaterial.js +378 -0
- package/src/viewer/scene/materials/LinesMaterial.js +169 -0
- package/src/viewer/scene/materials/Material.js +39 -0
- package/src/viewer/scene/materials/MetallicMaterial.js +820 -0
- package/src/viewer/scene/materials/PhongMaterial.js +860 -0
- package/src/viewer/scene/materials/PointsMaterial.js +409 -0
- package/src/viewer/scene/materials/SpecularMaterial.js +807 -0
- package/src/viewer/scene/materials/Texture.js +513 -0
- package/src/viewer/scene/materials/index.js +8 -0
- package/src/viewer/scene/math/Frustum.js +118 -0
- package/src/viewer/scene/math/buildEdgeIndices.js +162 -0
- package/src/viewer/scene/math/geometryCompressionUtils.js +365 -0
- package/src/viewer/scene/math/index.js +3 -0
- package/src/viewer/scene/math/math.js +5363 -0
- package/src/viewer/scene/math/rtcCoords.js +139 -0
- package/src/viewer/scene/mementos/CameraMemento.js +200 -0
- package/src/viewer/scene/mementos/ModelMemento.js +263 -0
- package/src/viewer/scene/mementos/ObjectsMemento.js +259 -0
- package/src/viewer/scene/mementos/index.js +3 -0
- package/src/viewer/scene/mesh/Mesh.js +2202 -0
- package/src/viewer/scene/mesh/draw/DrawRenderer.js +986 -0
- package/src/viewer/scene/mesh/draw/DrawShaderSource.js +1570 -0
- package/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +249 -0
- package/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +158 -0
- package/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +276 -0
- package/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +261 -0
- package/src/viewer/scene/mesh/index.js +1 -0
- package/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +207 -0
- package/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +156 -0
- package/src/viewer/scene/mesh/pick/PickMeshRenderer.js +210 -0
- package/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +142 -0
- package/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +186 -0
- package/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +116 -0
- package/src/viewer/scene/mesh/shadow/ShadowRenderer.js +214 -0
- package/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +98 -0
- package/src/viewer/scene/metriqs/Metriqs.js +259 -0
- package/src/viewer/scene/model/ENTITY_FLAGS.js +21 -0
- package/src/viewer/scene/model/PerformanceModel.js +26 -0
- package/src/viewer/scene/model/RENDER_PASSES.js +34 -0
- package/src/viewer/scene/model/SceneModel.js +3817 -0
- package/src/viewer/scene/model/SceneModelEntity.js +478 -0
- package/src/viewer/scene/model/SceneModelMesh.js +160 -0
- package/src/viewer/scene/model/SceneModelTexture.js +17 -0
- package/src/viewer/scene/model/SceneModelTextureSet.js +17 -0
- package/src/viewer/scene/model/VBOSceneModel.js +26 -0
- package/src/viewer/scene/model/compression.js +227 -0
- package/src/viewer/scene/model/dtx/triangles/BindableDataTexture.js +31 -0
- package/src/viewer/scene/model/dtx/triangles/DataTextureGenerator.js +631 -0
- package/src/viewer/scene/model/dtx/triangles/DataTextureState.js +288 -0
- package/src/viewer/scene/model/dtx/triangles/TrianglesDataTextureBuffer.js +31 -0
- package/src/viewer/scene/model/dtx/triangles/TrianglesDataTextureLayer.js +1329 -0
- package/src/viewer/scene/model/dtx/triangles/TrianglesDataTextureRenderers.js +278 -0
- package/src/viewer/scene/model/dtx/triangles/calculateUniquePositions.js +126 -0
- package/src/viewer/scene/model/dtx/triangles/dataTextureRamStats.js +54 -0
- package/src/viewer/scene/model/dtx/triangles/rebucketPositions.js +347 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureColorRenderer.js +633 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureDepthRenderer.js +475 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureEdgesColorRenderer.js +426 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureEdgesRenderer.js +430 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureNormalsRenderer.js +341 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureOcclusionRenderer.js +442 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickDepthRenderer.js +451 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickMeshRenderer.js +436 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickNormalsFlatRenderer.js +502 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTexturePickNormalsRenderer.js +430 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSilhouetteRenderer.js +469 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSnapDepthBufInitRenderer.js +451 -0
- package/src/viewer/scene/model/dtx/triangles/renderers/TrianglesDataTextureSnapDepthRenderer.js +424 -0
- package/src/viewer/scene/model/index.js +3 -0
- package/src/viewer/scene/model/vbo/ScratchMemory.js +63 -0
- package/src/viewer/scene/model/vbo/VBOSceneModelRenderers.js +805 -0
- package/src/viewer/scene/model/vbo/float16.js +760 -0
- package/src/viewer/scene/model/vbo/linesBatching/LinesBatchingBuffer.js +21 -0
- package/src/viewer/scene/model/vbo/linesBatching/LinesBatchingLayer.js +744 -0
- package/src/viewer/scene/model/vbo/linesBatching/LinesBatchingRenderers.js +71 -0
- package/src/viewer/scene/model/vbo/linesBatching/renderers/LinesBatchingColorRenderer.js +116 -0
- package/src/viewer/scene/model/vbo/linesBatching/renderers/LinesBatchingSilhouetteRenderer.js +126 -0
- package/src/viewer/scene/model/vbo/linesInstancing/LinesInstancingLayer.js +653 -0
- package/src/viewer/scene/model/vbo/linesInstancing/LinesInstancingRenderers.js +71 -0
- package/src/viewer/scene/model/vbo/linesInstancing/renderers/LinesInstancingColorRenderer.js +150 -0
- package/src/viewer/scene/model/vbo/linesInstancing/renderers/LinesInstancingSilhouetteRenderer.js +128 -0
- package/src/viewer/scene/model/vbo/pointsBatching/PointsBatchingBuffer.js +22 -0
- package/src/viewer/scene/model/vbo/pointsBatching/PointsBatchingLayer.js +753 -0
- package/src/viewer/scene/model/vbo/pointsBatching/PointsBatchingRenderers.js +116 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingColorRenderer.js +167 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingOcclusionRenderer.js +135 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingPickDepthRenderer.js +154 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingPickMeshRenderer.js +146 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingShadowRenderer.js +108 -0
- package/src/viewer/scene/model/vbo/pointsBatching/renderers/PointsBatchingSilhouetteRenderer.js +147 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/PointsInstancingLayer.js +684 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/PointsInstancingRenderers.js +146 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingColorRenderer.js +174 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingDepthRenderer.js +156 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingOcclusionRenderer.js +151 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingPickDepthRenderer.js +167 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingPickMeshRenderer.js +151 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingShadowRenderer.js +121 -0
- package/src/viewer/scene/model/vbo/pointsInstancing/renderers/PointsInstancingSilhouetteRenderer.js +156 -0
- package/src/viewer/scene/model/vbo/snapBatching/SnapBatchingDepthBufInitRenderer.js +351 -0
- package/src/viewer/scene/model/vbo/snapBatching/SnapBatchingDepthRenderer.js +365 -0
- package/src/viewer/scene/model/vbo/snapBatching/SnapBatchingRenderers.js +71 -0
- package/src/viewer/scene/model/vbo/snapInstancing/SnapInstancingDepthBufInitRenderer.js +381 -0
- package/src/viewer/scene/model/vbo/snapInstancing/SnapInstancingDepthRenderer.js +374 -0
- package/src/viewer/scene/model/vbo/snapInstancing/SnapInstancingRenderers.js +71 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/TrianglesBatchingBuffer.js +26 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/TrianglesBatchingLayer.js +1322 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/TrianglesBatchingRenderers.js +322 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingColorRenderer.js +240 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingColorTextureRenderer.js +271 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingDepthRenderer.js +127 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingEdgesColorRenderer.js +129 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingEdgesRenderer.js +134 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingFlatColorRenderer.js +237 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingNormalsRenderer.js +139 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingOcclusionRenderer.js +127 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPBRRenderer.js +563 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickDepthRenderer.js +143 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickMeshRenderer.js +130 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickNormalsFlatRenderer.js +119 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingPickNormalsRenderer.js +129 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingShadowRenderer.js +108 -0
- package/src/viewer/scene/model/vbo/trianglesBatching/renderers/TrianglesBatchingSilhouetteRenderer.js +137 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/TrianglesInstancingLayer.js +1167 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/TrianglesInstancingRenderers.js +322 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingColorRenderer.js +253 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingColorTextureRenderer.js +278 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingDepthRenderer.js +125 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingEdgesColorRenderer.js +131 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingEdgesRenderer.js +134 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingFlatColorRenderer.js +244 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingFlatNormalsRenderer.js +130 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingNormalsRenderer.js +140 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingOcclusionRenderer.js +130 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPBRRenderer.js +563 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickDepthRenderer.js +148 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickMeshRenderer.js +135 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickNormalsFlatRenderer.js +130 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingPickNormalsRenderer.js +144 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingShadowRenderer.js +113 -0
- package/src/viewer/scene/model/vbo/trianglesInstancing/renderers/TrianglesInstancingSilhouetteRenderer.js +141 -0
- package/src/viewer/scene/nodes/Node.js +1383 -0
- package/src/viewer/scene/nodes/index.js +1 -0
- package/src/viewer/scene/paths/CubicBezierCurve.js +194 -0
- package/src/viewer/scene/paths/Curve.js +183 -0
- package/src/viewer/scene/paths/Path.js +239 -0
- package/src/viewer/scene/paths/QuadraticBezierCurve.js +161 -0
- package/src/viewer/scene/paths/SplineCurve.js +133 -0
- package/src/viewer/scene/paths/index.js +5 -0
- package/src/viewer/scene/postfx/SAO.js +543 -0
- package/src/viewer/scene/scene/Scene.js +2627 -0
- package/src/viewer/scene/sectionPlane/SectionPlane.js +194 -0
- package/src/viewer/scene/sectionPlane/index.js +1 -0
- package/src/viewer/scene/skybox/Skybox.js +123 -0
- package/src/viewer/scene/skybox/index.js +1 -0
- package/src/viewer/scene/stats.js +44 -0
- package/src/viewer/scene/utils/Cache.js +29 -0
- package/src/viewer/scene/utils/FileLoader.js +160 -0
- package/src/viewer/scene/utils/Loader.js +55 -0
- package/src/viewer/scene/utils/LoadingManager.js +86 -0
- package/src/viewer/scene/utils/Map.js +45 -0
- package/src/viewer/scene/utils/Queue.js +56 -0
- package/src/viewer/scene/utils/WorkerPool.js +73 -0
- package/src/viewer/scene/utils/index.js +6 -0
- package/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/KTX2TextureTranscoder.js +650 -0
- package/src/viewer/scene/utils/textureTranscoders/KTX2TextureTranscoder/index.js +1 -0
- package/src/viewer/scene/utils/textureTranscoders/TextureTranscoder.js +31 -0
- package/src/viewer/scene/utils/textureTranscoders/index.js +2 -0
- package/src/viewer/scene/utils.js +452 -0
- package/src/viewer/scene/vfc/VFC.js +82 -0
- package/src/viewer/scene/vfc/VFCManager.js +54 -0
- package/src/viewer/scene/vfc/VFCState.js +391 -0
- package/src/viewer/scene/vfc/cluster-helper.js +134 -0
- package/src/viewer/scene/vfc/index.js +1 -0
- package/src/viewer/scene/vfc/rbush3d.js +848 -0
- package/src/viewer/scene/vfc/xeokit-cluster.js +418 -0
- package/src/viewer/scene/viewport/Viewport.js +212 -0
- package/src/viewer/scene/webgl/ArrayBuf.js +121 -0
- package/src/viewer/scene/webgl/Attribute.js +23 -0
- package/src/viewer/scene/webgl/Drawable.js +270 -0
- package/src/viewer/scene/webgl/FrameContext.js +313 -0
- package/src/viewer/scene/webgl/PickResult.js +339 -0
- package/src/viewer/scene/webgl/Pickable.js +69 -0
- package/src/viewer/scene/webgl/Program.js +181 -0
- package/src/viewer/scene/webgl/RenderBuffer.js +350 -0
- package/src/viewer/scene/webgl/RenderBufferManager.js +34 -0
- package/src/viewer/scene/webgl/RenderFlags.js +203 -0
- package/src/viewer/scene/webgl/RenderState.js +40 -0
- package/src/viewer/scene/webgl/Renderer.js +1654 -0
- package/src/viewer/scene/webgl/Sampler.js +18 -0
- package/src/viewer/scene/webgl/Shader.js +49 -0
- package/src/viewer/scene/webgl/Texture2D.js +442 -0
- package/src/viewer/scene/webgl/convertConstant.js +244 -0
- package/src/viewer/scene/webgl/getExtension.js +32 -0
- package/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +214 -0
- package/src/viewer/scene/webgl/occlusion/OcclusionTester.js +426 -0
- package/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +324 -0
- package/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +376 -0
- package/src/viewer/scene/webgl/webglEnums.js +61 -0
- package/src/viewer/scene/webglInfo.js +47 -0
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import {PropertySet} from "./PropertySet";
|
|
2
|
+
import {MetaObject} from "./MetaObject";
|
|
3
|
+
import {math} from "../scene";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @desc Metadata corresponding to an {@link Entity} that represents a model.
|
|
7
|
+
*
|
|
8
|
+
* An {@link Entity} represents a model when {@link Entity#isModel} is ````true````
|
|
9
|
+
*
|
|
10
|
+
* A MetaModel corresponds to an {@link Entity} by having the same {@link MetaModel#id} as the {@link Entity#id}.
|
|
11
|
+
*
|
|
12
|
+
* A MetaModel is created by {@link MetaScene#createMetaModel} and belongs to a {@link MetaScene}.
|
|
13
|
+
*
|
|
14
|
+
* Each MetaModel is registered by {@link MetaModel#id} in {@link MetaScene#metaModels}.
|
|
15
|
+
*
|
|
16
|
+
* A {@link MetaModel} represents its object structure with a tree of {@link MetaObject}s, with {@link MetaModel#rootMetaObject} referencing the root {@link MetaObject}.
|
|
17
|
+
*
|
|
18
|
+
* @class MetaModel
|
|
19
|
+
*/
|
|
20
|
+
class MetaModel {
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Creates a new, unfinalized MetaModel.
|
|
24
|
+
*
|
|
25
|
+
* * The MetaModel is immediately registered by {@link MetaModel#id} in {@link MetaScene#metaModels}, even though it's not yet populated.
|
|
26
|
+
* * The MetaModel then needs to be populated with one or more calls to {@link metaModel#loadData}.
|
|
27
|
+
* * As we populate it, the MetaModel will create {@link MetaObject}s and {@link PropertySet}s in itself, and in the MetaScene.
|
|
28
|
+
* * When populated, call {@link MetaModel#finalize} to finish it off, which causes MetaScene to fire a "metaModelCreated" event.
|
|
29
|
+
*/
|
|
30
|
+
constructor(params) {
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Globally-unique ID.
|
|
34
|
+
*
|
|
35
|
+
* MetaModels are registered by ID in {@link MetaScene#metaModels}.
|
|
36
|
+
*
|
|
37
|
+
* When this MetaModel corresponds to an {@link Entity} then this ID will match the {@link Entity#id}.
|
|
38
|
+
*
|
|
39
|
+
* @property id
|
|
40
|
+
* @type {String|Number}
|
|
41
|
+
*/
|
|
42
|
+
this.id = params.id;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The project ID
|
|
46
|
+
* @property projectId
|
|
47
|
+
* @type {String|Number}
|
|
48
|
+
*/
|
|
49
|
+
this.projectId = params.projectId;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* The revision ID, if available.
|
|
53
|
+
*
|
|
54
|
+
* Will be undefined if not available.
|
|
55
|
+
*
|
|
56
|
+
* @property revisionId
|
|
57
|
+
* @type {String|Number}
|
|
58
|
+
*/
|
|
59
|
+
this.revisionId = params.revisionId;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The model author, if available.
|
|
63
|
+
*
|
|
64
|
+
* Will be undefined if not available.
|
|
65
|
+
*
|
|
66
|
+
* @property author
|
|
67
|
+
* @type {String}
|
|
68
|
+
*/
|
|
69
|
+
this.author = params.author;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* The date the model was created, if available.
|
|
73
|
+
*
|
|
74
|
+
* Will be undefined if not available.
|
|
75
|
+
*
|
|
76
|
+
* @property createdAt
|
|
77
|
+
* @type {String}
|
|
78
|
+
*/
|
|
79
|
+
this.createdAt = params.createdAt;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The application that created the model, if available.
|
|
83
|
+
*
|
|
84
|
+
* Will be undefined if not available.
|
|
85
|
+
*
|
|
86
|
+
* @property creatingApplication
|
|
87
|
+
* @type {String}
|
|
88
|
+
*/
|
|
89
|
+
this.creatingApplication = params.creatingApplication;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* The model schema version, if available.
|
|
93
|
+
*
|
|
94
|
+
* Will be undefined if not available.
|
|
95
|
+
*
|
|
96
|
+
* @property schema
|
|
97
|
+
* @type {String}
|
|
98
|
+
*/
|
|
99
|
+
this.schema = params.schema;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Metadata on the {@link Scene}.
|
|
103
|
+
*
|
|
104
|
+
* @property metaScene
|
|
105
|
+
* @type {MetaScene}
|
|
106
|
+
*/
|
|
107
|
+
this.metaScene = params.metaScene;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* The {@link PropertySet}s in this MetaModel.
|
|
111
|
+
*
|
|
112
|
+
* @property propertySets
|
|
113
|
+
* @type {PropertySet[]}
|
|
114
|
+
*/
|
|
115
|
+
this.propertySets = [];
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* The root {@link MetaObject} in this MetaModel's composition structure hierarchy.
|
|
119
|
+
*
|
|
120
|
+
* @property rootMetaObject
|
|
121
|
+
* @type {MetaObject}
|
|
122
|
+
* @deprecated
|
|
123
|
+
*/
|
|
124
|
+
this.rootMetaObject = null;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* The root {@link MetaObject}s in this MetaModel's composition structure hierarchy.
|
|
128
|
+
*
|
|
129
|
+
* @property rootMetaObject
|
|
130
|
+
* @type {MetaObject[]}
|
|
131
|
+
*/
|
|
132
|
+
this.rootMetaObjects = [];
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* The {@link MetaObject}s in this MetaModel, each mapped to its ID.
|
|
136
|
+
*
|
|
137
|
+
* @property metaObjects
|
|
138
|
+
* @type {MetaObject[]}
|
|
139
|
+
*/
|
|
140
|
+
this.metaObjects = [];
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Connectivity graph.
|
|
144
|
+
* @type {{}}
|
|
145
|
+
*/
|
|
146
|
+
this.graph = params.graph || {};
|
|
147
|
+
|
|
148
|
+
this.metaScene.metaModels[this.id] = this;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* True when this MetaModel has been finalized.
|
|
152
|
+
* @type {boolean}
|
|
153
|
+
*/
|
|
154
|
+
this.finalized = false;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Load metamodel data into this MetaModel.
|
|
159
|
+
* @param metaModelData
|
|
160
|
+
*/
|
|
161
|
+
loadData(metaModelData, options = {}) {
|
|
162
|
+
|
|
163
|
+
if (this.finalized) {
|
|
164
|
+
throw "MetaScene already finalized - can't add more data";
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
this._globalizeIDs(metaModelData, options)
|
|
168
|
+
|
|
169
|
+
const metaScene = this.metaScene;
|
|
170
|
+
|
|
171
|
+
// Create global Property Sets
|
|
172
|
+
|
|
173
|
+
if (metaModelData.propertySets) {
|
|
174
|
+
for (let i = 0, len = metaModelData.propertySets.length; i < len; i++) {
|
|
175
|
+
const propertySetData = metaModelData.propertySets[i];
|
|
176
|
+
let propertySet = metaScene.propertySets[propertySetData.id];
|
|
177
|
+
if (!propertySet) {
|
|
178
|
+
propertySet = new PropertySet({
|
|
179
|
+
id: propertySetData.id,
|
|
180
|
+
originalSystemId: propertySetData.originalSystemId || propertySetData.id,
|
|
181
|
+
type: propertySetData.type,
|
|
182
|
+
name: propertySetData.name,
|
|
183
|
+
properties: propertySetData.properties
|
|
184
|
+
});
|
|
185
|
+
metaScene.propertySets[propertySet.id] = propertySet;
|
|
186
|
+
}
|
|
187
|
+
propertySet.metaModels.push(this);
|
|
188
|
+
this.propertySets.push(propertySet);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (metaModelData.metaObjects) {
|
|
193
|
+
for (let i = 0, len = metaModelData.metaObjects.length; i < len; i++) {
|
|
194
|
+
const metaObjectData = metaModelData.metaObjects[i];
|
|
195
|
+
const id = metaObjectData.id;
|
|
196
|
+
let metaObject = metaScene.metaObjects[id];
|
|
197
|
+
if (!metaObject) {
|
|
198
|
+
const type = metaObjectData.type;
|
|
199
|
+
const originalSystemId = metaObjectData.originalSystemId;
|
|
200
|
+
const propertySetIds = metaObjectData.propertySets || metaObjectData.propertySetIds;
|
|
201
|
+
metaObject = new MetaObject({
|
|
202
|
+
id,
|
|
203
|
+
originalSystemId,
|
|
204
|
+
parentId: metaObjectData.parent,
|
|
205
|
+
type,
|
|
206
|
+
name: metaObjectData.name,
|
|
207
|
+
attributes: metaObjectData.attributes,
|
|
208
|
+
propertySetIds
|
|
209
|
+
});
|
|
210
|
+
this.metaScene.metaObjects[id] = metaObject;
|
|
211
|
+
}
|
|
212
|
+
metaObject.metaModels.push(this);
|
|
213
|
+
if (!metaObjectData.parent) {
|
|
214
|
+
this.rootMetaObjects.push(metaObject);
|
|
215
|
+
metaScene.rootMetaObjects[id] = metaObject;
|
|
216
|
+
}
|
|
217
|
+
this.metaObjects.push(metaObject);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
finalize() {
|
|
223
|
+
|
|
224
|
+
if (this.finalized) {
|
|
225
|
+
throw "MetaScene already finalized - can't re-finalize";
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// Re-link MetaScene's entire MetaObject parent/child hierarchy
|
|
229
|
+
|
|
230
|
+
const metaScene = this.metaScene;
|
|
231
|
+
|
|
232
|
+
for (let objectId in metaScene.metaObjects) {
|
|
233
|
+
const metaObject = metaScene.metaObjects[objectId];
|
|
234
|
+
if (metaObject.children) {
|
|
235
|
+
metaObject.children = [];
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Re-link each MetaObject's property sets
|
|
239
|
+
|
|
240
|
+
if (metaObject.propertySets) {
|
|
241
|
+
metaObject.propertySets = [];
|
|
242
|
+
}
|
|
243
|
+
if (metaObject.propertySetIds) {
|
|
244
|
+
for (let i = 0, len = metaObject.propertySetIds.length; i < len; i++) {
|
|
245
|
+
const propertySetId = metaObject.propertySetIds[i];
|
|
246
|
+
const propertySet = metaScene.propertySets[propertySetId];
|
|
247
|
+
metaObject.propertySets.push(propertySet);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
for (let objectId in metaScene.metaObjects) {
|
|
253
|
+
const metaObject = metaScene.metaObjects[objectId];
|
|
254
|
+
if (metaObject.parentId) {
|
|
255
|
+
const parentMetaObject = metaScene.metaObjects[metaObject.parentId];
|
|
256
|
+
if (parentMetaObject) {
|
|
257
|
+
metaObject.parent = parentMetaObject;
|
|
258
|
+
(parentMetaObject.children || (parentMetaObject.children = [])).push(metaObject);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// Rebuild MetaScene's MetaObjects-by-type lookup
|
|
264
|
+
|
|
265
|
+
metaScene.metaObjectsByType = {};
|
|
266
|
+
for (let objectId in metaScene.metaObjects) {
|
|
267
|
+
const metaObject = metaScene.metaObjects[objectId];
|
|
268
|
+
const type = metaObject.type;
|
|
269
|
+
(metaScene.metaObjectsByType[type] || (metaScene.metaObjectsByType[type] = {}))[objectId] = metaObject;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
this.finalized = true;
|
|
273
|
+
|
|
274
|
+
this.metaScene.fire("metaModelCreated", this.id);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Gets this MetaModel as JSON.
|
|
279
|
+
* @returns {{schema: (String|string|*), createdAt: (String|string|*), metaObjects: *[], author: (String|string|*), id: (String|Number|string|number|*), creatingApplication: (String|string|*), projectId: (String|Number|string|number|*), propertySets: *[]}}
|
|
280
|
+
*/
|
|
281
|
+
getJSON() {
|
|
282
|
+
const json = {
|
|
283
|
+
id: this.id,
|
|
284
|
+
projectId: this.projectId,
|
|
285
|
+
author: this.author,
|
|
286
|
+
createdAt: this.createdAt,
|
|
287
|
+
schema: this.schema,
|
|
288
|
+
creatingApplication: this.creatingApplication,
|
|
289
|
+
metaObjects: [],
|
|
290
|
+
propertySets: []
|
|
291
|
+
};
|
|
292
|
+
for (let i = 0, len = this.metaObjects.length; i < len; i++) {
|
|
293
|
+
const metaObject = this.metaObjects[i];
|
|
294
|
+
const metaObjectCfg = {
|
|
295
|
+
id: metaObject.id,
|
|
296
|
+
originalSystemId: metaObject.originalSystemId,
|
|
297
|
+
extId: metaObject.extId,
|
|
298
|
+
type: metaObject.type,
|
|
299
|
+
name: metaObject.name
|
|
300
|
+
};
|
|
301
|
+
if (metaObject.parent) {
|
|
302
|
+
metaObjectCfg.parent = metaObject.parent.id;
|
|
303
|
+
}
|
|
304
|
+
if (metaObject.attributes) {
|
|
305
|
+
metaObjectCfg.attributes = metaObject.attributes;
|
|
306
|
+
}
|
|
307
|
+
if (metaObject.propertySetIds) {
|
|
308
|
+
metaObjectCfg.propertySetIds = metaObject.propertySetIds;
|
|
309
|
+
}
|
|
310
|
+
json.metaObjects.push(metaObjectCfg);
|
|
311
|
+
}
|
|
312
|
+
for (let i = 0, len = this.propertySets.length; i < len; i++) {
|
|
313
|
+
const propertySet = this.propertySets[i];
|
|
314
|
+
const propertySetCfg = {
|
|
315
|
+
id: propertySet.id,
|
|
316
|
+
originalSystemId: propertySet.originalSystemId,
|
|
317
|
+
extId: propertySet.extId,
|
|
318
|
+
type: propertySet.type,
|
|
319
|
+
name: propertySet.name,
|
|
320
|
+
propertyies: []
|
|
321
|
+
};
|
|
322
|
+
for (let j = 0, lenj = propertySet.properties.length; j < lenj; j++) {
|
|
323
|
+
const property = propertySet.properties[j];
|
|
324
|
+
const propertyCfg = {
|
|
325
|
+
id: property.id,
|
|
326
|
+
description: property.description,
|
|
327
|
+
type: property.type,
|
|
328
|
+
name: property.name,
|
|
329
|
+
value: property.value,
|
|
330
|
+
valueType: property.valueType
|
|
331
|
+
};
|
|
332
|
+
propertySetCfg.properties.push(propertyCfg);
|
|
333
|
+
}
|
|
334
|
+
json.propertySets.push(propertySetCfg);
|
|
335
|
+
}
|
|
336
|
+
return json;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
_globalizeIDs(metaModelData, options) {
|
|
340
|
+
|
|
341
|
+
const globalize = !!options.globalizeObjectIds;
|
|
342
|
+
|
|
343
|
+
if (metaModelData.metaObjects) {
|
|
344
|
+
for (let i = 0, len = metaModelData.metaObjects.length; i < len; i++) {
|
|
345
|
+
const metaObjectData = metaModelData.metaObjects[i];
|
|
346
|
+
|
|
347
|
+
// Globalize MetaObject IDs and parent IDs
|
|
348
|
+
|
|
349
|
+
metaObjectData.originalSystemId = metaObjectData.id;
|
|
350
|
+
metaObjectData.originalParentSystemId = metaObjectData.parent;
|
|
351
|
+
if (globalize) {
|
|
352
|
+
metaObjectData.id = math.globalizeObjectId(this.id, metaObjectData.id);
|
|
353
|
+
metaObjectData.parent = math.globalizeObjectId(this.id, metaObjectData.parent);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// Globalize MetaObject property set IDs
|
|
357
|
+
|
|
358
|
+
if (globalize) {
|
|
359
|
+
const propertySetIds = metaObjectData.propertySetIds;
|
|
360
|
+
if (propertySetIds) {
|
|
361
|
+
const propertySetGlobalIds = [];
|
|
362
|
+
for (let j = 0, lenj = propertySetIds.length; j < lenj; j++) {
|
|
363
|
+
propertySetGlobalIds.push(math.globalizeObjectId(this.id, propertySetIds[j]));
|
|
364
|
+
}
|
|
365
|
+
metaObjectData.propertySetIds = propertySetGlobalIds;
|
|
366
|
+
metaObjectData.originalSystemPropertySetIds = propertySetIds;
|
|
367
|
+
}
|
|
368
|
+
} else {
|
|
369
|
+
metaObjectData.originalSystemPropertySetIds = metaObjectData.propertySetIds;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// Globalize global PropertySet IDs
|
|
375
|
+
|
|
376
|
+
if (metaModelData.propertySets) {
|
|
377
|
+
for (let i = 0, len = metaModelData.propertySets.length; i < len; i++) {
|
|
378
|
+
const propertySet = metaModelData.propertySets[i];
|
|
379
|
+
propertySet.originalSystemId = propertySet.id;
|
|
380
|
+
if (globalize) {
|
|
381
|
+
propertySet.id = math.globalizeObjectId(mothis.id, propertySet.id);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
export {MetaModel};
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @desc Metadata corresponding to an {@link Entity} that represents an object.
|
|
3
|
+
*
|
|
4
|
+
* An {@link Entity} represents an object when {@link Entity#isObject} is ````true````
|
|
5
|
+
*
|
|
6
|
+
* A MetaObject corresponds to an {@link Entity} by having the same {@link MetaObject#id} as the {@link Entity#id}.
|
|
7
|
+
*
|
|
8
|
+
* A MetaObject is created within {@link MetaScene#createMetaModel} and belongs to a {@link MetaModel}.
|
|
9
|
+
*
|
|
10
|
+
* Each MetaObject is registered by {@link MetaObject#id} in {@link MetaScene#metaObjects}.
|
|
11
|
+
*
|
|
12
|
+
* A {@link MetaModel} represents its object structure with a tree of MetaObjects, with {@link MetaModel#rootMetaObject} referencing
|
|
13
|
+
* the root MetaObject.
|
|
14
|
+
*
|
|
15
|
+
* @class MetaObject
|
|
16
|
+
*/
|
|
17
|
+
class MetaObject {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
constructor(params) {
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Model metadata.
|
|
26
|
+
*
|
|
27
|
+
* @property metaModel
|
|
28
|
+
* @type {MetaModel}
|
|
29
|
+
* @deprecated
|
|
30
|
+
*/
|
|
31
|
+
this.metaModel = null;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The MetaModels that share this MetaObject.
|
|
35
|
+
* @type {MetaModel[]}
|
|
36
|
+
*/
|
|
37
|
+
this.metaModels = [];
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Globally-unique ID.
|
|
41
|
+
*
|
|
42
|
+
* MetaObject instances are registered by this ID in {@link MetaScene#metaObjects}.
|
|
43
|
+
*
|
|
44
|
+
* @property id
|
|
45
|
+
* @type {String|Number}
|
|
46
|
+
*/
|
|
47
|
+
this.id = params.id;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* ID of the parent MetaObject.
|
|
51
|
+
* @type {String|Number}
|
|
52
|
+
*/
|
|
53
|
+
this.parentId = params.parentId;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The parent MetaObject.
|
|
57
|
+
* @type {MetaObject | null}
|
|
58
|
+
*/
|
|
59
|
+
this.parent = null;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* ID of the corresponding object within the originating system, if any.
|
|
63
|
+
*
|
|
64
|
+
* @type {String}
|
|
65
|
+
* @abstract
|
|
66
|
+
*/
|
|
67
|
+
this.originalSystemId = params.originalSystemId;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Human-readable name.
|
|
71
|
+
*
|
|
72
|
+
* @property name
|
|
73
|
+
* @type {String}
|
|
74
|
+
*/
|
|
75
|
+
this.name = params.name;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Type - often an IFC product type.
|
|
79
|
+
*
|
|
80
|
+
* @property type
|
|
81
|
+
* @type {String}
|
|
82
|
+
*/
|
|
83
|
+
this.type = params.type;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* IDs of PropertySets associated with this MetaObject.
|
|
87
|
+
* @type {[]|*}
|
|
88
|
+
*/
|
|
89
|
+
this.propertySetIds = params.propertySetIds;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* The {@link PropertySet}s associated with this MetaObject.
|
|
93
|
+
*
|
|
94
|
+
* @property propertySets
|
|
95
|
+
* @type {PropertySet[]}
|
|
96
|
+
*/
|
|
97
|
+
this.propertySets = [];
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The attributes of this MetaObject.
|
|
101
|
+
* @type {{}}
|
|
102
|
+
*/
|
|
103
|
+
this.attributes = params.attributes || {};
|
|
104
|
+
|
|
105
|
+
// if (external !== undefined && external !== null) {
|
|
106
|
+
//
|
|
107
|
+
// /**
|
|
108
|
+
// * External application-specific metadata
|
|
109
|
+
// *
|
|
110
|
+
// * Undefined when there are is no external application-specific metadata.
|
|
111
|
+
// *
|
|
112
|
+
// * @property external
|
|
113
|
+
// * @type {*}
|
|
114
|
+
// */
|
|
115
|
+
// this.external = external;
|
|
116
|
+
// }
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Gets the {@link MetaObject#id}s of the {@link MetaObject}s within the subtree.
|
|
121
|
+
*
|
|
122
|
+
* @returns {String[]} Array of {@link MetaObject#id}s.
|
|
123
|
+
*/
|
|
124
|
+
getObjectIDsInSubtree() {
|
|
125
|
+
const objectIds = [];
|
|
126
|
+
|
|
127
|
+
function visit(metaObject) {
|
|
128
|
+
if (!metaObject) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
objectIds.push(metaObject.id);
|
|
132
|
+
const children = metaObject.children;
|
|
133
|
+
if (children) {
|
|
134
|
+
for (var i = 0, len = children.length; i < len; i++) {
|
|
135
|
+
visit(children[i]);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
visit(this);
|
|
141
|
+
return objectIds;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Iterates over the {@link MetaObject}s within the subtree.
|
|
147
|
+
*
|
|
148
|
+
* @param {Function} callback Callback fired at each {@link MetaObject}.
|
|
149
|
+
*/
|
|
150
|
+
withMetaObjectsInSubtree(callback) {
|
|
151
|
+
|
|
152
|
+
function visit(metaObject) {
|
|
153
|
+
if (!metaObject) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
callback(metaObject);
|
|
157
|
+
const children = metaObject.children;
|
|
158
|
+
if (children) {
|
|
159
|
+
for (var i = 0, len = children.length; i < len; i++) {
|
|
160
|
+
visit(children[i]);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
visit(this);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Gets the {@link MetaObject#id}s of the {@link MetaObject}s within the subtree that have the given {@link MetaObject#type}s.
|
|
170
|
+
*
|
|
171
|
+
* @param {String[]} types {@link MetaObject#type} values.
|
|
172
|
+
* @returns {String[]} Array of {@link MetaObject#id}s.
|
|
173
|
+
*/
|
|
174
|
+
getObjectIDsInSubtreeByType(types) {
|
|
175
|
+
const mask = {};
|
|
176
|
+
for (var i = 0, len = types.length; i < len; i++) {
|
|
177
|
+
mask[types[i]] = types[i];
|
|
178
|
+
}
|
|
179
|
+
const objectIds = [];
|
|
180
|
+
|
|
181
|
+
function visit(metaObject) {
|
|
182
|
+
if (!metaObject) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
if (mask[metaObject.type]) {
|
|
186
|
+
objectIds.push(metaObject.id);
|
|
187
|
+
}
|
|
188
|
+
const children = metaObject.children;
|
|
189
|
+
if (children) {
|
|
190
|
+
for (var i = 0, len = children.length; i < len; i++) {
|
|
191
|
+
visit(children[i]);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
visit(this);
|
|
197
|
+
return objectIds;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Returns properties of this MeteObject as JSON.
|
|
202
|
+
*
|
|
203
|
+
* @returns {{id: (String|Number), type: String, name: String, parent: (String|Number|Undefined)}}
|
|
204
|
+
*/
|
|
205
|
+
getJSON() {
|
|
206
|
+
var json = {
|
|
207
|
+
id: this.id,
|
|
208
|
+
type: this.type,
|
|
209
|
+
name: this.name
|
|
210
|
+
};
|
|
211
|
+
if (this.parent) {
|
|
212
|
+
json.parent = this.parent.id
|
|
213
|
+
}
|
|
214
|
+
return json;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export {MetaObject};
|