csyjk 1.1.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- package/.babelrc +7 -0
- package/.idea/modules.xml +8 -0
- package/.idea/xx.iml +12 -0
- package/dist/app.js +43 -0
- package/{index.html → dist/index.html} +0 -0
- package/{style.css → dist/style.css} +1 -1
- package/package.json +40 -5
- package/public/gltf.js +2241 -0
- package/public/index.html +10 -0
- package/src/index.js +3 -0
- package/src/lib/gltf/assets/check.jpg +0 -0
- package/src/lib/gltf/assets/iconfont/iconfont.css +358 -0
- package/src/lib/gltf/assets/iconfont/iconfont.eot +0 -0
- package/src/lib/gltf/assets/iconfont/iconfont.js +1 -0
- package/src/lib/gltf/assets/iconfont/iconfont.json +604 -0
- package/src/lib/gltf/assets/iconfont/iconfont.svg +189 -0
- package/src/lib/gltf/assets/iconfont/iconfont.ttf +0 -0
- package/src/lib/gltf/assets/iconfont/iconfont.woff +0 -0
- package/src/lib/gltf/assets/iconfont/iconfont.woff2 +0 -0
- package/src/lib/gltf/assets/yjkkit-sdk/index.js +0 -0
- package/src/lib/gltf/assets/yjkkit-sdk/package.json +15 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/ContextMenu.js +863 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/extras/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/index.js +3 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +462 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +279 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +262 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/Annotation.js +362 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +575 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +333 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +777 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +525 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +242 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +297 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/FastNavPlugin.js +345 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +122 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +462 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFPerformanceModelLoader.js +508 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFSceneGraphLoader.js +922 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/index.js +2 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/CubeTextureCanvas.js +273 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/NavCubePlugin.js +687 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +145 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +777 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +33 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +273 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +313 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/index.js +2 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Control.js +1328 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Overview.js +249 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Plane.js +169 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +403 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +134 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/IFCStoreyPlanObjectStates.js +77 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/Storey.js +61 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyMap.js +57 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +822 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/ModelTreeView.js +888 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewNode.js +88 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewPlugin.js +624 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/modelValidation.js +87 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/ViewCullPlugin.js +295 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +78 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +847 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/index.js +2 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +167 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +228 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +220 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +279 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +244 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +301 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +426 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +479 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +6818 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +238 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +1279 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +11 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +2060 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +2155 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +1002 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +64 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +153 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +267 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +553 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +991 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +49 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/index.js +17 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/culling/ObjectCullStates.js +205 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Dot.js +78 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Label.js +97 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Wire.js +95 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Plugin.js +112 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Viewer.js +372 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/index.js +3 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaultColors.js +162 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaults.js +39 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaModel.js +145 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaObject.js +215 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaScene.js +311 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/CameraControl.js +1669 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/cc.js +0 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/CameraUpdater.js +312 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PanController.js +112 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PickController.js +193 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +289 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/cu.js +0 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +122 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +186 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +68 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +439 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +361 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +258 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +197 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/mouspan.js +498 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Component.js +908 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Entity.js +475 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/ImagePlane.js +570 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/PerformanceModel.js +2623 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ENTITY_FLAGS.js +21 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceMesh.js +262 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceNode.js +697 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/RENDER_PASSES.js +34 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ScratchMemory.js +63 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/compression.js +183 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingBuffer.js +33 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingLayer.js +736 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingRenderers.js +68 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingColorRenderer.js +295 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingSilhouetteRenderer.js +327 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingLayer.js +698 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingRenderers.js +68 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingColorRenderer.js +364 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingSilhouetteRenderer.js +356 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingBuffer.js +33 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingLayer.js +776 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingRenderers.js +113 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingColorRenderer.js +340 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingOcclusionRenderer.js +312 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickDepthRenderer.js +343 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickMeshRenderer.js +331 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingShadowRenderer.js +242 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingSilhouetteRenderer.js +348 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingLayer.js +737 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingRenderers.js +143 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingColorRenderer.js +373 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingDepthRenderer.js +366 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingOcclusionRenderer.js +370 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickDepthRenderer.js +386 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickMeshRenderer.js +376 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingShadowRenderer.js +293 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingSilhouetteRenderer.js +382 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingBuffer.js +37 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingLayer.js +1017 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingRenderers.js +246 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorQualityRenderer.js +809 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorRenderer.js +504 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingDepthRenderer.js +297 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesColorRenderer.js +300 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesRenderer.js +322 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingNormalsRenderer.js +311 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingOcclusionRenderer.js +291 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickDepthRenderer.js +319 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickMeshRenderer.js +305 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickNormalsRenderer.js +300 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingShadowRenderer.js +242 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingSilhouetteRenderer.js +323 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingLayer.js +969 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingRenderers.js +246 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorQualityRenderer.js +859 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorRenderer.js +557 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingDepthRenderer.js +341 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesColorRenderer.js +338 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesRenderer.js +356 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingNormalsRenderer.js +354 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingOcclusionRenderer.js +329 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickDepthRenderer.js +358 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickMeshRenderer.js +349 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickNormalsRenderer.js +363 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingShadowRenderer.js +284 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingSilhouetteRenderer.js +354 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Camera.js +880 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraFlightAnimation.js +669 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPath.js +194 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPathAnimation.js +326 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CustomProjection.js +149 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Frustum.js +316 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Ortho.js +286 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Perspective.js +302 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/index.js +2 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Canvas.js +464 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Spinner.js +323 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/core.js +234 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/Geometry.js +33 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/ReadableGeometry.js +689 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/VBOGeometry.js +327 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxGeometry.js +238 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +106 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +271 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildGridGeometry.js +102 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +168 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildSphereGeometry.js +161 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildTorusGeometry.js +172 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +1721 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/index.js +8 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/index.js +4 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/index.js +2 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/load3DSGeometry.js +103 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +130 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/index.js +18 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/input/Input.js +1475 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/canvas2image.js +218 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/k3d.js +1032 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/AmbientLight.js +175 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/CubeTexture.js +156 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/DirLight.js +314 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Light.js +29 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/LightMap.js +77 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/PointLight.js +395 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/ReflectionMap.js +79 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Shadow.js +138 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/index.js +5 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/Marker.js +382 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EdgeMaterial.js +359 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EmphasisMaterial.js +577 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Fresnel.js +222 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LambertMaterial.js +378 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LinesMaterial.js +169 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Material.js +39 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/MetallicMaterial.js +820 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PhongMaterial.js +860 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PointsMaterial.js +320 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/SpecularMaterial.js +807 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Texture.js +522 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/index.js +8 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/Frustum.js +118 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/buildEdgeIndices.js +162 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/geometryCompressionUtils.js +353 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/math.js +5302 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/rtcCoords.js +132 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/CameraMemento.js +200 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ModelMemento.js +272 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ObjectsMemento.js +259 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/index.js +3 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/Mesh.js +2165 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawRenderer.js +978 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawShaderSource.js +1566 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +249 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +163 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +276 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +269 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +207 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +156 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshRenderer.js +210 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +146 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +186 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +120 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowRenderer.js +214 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +96 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/metriqs/Metriqs.js +259 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/Node.js +1356 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/CubicBezierCurve.js +194 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Curve.js +183 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Path.js +239 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/QuadraticBezierCurve.js +161 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/SplineCurve.js +133 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/index.js +5 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/postfx/SAO.js +547 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/scene/Scene.js +2481 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/SectionPlane.js +194 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/Skybox.js +119 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/index.js +1 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/stats.js +45 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Map.js +45 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Queue.js +56 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/index.js +2 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils.js +452 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/viewport/Viewport.js +212 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/ArrayBuf.js +121 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Attribute.js +23 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Drawable.js +270 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/FrameContext.js +259 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/PickResult.js +317 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Pickable.js +69 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Program.js +179 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderBuffer.js +315 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderFlags.js +203 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderState.js +40 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Renderer.js +1300 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Sampler.js +18 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Shader.js +49 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Texture2D.js +217 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +214 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionTester.js +432 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +326 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +375 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/webglEnums.js +61 -0
- package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webglInfo.js +48 -0
- package/src/lib/gltf/gltf.css +392 -0
- package/src/lib/gltf/gltf.js +2241 -0
- package/webpack.config.js +70 -0
- package/app.js +0 -43
@@ -0,0 +1,327 @@
|
|
1
|
+
import {Geometry} from './Geometry.js';
|
2
|
+
import {RenderState} from '../webgl/RenderState.js';
|
3
|
+
import {ArrayBuf} from '../webgl/ArrayBuf.js';
|
4
|
+
import {math} from '../math/math.js';
|
5
|
+
import {stats} from '../stats.js';
|
6
|
+
import {WEBGL_INFO} from '../webglInfo.js';
|
7
|
+
import {buildEdgeIndices} from '../math/buildEdgeIndices.js';
|
8
|
+
import {geometryCompressionUtils} from '../math/geometryCompressionUtils.js';
|
9
|
+
|
10
|
+
const memoryStats = stats.memory;
|
11
|
+
const bigIndicesSupported = WEBGL_INFO.SUPPORTED_EXTENSIONS["OES_element_index_uint"];
|
12
|
+
const IndexArrayType = bigIndicesSupported ? Uint32Array : Uint16Array;
|
13
|
+
const tempAABB = math.AABB3();
|
14
|
+
|
15
|
+
/**
|
16
|
+
* @desc A {@link Geometry} that keeps its geometry data solely in GPU memory, without retaining it in browser memory.
|
17
|
+
*
|
18
|
+
* VBOGeometry uses less memory than {@link ReadableGeometry}, which keeps its geometry data in both browser and GPU memory.
|
19
|
+
*
|
20
|
+
* ## Usage
|
21
|
+
*
|
22
|
+
* Creating a {@link Mesh} with a VBOGeometry that defines a single triangle, plus a {@link PhongMaterial} with diffuse {@link Texture}:
|
23
|
+
*
|
24
|
+
* [[Run this example](http://yjkkit.github.io/yjkkit-sdk/examples/#geometry_VBOGeometry)]
|
25
|
+
*
|
26
|
+
* ````javascript
|
27
|
+
* import {Viewer, Mesh, VBOGeometry, PhongMaterial, Texture} from "yjkkit-sdk.es.js";
|
28
|
+
*
|
29
|
+
* const viewer = new Viewer({
|
30
|
+
* canvasId: "myCanvas"
|
31
|
+
* });
|
32
|
+
*
|
33
|
+
* new Mesh(viewer.scene, {
|
34
|
+
* geometry: new VBOGeometry(viewer.scene, {
|
35
|
+
* primitive: "triangles",
|
36
|
+
* positions: [0.0, 3, 0.0, -3, -3, 0.0, 3, -3, 0.0],
|
37
|
+
* normals: [0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0],
|
38
|
+
* uv: [0.0, 0.0, 0.5, 1.0, 1.0, 0.0],
|
39
|
+
* indices: [0, 1, 2]
|
40
|
+
* }),
|
41
|
+
* material: new PhongMaterial(viewer.scene, {
|
42
|
+
* diffuseMap: new Texture(viewer.scene, {
|
43
|
+
* src: "textures/diffuse/uvGrid2.jpg"
|
44
|
+
* }),
|
45
|
+
* backfaces: true
|
46
|
+
* })
|
47
|
+
* });
|
48
|
+
* ````
|
49
|
+
*/
|
50
|
+
class VBOGeometry extends Geometry {
|
51
|
+
|
52
|
+
/**
|
53
|
+
@private
|
54
|
+
*/
|
55
|
+
get type() {
|
56
|
+
return "VBOGeometry";
|
57
|
+
}
|
58
|
+
|
59
|
+
/**
|
60
|
+
* @private
|
61
|
+
* @returns {boolean}
|
62
|
+
*/
|
63
|
+
get isVBOGeometry() {
|
64
|
+
return true;
|
65
|
+
}
|
66
|
+
|
67
|
+
/**
|
68
|
+
* @constructor
|
69
|
+
* @param {Component} owner Owner component. When destroyed, the owner will destroy this component as well.
|
70
|
+
* @param {*} [cfg] Configs
|
71
|
+
* @param {String} [cfg.id] Optional ID, unique among all components in the parent {@link Scene}, generated automatically when omitted.
|
72
|
+
* @param {String} [cfg.primitive="triangles"] The primitive type. Accepted values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'.
|
73
|
+
* @param {Number[]} [cfg.positions] Positions array.
|
74
|
+
* @param {Number[]} [cfg.normals] Vertex normal vectors array.
|
75
|
+
* @param {Number[]} [cfg.uv] UVs array.
|
76
|
+
* @param {Number[]} [cfg.colors] Vertex colors.
|
77
|
+
* @param {Number[]} [cfg.indices] Indices array.
|
78
|
+
* @param {Number} [cfg.edgeThreshold=10] When autogenerating edges for supporting {@link Drawable#edges}, this indicates the threshold angle (in degrees) between the face normals of adjacent triangles below which the edge is discarded.
|
79
|
+
*/
|
80
|
+
constructor(owner, cfg = {}) {
|
81
|
+
|
82
|
+
super(owner, cfg);
|
83
|
+
|
84
|
+
this._state = new RenderState({ // Arrays for emphasis effects are got from yjkkit.GeometryLite friend methods
|
85
|
+
compressGeometry: true,
|
86
|
+
primitive: null, // WebGL enum
|
87
|
+
primitiveName: null, // String
|
88
|
+
positionsDecodeMatrix: null, // Set when compressGeometry == true
|
89
|
+
uvDecodeMatrix: null, // Set when compressGeometry == true
|
90
|
+
positionsBuf: null,
|
91
|
+
normalsBuf: null,
|
92
|
+
colorsbuf: null,
|
93
|
+
uvBuf: null,
|
94
|
+
indicesBuf: null,
|
95
|
+
hash: ""
|
96
|
+
});
|
97
|
+
|
98
|
+
this._numTriangles = 0;
|
99
|
+
|
100
|
+
this._edgeThreshold = cfg.edgeThreshold || 10.0;
|
101
|
+
this._aabb = null;
|
102
|
+
this._obb = math.OBB3();
|
103
|
+
|
104
|
+
const state = this._state;
|
105
|
+
const gl = this.scene.canvas.gl;
|
106
|
+
|
107
|
+
cfg.primitive = cfg.primitive || "triangles";
|
108
|
+
switch (cfg.primitive) {
|
109
|
+
case "points":
|
110
|
+
state.primitive = gl.POINTS;
|
111
|
+
state.primitiveName = cfg.primitive;
|
112
|
+
break;
|
113
|
+
case "lines":
|
114
|
+
state.primitive = gl.LINES;
|
115
|
+
state.primitiveName = cfg.primitive;
|
116
|
+
break;
|
117
|
+
case "line-loop":
|
118
|
+
state.primitive = gl.LINE_LOOP;
|
119
|
+
state.primitiveName = cfg.primitive;
|
120
|
+
break;
|
121
|
+
case "line-strip":
|
122
|
+
state.primitive = gl.LINE_STRIP;
|
123
|
+
state.primitiveName = cfg.primitive;
|
124
|
+
break;
|
125
|
+
case "triangles":
|
126
|
+
state.primitive = gl.TRIANGLES;
|
127
|
+
state.primitiveName = cfg.primitive;
|
128
|
+
break;
|
129
|
+
case "triangle-strip":
|
130
|
+
state.primitive = gl.TRIANGLE_STRIP;
|
131
|
+
state.primitiveName = cfg.primitive;
|
132
|
+
break;
|
133
|
+
case "triangle-fan":
|
134
|
+
state.primitive = gl.TRIANGLE_FAN;
|
135
|
+
state.primitiveName = cfg.primitive;
|
136
|
+
break;
|
137
|
+
default:
|
138
|
+
this.error("Unsupported value for 'primitive': '" + cfg.primitive +
|
139
|
+
"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', " +
|
140
|
+
"'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'.");
|
141
|
+
state.primitive = gl.TRIANGLES;
|
142
|
+
state.primitiveName = cfg.primitive;
|
143
|
+
}
|
144
|
+
|
145
|
+
if (!cfg.positions) {
|
146
|
+
this.error("Config expected: positions");
|
147
|
+
return; // TODO: Recover?
|
148
|
+
}
|
149
|
+
|
150
|
+
if (!cfg.indices) {
|
151
|
+
this.error("Config expected: indices");
|
152
|
+
return; // TODO: Recover?
|
153
|
+
}
|
154
|
+
|
155
|
+
var positions;
|
156
|
+
|
157
|
+
{
|
158
|
+
const positionsDecodeMatrix = cfg.positionsDecodeMatrix;
|
159
|
+
|
160
|
+
if (positionsDecodeMatrix) {
|
161
|
+
|
162
|
+
// Compressed positions
|
163
|
+
|
164
|
+
} else {
|
165
|
+
|
166
|
+
// Uncompressed positions
|
167
|
+
|
168
|
+
const bounds = geometryCompressionUtils.getPositionsBounds(cfg.positions);
|
169
|
+
const result = geometryCompressionUtils.compressPositions(cfg.positions, bounds.min, bounds.max);
|
170
|
+
positions = result.quantized;
|
171
|
+
state.positionsDecodeMatrix = result.decodeMatrix;
|
172
|
+
state.positionsBuf = new ArrayBuf(gl, gl.ARRAY_BUFFER, positions, positions.length, 3, gl.STATIC_DRAW);
|
173
|
+
memoryStats.positions += state.positionsBuf.numItems;
|
174
|
+
math.positions3ToAABB3(cfg.positions, this._aabb);
|
175
|
+
math.positions3ToAABB3(positions, tempAABB, state.positionsDecodeMatrix);
|
176
|
+
math.AABB3ToOBB3(tempAABB, this._obb);
|
177
|
+
}
|
178
|
+
}
|
179
|
+
|
180
|
+
if (cfg.colors) {
|
181
|
+
const colors = cfg.colors.constructor === Float32Array ? cfg.colors : new Float32Array(cfg.colors);
|
182
|
+
state.colorsBuf = new ArrayBuf(gl, gl.ARRAY_BUFFER, colors, colors.length, 4, gl.STATIC_DRAW);
|
183
|
+
memoryStats.colors += state.colorsBuf.numItems;
|
184
|
+
}
|
185
|
+
|
186
|
+
if (cfg.uv) {
|
187
|
+
const bounds = geometryCompressionUtils.getUVBounds(cfg.uv);
|
188
|
+
const result = geometryCompressionUtils.compressUVs(cfg.uv, bounds.min, bounds.max);
|
189
|
+
const uv = result.quantized;
|
190
|
+
state.uvDecodeMatrix = result.decodeMatrix;
|
191
|
+
state.uvBuf = new ArrayBuf(gl, gl.ARRAY_BUFFER, uv, uv.length, 2, gl.STATIC_DRAW);
|
192
|
+
memoryStats.uvs += state.uvBuf.numItems;
|
193
|
+
}
|
194
|
+
|
195
|
+
if (cfg.normals) {
|
196
|
+
const normals = geometryCompressionUtils.compressNormals(cfg.normals);
|
197
|
+
let normalized = state.compressGeometry;
|
198
|
+
state.normalsBuf = new ArrayBuf(gl, gl.ARRAY_BUFFER, normals, normals.length, 3, gl.STATIC_DRAW, normalized);
|
199
|
+
memoryStats.normals += state.normalsBuf.numItems;
|
200
|
+
}
|
201
|
+
|
202
|
+
if (!bigIndicesSupported && cfg.indices.constructor === Uint32Array) {
|
203
|
+
this.error("This WebGL implementation does not support Uint32Array");
|
204
|
+
return; // TODO: Recover?
|
205
|
+
}
|
206
|
+
|
207
|
+
{
|
208
|
+
const indices = (cfg.indices.constructor === Uint32Array || cfg.indices.constructor === Uint16Array) ? cfg.indices : new IndexArrayType(cfg.indices);
|
209
|
+
state.indicesBuf = new ArrayBuf(gl, gl.ELEMENT_ARRAY_BUFFER, indices, indices.length, 1, gl.STATIC_DRAW);
|
210
|
+
memoryStats.indices += state.indicesBuf.numItems;
|
211
|
+
const edgeIndices = buildEdgeIndices(positions, indices, state.positionsDecodeMatrix, this._edgeThreshold);
|
212
|
+
this._edgeIndicesBuf = new ArrayBuf(gl, gl.ELEMENT_ARRAY_BUFFER, edgeIndices, edgeIndices.length, 1, gl.STATIC_DRAW);
|
213
|
+
|
214
|
+
if (this._state.primitiveName === "triangles") {
|
215
|
+
this._numTriangles = (cfg.indices.length / 3);
|
216
|
+
}
|
217
|
+
}
|
218
|
+
|
219
|
+
this._buildHash();
|
220
|
+
|
221
|
+
memoryStats.meshes++;
|
222
|
+
}
|
223
|
+
|
224
|
+
_buildHash() {
|
225
|
+
const state = this._state;
|
226
|
+
const hash = ["/g"];
|
227
|
+
hash.push("/" + state.primitive + ";");
|
228
|
+
if (state.positionsBuf) {
|
229
|
+
hash.push("p");
|
230
|
+
}
|
231
|
+
if (state.colorsBuf) {
|
232
|
+
hash.push("c");
|
233
|
+
}
|
234
|
+
if (state.normalsBuf || state.autoVertexNormals) {
|
235
|
+
hash.push("n");
|
236
|
+
}
|
237
|
+
if (state.uvBuf) {
|
238
|
+
hash.push("u");
|
239
|
+
}
|
240
|
+
hash.push("cp"); // Always compressed
|
241
|
+
hash.push(";");
|
242
|
+
state.hash = hash.join("");
|
243
|
+
}
|
244
|
+
|
245
|
+
_getEdgeIndices() {
|
246
|
+
return this._edgeIndicesBuf;
|
247
|
+
}
|
248
|
+
|
249
|
+
/**
|
250
|
+
* Gets the primitive type.
|
251
|
+
*
|
252
|
+
* Possible types are: 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'.
|
253
|
+
*
|
254
|
+
* @type {String}
|
255
|
+
*/
|
256
|
+
get primitive() {
|
257
|
+
return this._state.primitiveName;
|
258
|
+
}
|
259
|
+
|
260
|
+
/**
|
261
|
+
* Gets the local-space axis-aligned 3D boundary (AABB).
|
262
|
+
*
|
263
|
+
* The AABB is represented by a six-element Float64Array containing the min/max extents of the axis-aligned volume, ie. ````[xmin, ymin,zmin,xmax,ymax, zmax]````.
|
264
|
+
*
|
265
|
+
* @type {Number[]}
|
266
|
+
*/
|
267
|
+
get aabb() {
|
268
|
+
return this._aabb;
|
269
|
+
}
|
270
|
+
|
271
|
+
/**
|
272
|
+
* Gets the local-space oriented 3D boundary (OBB).
|
273
|
+
*
|
274
|
+
* The OBB is represented by a 32-element Float64Array containing the eight vertices of the box, where each vertex is a homogeneous coordinate having [x,y,z,w] elements.
|
275
|
+
*
|
276
|
+
* @type {Number[]}
|
277
|
+
*/
|
278
|
+
get obb() {
|
279
|
+
return this._obb;
|
280
|
+
}
|
281
|
+
|
282
|
+
/**
|
283
|
+
* Approximate number of triangles in this VBOGeometry.
|
284
|
+
*
|
285
|
+
* Will be zero if {@link VBOGeometry#primitive} is not 'triangles', 'triangle-strip' or 'triangle-fan'.
|
286
|
+
*
|
287
|
+
* @type {Number}
|
288
|
+
*/
|
289
|
+
get numTriangles() {
|
290
|
+
return this._numTriangles;
|
291
|
+
}
|
292
|
+
|
293
|
+
/** @private */
|
294
|
+
_getState() {
|
295
|
+
return this._state;
|
296
|
+
}
|
297
|
+
|
298
|
+
/**
|
299
|
+
* Destroys this component.
|
300
|
+
*/
|
301
|
+
destroy() {
|
302
|
+
super.destroy();
|
303
|
+
const state = this._state;
|
304
|
+
if (state.indicesBuf) {
|
305
|
+
state.indicesBuf.destroy();
|
306
|
+
}
|
307
|
+
if (state.positionsBuf) {
|
308
|
+
state.positionsBuf.destroy();
|
309
|
+
}
|
310
|
+
if (state.normalsBuf) {
|
311
|
+
state.normalsBuf.destroy();
|
312
|
+
}
|
313
|
+
if (state.uvBuf) {
|
314
|
+
state.uvBuf.destroy();
|
315
|
+
}
|
316
|
+
if (state.colorsBuf) {
|
317
|
+
state.colorsBuf.destroy();
|
318
|
+
}
|
319
|
+
if (this._edgeIndicesBuf) {
|
320
|
+
this._edgeIndicesBuf.destroy();
|
321
|
+
}
|
322
|
+
state.destroy();
|
323
|
+
memoryStats.meshes--;
|
324
|
+
}
|
325
|
+
}
|
326
|
+
|
327
|
+
export {VBOGeometry};
|
@@ -0,0 +1,238 @@
|
|
1
|
+
import {utils} from '../../utils.js';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @desc Creates box-shaped {@link Geometry}.
|
5
|
+
*
|
6
|
+
* ## Usage
|
7
|
+
*
|
8
|
+
* In the example below we'll create a {@link Mesh} with a box-shaped {@link ReadableGeometry}.
|
9
|
+
*
|
10
|
+
* [[Run this example](http://yjkkit.github.io/yjkkit-sdk/examples/#geometry_builders_buildBoxGeometry)]
|
11
|
+
*
|
12
|
+
* ````javascript
|
13
|
+
* import {Viewer, Mesh, buildBoxGeometry, ReadableGeometry, PhongMaterial, Texture} from "yjkkit-sdk.es.js";
|
14
|
+
*
|
15
|
+
* const viewer = new Viewer({
|
16
|
+
* canvasId: "myCanvas"
|
17
|
+
* });
|
18
|
+
*
|
19
|
+
* viewer.scene.camera.eye = [0, 0, 5];
|
20
|
+
* viewer.scene.camera.look = [0, 0, 0];
|
21
|
+
* viewer.scene.camera.up = [0, 1, 0];
|
22
|
+
*
|
23
|
+
* new Mesh(viewer.scene, {
|
24
|
+
* geometry: new ReadableGeometry(viewer.scene, buildBoxGeometry({
|
25
|
+
* center: [0,0,0],
|
26
|
+
* xSize: 1, // Half-size on each axis
|
27
|
+
* ySize: 1,
|
28
|
+
* zSize: 1
|
29
|
+
* }),
|
30
|
+
* material: new PhongMaterial(viewer.scene, {
|
31
|
+
* diffuseMap: new Texture(viewer.scene, {
|
32
|
+
* src: "textures/diffuse/uvGrid2.jpg"
|
33
|
+
* })
|
34
|
+
* })
|
35
|
+
* });
|
36
|
+
* ````
|
37
|
+
*
|
38
|
+
* @function buildBoxGeometry
|
39
|
+
* @param {*} [cfg] Configs
|
40
|
+
* @param {String} [cfg.id] Optional ID, unique among all components in the parent {@link Scene}, generated automatically when omitted.
|
41
|
+
* @param {Number[]} [cfg.center] 3D point indicating the center position.
|
42
|
+
* @param {Number} [cfg.xSize=1.0] Half-size on the X-axis.
|
43
|
+
* @param {Number} [cfg.ySize=1.0] Half-size on the Y-axis.
|
44
|
+
* @param {Number} [cfg.zSize=1.0] Half-size on the Z-axis.
|
45
|
+
* @returns {Object} Configuration for a {@link Geometry} subtype.
|
46
|
+
*/
|
47
|
+
function buildBoxGeometry(cfg = {}) {
|
48
|
+
|
49
|
+
let xSize = cfg.xSize || 1;
|
50
|
+
if (xSize < 0) {
|
51
|
+
console.error("negative xSize not allowed - will invert");
|
52
|
+
xSize *= -1;
|
53
|
+
}
|
54
|
+
|
55
|
+
let ySize = cfg.ySize || 1;
|
56
|
+
if (ySize < 0) {
|
57
|
+
console.error("negative ySize not allowed - will invert");
|
58
|
+
ySize *= -1;
|
59
|
+
}
|
60
|
+
|
61
|
+
let zSize = cfg.zSize || 1;
|
62
|
+
if (zSize < 0) {
|
63
|
+
console.error("negative zSize not allowed - will invert");
|
64
|
+
zSize *= -1;
|
65
|
+
}
|
66
|
+
|
67
|
+
const center = cfg.center;
|
68
|
+
const centerX = center ? center[0] : 0;
|
69
|
+
const centerY = center ? center[1] : 0;
|
70
|
+
const centerZ = center ? center[2] : 0;
|
71
|
+
|
72
|
+
const xmin = -xSize + centerX;
|
73
|
+
const ymin = -ySize + centerY;
|
74
|
+
const zmin = -zSize + centerZ;
|
75
|
+
const xmax = xSize + centerX;
|
76
|
+
const ymax = ySize + centerY;
|
77
|
+
const zmax = zSize + centerZ;
|
78
|
+
|
79
|
+
return utils.apply(cfg, {
|
80
|
+
|
81
|
+
// The vertices - eight for our cube, each
|
82
|
+
// one spanning three array elements for X,Y and Z
|
83
|
+
positions: [
|
84
|
+
|
85
|
+
// v0-v1-v2-v3 front
|
86
|
+
xmax, ymax, zmax,
|
87
|
+
xmin, ymax, zmax,
|
88
|
+
xmin, ymin, zmax,
|
89
|
+
xmax, ymin, zmax,
|
90
|
+
|
91
|
+
// v0-v3-v4-v1 right
|
92
|
+
xmax, ymax, zmax,
|
93
|
+
xmax, ymin, zmax,
|
94
|
+
xmax, ymin, zmin,
|
95
|
+
xmax, ymax, zmin,
|
96
|
+
|
97
|
+
// v0-v1-v6-v1 top
|
98
|
+
xmax, ymax, zmax,
|
99
|
+
xmax, ymax, zmin,
|
100
|
+
xmin, ymax, zmin,
|
101
|
+
xmin, ymax, zmax,
|
102
|
+
|
103
|
+
// v1-v6-v7-v2 left
|
104
|
+
xmin, ymax, zmax,
|
105
|
+
xmin, ymax, zmin,
|
106
|
+
xmin, ymin, zmin,
|
107
|
+
xmin, ymin, zmax,
|
108
|
+
|
109
|
+
// v7-v4-v3-v2 bottom
|
110
|
+
xmin, ymin, zmin,
|
111
|
+
xmax, ymin, zmin,
|
112
|
+
xmax, ymin, zmax,
|
113
|
+
xmin, ymin, zmax,
|
114
|
+
|
115
|
+
// v4-v7-v6-v1 back
|
116
|
+
xmax, ymin, zmin,
|
117
|
+
xmin, ymin, zmin,
|
118
|
+
xmin, ymax, zmin,
|
119
|
+
xmax, ymax, zmin
|
120
|
+
],
|
121
|
+
|
122
|
+
// Normal vectors, one for each vertex
|
123
|
+
normals: [
|
124
|
+
|
125
|
+
// v0-v1-v2-v3 front
|
126
|
+
0, 0, 1,
|
127
|
+
0, 0, 1,
|
128
|
+
0, 0, 1,
|
129
|
+
0, 0, 1,
|
130
|
+
|
131
|
+
// v0-v3-v4-v5 right
|
132
|
+
1, 0, 0,
|
133
|
+
1, 0, 0,
|
134
|
+
1, 0, 0,
|
135
|
+
1, 0, 0,
|
136
|
+
|
137
|
+
// v0-v5-v6-v1 top
|
138
|
+
0, 1, 0,
|
139
|
+
0, 1, 0,
|
140
|
+
0, 1, 0,
|
141
|
+
0, 1, 0,
|
142
|
+
|
143
|
+
// v1-v6-v7-v2 left
|
144
|
+
-1, 0, 0,
|
145
|
+
-1, 0, 0,
|
146
|
+
-1, 0, 0,
|
147
|
+
-1, 0, 0,
|
148
|
+
|
149
|
+
// v7-v4-v3-v2 bottom
|
150
|
+
0, -1, 0,
|
151
|
+
0, -1, 0,
|
152
|
+
0, -1, 0,
|
153
|
+
0, -1, 0,
|
154
|
+
|
155
|
+
// v4-v7-v6-v5 back
|
156
|
+
0, 0, -1,
|
157
|
+
0, 0, -1,
|
158
|
+
0, 0, -1,
|
159
|
+
0, 0, -1
|
160
|
+
],
|
161
|
+
|
162
|
+
// UV coords
|
163
|
+
uv: [
|
164
|
+
|
165
|
+
// v0-v1-v2-v3 front
|
166
|
+
1, 0,
|
167
|
+
0, 0,
|
168
|
+
0, 1,
|
169
|
+
1, 1,
|
170
|
+
|
171
|
+
// v0-v3-v4-v1 right
|
172
|
+
0, 0,
|
173
|
+
0, 1,
|
174
|
+
1, 1,
|
175
|
+
1, 0,
|
176
|
+
|
177
|
+
// v0-v1-v6-v1 top
|
178
|
+
1, 1,
|
179
|
+
1, 0,
|
180
|
+
0, 0,
|
181
|
+
0, 1,
|
182
|
+
|
183
|
+
// v1-v6-v7-v2 left
|
184
|
+
1, 0,
|
185
|
+
0, 0,
|
186
|
+
0, 1,
|
187
|
+
1, 1,
|
188
|
+
|
189
|
+
// v7-v4-v3-v2 bottom
|
190
|
+
0, 1,
|
191
|
+
1, 1,
|
192
|
+
1, 0,
|
193
|
+
0, 0,
|
194
|
+
|
195
|
+
// v4-v7-v6-v1 back
|
196
|
+
0, 1,
|
197
|
+
1, 1,
|
198
|
+
1, 0,
|
199
|
+
0, 0
|
200
|
+
],
|
201
|
+
|
202
|
+
// Indices - these organise the
|
203
|
+
// positions and uv texture coordinates
|
204
|
+
// into geometric primitives in accordance
|
205
|
+
// with the "primitive" parameter,
|
206
|
+
// in this case a set of three indices
|
207
|
+
// for each triangle.
|
208
|
+
//
|
209
|
+
// Note that each triangle is specified
|
210
|
+
// in counter-clockwise winding order.
|
211
|
+
//
|
212
|
+
// You can specify them in clockwise
|
213
|
+
// order if you configure the Modes
|
214
|
+
// node's frontFace flag as "cw", instead of
|
215
|
+
// the default "ccw".
|
216
|
+
indices: [
|
217
|
+
0, 1, 2,
|
218
|
+
0, 2, 3,
|
219
|
+
// front
|
220
|
+
4, 5, 6,
|
221
|
+
4, 6, 7,
|
222
|
+
// right
|
223
|
+
8, 9, 10,
|
224
|
+
8, 10, 11,
|
225
|
+
// top
|
226
|
+
12, 13, 14,
|
227
|
+
12, 14, 15,
|
228
|
+
// left
|
229
|
+
16, 17, 18,
|
230
|
+
16, 18, 19,
|
231
|
+
// bottom
|
232
|
+
20, 21, 22,
|
233
|
+
20, 22, 23
|
234
|
+
]
|
235
|
+
});
|
236
|
+
}
|
237
|
+
|
238
|
+
export {buildBoxGeometry};
|
package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
import {utils} from '../../utils.js';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @desc Creates a box-shaped lines {@link Geometry}.
|
5
|
+
*
|
6
|
+
* ## Usage
|
7
|
+
*
|
8
|
+
* In the example below we'll create a {@link Mesh} with a box-shaped {@link ReadableGeometry} that has lines primitives.
|
9
|
+
*
|
10
|
+
* [[Run this example](http://yjkkit.github.io/yjkkit-sdk/examples/#geometry_builders_buildBoxLinesGeometry)]
|
11
|
+
*
|
12
|
+
* ````javascript
|
13
|
+
* import {Viewer, Mesh, buildBoxLinesGeometry, ReadableGeometry, PhongMaterial} from "yjkkit-sdk.es.js";
|
14
|
+
*
|
15
|
+
* const viewer = new Viewer({
|
16
|
+
* canvasId: "myCanvas"
|
17
|
+
* });
|
18
|
+
*
|
19
|
+
* viewer.scene.camera.eye = [0, 0, 5];
|
20
|
+
* viewer.scene.camera.look = [0, 0, 0];
|
21
|
+
* viewer.scene.camera.up = [0, 1, 0];
|
22
|
+
*
|
23
|
+
* new Mesh(viewer.scene, {
|
24
|
+
* geometry: new ReadableGeometry(viewer.scene, buildBoxLinesGeometry({
|
25
|
+
* center: [0,0,0],
|
26
|
+
* xSize: 1, // Half-size on each axis
|
27
|
+
* ySize: 1,
|
28
|
+
* zSize: 1
|
29
|
+
* }),
|
30
|
+
* material: new PhongMaterial(viewer.scene, {
|
31
|
+
* emissive: [0,1,0]
|
32
|
+
* })
|
33
|
+
* });
|
34
|
+
* ````
|
35
|
+
*
|
36
|
+
* @function buildBoxLinesGeometry
|
37
|
+
* @param {*} [cfg] Configs
|
38
|
+
* @param {String} [cfg.id] Optional ID, unique among all components in the parent {@link Scene}, generated automatically when omitted.
|
39
|
+
* @param {Number[]} [cfg.center] 3D point indicating the center position.
|
40
|
+
* @param {Number} [cfg.xSize=1.0] Half-size on the X-axis.
|
41
|
+
* @param {Number} [cfg.ySize=1.0] Half-size on the Y-axis.
|
42
|
+
* @param {Number} [cfg.zSize=1.0] Half-size on the Z-axis.
|
43
|
+
* @returns {Object} Configuration for a {@link Geometry} subtype.
|
44
|
+
*/
|
45
|
+
function buildBoxLinesGeometry(cfg = {}) {
|
46
|
+
|
47
|
+
let xSize = cfg.xSize || 1;
|
48
|
+
if (xSize < 0) {
|
49
|
+
console.error("negative xSize not allowed - will invert");
|
50
|
+
xSize *= -1;
|
51
|
+
}
|
52
|
+
|
53
|
+
let ySize = cfg.ySize || 1;
|
54
|
+
if (ySize < 0) {
|
55
|
+
console.error("negative ySize not allowed - will invert");
|
56
|
+
ySize *= -1;
|
57
|
+
}
|
58
|
+
|
59
|
+
let zSize = cfg.zSize || 1;
|
60
|
+
if (zSize < 0) {
|
61
|
+
console.error("negative zSize not allowed - will invert");
|
62
|
+
zSize *= -1;
|
63
|
+
}
|
64
|
+
|
65
|
+
const center = cfg.center;
|
66
|
+
const centerX = center ? center[0] : 0;
|
67
|
+
const centerY = center ? center[1] : 0;
|
68
|
+
const centerZ = center ? center[2] : 0;
|
69
|
+
|
70
|
+
const xmin = -xSize + centerX;
|
71
|
+
const ymin = -ySize + centerY;
|
72
|
+
const zmin = -zSize + centerZ;
|
73
|
+
const xmax = xSize + centerX;
|
74
|
+
const ymax = ySize + centerY;
|
75
|
+
const zmax = zSize + centerZ;
|
76
|
+
|
77
|
+
return utils.apply(cfg, {
|
78
|
+
primitive: "lines",
|
79
|
+
positions: [
|
80
|
+
xmin, ymin, zmin,
|
81
|
+
xmin, ymin, zmax,
|
82
|
+
xmin, ymax, zmin,
|
83
|
+
xmin, ymax, zmax,
|
84
|
+
xmax, ymin, zmin,
|
85
|
+
xmax, ymin, zmax,
|
86
|
+
xmax, ymax, zmin,
|
87
|
+
xmax, ymax, zmax
|
88
|
+
],
|
89
|
+
indices: [
|
90
|
+
0, 1,
|
91
|
+
1, 3,
|
92
|
+
3, 2,
|
93
|
+
2, 0,
|
94
|
+
4, 5,
|
95
|
+
5, 7,
|
96
|
+
7, 6,
|
97
|
+
6, 4,
|
98
|
+
0, 4,
|
99
|
+
1, 5,
|
100
|
+
2, 6,
|
101
|
+
3, 7
|
102
|
+
]
|
103
|
+
});
|
104
|
+
}
|
105
|
+
|
106
|
+
export {buildBoxLinesGeometry};
|