@xeokit/xeokit-sdk 2.4.0-alpha-81 → 2.4.0-alpha-82
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/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 +514 -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,336 @@
|
|
|
1
|
+
import {MetaModel} from "./MetaModel.js";
|
|
2
|
+
import {MetaObject} from "./MetaObject.js";
|
|
3
|
+
import {PropertySet} from "./PropertySet.js";
|
|
4
|
+
import {math} from "../scene/math/math.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @desc Metadata corresponding to a {@link Scene}.
|
|
8
|
+
*
|
|
9
|
+
* * Located in {@link Viewer#metaScene}.
|
|
10
|
+
* * Contains {@link MetaModel}s and {@link MetaObject}s.
|
|
11
|
+
* * [Scene graph example with metadata](http://xeokit.github.io/xeokit-sdk/examples/#sceneRepresentation_SceneGraph_metadata)
|
|
12
|
+
*/
|
|
13
|
+
class MetaScene {
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
constructor(viewer, scene) {
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The {@link Viewer}.
|
|
22
|
+
* @property viewer
|
|
23
|
+
* @type {Viewer}
|
|
24
|
+
*/
|
|
25
|
+
this.viewer = viewer;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The {@link Scene}.
|
|
29
|
+
* @property scene
|
|
30
|
+
* @type {Scene}
|
|
31
|
+
*/
|
|
32
|
+
this.scene = scene;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The {@link MetaModel}s belonging to this MetaScene, each mapped to its {@link MetaModel#modelId}.
|
|
36
|
+
*
|
|
37
|
+
* @type {{String:MetaModel}}
|
|
38
|
+
*/
|
|
39
|
+
this.metaModels = {};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The {@link PropertySet}s belonging to this MetaScene, each mapped to its {@link PropertySet#id}.
|
|
43
|
+
*
|
|
44
|
+
* @type {{String:PropertySet}}
|
|
45
|
+
*/
|
|
46
|
+
this.propertySets = {};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The {@link MetaObject}s belonging to this MetaScene, each mapped to its {@link MetaObject#id}.
|
|
50
|
+
*
|
|
51
|
+
* @type {{String:MetaObject}}
|
|
52
|
+
*/
|
|
53
|
+
this.metaObjects = {};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The {@link MetaObject}s belonging to this MetaScene, each mapped to its {@link MetaObject#type}.
|
|
57
|
+
*
|
|
58
|
+
* @type {{String:MetaObject}}
|
|
59
|
+
*/
|
|
60
|
+
this.metaObjectsByType = {};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The root {@link MetaObject}s belonging to this MetaScene, each mapped to its {@link MetaObject#id}.
|
|
64
|
+
*
|
|
65
|
+
* @type {{String:MetaObject}}
|
|
66
|
+
*/
|
|
67
|
+
this.rootMetaObjects = {};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Subscriptions to events sent with {@link fire}.
|
|
71
|
+
* @private
|
|
72
|
+
*/
|
|
73
|
+
this._eventSubs = {};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Subscribes to an event fired at this Viewer.
|
|
78
|
+
*
|
|
79
|
+
* @param {String} event The event
|
|
80
|
+
* @param {Function} callback Callback fired on the event
|
|
81
|
+
*/
|
|
82
|
+
on(event, callback) {
|
|
83
|
+
let subs = this._eventSubs[event];
|
|
84
|
+
if (!subs) {
|
|
85
|
+
subs = [];
|
|
86
|
+
this._eventSubs[event] = subs;
|
|
87
|
+
}
|
|
88
|
+
subs.push(callback);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Fires an event at this Viewer.
|
|
93
|
+
*
|
|
94
|
+
* @param {String} event Event name
|
|
95
|
+
* @param {Object} value Event parameters
|
|
96
|
+
*/
|
|
97
|
+
fire(event, value) {
|
|
98
|
+
const subs = this._eventSubs[event];
|
|
99
|
+
if (subs) {
|
|
100
|
+
for (let i = 0, len = subs.length; i < len; i++) {
|
|
101
|
+
subs[i](value);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Unsubscribes from an event fired at this Viewer.
|
|
108
|
+
* @param event
|
|
109
|
+
*/
|
|
110
|
+
off(event) { // TODO
|
|
111
|
+
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Creates a {@link MetaModel} in this MetaScene.
|
|
116
|
+
*
|
|
117
|
+
* The MetaModel will contain a hierarchy of {@link MetaObject}s, created from the
|
|
118
|
+
* meta objects in ````metaModelData````.
|
|
119
|
+
*
|
|
120
|
+
* The meta object hierarchy in ````metaModelData```` is expected to be non-cyclic, with a single root. If the meta
|
|
121
|
+
* objects are cyclic, then this method will log an error and attempt to recover by creating a dummy root MetaObject
|
|
122
|
+
* of type "Model" and connecting all other MetaObjects as its direct children. If the meta objects contain multiple
|
|
123
|
+
* roots, then this method similarly attempts to recover by creating a dummy root MetaObject of type "Model" and
|
|
124
|
+
* connecting all the root MetaObjects as its children.
|
|
125
|
+
*
|
|
126
|
+
* @param {String} modelId ID for the new {@link MetaModel}, which will have {@link MetaModel#id} set to this value.
|
|
127
|
+
* @param {Object} metaModelData Data for the {@link MetaModel}.
|
|
128
|
+
* @param {Object} [options] Options for creating the {@link MetaModel}.
|
|
129
|
+
* @param {Object} [options.includeTypes] When provided, only create {@link MetaObject}s with types in this list.
|
|
130
|
+
* @param {Object} [options.excludeTypes] When provided, never create {@link MetaObject}s with types in this list.
|
|
131
|
+
* @param {Boolean} [options.globalizeObjectIds=false] Whether to globalize each {@link MetaObject#id}. Set this ````true```` when you need to load multiple instances of the same meta model, to avoid ID clashes between the meta objects in the different instances.
|
|
132
|
+
* @returns {MetaModel} The new MetaModel.
|
|
133
|
+
*/
|
|
134
|
+
createMetaModel(modelId, metaModelData, options = {}) {
|
|
135
|
+
|
|
136
|
+
const metaModel = new MetaModel({ // Registers MetaModel in #metaModels
|
|
137
|
+
metaScene: this,
|
|
138
|
+
id: modelId,
|
|
139
|
+
projectId: metaModelData.projectId || "none",
|
|
140
|
+
revisionId: metaModelData.revisionId || "none",
|
|
141
|
+
author: metaModelData.author || "none",
|
|
142
|
+
createdAt: metaModelData.createdAt || "none",
|
|
143
|
+
creatingApplication: metaModelData.creatingApplication || "none",
|
|
144
|
+
schema: metaModelData.schema || "none",
|
|
145
|
+
propertySets: []
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
metaModel.loadData(metaModelData);
|
|
149
|
+
|
|
150
|
+
metaModel.finalize();
|
|
151
|
+
|
|
152
|
+
return metaModel;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Removes a {@link MetaModel} from this MetaScene.
|
|
157
|
+
*
|
|
158
|
+
* Fires a "metaModelDestroyed" event with the value of the {@link MetaModel#id}.
|
|
159
|
+
*
|
|
160
|
+
* @param {String} id ID of the target {@link MetaModel}.
|
|
161
|
+
*/
|
|
162
|
+
destroyMetaModel(id) {
|
|
163
|
+
|
|
164
|
+
const metaModel = this.metaModels[id];
|
|
165
|
+
if (!metaModel) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// Remove global PropertySets
|
|
170
|
+
|
|
171
|
+
if (metaModel.propertySets) {
|
|
172
|
+
for (let i = 0, len = metaModel.propertySets.length; i < len; i++) {
|
|
173
|
+
const propertySet = metaModel.propertySets[i];
|
|
174
|
+
if (propertySet.metaModels.length === 1) { // Property set owned by one model, delete
|
|
175
|
+
delete this.propertySets[propertySet.id];
|
|
176
|
+
} else {
|
|
177
|
+
const newMetaModels = [];
|
|
178
|
+
for (let j = 0, lenj = propertySet.metaModels.length; j < lenj; j++) {
|
|
179
|
+
if (propertySet.metaModels[j].id !== id) {
|
|
180
|
+
newMetaModels.push(propertySet.metaModels[j]);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
propertySet.metaModels = newMetaModels;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Remove MetaObjects
|
|
189
|
+
|
|
190
|
+
if (metaModel.metaObjects) {
|
|
191
|
+
for (let i = 0, len = metaModel.metaObjects.length; i < len; i++) {
|
|
192
|
+
const metaObject = metaModel.metaObjects[i];
|
|
193
|
+
const type = metaObject.type;
|
|
194
|
+
const id = metaObject.id;
|
|
195
|
+
if (metaObject.metaModels.length === 1) { // MetaObject owned by one model, delete
|
|
196
|
+
delete this.metaObjects[id];
|
|
197
|
+
if (!metaObject.parent) {
|
|
198
|
+
delete this.rootMetaObjects[id];
|
|
199
|
+
}
|
|
200
|
+
} else {
|
|
201
|
+
const newMetaModels = [];
|
|
202
|
+
const metaModelId = metaModel.id;
|
|
203
|
+
for (let j = 0, lenj = metaObject.metaModels.length; j < lenj; j++) {
|
|
204
|
+
if (metaObject.metaModels[j].id !== metaModelId) {
|
|
205
|
+
newMetaModels.push(metaObject.metaModels[j]);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
metaObject.metaModels = newMetaModels;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Re-link entire MetaObject parent/child hierarchy
|
|
214
|
+
|
|
215
|
+
for (let objectId in this.metaObjects) {
|
|
216
|
+
const metaObject = this.metaObjects[objectId];
|
|
217
|
+
if (metaObject.children) {
|
|
218
|
+
metaObject.children = [];
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Re-link each MetaObject's property sets
|
|
222
|
+
|
|
223
|
+
if (metaObject.propertySets) {
|
|
224
|
+
metaObject.propertySets = [];
|
|
225
|
+
}
|
|
226
|
+
if (metaObject.propertySetIds) {
|
|
227
|
+
for (let i = 0, len = metaObject.propertySetIds.length; i < len; i++) {
|
|
228
|
+
const propertySetId = metaObject.propertySetIds[i];
|
|
229
|
+
const propertySet = this.propertySets[propertySetId];
|
|
230
|
+
metaObject.propertySets.push(propertySet);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
this.metaObjectsByType = {};
|
|
236
|
+
|
|
237
|
+
for (let objectId in this.metaObjects) {
|
|
238
|
+
const metaObject = this.metaObjects[objectId];
|
|
239
|
+
const type = metaObject.type;
|
|
240
|
+
if (metaObject.children) {
|
|
241
|
+
metaObject.children = null;
|
|
242
|
+
}
|
|
243
|
+
(this.metaObjectsByType[type] || (this.metaObjectsByType[type] = {}))[objectId] = metaObject;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
for (let objectId in this.metaObjects) {
|
|
247
|
+
const metaObject = this.metaObjects[objectId];
|
|
248
|
+
if (metaObject.parentId) {
|
|
249
|
+
const parentMetaObject = this.metaObjects[metaObject.parentId];
|
|
250
|
+
if (parentMetaObject) {
|
|
251
|
+
metaObject.parent = parentMetaObject;
|
|
252
|
+
(parentMetaObject.children || (parentMetaObject.children = [])).push(metaObject);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
delete this.metaModels[id];
|
|
258
|
+
|
|
259
|
+
this.fire("metaModelDestroyed", id);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Gets the {@link MetaObject#id}s of the {@link MetaObject}s that have the given {@link MetaObject#type}.
|
|
264
|
+
*
|
|
265
|
+
* @param {String} type The type.
|
|
266
|
+
* @returns {String[]} Array of {@link MetaObject#id}s.
|
|
267
|
+
*/
|
|
268
|
+
getObjectIDsByType(type) {
|
|
269
|
+
const metaObjects = this.metaObjectsByType[type];
|
|
270
|
+
return metaObjects ? Object.keys(metaObjects) : [];
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Gets the {@link MetaObject#id}s of the {@link MetaObject}s within the given subtree.
|
|
275
|
+
*
|
|
276
|
+
* @param {String} id ID of the root {@link MetaObject} of the given subtree.
|
|
277
|
+
* @param {String[]} [includeTypes] Optional list of types to include.
|
|
278
|
+
* @param {String[]} [excludeTypes] Optional list of types to exclude.
|
|
279
|
+
* @returns {String[]} Array of {@link MetaObject#id}s.
|
|
280
|
+
*/
|
|
281
|
+
getObjectIDsInSubtree(id, includeTypes, excludeTypes) {
|
|
282
|
+
|
|
283
|
+
const list = [];
|
|
284
|
+
const metaObject = this.metaObjects[id];
|
|
285
|
+
const includeMask = (includeTypes && includeTypes.length > 0) ? arrayToMap(includeTypes) : null;
|
|
286
|
+
const excludeMask = (excludeTypes && excludeTypes.length > 0) ? arrayToMap(excludeTypes) : null;
|
|
287
|
+
|
|
288
|
+
const visit = (metaObject) => {
|
|
289
|
+
if (!metaObject) {
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
var include = true;
|
|
293
|
+
if (excludeMask && excludeMask[metaObject.type]) {
|
|
294
|
+
include = false;
|
|
295
|
+
} else if (includeMask && (!includeMask[metaObject.type])) {
|
|
296
|
+
include = false;
|
|
297
|
+
}
|
|
298
|
+
if (include) {
|
|
299
|
+
list.push(metaObject.id);
|
|
300
|
+
}
|
|
301
|
+
const children = metaObject.children;
|
|
302
|
+
if (children) {
|
|
303
|
+
for (var i = 0, len = children.length; i < len; i++) {
|
|
304
|
+
visit(children[i]);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
visit(metaObject);
|
|
310
|
+
return list;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Iterates over the {@link MetaObject}s within the subtree.
|
|
315
|
+
*
|
|
316
|
+
* @param {String} id ID of root {@link MetaObject}.
|
|
317
|
+
* @param {Function} callback Callback fired at each {@link MetaObject}.
|
|
318
|
+
*/
|
|
319
|
+
withMetaObjectsInSubtree(id, callback) {
|
|
320
|
+
const metaObject = this.metaObjects[id];
|
|
321
|
+
if (!metaObject) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
metaObject.withMetaObjectsInSubtree(callback);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
function arrayToMap(array) {
|
|
329
|
+
const map = {};
|
|
330
|
+
for (var i = 0, len = array.length; i < len; i++) {
|
|
331
|
+
map[array[i]] = true;
|
|
332
|
+
}
|
|
333
|
+
return map;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
export {MetaScene};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @desc A property within a {@link PropertySet}.
|
|
3
|
+
*
|
|
4
|
+
* @class Property
|
|
5
|
+
*/
|
|
6
|
+
class Property {
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
constructor(name, value, type, valueType, description) {
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The name of this property.
|
|
15
|
+
*
|
|
16
|
+
* @property name
|
|
17
|
+
* @type {String}
|
|
18
|
+
*/
|
|
19
|
+
this.name = name;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The type of this property.
|
|
23
|
+
*
|
|
24
|
+
* @property type
|
|
25
|
+
* @type {Number|String}
|
|
26
|
+
*/
|
|
27
|
+
this.type = type
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The value of this property.
|
|
31
|
+
*
|
|
32
|
+
* @property value
|
|
33
|
+
* @type {*}
|
|
34
|
+
*/
|
|
35
|
+
this.value = value
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The type of this property's value.
|
|
39
|
+
*
|
|
40
|
+
* @property valueType
|
|
41
|
+
* @type {Number|String}
|
|
42
|
+
*/
|
|
43
|
+
this.valueType = valueType;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Informative text to explain the property.
|
|
47
|
+
*
|
|
48
|
+
* @property name
|
|
49
|
+
* @type {String}
|
|
50
|
+
*/
|
|
51
|
+
this.description = description;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export {Property};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import {Property} from "./Property.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @desc A set of properties associated with one or more {@link MetaObject}s.
|
|
5
|
+
*
|
|
6
|
+
* A PropertySet is created within {@link MetaScene#createMetaModel} and belongs to a {@link MetaModel}.
|
|
7
|
+
*
|
|
8
|
+
* Each PropertySet is registered by {@link PropertySet#id} in {@link MetaScene#propertySets} and {@link MetaModel#propertySets}.
|
|
9
|
+
*
|
|
10
|
+
* @class PropertySet
|
|
11
|
+
*/
|
|
12
|
+
class PropertySet {
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
constructor(params) {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Globally-unique ID for this PropertySet.
|
|
21
|
+
*
|
|
22
|
+
* PropertySet instances are registered by this ID in {@link MetaScene#propertySets} and {@link MetaModel#propertySets}.
|
|
23
|
+
*
|
|
24
|
+
* @property id
|
|
25
|
+
* @type {String}
|
|
26
|
+
*/
|
|
27
|
+
this.id = params.id;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* ID of the corresponding object within the originating system, if any.
|
|
31
|
+
*
|
|
32
|
+
* @type {String}
|
|
33
|
+
* @abstract
|
|
34
|
+
*/
|
|
35
|
+
this.originalSystemId = params.originalSystemId;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The MetaModels that share this PropertySet.
|
|
39
|
+
* @type {MetaModel[]}
|
|
40
|
+
*/
|
|
41
|
+
this.metaModels = [];
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Human-readable name of this PropertySet.
|
|
45
|
+
*
|
|
46
|
+
* @property name
|
|
47
|
+
* @type {String}
|
|
48
|
+
*/
|
|
49
|
+
this.name = params.name;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Type of this PropertySet.
|
|
53
|
+
*
|
|
54
|
+
* @property type
|
|
55
|
+
* @type {String}
|
|
56
|
+
*/
|
|
57
|
+
this.type = params.type;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Properties within this PropertySet.
|
|
61
|
+
*
|
|
62
|
+
* @property properties
|
|
63
|
+
* @type {Property[]}
|
|
64
|
+
*/
|
|
65
|
+
this.properties = [];
|
|
66
|
+
|
|
67
|
+
if (params.properties) {
|
|
68
|
+
const properties = params.properties;
|
|
69
|
+
for (let i = 0, len = properties.length; i < len; i++) {
|
|
70
|
+
const property = properties[i];
|
|
71
|
+
this.properties.push(new Property(property.name, property.value, property.type, property.valueType, property.description));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export {PropertySet};
|