@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,400 @@
|
|
|
1
|
+
import {Plugin} from "../../viewer/Plugin.js";
|
|
2
|
+
import {AngleMeasurement} from "./AngleMeasurement.js";
|
|
3
|
+
import {AngleMeasurementsControl} from "./AngleMeasurementsControl.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* {@link Viewer} plugin for measuring angles.
|
|
7
|
+
*
|
|
8
|
+
* [<img src="https://user-images.githubusercontent.com/83100/63641903-61488180-c6b6-11e9-8e00-895b9d16dc4b.gif">](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)
|
|
9
|
+
*
|
|
10
|
+
* * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]
|
|
11
|
+
* * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]
|
|
12
|
+
*
|
|
13
|
+
* ## Overview
|
|
14
|
+
*
|
|
15
|
+
* * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given
|
|
16
|
+
* as three positions on the surface(s) of one or more {@link Entity}s.
|
|
17
|
+
* * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.
|
|
18
|
+
* * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.
|
|
19
|
+
* * Create AngleMeasurements interactively using the {@link AngleMeasurementsControl}, located at {@link AngleMeasurementsPlugin#control}.
|
|
20
|
+
* * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.
|
|
21
|
+
* * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.
|
|
22
|
+
* * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}
|
|
23
|
+
*
|
|
24
|
+
* ## Example 1: Creating AngleMeasurements Programmatically
|
|
25
|
+
*
|
|
26
|
+
* In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.
|
|
27
|
+
*
|
|
28
|
+
* Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space
|
|
29
|
+
* position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.
|
|
30
|
+
*
|
|
31
|
+
* [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]
|
|
32
|
+
*
|
|
33
|
+
* ````JavaScript
|
|
34
|
+
* import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from "xeokit-sdk.es.js";
|
|
35
|
+
*
|
|
36
|
+
* const viewer = new Viewer({
|
|
37
|
+
* canvasId: "myCanvas",
|
|
38
|
+
* transparent: true
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* viewer.scene.camera.eye = [-2.37, 18.97, -26.12];
|
|
42
|
+
* viewer.scene.camera.look = [10.97, 5.82, -11.22];
|
|
43
|
+
* viewer.scene.camera.up = [0.36, 0.83, 0.40];
|
|
44
|
+
*
|
|
45
|
+
* const xktLoader = new XKTLoaderPlugin(viewer);
|
|
46
|
+
*
|
|
47
|
+
* const angleMeasurements = new AngleMeasurementsPlugin(viewer);
|
|
48
|
+
*
|
|
49
|
+
* const model = xktLoader.load({
|
|
50
|
+
* src: "./models/xkt/duplex/duplex.xkt"
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* model.on("loaded", () => {
|
|
54
|
+
*
|
|
55
|
+
* const myMeasurement1 = angleMeasurements.createMeasurement({
|
|
56
|
+
* id: "myAngleMeasurement1",
|
|
57
|
+
* origin: {
|
|
58
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FLOH"],
|
|
59
|
+
* worldPos: [0.044, 5.998, 17.767]
|
|
60
|
+
* },
|
|
61
|
+
* corner: {
|
|
62
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FLOH"],
|
|
63
|
+
* worldPos: [0.044, 5.998, 17.767]
|
|
64
|
+
* },
|
|
65
|
+
* target: {
|
|
66
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FLOH"],
|
|
67
|
+
* worldPos: [4.738, 3.172, 17.768]
|
|
68
|
+
* },
|
|
69
|
+
* visible: true
|
|
70
|
+
* });
|
|
71
|
+
*
|
|
72
|
+
* const myMeasurement2 = angleMeasurements.createMeasurement({
|
|
73
|
+
* id: "myAngleMeasurement2",
|
|
74
|
+
* origin: {
|
|
75
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FNr2"],
|
|
76
|
+
* worldPos: [0.457, 2.532, 17.766]
|
|
77
|
+
* },
|
|
78
|
+
* corner: {
|
|
79
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FNr2"],
|
|
80
|
+
* worldPos: [0.457, 2.532, 17.766]
|
|
81
|
+
* },
|
|
82
|
+
* target: {
|
|
83
|
+
* entity: viewer.scene.objects["1CZILmCaHETO8tf3SgGEXu"],
|
|
84
|
+
* worldPos: [0.436, 0.001, 22.135]
|
|
85
|
+
* },
|
|
86
|
+
* visible: true
|
|
87
|
+
* });
|
|
88
|
+
* });
|
|
89
|
+
* ````
|
|
90
|
+
*
|
|
91
|
+
* ## Example 2: Creating AngleMeasurements Interactively
|
|
92
|
+
*
|
|
93
|
+
* In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.
|
|
94
|
+
*
|
|
95
|
+
* After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its
|
|
96
|
+
* origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after
|
|
97
|
+
* that will fix its target and complete the AngleMeasurement.
|
|
98
|
+
*
|
|
99
|
+
* The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing
|
|
100
|
+
* another AngleMeasurement, and so on, until deactivated again.
|
|
101
|
+
*
|
|
102
|
+
* [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]
|
|
103
|
+
*
|
|
104
|
+
* ````JavaScript
|
|
105
|
+
* import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from "xeokit-sdk.es.js";
|
|
106
|
+
*
|
|
107
|
+
* const viewer = new Viewer({
|
|
108
|
+
* canvasId: "myCanvas",
|
|
109
|
+
* transparent: true
|
|
110
|
+
* });
|
|
111
|
+
*
|
|
112
|
+
* viewer.scene.camera.eye = [-2.37, 18.97, -26.12];
|
|
113
|
+
* viewer.scene.camera.look = [10.97, 5.82, -11.22];
|
|
114
|
+
* viewer.scene.camera.up = [0.36, 0.83, 0.40];
|
|
115
|
+
*
|
|
116
|
+
* const xktLoader = new XKTLoaderPlugin(viewer);
|
|
117
|
+
*
|
|
118
|
+
* const angleMeasurements = new AngleMeasurementsPlugin(viewer);
|
|
119
|
+
*
|
|
120
|
+
* const model = xktLoader.load({
|
|
121
|
+
* src: "./models/xkt/duplex/duplex.xkt"
|
|
122
|
+
* });
|
|
123
|
+
*
|
|
124
|
+
* angleMeasurements.control.activate(); // <------------ Activate the AngleMeasurementsControl
|
|
125
|
+
* ````
|
|
126
|
+
*
|
|
127
|
+
* ## Example 4: Attaching Mouse Handlers
|
|
128
|
+
*
|
|
129
|
+
* In our fourth example, we'll attach even handlers to our plugin, to catch when the user
|
|
130
|
+
* hovers or right-clicks over our measurements.
|
|
131
|
+
*
|
|
132
|
+
* [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]
|
|
133
|
+
*
|
|
134
|
+
* ````javascript
|
|
135
|
+
* import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from "xeokit-sdk.es.js";
|
|
136
|
+
*
|
|
137
|
+
* const viewer = new Viewer({
|
|
138
|
+
* canvasId: "myCanvas",
|
|
139
|
+
* transparent: true
|
|
140
|
+
* });
|
|
141
|
+
*
|
|
142
|
+
* viewer.scene.camera.eye = [-2.37, 18.97, -26.12];
|
|
143
|
+
* viewer.scene.camera.look = [10.97, 5.82, -11.22];
|
|
144
|
+
* viewer.scene.camera.up = [0.36, 0.83, 0.40];
|
|
145
|
+
*
|
|
146
|
+
* const xktLoader = new XKTLoaderPlugin(viewer);
|
|
147
|
+
*
|
|
148
|
+
* const angleMeasurements = new AngleMeasurementsPlugin(viewer);
|
|
149
|
+
*
|
|
150
|
+
* angleMeasurements.on("mouseOver", (e) => {
|
|
151
|
+
* e.measurement.setHighlighted(true);
|
|
152
|
+
* });
|
|
153
|
+
*
|
|
154
|
+
* angleMeasurements.on("mouseLeave", (e) => {
|
|
155
|
+
* e.measurement.setHighlighted(false);
|
|
156
|
+
* });
|
|
157
|
+
*
|
|
158
|
+
* angleMeasurements.on("contextMenu", (e) => {
|
|
159
|
+
* // Show context menu
|
|
160
|
+
* e.event.preventDefault();
|
|
161
|
+
* });
|
|
162
|
+
*
|
|
163
|
+
* const model = xktLoader.load({
|
|
164
|
+
* src: "./models/xkt/duplex/duplex.xkt"
|
|
165
|
+
* });
|
|
166
|
+
*
|
|
167
|
+
* model.on("loaded", () => {
|
|
168
|
+
*
|
|
169
|
+
* angleMeasurementsPlugin.createMeasurement({
|
|
170
|
+
* id: "angleMeasurement1",
|
|
171
|
+
* origin: {
|
|
172
|
+
* entity: viewer.scene.objects["1CZILmCaHETO8tf3SgGEXu"],
|
|
173
|
+
* worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]
|
|
174
|
+
* },
|
|
175
|
+
* corner: {
|
|
176
|
+
* entity: viewer.scene.objects["1CZILmCaHETO8tf3SgGEXu"],
|
|
177
|
+
* worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]
|
|
178
|
+
* },
|
|
179
|
+
* target: {
|
|
180
|
+
* entity: viewer.scene.objects["1CZILmCaHETO8tf3SgGEXu"],
|
|
181
|
+
* worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]
|
|
182
|
+
* },
|
|
183
|
+
* visible: true
|
|
184
|
+
* });
|
|
185
|
+
*
|
|
186
|
+
* angleMeasurementsPlugin.createMeasurement({
|
|
187
|
+
* id: "angleMeasurement2",
|
|
188
|
+
* origin: {
|
|
189
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FNr2"],
|
|
190
|
+
* worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]
|
|
191
|
+
* },
|
|
192
|
+
* corner: {
|
|
193
|
+
* entity: viewer.scene.objects["2O2Fr$t4X7Zf8NOew3FNqI"],
|
|
194
|
+
* worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]
|
|
195
|
+
*
|
|
196
|
+
* },
|
|
197
|
+
* target: {
|
|
198
|
+
* entity: viewer.scene.objects["1s1jVhK8z0pgKYcr9jt7AB"],
|
|
199
|
+
* worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]
|
|
200
|
+
* },
|
|
201
|
+
* visible: true
|
|
202
|
+
* });
|
|
203
|
+
* });
|
|
204
|
+
* ````
|
|
205
|
+
*/
|
|
206
|
+
class AngleMeasurementsPlugin extends Plugin {
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* @constructor
|
|
210
|
+
* @param {Viewer} viewer The Viewer.
|
|
211
|
+
* @param {Object} [cfg] Plugin configuration.
|
|
212
|
+
* @param {String} [cfg.id="AngleMeasurements"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.
|
|
213
|
+
* @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.
|
|
214
|
+
* @param {string} [cfg.defaultColor=null] The default color of the dots, wire and label.
|
|
215
|
+
* @param {boolean} [cfg.defaultLabelsVisible=true] The default value of {@link AngleMeasurement.labelsVisible}.
|
|
216
|
+
* @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).
|
|
217
|
+
*/
|
|
218
|
+
constructor(viewer, cfg = {}) {
|
|
219
|
+
|
|
220
|
+
super("AngleMeasurements", viewer);
|
|
221
|
+
|
|
222
|
+
this._container = cfg.container || document.body;
|
|
223
|
+
|
|
224
|
+
this._control = new AngleMeasurementsControl(this);
|
|
225
|
+
|
|
226
|
+
this._measurements = {};
|
|
227
|
+
|
|
228
|
+
this.defaultColor = cfg.defaultColor !== undefined ? cfg.defaultColor : "#00BBFF";
|
|
229
|
+
this.defaultLabelsVisible = cfg.defaultLabelsVisible !== false;
|
|
230
|
+
this.zIndex = cfg.zIndex || 10000;
|
|
231
|
+
|
|
232
|
+
this._onMouseOver = (event, measurement) => {
|
|
233
|
+
this.fire("mouseOver", {
|
|
234
|
+
plugin: this,
|
|
235
|
+
angleMeasurement: measurement,
|
|
236
|
+
measurement,
|
|
237
|
+
event
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
this._onMouseLeave = (event, measurement) => {
|
|
242
|
+
this.fire("mouseLeave", {
|
|
243
|
+
plugin: this,
|
|
244
|
+
angleMeasurement: measurement,
|
|
245
|
+
measurement,
|
|
246
|
+
event
|
|
247
|
+
});
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
this._onContextMenu = (event, measurement) => {
|
|
251
|
+
this.fire("contextMenu", {
|
|
252
|
+
plugin: this,
|
|
253
|
+
angleMeasurement: measurement,
|
|
254
|
+
measurement,
|
|
255
|
+
event
|
|
256
|
+
});
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Gets the plugin's HTML container element, if any.
|
|
262
|
+
* @returns {*|HTMLElement|HTMLElement}
|
|
263
|
+
*/
|
|
264
|
+
getContainerElement() {
|
|
265
|
+
return this._container;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* @private
|
|
271
|
+
*/
|
|
272
|
+
send(name, value) {
|
|
273
|
+
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Gets the {@link AngleMeasurementsControl}, which creates {@link AngleMeasurement}s from user input.
|
|
278
|
+
*
|
|
279
|
+
* @type {AngleMeasurementsControl}
|
|
280
|
+
*/
|
|
281
|
+
get control() {
|
|
282
|
+
return this._control;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Gets the existing {@link AngleMeasurement}s, each mapped to its {@link AngleMeasurement#id}.
|
|
287
|
+
*
|
|
288
|
+
* @type {{String:AngleMeasurement}}
|
|
289
|
+
*/
|
|
290
|
+
get measurements() {
|
|
291
|
+
return this._measurements;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Creates an {@link AngleMeasurement}.
|
|
296
|
+
*
|
|
297
|
+
* The AngleMeasurement is then registered by {@link AngleMeasurement#id} in {@link AngleMeasurementsPlugin#measurements}.
|
|
298
|
+
*
|
|
299
|
+
* @param {Object} params {@link AngleMeasurement} configuration.
|
|
300
|
+
* @param {String} params.id Unique ID to assign to {@link AngleMeasurement#id}. The AngleMeasurement will be registered by this in {@link AngleMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.
|
|
301
|
+
* @param {Number[]} params.origin.worldPos Origin World-space 3D position.
|
|
302
|
+
* @param {Entity} params.origin.entity Origin Entity.
|
|
303
|
+
* @param {Number[]} params.corner.worldPos Corner World-space 3D position.
|
|
304
|
+
* @param {Entity} params.corner.entity Corner Entity.
|
|
305
|
+
* @param {Number[]} params.target.worldPos Target World-space 3D position.
|
|
306
|
+
* @param {Entity} params.target.entity Target Entity.
|
|
307
|
+
* @param {Boolean} [params.visible=true] Whether to initially show the {@link AngleMeasurement}.
|
|
308
|
+
* @returns {AngleMeasurement} The new {@link AngleMeasurement}.
|
|
309
|
+
*/
|
|
310
|
+
createMeasurement(params = {}) {
|
|
311
|
+
if (this.viewer.scene.components[params.id]) {
|
|
312
|
+
this.error("Viewer scene component with this ID already exists: " + params.id);
|
|
313
|
+
delete params.id;
|
|
314
|
+
}
|
|
315
|
+
const origin = params.origin;
|
|
316
|
+
const corner = params.corner;
|
|
317
|
+
const target = params.target;
|
|
318
|
+
const measurement = new AngleMeasurement(this, {
|
|
319
|
+
id: params.id,
|
|
320
|
+
plugin: this,
|
|
321
|
+
container: this._container,
|
|
322
|
+
origin: {
|
|
323
|
+
entity: origin.entity,
|
|
324
|
+
worldPos: origin.worldPos
|
|
325
|
+
},
|
|
326
|
+
corner: {
|
|
327
|
+
entity: corner.entity,
|
|
328
|
+
worldPos: corner.worldPos
|
|
329
|
+
},
|
|
330
|
+
target: {
|
|
331
|
+
entity: target.entity,
|
|
332
|
+
worldPos: target.worldPos
|
|
333
|
+
},
|
|
334
|
+
|
|
335
|
+
visible: params.visible,
|
|
336
|
+
originVisible: true,
|
|
337
|
+
originWireVisible: true,
|
|
338
|
+
cornerVisible: true,
|
|
339
|
+
targetWireVisible: true,
|
|
340
|
+
targetVisible: true,
|
|
341
|
+
onMouseOver: this._onMouseOver,
|
|
342
|
+
onMouseLeave: this._onMouseLeave,
|
|
343
|
+
onContextMenu: this._onContextMenu
|
|
344
|
+
});
|
|
345
|
+
this._measurements[measurement.id] = measurement;
|
|
346
|
+
measurement.on("destroyed", () => {
|
|
347
|
+
delete this._measurements[measurement.id];
|
|
348
|
+
});
|
|
349
|
+
this.fire("measurementCreated", measurement);
|
|
350
|
+
return measurement;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Destroys a {@link AngleMeasurement}.
|
|
355
|
+
*
|
|
356
|
+
* @param {String} id ID of AngleMeasurement to destroy.
|
|
357
|
+
*/
|
|
358
|
+
destroyMeasurement(id) {
|
|
359
|
+
const measurement = this._measurements[id];
|
|
360
|
+
if (!measurement) {
|
|
361
|
+
this.log("AngleMeasurement not found: " + id);
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
measurement.destroy();
|
|
365
|
+
this.fire("measurementDestroyed", measurement);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* Shows all or hides the angle label of each {@link AngleMeasurement}.
|
|
370
|
+
*
|
|
371
|
+
* @param {Boolean} labelsShown Whether or not to show the labels.
|
|
372
|
+
*/
|
|
373
|
+
setLabelsShown(labelsShown) {
|
|
374
|
+
for (const [key, measurement] of Object.entries(this.measurements)) {
|
|
375
|
+
measurement.labelShown = labelsShown;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Destroys all {@link AngleMeasurement}s.
|
|
381
|
+
*/
|
|
382
|
+
clear() {
|
|
383
|
+
const ids = Object.keys(this._measurements);
|
|
384
|
+
for (var i = 0, len = ids.length; i < len; i++) {
|
|
385
|
+
this.destroyMeasurement(ids[i]);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
/**
|
|
390
|
+
* Destroys this AngleMeasurementsPlugin.
|
|
391
|
+
*
|
|
392
|
+
* Destroys all {@link AngleMeasurement}s first.
|
|
393
|
+
*/
|
|
394
|
+
destroy() {
|
|
395
|
+
this.clear();
|
|
396
|
+
super.destroy();
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
export {AngleMeasurementsPlugin}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./AngleMeasurementsPlugin.js";
|