csyjk 1.2.2 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (322) hide show
  1. package/{dist/app.js → app.js} +0 -0
  2. package/{dist/index.html → index.html} +0 -0
  3. package/package.json +5 -40
  4. package/{dist/style.css → style.css} +0 -0
  5. package/.babelrc +0 -7
  6. package/.idea/modules.xml +0 -8
  7. package/.idea/xx.iml +0 -12
  8. package/public/gltf.js +0 -2241
  9. package/public/index.html +0 -10
  10. package/src/index.js +0 -3
  11. package/src/lib/gltf/assets/check.jpg +0 -0
  12. package/src/lib/gltf/assets/iconfont/iconfont.css +0 -358
  13. package/src/lib/gltf/assets/iconfont/iconfont.eot +0 -0
  14. package/src/lib/gltf/assets/iconfont/iconfont.js +0 -1
  15. package/src/lib/gltf/assets/iconfont/iconfont.json +0 -604
  16. package/src/lib/gltf/assets/iconfont/iconfont.svg +0 -189
  17. package/src/lib/gltf/assets/iconfont/iconfont.ttf +0 -0
  18. package/src/lib/gltf/assets/iconfont/iconfont.woff +0 -0
  19. package/src/lib/gltf/assets/iconfont/iconfont.woff2 +0 -0
  20. package/src/lib/gltf/assets/yjkkit-sdk/index.js +0 -0
  21. package/src/lib/gltf/assets/yjkkit-sdk/package.json +0 -15
  22. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/ContextMenu.js +0 -863
  23. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/index.js +0 -1
  24. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/index.js +0 -1
  25. package/src/lib/gltf/assets/yjkkit-sdk/src/index.js +0 -3
  26. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +0 -462
  27. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +0 -279
  28. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +0 -262
  29. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/index.js +0 -1
  30. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/Annotation.js +0 -362
  31. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +0 -575
  32. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/index.js +0 -1
  33. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +0 -333
  34. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/index.js +0 -1
  35. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +0 -777
  36. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/index.js +0 -1
  37. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +0 -525
  38. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +0 -242
  39. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +0 -297
  40. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/index.js +0 -1
  41. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/FastNavPlugin.js +0 -345
  42. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/index.js +0 -1
  43. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +0 -122
  44. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +0 -462
  45. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFPerformanceModelLoader.js +0 -508
  46. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFSceneGraphLoader.js +0 -922
  47. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/index.js +0 -2
  48. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/CubeTextureCanvas.js +0 -273
  49. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/NavCubePlugin.js +0 -687
  50. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/index.js +0 -1
  51. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +0 -145
  52. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +0 -777
  53. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/index.js +0 -1
  54. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +0 -33
  55. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +0 -273
  56. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +0 -313
  57. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/index.js +0 -2
  58. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Control.js +0 -1328
  59. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Overview.js +0 -249
  60. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Plane.js +0 -169
  61. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +0 -403
  62. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/index.js +0 -1
  63. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +0 -134
  64. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/index.js +0 -1
  65. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/IFCStoreyPlanObjectStates.js +0 -77
  66. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/Storey.js +0 -61
  67. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyMap.js +0 -57
  68. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +0 -822
  69. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/index.js +0 -1
  70. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/ModelTreeView.js +0 -888
  71. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewNode.js +0 -88
  72. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewPlugin.js +0 -624
  73. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/index.js +0 -1
  74. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/modelValidation.js +0 -87
  75. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/ViewCullPlugin.js +0 -295
  76. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/index.js +0 -1
  77. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +0 -78
  78. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +0 -847
  79. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/index.js +0 -2
  80. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +0 -167
  81. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +0 -228
  82. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +0 -220
  83. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +0 -279
  84. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +0 -244
  85. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +0 -301
  86. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +0 -426
  87. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +0 -479
  88. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +0 -6818
  89. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +0 -238
  90. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +0 -1279
  91. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/index.js +0 -1
  92. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +0 -11
  93. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +0 -2060
  94. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +0 -2155
  95. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +0 -1002
  96. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +0 -64
  97. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +0 -153
  98. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +0 -267
  99. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +0 -553
  100. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +0 -991
  101. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +0 -49
  102. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/index.js +0 -17
  103. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/culling/ObjectCullStates.js +0 -205
  104. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Dot.js +0 -78
  105. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Label.js +0 -97
  106. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Wire.js +0 -95
  107. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Plugin.js +0 -112
  108. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Viewer.js +0 -372
  109. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/index.js +0 -3
  110. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaultColors.js +0 -162
  111. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaults.js +0 -39
  112. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaModel.js +0 -145
  113. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaObject.js +0 -215
  114. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaScene.js +0 -311
  115. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/CameraControl.js +0 -1669
  116. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/cc.js +0 -0
  117. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/CameraUpdater.js +0 -312
  118. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PanController.js +0 -112
  119. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PickController.js +0 -193
  120. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +0 -289
  121. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/cu.js +0 -0
  122. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +0 -122
  123. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +0 -186
  124. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +0 -68
  125. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +0 -439
  126. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +0 -361
  127. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +0 -258
  128. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +0 -197
  129. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/mouspan.js +0 -498
  130. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Component.js +0 -908
  131. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Entity.js +0 -475
  132. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/ImagePlane.js +0 -570
  133. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/index.js +0 -1
  134. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/PerformanceModel.js +0 -2623
  135. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/index.js +0 -1
  136. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ENTITY_FLAGS.js +0 -21
  137. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceMesh.js +0 -262
  138. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceNode.js +0 -697
  139. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/RENDER_PASSES.js +0 -34
  140. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ScratchMemory.js +0 -63
  141. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/compression.js +0 -183
  142. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingBuffer.js +0 -33
  143. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingLayer.js +0 -736
  144. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingRenderers.js +0 -68
  145. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingColorRenderer.js +0 -295
  146. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingSilhouetteRenderer.js +0 -327
  147. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingLayer.js +0 -698
  148. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingRenderers.js +0 -68
  149. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingColorRenderer.js +0 -364
  150. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingSilhouetteRenderer.js +0 -356
  151. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingBuffer.js +0 -33
  152. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingLayer.js +0 -776
  153. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingRenderers.js +0 -113
  154. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingColorRenderer.js +0 -340
  155. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingOcclusionRenderer.js +0 -312
  156. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickDepthRenderer.js +0 -343
  157. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickMeshRenderer.js +0 -331
  158. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingShadowRenderer.js +0 -242
  159. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingSilhouetteRenderer.js +0 -348
  160. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingLayer.js +0 -737
  161. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingRenderers.js +0 -143
  162. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingColorRenderer.js +0 -373
  163. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingDepthRenderer.js +0 -366
  164. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingOcclusionRenderer.js +0 -370
  165. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickDepthRenderer.js +0 -386
  166. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickMeshRenderer.js +0 -376
  167. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingShadowRenderer.js +0 -293
  168. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingSilhouetteRenderer.js +0 -382
  169. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingBuffer.js +0 -37
  170. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingLayer.js +0 -1017
  171. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingRenderers.js +0 -246
  172. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorQualityRenderer.js +0 -809
  173. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorRenderer.js +0 -504
  174. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingDepthRenderer.js +0 -297
  175. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesColorRenderer.js +0 -300
  176. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesRenderer.js +0 -322
  177. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingNormalsRenderer.js +0 -311
  178. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingOcclusionRenderer.js +0 -291
  179. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickDepthRenderer.js +0 -319
  180. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickMeshRenderer.js +0 -305
  181. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickNormalsRenderer.js +0 -300
  182. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingShadowRenderer.js +0 -242
  183. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingSilhouetteRenderer.js +0 -323
  184. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingLayer.js +0 -969
  185. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingRenderers.js +0 -246
  186. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorQualityRenderer.js +0 -859
  187. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorRenderer.js +0 -557
  188. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingDepthRenderer.js +0 -341
  189. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesColorRenderer.js +0 -338
  190. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesRenderer.js +0 -356
  191. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingNormalsRenderer.js +0 -354
  192. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingOcclusionRenderer.js +0 -329
  193. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickDepthRenderer.js +0 -358
  194. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickMeshRenderer.js +0 -349
  195. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickNormalsRenderer.js +0 -363
  196. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingShadowRenderer.js +0 -284
  197. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingSilhouetteRenderer.js +0 -354
  198. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Camera.js +0 -880
  199. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraFlightAnimation.js +0 -669
  200. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPath.js +0 -194
  201. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPathAnimation.js +0 -326
  202. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CustomProjection.js +0 -149
  203. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Frustum.js +0 -316
  204. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Ortho.js +0 -286
  205. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Perspective.js +0 -302
  206. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/index.js +0 -2
  207. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Canvas.js +0 -464
  208. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Spinner.js +0 -323
  209. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/core.js +0 -234
  210. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/Geometry.js +0 -33
  211. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/ReadableGeometry.js +0 -689
  212. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/VBOGeometry.js +0 -327
  213. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxGeometry.js +0 -238
  214. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +0 -106
  215. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +0 -271
  216. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildGridGeometry.js +0 -102
  217. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +0 -168
  218. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildSphereGeometry.js +0 -161
  219. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildTorusGeometry.js +0 -172
  220. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +0 -1721
  221. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/index.js +0 -8
  222. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/index.js +0 -4
  223. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/index.js +0 -2
  224. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/load3DSGeometry.js +0 -103
  225. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +0 -130
  226. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/index.js +0 -18
  227. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/input/Input.js +0 -1475
  228. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/canvas2image.js +0 -218
  229. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/k3d.js +0 -1032
  230. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/AmbientLight.js +0 -175
  231. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/CubeTexture.js +0 -156
  232. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/DirLight.js +0 -314
  233. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Light.js +0 -29
  234. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/LightMap.js +0 -77
  235. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/PointLight.js +0 -395
  236. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/ReflectionMap.js +0 -79
  237. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Shadow.js +0 -138
  238. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/index.js +0 -5
  239. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/Marker.js +0 -382
  240. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/index.js +0 -1
  241. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EdgeMaterial.js +0 -359
  242. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EmphasisMaterial.js +0 -577
  243. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Fresnel.js +0 -222
  244. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LambertMaterial.js +0 -378
  245. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LinesMaterial.js +0 -169
  246. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Material.js +0 -39
  247. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/MetallicMaterial.js +0 -820
  248. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PhongMaterial.js +0 -860
  249. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PointsMaterial.js +0 -320
  250. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/SpecularMaterial.js +0 -807
  251. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Texture.js +0 -522
  252. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/index.js +0 -8
  253. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/Frustum.js +0 -118
  254. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/buildEdgeIndices.js +0 -162
  255. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/geometryCompressionUtils.js +0 -353
  256. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/index.js +0 -1
  257. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/math.js +0 -5302
  258. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/rtcCoords.js +0 -132
  259. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/CameraMemento.js +0 -200
  260. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ModelMemento.js +0 -272
  261. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ObjectsMemento.js +0 -259
  262. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/index.js +0 -3
  263. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/Mesh.js +0 -2165
  264. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawRenderer.js +0 -978
  265. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawShaderSource.js +0 -1566
  266. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +0 -249
  267. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +0 -163
  268. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +0 -276
  269. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +0 -269
  270. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/index.js +0 -1
  271. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +0 -207
  272. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +0 -156
  273. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshRenderer.js +0 -210
  274. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +0 -146
  275. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +0 -186
  276. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +0 -120
  277. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowRenderer.js +0 -214
  278. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +0 -96
  279. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/metriqs/Metriqs.js +0 -259
  280. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/Node.js +0 -1356
  281. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/index.js +0 -1
  282. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/CubicBezierCurve.js +0 -194
  283. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Curve.js +0 -183
  284. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Path.js +0 -239
  285. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/QuadraticBezierCurve.js +0 -161
  286. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/SplineCurve.js +0 -133
  287. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/index.js +0 -5
  288. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/postfx/SAO.js +0 -547
  289. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/scene/Scene.js +0 -2481
  290. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/SectionPlane.js +0 -194
  291. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/index.js +0 -1
  292. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/Skybox.js +0 -119
  293. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/index.js +0 -1
  294. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/stats.js +0 -45
  295. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Map.js +0 -45
  296. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Queue.js +0 -56
  297. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/index.js +0 -2
  298. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils.js +0 -452
  299. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/viewport/Viewport.js +0 -212
  300. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/ArrayBuf.js +0 -121
  301. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Attribute.js +0 -23
  302. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Drawable.js +0 -270
  303. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/FrameContext.js +0 -259
  304. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/PickResult.js +0 -317
  305. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Pickable.js +0 -69
  306. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Program.js +0 -179
  307. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderBuffer.js +0 -315
  308. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderFlags.js +0 -203
  309. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderState.js +0 -40
  310. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Renderer.js +0 -1300
  311. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Sampler.js +0 -18
  312. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Shader.js +0 -49
  313. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Texture2D.js +0 -217
  314. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +0 -214
  315. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionTester.js +0 -432
  316. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +0 -326
  317. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +0 -375
  318. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/webglEnums.js +0 -61
  319. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webglInfo.js +0 -48
  320. package/src/lib/gltf/gltf.css +0 -392
  321. package/src/lib/gltf/gltf.js +0 -2241
  322. package/webpack.config.js +0 -70
@@ -1,1300 +0,0 @@
1
- import {FrameContext} from './FrameContext.js';
2
- import {RenderBuffer} from './RenderBuffer.js';
3
- import {math} from '../math/math.js';
4
- import {stats} from '../stats.js';
5
- import {WEBGL_INFO} from '../webglInfo.js';
6
- import {Map} from "../utils/Map.js";
7
- import {PickResult} from "./PickResult.js";
8
- import {OcclusionTester} from "./occlusion/OcclusionTester.js";
9
- import {SAOOcclusionRenderer} from "./sao/SAOOcclusionRenderer.js";
10
- import {createRTCViewMat} from "../math/rtcCoords.js";
11
- import {SAODepthLimitedBlurRenderer} from "./sao/SAODepthLimitedBlurRenderer.js";
12
-
13
- /**
14
- * @private
15
- */
16
- const Renderer = function (scene, options) {
17
-
18
- options = options || {};
19
-
20
- const frameCtx = new FrameContext(scene);
21
- const canvas = scene.canvas.canvas;
22
- const gl = scene.canvas.gl;
23
- const canvasTransparent = (!!options.transparent);
24
- const alphaDepthMask = options.alphaDepthMask;
25
-
26
- const extensionHandles = {};
27
-
28
- const pickIDs = new Map({});
29
-
30
- let drawableTypeInfo = {};
31
- let drawables = {};
32
-
33
- let drawableListDirty = true;
34
- let stateSortDirty = true;
35
- let imageDirty = true;
36
- let shadowsDirty = true;
37
-
38
- const saoDepthRenderBuffer = new RenderBuffer(canvas, gl, {
39
- depthTexture: WEBGL_INFO.SUPPORTED_EXTENSIONS["WEBGL_depth_texture"]
40
- });
41
- const occlusionRenderBuffer1 = new RenderBuffer(canvas, gl);
42
- const occlusionRenderBuffer2 = new RenderBuffer(canvas, gl);
43
-
44
- const pickBuffer = new RenderBuffer(canvas, gl);
45
- const snapshotBuffer = new RenderBuffer(canvas, gl);
46
-
47
- let snapshotBound = false;
48
-
49
- const bindOutputFrameBuffer = null;
50
- const unbindOutputFrameBuffer = null;
51
-
52
- const saoOcclusionRenderer = new SAOOcclusionRenderer(scene);
53
- const saoDepthLimitedBlurRenderer = new SAODepthLimitedBlurRenderer(scene);
54
-
55
- this._occlusionTester = null; // Lazy-created in #addMarker()
56
-
57
- this.needStateSort = function () {
58
- stateSortDirty = true;
59
- };
60
-
61
- this.shadowsDirty = function () {
62
- shadowsDirty = true;
63
- };
64
-
65
- this.imageDirty = function () {
66
- imageDirty = true;
67
- };
68
-
69
- this.webglContextLost = function () {
70
- };
71
-
72
- this.webglContextRestored = function (gl) {
73
-
74
- pickBuffer.webglContextRestored(gl);
75
- snapshotBuffer.webglContextRestored(gl);
76
- saoDepthRenderBuffer.webglContextRestored(gl);
77
- occlusionRenderBuffer1.webglContextRestored(gl);
78
- occlusionRenderBuffer2.webglContextRestored(gl);
79
-
80
- saoOcclusionRenderer.init();
81
- saoDepthLimitedBlurRenderer.init();
82
-
83
- imageDirty = true;
84
- };
85
-
86
- /**
87
- * Inserts a drawable into this renderer.
88
- * @private
89
- */
90
- this.addDrawable = function (id, drawable) {
91
- const type = drawable.type;
92
- if (!type) {
93
- console.error("Renderer#addDrawable() : drawable with ID " + id + " has no 'type' - ignoring");
94
- return;
95
- }
96
- let drawableInfo = drawableTypeInfo[type];
97
- if (!drawableInfo) {
98
- drawableInfo = {
99
- type: drawable.type,
100
- count: 0,
101
- isStateSortable: drawable.isStateSortable,
102
- stateSortCompare: drawable.stateSortCompare,
103
- drawableMap: {},
104
- drawableListPreCull: [],
105
- drawableList: []
106
- };
107
- drawableTypeInfo[type] = drawableInfo;
108
- }
109
- drawableInfo.count++;
110
- drawableInfo.drawableMap[id] = drawable;
111
- drawables[id] = drawable;
112
- drawableListDirty = true;
113
- };
114
-
115
- /**
116
- * Removes a drawable from this renderer.
117
- * @private
118
- */
119
- this.removeDrawable = function (id) {
120
- const drawable = drawables[id];
121
- if (!drawable) {
122
- console.error("Renderer#removeDrawable() : drawable not found with ID " + id + " - ignoring");
123
- return;
124
- }
125
- const type = drawable.type;
126
- const drawableInfo = drawableTypeInfo[type];
127
- if (--drawableInfo.count <= 0) {
128
- delete drawableTypeInfo[type];
129
- } else {
130
- delete drawableInfo.drawableMap[id];
131
- }
132
- delete drawables[id];
133
- drawableListDirty = true;
134
- };
135
-
136
- /**
137
- * Gets a unique pick ID for the given Pickable. A Pickable can be a {@link Mesh} or a {@link PerformanceMesh}.
138
- * @returns {Number} New pick ID.
139
- */
140
- this.getPickID = function (entity) {
141
- return pickIDs.addItem(entity);
142
- };
143
-
144
- /**
145
- * Released a pick ID for reuse.
146
- * @param {Number} pickID Pick ID to release.
147
- */
148
- this.putPickID = function (pickID) {
149
- pickIDs.removeItem(pickID);
150
- };
151
-
152
- /**
153
- * Clears the canvas.
154
- * @private
155
- */
156
- this.clear = function (params) {
157
- params = params || {};
158
- gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
159
- if (canvasTransparent) {
160
- gl.clearColor(1, 1, 1, 1);
161
- } else {
162
- const backgroundColor = scene.canvas.backgroundColorFromAmbientLight ? this.lights.getAmbientColorAndIntensity() : scene.canvas.backgroundColor;
163
- gl.clearColor(backgroundColor[0], backgroundColor[1], backgroundColor[2], 1.0);
164
- }
165
- if (bindOutputFrameBuffer) {
166
- bindOutputFrameBuffer(params.pass);
167
- }
168
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
169
- if (unbindOutputFrameBuffer) {
170
- unbindOutputFrameBuffer(params.pass);
171
- }
172
- };
173
-
174
- /**
175
- * Renders inserted drawables.
176
- * @private
177
- */
178
- this.render = function (params) {
179
- params = params || {};
180
- if (params.force) {
181
- imageDirty = true;
182
- }
183
- updateDrawlist();
184
- if (imageDirty) {
185
- draw(params);
186
- stats.frame.frameCount++;
187
- imageDirty = false;
188
- }
189
- };
190
-
191
- function updateDrawlist() { // Prepares state-sorted array of drawables from maps of inserted drawables
192
- if (drawableListDirty) {
193
- buildDrawableList();
194
- drawableListDirty = false;
195
- stateSortDirty = true;
196
- }
197
- if (stateSortDirty) {
198
- sortDrawableList();
199
- stateSortDirty = false;
200
- imageDirty = true;
201
- }
202
- if (imageDirty) { // Image is usually dirty because the camera moved
203
- cullDrawableList();
204
- }
205
- }
206
-
207
- function buildDrawableList() {
208
- for (let type in drawableTypeInfo) {
209
- if (drawableTypeInfo.hasOwnProperty(type)) {
210
- const drawableInfo = drawableTypeInfo[type];
211
- const drawableMap = drawableInfo.drawableMap;
212
- const drawableListPreCull = drawableInfo.drawableListPreCull;
213
- let lenDrawableList = 0;
214
- for (let id in drawableMap) {
215
- if (drawableMap.hasOwnProperty(id)) {
216
- drawableListPreCull[lenDrawableList++] = drawableMap[id];
217
- }
218
- }
219
- drawableListPreCull.length = lenDrawableList;
220
- }
221
- }
222
- }
223
-
224
- function sortDrawableList() {
225
- for (let type in drawableTypeInfo) {
226
- if (drawableTypeInfo.hasOwnProperty(type)) {
227
- const drawableInfo = drawableTypeInfo[type];
228
- if (drawableInfo.isStateSortable) {
229
- drawableInfo.drawableListPreCull.sort(drawableInfo.stateSortCompare);
230
- }
231
- }
232
- }
233
- }
234
-
235
- function cullDrawableList() {
236
- for (let type in drawableTypeInfo) {
237
- if (drawableTypeInfo.hasOwnProperty(type)) {
238
- const drawableInfo = drawableTypeInfo[type];
239
- const drawableListPreCull = drawableInfo.drawableListPreCull;
240
- const drawableList = drawableInfo.drawableList;
241
- let lenDrawableList = 0;
242
- for (let i = 0, len = drawableListPreCull.length; i < len; i++) {
243
- const drawable = drawableListPreCull[i];
244
- drawable.rebuildRenderFlags();
245
- if (!drawable.renderFlags.culled) {
246
- drawableList[lenDrawableList++] = drawable;
247
- }
248
- }
249
- drawableList.length = lenDrawableList;
250
- }
251
- }
252
- }
253
-
254
- function draw(params) {
255
-
256
- if (WEBGL_INFO.SUPPORTED_EXTENSIONS["OES_element_index_uint"]) { // In case context lost/recovered
257
- extensionHandles.OES_element_index_uint = gl.getExtension("OES_element_index_uint");
258
- }
259
-
260
- if (scene.logarithmicDepthBufferEnabled && WEBGL_INFO.SUPPORTED_EXTENSIONS["EXT_frag_depth"]) {
261
- extensionHandles.EXT_frag_depth = gl.getExtension('EXT_frag_depth');
262
- }
263
-
264
- if (WEBGL_INFO.SUPPORTED_EXTENSIONS["WEBGL_depth_texture"]) {
265
- extensionHandles.WEBGL_depth_texture = gl.getExtension('WEBGL_depth_texture');
266
- }
267
-
268
- const sao = scene.sao;
269
-
270
- if (sao.possible) {
271
- drawSAOBuffers(params);
272
- }
273
-
274
- drawShadowMaps();
275
-
276
- drawColor(params);
277
- }
278
-
279
- function drawSAOBuffers(params) {
280
-
281
- const sao = scene.sao;
282
-
283
- // Render depth buffer
284
-
285
- saoDepthRenderBuffer.bind();
286
- saoDepthRenderBuffer.clear();
287
- drawDepth(params);
288
- saoDepthRenderBuffer.unbind();
289
-
290
- // Render occlusion buffer
291
-
292
- occlusionRenderBuffer1.bind();
293
- occlusionRenderBuffer1.clear();
294
- saoOcclusionRenderer.render(saoDepthRenderBuffer);
295
- occlusionRenderBuffer1.unbind();
296
-
297
- if (sao.blur) {
298
-
299
- // Horizontally blur occlusion buffer 1 into occlusion buffer 2
300
-
301
- occlusionRenderBuffer2.bind();
302
- occlusionRenderBuffer2.clear();
303
- saoDepthLimitedBlurRenderer.render(saoDepthRenderBuffer, occlusionRenderBuffer1, 0);
304
- occlusionRenderBuffer2.unbind();
305
-
306
- // Vertically blur occlusion buffer 2 back into occlusion buffer 1
307
-
308
- occlusionRenderBuffer1.bind();
309
- occlusionRenderBuffer1.clear();
310
- saoDepthLimitedBlurRenderer.render(saoDepthRenderBuffer, occlusionRenderBuffer2, 1);
311
- occlusionRenderBuffer1.unbind();
312
- }
313
- }
314
-
315
- function drawDepth(params) {
316
-
317
- frameCtx.reset();
318
- frameCtx.pass = params.pass;
319
-
320
- gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
321
-
322
- gl.clearColor(0, 0, 0, 0);
323
- gl.enable(gl.DEPTH_TEST);
324
- gl.frontFace(gl.CCW);
325
- gl.enable(gl.CULL_FACE);
326
- gl.depthMask(true);
327
-
328
- if (params.clear !== false) {
329
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
330
- }
331
-
332
- for (let type in drawableTypeInfo) {
333
- if (drawableTypeInfo.hasOwnProperty(type)) {
334
-
335
- const drawableInfo = drawableTypeInfo[type];
336
- const drawableList = drawableInfo.drawableList;
337
-
338
- for (let i = 0, len = drawableList.length; i < len; i++) {
339
-
340
- const drawable = drawableList[i];
341
-
342
- if (drawable.culled === true || drawable.visible === false || !drawable.drawDepth) {
343
- continue;
344
- }
345
-
346
- if (drawable.renderFlags.colorOpaque) {
347
- drawable.drawDepth(frameCtx);
348
- }
349
- }
350
- }
351
- }
352
-
353
- // const numVertexAttribs = WEBGL_INFO.MAX_VERTEX_ATTRIBS; // Fixes https://github.com/yjkkit/yjkkit-sdk/issues/174
354
- // for (let ii = 0; ii < numVertexAttribs; ii++) {
355
- // gl.disableVertexAttribArray(ii);
356
- // }
357
-
358
- }
359
-
360
- function drawShadowMaps() {
361
-
362
- let lights = scene._lightsState.lights;
363
-
364
- for (let i = 0, len = lights.length; i < len; i++) {
365
- const light = lights[i];
366
- if (!light.castsShadow) {
367
- continue;
368
- }
369
- drawShadowMap(light);
370
- }
371
-
372
- // const numVertexAttribs = WEBGL_INFO.MAX_VERTEX_ATTRIBS; // Fixes https://github.com/yjkkit/yjkkit-sdk/issues/174
373
- // for (let ii = 0; ii < numVertexAttribs; ii++) {
374
- // gl.disableVertexAttribArray(ii);
375
- // }
376
- //
377
- shadowsDirty = false;
378
- }
379
-
380
- function drawShadowMap(light) {
381
-
382
- const castsShadow = light.castsShadow;
383
-
384
- if (!castsShadow) {
385
- return;
386
- }
387
-
388
- const shadowRenderBuf = light.getShadowRenderBuf();
389
-
390
- if (!shadowRenderBuf) {
391
- return;
392
- }
393
-
394
- shadowRenderBuf.bind();
395
-
396
- frameCtx.reset();
397
-
398
- frameCtx.backfaces = true;
399
- frameCtx.frontface = true;
400
- frameCtx.shadowViewMatrix = light.getShadowViewMatrix();
401
- frameCtx.shadowProjMatrix = light.getShadowProjMatrix();
402
-
403
- gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
404
-
405
- gl.clearColor(0, 0, 0, 1);
406
- gl.enable(gl.DEPTH_TEST);
407
- gl.disable(gl.BLEND);
408
-
409
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
410
-
411
- for (let type in drawableTypeInfo) {
412
-
413
- if (drawableTypeInfo.hasOwnProperty(type)) {
414
-
415
- const drawableInfo = drawableTypeInfo[type];
416
- const drawableList = drawableInfo.drawableList;
417
-
418
- for (let i = 0, len = drawableList.length; i < len; i++) {
419
-
420
- const drawable = drawableList[i];
421
-
422
- if (drawable.visible === false || !drawable.castsShadow || !drawable.drawShadow) {
423
- continue;
424
- }
425
-
426
- if (drawable.renderFlags.colorOpaque) { // Transparent objects don't cast shadows (yet)
427
- drawable.drawShadow(frameCtx);
428
- }
429
- }
430
- }
431
- }
432
-
433
- shadowRenderBuf.unbind();
434
- }
435
-
436
- const drawColor = (function () { // Draws the drawables in drawableListSorted
437
-
438
- const normalDrawSAOBin = [];
439
- const normalEdgesOpaqueBin = [];
440
- const normalFillTransparentBin = [];
441
- const normalEdgesTransparentBin = [];
442
-
443
- const xrayedFillOpaqueBin = [];
444
- const xrayEdgesOpaqueBin = [];
445
- const xrayedFillTransparentBin = [];
446
- const xrayEdgesTransparentBin = [];
447
-
448
- const highlightedFillOpaqueBin = [];
449
- const highlightedEdgesOpaqueBin = [];
450
- const highlightedFillTransparentBin = [];
451
- const highlightedEdgesTransparentBin = [];
452
-
453
- const selectedFillOpaqueBin = [];
454
- const selectedEdgesOpaqueBin = [];
455
- const selectedFillTransparentBin = [];
456
- const selectedEdgesTransparentBin = [];
457
-
458
- return function (params) {
459
-
460
- const ambientColorAndIntensity = scene._lightsState.getAmbientColorAndIntensity();
461
-
462
- frameCtx.reset();
463
- frameCtx.pass = params.pass;
464
- frameCtx.withSAO = false;
465
- frameCtx.pbrEnabled = !!scene.pbrEnabled;
466
-
467
- gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
468
-
469
- if (canvasTransparent) {
470
- gl.clearColor(0, 0, 0, 0);
471
- } else {
472
- const backgroundColor = scene.canvas.backgroundColorFromAmbientLight ? ambientColorAndIntensity : scene.canvas.backgroundColor;
473
- gl.clearColor(backgroundColor[0], backgroundColor[1], backgroundColor[2], 1.0);
474
- }
475
-
476
- gl.enable(gl.DEPTH_TEST);
477
- gl.frontFace(gl.CCW);
478
- gl.enable(gl.CULL_FACE);
479
- gl.depthMask(true);
480
- gl.lineWidth(1);
481
-
482
- frameCtx.lineWidth = 1;
483
-
484
- const saoPossible = scene.sao.possible;
485
- frameCtx.occlusionTexture = saoPossible ? occlusionRenderBuffer1.getTexture() : null;
486
-
487
- let i;
488
- let len;
489
- let drawable;
490
-
491
- const startTime = Date.now();
492
-
493
- if (bindOutputFrameBuffer) {
494
- bindOutputFrameBuffer(params.pass);
495
- }
496
-
497
- if (params.clear !== false) {
498
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
499
- }
500
-
501
- let normalDrawSAOBinLen = 0;
502
- let normalEdgesOpaqueBinLen = 0;
503
- let normalFillTransparentBinLen = 0;
504
- let normalEdgesTransparentBinLen = 0;
505
-
506
- let xrayedFillOpaqueBinLen = 0;
507
- let xrayEdgesOpaqueBinLen = 0;
508
- let xrayedFillTransparentBinLen = 0;
509
- let xrayEdgesTransparentBinLen = 0;
510
-
511
- let highlightedFillOpaqueBinLen = 0;
512
- let highlightedEdgesOpaqueBinLen = 0;
513
- let highlightedFillTransparentBinLen = 0;
514
- let highlightedEdgesTransparentBinLen = 0;
515
-
516
- let selectedFillOpaqueBinLen = 0;
517
- let selectedEdgesOpaqueBinLen = 0;
518
- let selectedFillTransparentBinLen = 0;
519
- let selectedEdgesTransparentBinLen = 0;
520
-
521
- //------------------------------------------------------------------------------------------------------
522
- // Render normal opaque solids, defer others to bins to render after
523
- //------------------------------------------------------------------------------------------------------
524
-
525
- for (let type in drawableTypeInfo) {
526
- if (drawableTypeInfo.hasOwnProperty(type)) {
527
-
528
- const drawableInfo = drawableTypeInfo[type];
529
- const drawableList = drawableInfo.drawableList;
530
-
531
- for (i = 0, len = drawableList.length; i < len; i++) {
532
-
533
- drawable = drawableList[i];
534
-
535
- if (drawable.culled === true || drawable.visible === false) {
536
- continue;
537
- }
538
-
539
- const renderFlags = drawable.renderFlags;
540
-
541
- if (renderFlags.colorOpaque) {
542
- if (saoPossible && drawable.saoEnabled) {
543
- normalDrawSAOBin[normalDrawSAOBinLen++] = drawable;
544
- } else {
545
- drawable.drawColorOpaque(frameCtx);
546
- }
547
- }
548
-
549
- if (renderFlags.colorTransparent) {
550
- normalFillTransparentBin[normalFillTransparentBinLen++] = drawable;
551
- }
552
-
553
- if (renderFlags.xrayedSilhouetteTransparent) {
554
- xrayedFillTransparentBin[xrayedFillTransparentBinLen++] = drawable;
555
- }
556
-
557
- if (renderFlags.xrayedSilhouetteOpaque) {
558
- xrayedFillOpaqueBin[xrayedFillOpaqueBinLen++] = drawable;
559
- }
560
-
561
- if (renderFlags.highlightedSilhouetteTransparent) {
562
- highlightedFillTransparentBin[highlightedFillTransparentBinLen++] = drawable;
563
- }
564
-
565
- if (renderFlags.highlightedSilhouetteOpaque) {
566
- highlightedFillOpaqueBin[highlightedFillOpaqueBinLen++] = drawable;
567
- }
568
-
569
- if (renderFlags.selectedSilhouetteTransparent) {
570
- selectedFillTransparentBin[selectedFillTransparentBinLen++] = drawable;
571
- }
572
-
573
- if (renderFlags.selectedSilhouetteOpaque) {
574
- selectedFillOpaqueBin[selectedFillOpaqueBinLen++] = drawable;
575
- }
576
-
577
- if (renderFlags.edgesOpaque) {
578
- normalEdgesOpaqueBin[normalEdgesOpaqueBinLen++] = drawable;
579
- }
580
-
581
- if (renderFlags.edgesTransparent) {
582
- normalEdgesTransparentBin[normalEdgesTransparentBinLen++] = drawable;
583
- }
584
-
585
- if (renderFlags.selectedEdgesTransparent) {
586
- selectedEdgesTransparentBin[selectedEdgesTransparentBinLen++] = drawable;
587
- }
588
-
589
- if (renderFlags.selectedEdgesOpaque) {
590
- selectedEdgesOpaqueBin[selectedEdgesOpaqueBinLen++] = drawable;
591
- }
592
-
593
- if (renderFlags.xrayedEdgesTransparent) {
594
- xrayEdgesTransparentBin[xrayEdgesTransparentBinLen++] = drawable;
595
- }
596
-
597
- if (renderFlags.xrayedEdgesOpaque) {
598
- xrayEdgesOpaqueBin[xrayEdgesOpaqueBinLen++] = drawable;
599
- }
600
-
601
- if (renderFlags.highlightedEdgesTransparent) {
602
- highlightedEdgesTransparentBin[highlightedEdgesTransparentBinLen++] = drawable;
603
- }
604
-
605
- if (renderFlags.highlightedEdgesOpaque) {
606
- highlightedEdgesOpaqueBin[highlightedEdgesOpaqueBinLen++] = drawable;
607
- }
608
- }
609
- }
610
- }
611
-
612
- //------------------------------------------------------------------------------------------------------
613
- // Render deferred bins
614
- //------------------------------------------------------------------------------------------------------
615
-
616
- if (normalDrawSAOBinLen > 0) {
617
- frameCtx.withSAO = true;
618
- for (i = 0; i < normalDrawSAOBinLen; i++) {
619
- normalDrawSAOBin[i].drawColorOpaque(frameCtx);
620
- }
621
- }
622
-
623
- if (normalEdgesOpaqueBinLen > 0) {
624
- for (i = 0; i < normalEdgesOpaqueBinLen; i++) {
625
- normalEdgesOpaqueBin[i].drawEdgesColorOpaque(frameCtx);
626
- }
627
- }
628
-
629
- if (xrayedFillOpaqueBinLen > 0) {
630
- for (i = 0; i < xrayedFillOpaqueBinLen; i++) {
631
- xrayedFillOpaqueBin[i].drawSilhouetteXRayed(frameCtx);
632
- }
633
- }
634
-
635
- if (xrayEdgesOpaqueBinLen > 0) {
636
- for (i = 0; i < xrayEdgesOpaqueBinLen; i++) {
637
- xrayEdgesOpaqueBin[i].drawEdgesXRayed(frameCtx);
638
- }
639
- }
640
-
641
- if (xrayedFillTransparentBinLen > 0 || xrayEdgesTransparentBinLen > 0 || normalFillTransparentBinLen > 0 || normalEdgesTransparentBinLen > 0) {
642
- gl.enable(gl.CULL_FACE);
643
- gl.enable(gl.BLEND);
644
-
645
- if (canvasTransparent) {
646
- gl.blendEquation(gl.FUNC_ADD);
647
- gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
648
- } else {
649
- gl.blendEquation(gl.FUNC_ADD);
650
- gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
651
- }
652
-
653
- frameCtx.backfaces = false;
654
- if (!alphaDepthMask) {
655
- gl.depthMask(false);
656
- }
657
- if (xrayEdgesTransparentBinLen > 0) {
658
- for (i = 0; i < xrayEdgesTransparentBinLen; i++) {
659
- xrayEdgesTransparentBin[i].drawEdgesXRayed(frameCtx);
660
- }
661
- }
662
- if (xrayedFillTransparentBinLen > 0) {
663
- for (i = 0; i < xrayedFillTransparentBinLen; i++) {
664
- xrayedFillTransparentBin[i].drawSilhouetteXRayed(frameCtx);
665
- }
666
- }
667
- if (normalFillTransparentBinLen > 0 || normalEdgesTransparentBinLen > 0) {
668
- gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
669
- }
670
- if (normalEdgesTransparentBinLen > 0) {
671
- for (i = 0; i < normalEdgesTransparentBinLen; i++) {
672
- drawable = normalEdgesTransparentBin[i];
673
- drawable.drawEdgesColorTransparent(frameCtx);
674
- }
675
- }
676
- if (normalFillTransparentBinLen > 0) {
677
- for (i = 0; i < normalFillTransparentBinLen; i++) {
678
- drawable = normalFillTransparentBin[i];
679
- drawable.drawColorTransparent(frameCtx);
680
- }
681
- }
682
- gl.disable(gl.BLEND);
683
- if (!alphaDepthMask) {
684
- gl.depthMask(true);
685
- }
686
- }
687
-
688
- if (highlightedFillOpaqueBinLen > 0 || highlightedEdgesOpaqueBinLen > 0) {
689
- frameCtx.lastProgramId = null;
690
- gl.clear(gl.DEPTH_BUFFER_BIT);
691
- if (highlightedEdgesOpaqueBinLen > 0) {
692
- for (i = 0; i < highlightedEdgesOpaqueBinLen; i++) {
693
- highlightedEdgesOpaqueBin[i].drawEdgesHighlighted(frameCtx);
694
- }
695
- }
696
- if (highlightedFillOpaqueBinLen > 0) {
697
- for (i = 0; i < highlightedFillOpaqueBinLen; i++) {
698
- highlightedFillOpaqueBin[i].drawSilhouetteHighlighted(frameCtx);
699
- }
700
- }
701
- }
702
-
703
- if (highlightedFillTransparentBinLen > 0 || highlightedEdgesTransparentBinLen > 0 || highlightedFillOpaqueBinLen > 0) {
704
- frameCtx.lastProgramId = null;
705
- gl.clear(gl.DEPTH_BUFFER_BIT);
706
- gl.enable(gl.CULL_FACE);
707
- gl.enable(gl.BLEND);
708
-
709
- if (canvasTransparent) {
710
- gl.blendEquation(gl.FUNC_ADD);
711
- gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
712
- } else {
713
- gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
714
- }
715
-
716
- if (highlightedEdgesTransparentBinLen > 0) {
717
- for (i = 0; i < highlightedEdgesTransparentBinLen; i++) {
718
- highlightedEdgesTransparentBin[i].drawEdgesHighlighted(frameCtx);
719
- }
720
- }
721
- if (highlightedFillTransparentBinLen > 0) {
722
- for (i = 0; i < highlightedFillTransparentBinLen; i++) {
723
- highlightedFillTransparentBin[i].drawSilhouetteHighlighted(frameCtx);
724
- }
725
- }
726
- gl.disable(gl.BLEND);
727
- }
728
-
729
- if (selectedFillOpaqueBinLen > 0 || selectedEdgesOpaqueBinLen > 0) {
730
- frameCtx.lastProgramId = null;
731
- gl.clear(gl.DEPTH_BUFFER_BIT);
732
- if (selectedEdgesOpaqueBinLen > 0) {
733
- for (i = 0; i < selectedEdgesOpaqueBinLen; i++) {
734
- selectedEdgesOpaqueBin[i].drawEdgesSelected(frameCtx);
735
- }
736
- }
737
- if (selectedFillOpaqueBinLen > 0) {
738
- for (i = 0; i < selectedFillOpaqueBinLen; i++) {
739
- selectedFillOpaqueBin[i].drawSilhouetteSelected(frameCtx);
740
- }
741
- }
742
- }
743
-
744
- if (selectedFillTransparentBinLen > 0 || selectedEdgesTransparentBinLen > 0) {
745
- frameCtx.lastProgramId = null;
746
- gl.clear(gl.DEPTH_BUFFER_BIT);
747
- gl.enable(gl.CULL_FACE);
748
- gl.enable(gl.BLEND);
749
-
750
- if (canvasTransparent) {
751
- gl.blendEquation(gl.FUNC_ADD);
752
- gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
753
- } else {
754
- gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
755
- }
756
-
757
- if (selectedEdgesTransparentBinLen > 0) {
758
- for (i = 0; i < selectedEdgesTransparentBinLen; i++) {
759
- selectedEdgesTransparentBin[i].drawEdgesSelected(frameCtx);
760
- }
761
- }
762
- if (selectedFillTransparentBinLen > 0) {
763
- for (i = 0; i < selectedFillTransparentBinLen; i++) {
764
- selectedFillTransparentBin[i].drawSilhouetteSelected(frameCtx);
765
- }
766
- }
767
- gl.disable(gl.BLEND);
768
- }
769
-
770
- const endTime = Date.now();
771
- const frameStats = stats.frame;
772
-
773
- frameStats.renderTime = (endTime - startTime) / 1000.0;
774
- frameStats.drawElements = frameCtx.drawElements;
775
- frameStats.useProgram = frameCtx.useProgram;
776
- frameStats.bindTexture = frameCtx.bindTexture;
777
- frameStats.bindArray = frameCtx.bindArray;
778
-
779
- const numTextureUnits = WEBGL_INFO.MAX_TEXTURE_UNITS;
780
- for (let ii = 0; ii < numTextureUnits; ii++) {
781
- gl.activeTexture(gl.TEXTURE0 + ii);
782
- }
783
- gl.bindTexture(gl.TEXTURE_CUBE_MAP, null);
784
- gl.bindTexture(gl.TEXTURE_2D, null);
785
-
786
- const numVertexAttribs = WEBGL_INFO.MAX_VERTEX_ATTRIBS; // Fixes https://github.com/yjkkit/yjkkit-sdk/issues/174
787
- for (let ii = 0; ii < numVertexAttribs; ii++) {
788
- gl.disableVertexAttribArray(ii);
789
- }
790
-
791
- if (unbindOutputFrameBuffer) {
792
- unbindOutputFrameBuffer(params.pass);
793
- }
794
- };
795
- })();
796
-
797
- /**
798
- * Picks an Entity.
799
- * @private
800
- */
801
- this.pick = (function () {
802
-
803
- const tempVec3a = math.vec3();
804
- const tempMat4a = math.mat4();
805
- const tempMat4b = math.mat4();
806
-
807
- const up = math.vec3([0, 1, 0]);
808
- const _pickResult = new PickResult();
809
-
810
- const nearAndFar = math.vec2();
811
-
812
- return function (params, pickResult = _pickResult) {
813
-
814
- pickResult.reset();
815
-
816
- updateDrawlist();
817
-
818
- if (WEBGL_INFO.SUPPORTED_EXTENSIONS["OES_element_index_uint"]) { // In case context lost/recovered
819
- extensionHandles.OES_element_index_uint = gl.getExtension("OES_element_index_uint");
820
- }
821
-
822
- if (scene.logarithmicDepthBufferEnabled && WEBGL_INFO.SUPPORTED_EXTENSIONS["EXT_frag_depth"]) {
823
- extensionHandles.EXT_frag_depth = gl.getExtension('EXT_frag_depth');
824
- }
825
-
826
- if (WEBGL_INFO.SUPPORTED_EXTENSIONS["WEBGL_depth_texture"]) {
827
- extensionHandles.WEBGL_depth_texture = gl.getExtension('WEBGL_depth_texture');
828
- }
829
-
830
- let canvasX;
831
- let canvasY;
832
- let origin;
833
- let direction;
834
- let look;
835
- let pickViewMatrix = null;
836
- let pickProjMatrix = null;
837
-
838
- pickResult.pickSurface = params.pickSurface;
839
-
840
- if (params.canvasPos) {
841
-
842
- canvasX = params.canvasPos[0];
843
- canvasY = params.canvasPos[1];
844
-
845
- pickViewMatrix = scene.camera.viewMatrix;
846
- pickProjMatrix = scene.camera.projMatrix;
847
-
848
- pickResult.canvasPos = params.canvasPos;
849
-
850
- } else {
851
-
852
- // Picking with arbitrary World-space ray
853
- // Align camera along ray and fire ray through center of canvas
854
-
855
- const pickFrustumMatrix = math.frustumMat4(-1, 1, -1, 1, scene.camera.project.near, scene.camera.project.far, tempMat4a);
856
-
857
- if (params.matrix) {
858
-
859
- pickViewMatrix = params.matrix;
860
- pickProjMatrix = pickFrustumMatrix;
861
-
862
- } else {
863
-
864
- origin = params.origin || math.vec3([0, 0, 0]);
865
- direction = params.direction || math.vec3([0, 0, 1]);
866
- look = math.addVec3(origin, direction, tempVec3a);
867
-
868
- pickViewMatrix = math.lookAtMat4v(origin, look, up, tempMat4b);
869
- pickProjMatrix = pickFrustumMatrix;
870
-
871
- pickResult.origin = origin;
872
- pickResult.direction = direction;
873
- }
874
-
875
- canvasX = canvas.clientWidth * 0.5;
876
- canvasY = canvas.clientHeight * 0.5;
877
- }
878
-
879
- pickBuffer.bind();
880
-
881
- const pickable = pickPickable(canvasX, canvasY, pickViewMatrix, pickProjMatrix, params);
882
-
883
- if (!pickable) {
884
- pickBuffer.unbind();
885
- return null;
886
- }
887
-
888
- const pickedEntity = (pickable.delegatePickedEntity) ? pickable.delegatePickedEntity() : pickable;
889
-
890
- if (!pickedEntity) {
891
- return null;
892
- }
893
-
894
- if (params.pickSurface) {
895
-
896
- if (pickable.canPickTriangle && pickable.canPickTriangle()) {
897
- pickTriangle(pickable, canvasX, canvasY, pickViewMatrix, pickProjMatrix, pickResult);
898
- pickable.pickTriangleSurface(pickViewMatrix, pickProjMatrix, pickResult);
899
-
900
- } else {
901
-
902
- if (pickable.canPickWorldPos && pickable.canPickWorldPos()) {
903
-
904
- nearAndFar[0] = scene.camera.project.near;
905
- nearAndFar[1] = scene.camera.project.far;
906
-
907
- pickWorldPos(pickable, canvasX, canvasY, pickViewMatrix, pickProjMatrix, nearAndFar, pickResult);
908
- if (params.pickSurfaceNormal !== false) {
909
- pickWorldNormal(pickable, canvasX, canvasY, pickViewMatrix, pickProjMatrix, nearAndFar, pickResult);
910
- }
911
- }
912
- }
913
- }
914
-
915
- pickBuffer.unbind();
916
-
917
- pickResult.entity = pickedEntity;
918
-
919
- return pickResult;
920
- };
921
- })();
922
-
923
- function pickPickable(canvasX, canvasY, pickViewMatrix, pickProjMatrix, params) {
924
-
925
- frameCtx.reset();
926
- frameCtx.backfaces = true;
927
- frameCtx.frontface = true; // "ccw"
928
- frameCtx.pickViewMatrix = pickViewMatrix;
929
- frameCtx.pickProjMatrix = pickProjMatrix;
930
- frameCtx.pickInvisible = !!params.pickInvisible;
931
-
932
- gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
933
-
934
- gl.clearColor(0, 0, 0, 0);
935
- gl.enable(gl.DEPTH_TEST);
936
- gl.disable(gl.CULL_FACE);
937
- gl.disable(gl.BLEND);
938
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
939
-
940
- let i;
941
- let len;
942
- const includeEntityIds = params.includeEntityIds;
943
- const excludeEntityIds = params.excludeEntityIds;
944
-
945
- for (let type in drawableTypeInfo) {
946
- if (drawableTypeInfo.hasOwnProperty(type)) {
947
-
948
- const drawableInfo = drawableTypeInfo[type];
949
- const drawableList = drawableInfo.drawableList;
950
-
951
- for (i = 0, len = drawableList.length; i < len; i++) {
952
-
953
- const drawable = drawableList[i];
954
-
955
- if (!drawable.drawPickMesh || drawable.culled === true || (params.pickInvisible !== true && drawable.visible === false) || drawable.pickable === false) {
956
- continue;
957
- }
958
- if (includeEntityIds && !includeEntityIds[drawable.id]) { // TODO: push this logic into drawable
959
- continue;
960
- }
961
- if (excludeEntityIds && excludeEntityIds[drawable.id]) {
962
- continue;
963
- }
964
-
965
- drawable.drawPickMesh(frameCtx);
966
- }
967
- }
968
- }
969
-
970
- const pix = pickBuffer.read(Math.round(canvasX), Math.round(canvasY));
971
- let pickID = pix[0] + (pix[1] * 256) + (pix[2] * 256 * 256) + (pix[3] * 256 * 256 * 256);
972
-
973
- if (pickID < 0) {
974
- return;
975
- }
976
-
977
- const pickable = pickIDs.items[pickID];
978
-
979
- return pickable;
980
- }
981
-
982
- function pickTriangle(pickable, canvasX, canvasY, pickViewMatrix, pickProjMatrix, pickResult) {
983
-
984
- if (!pickable.drawPickTriangles) {
985
- return;
986
- }
987
-
988
- frameCtx.reset();
989
- frameCtx.backfaces = true;
990
- frameCtx.frontface = true; // "ccw"
991
- frameCtx.pickViewMatrix = pickViewMatrix; // Can be null
992
- frameCtx.pickProjMatrix = pickProjMatrix; // Can be null
993
- // frameCtx.pickInvisible = !!params.pickInvisible;
994
-
995
- gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
996
-
997
- gl.clearColor(0, 0, 0, 0);
998
- gl.enable(gl.DEPTH_TEST);
999
- gl.disable(gl.CULL_FACE);
1000
- gl.disable(gl.BLEND);
1001
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
1002
-
1003
- pickable.drawPickTriangles(frameCtx);
1004
-
1005
- const pix = pickBuffer.read(canvasX, canvasY);
1006
-
1007
- let primIndex = pix[0] + (pix[1] * 256) + (pix[2] * 256 * 256) + (pix[3] * 256 * 256 * 256);
1008
-
1009
- primIndex *= 3; // Convert from triangle number to first vertex in indices
1010
-
1011
- pickResult.primIndex = primIndex;
1012
- }
1013
-
1014
- const pickWorldPos = (function () {
1015
-
1016
- const tempVec4a = math.vec4();
1017
- const tempVec4b = math.vec4();
1018
- const tempVec4c = math.vec4();
1019
- const tempVec4d = math.vec4();
1020
- const tempVec4e = math.vec4();
1021
- const tempMat4a = math.mat4();
1022
- const tempMat4b = math.mat4();
1023
- const tempMat4c = math.mat4();
1024
-
1025
- return function (pickable, canvasX, canvasY, pickViewMatrix, pickProjMatrix, nearAndFar, pickResult) {
1026
-
1027
- frameCtx.reset();
1028
- frameCtx.backfaces = true;
1029
- frameCtx.frontface = true; // "ccw"
1030
- frameCtx.pickViewMatrix = pickViewMatrix;
1031
- frameCtx.pickProjMatrix = pickProjMatrix;
1032
- frameCtx.pickZNear = nearAndFar[0];
1033
- frameCtx.pickZFar = nearAndFar[1];
1034
-
1035
- gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
1036
-
1037
- gl.clearColor(0, 0, 0, 0);
1038
- gl.enable(gl.DEPTH_TEST);
1039
- gl.disable(gl.CULL_FACE);
1040
- gl.disable(gl.BLEND);
1041
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
1042
-
1043
- pickable.drawPickDepths(frameCtx); // Draw color-encoded fragment screen-space depths
1044
-
1045
- const pix = pickBuffer.read(Math.round(canvasX), Math.round(canvasY));
1046
-
1047
- const screenZ = unpackDepth(pix); // Get screen-space Z at the given canvas coords
1048
-
1049
- // Calculate clip space coordinates, which will be in range of x=[-1..1] and y=[-1..1], with y=(+1) at top
1050
- const x = (canvasX - canvas.width / 2) / (canvas.width / 2);
1051
- const y = -(canvasY - canvas.height / 2) / (canvas.height / 2);
1052
-
1053
- const rtcCenter = pickable.rtcCenter;
1054
- let pvMat;
1055
-
1056
- if (rtcCenter) {
1057
- const rtcPickViewMat = createRTCViewMat(pickViewMatrix, rtcCenter, tempMat4a);
1058
- pvMat = math.mulMat4(pickProjMatrix, rtcPickViewMat, tempMat4b);
1059
-
1060
- } else {
1061
- pvMat = math.mulMat4(pickProjMatrix, pickViewMatrix, tempMat4b);
1062
- }
1063
-
1064
- const pvMatInverse = math.inverseMat4(pvMat, tempMat4c);
1065
-
1066
- tempVec4a[0] = x;
1067
- tempVec4a[1] = y;
1068
- tempVec4a[2] = -1;
1069
- tempVec4a[3] = 1;
1070
-
1071
- let world1 = math.transformVec4(pvMatInverse, tempVec4a);
1072
- world1 = math.mulVec4Scalar(world1, 1 / world1[3]);
1073
-
1074
- tempVec4b[0] = x;
1075
- tempVec4b[1] = y;
1076
- tempVec4b[2] = 1;
1077
- tempVec4b[3] = 1;
1078
-
1079
- let world2 = math.transformVec4(pvMatInverse, tempVec4b);
1080
- world2 = math.mulVec4Scalar(world2, 1 / world2[3]);
1081
-
1082
- const dir = math.subVec3(world2, world1, tempVec4c);
1083
- const worldPos = math.addVec3(world1, math.mulVec4Scalar(dir, screenZ, tempVec4d), tempVec4e);
1084
-
1085
- if (rtcCenter) {
1086
- math.addVec3(worldPos, rtcCenter);
1087
- }
1088
-
1089
- pickResult.worldPos = worldPos;
1090
- }
1091
- })();
1092
-
1093
- function unpackDepth(depthZ) {
1094
- const vec = [depthZ[0] / 256.0, depthZ[1] / 256.0, depthZ[2] / 256.0, depthZ[3] / 256.0];
1095
- const bitShift = [1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0];
1096
- return math.dotVec4(vec, bitShift);
1097
- }
1098
-
1099
- function pickWorldNormal(pickable, canvasX, canvasY, pickViewMatrix, pickProjMatrix, nearAndFar, pickResult) {
1100
-
1101
- frameCtx.reset();
1102
- frameCtx.backfaces = true;
1103
- frameCtx.frontface = true; // "ccw"
1104
- frameCtx.pickViewMatrix = pickViewMatrix;
1105
- frameCtx.pickProjMatrix = pickProjMatrix;
1106
- frameCtx.pickZNear = nearAndFar[0];
1107
- frameCtx.pickZFar = nearAndFar[1];
1108
-
1109
- gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
1110
-
1111
- gl.clearColor(0, 0, 0, 0);
1112
- gl.enable(gl.DEPTH_TEST);
1113
- gl.disable(gl.CULL_FACE);
1114
- gl.disable(gl.BLEND);
1115
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
1116
-
1117
- pickable.drawPickNormals(frameCtx); // Draw color-encoded fragment World-space normals
1118
-
1119
- const pix = pickBuffer.read(Math.round(canvasX), Math.round(canvasY));
1120
-
1121
- const worldNormal = [(pix[0] / 256.0) - 0.5, (pix[1] / 256.0) - 0.5, (pix[2] / 256.0) - 0.5];
1122
-
1123
- math.normalizeVec3(worldNormal);
1124
-
1125
- pickResult.worldNormal = worldNormal;
1126
- }
1127
-
1128
- /**
1129
- * Adds a {@link Marker} for occlusion testing.
1130
- * @param marker
1131
- */
1132
- this.addMarker = function (marker) {
1133
- this._occlusionTester = this._occlusionTester || new OcclusionTester(scene);
1134
- this._occlusionTester.addMarker(marker);
1135
- scene.occlusionTestCountdown = 0;
1136
- };
1137
-
1138
- /**
1139
- * Notifies that a {@link Marker#worldPos} has updated.
1140
- * @param marker
1141
- */
1142
- this.markerWorldPosUpdated = function (marker) {
1143
- this._occlusionTester.markerWorldPosUpdated(marker);
1144
- };
1145
-
1146
- /**
1147
- * Removes a {@link Marker} from occlusion testing.
1148
- * @param marker
1149
- */
1150
- this.removeMarker = function (marker) {
1151
- this._occlusionTester.removeMarker(marker);
1152
- };
1153
-
1154
- /**
1155
- * Performs an occlusion test for all added {@link Marker}s, updating
1156
- * their {@link Marker#visible} properties accordingly.
1157
- */
1158
- this.doOcclusionTest = function () {
1159
-
1160
- if (this._occlusionTester && this._occlusionTester.needOcclusionTest) {
1161
-
1162
- updateDrawlist();
1163
-
1164
- this._occlusionTester.bindRenderBuf();
1165
-
1166
- frameCtx.reset();
1167
- frameCtx.backfaces = true;
1168
- frameCtx.frontface = true; // "ccw"
1169
-
1170
- gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
1171
- gl.clearColor(0, 0, 0, 0);
1172
- gl.enable(gl.DEPTH_TEST);
1173
- gl.disable(gl.CULL_FACE);
1174
- gl.disable(gl.BLEND);
1175
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
1176
-
1177
- for (let type in drawableTypeInfo) {
1178
- if (drawableTypeInfo.hasOwnProperty(type)) {
1179
- const drawableInfo = drawableTypeInfo[type];
1180
- const drawableList = drawableInfo.drawableList;
1181
- for (let i = 0, len = drawableList.length; i < len; i++) {
1182
- const drawable = drawableList[i];
1183
- if (!drawable.drawOcclusion || drawable.culled === true || drawable.visible === false || drawable.pickable === false) { // TODO: Option to exclude transparent?
1184
- continue;
1185
- }
1186
-
1187
- drawable.drawOcclusion(frameCtx);
1188
- }
1189
- }
1190
- }
1191
-
1192
- this._occlusionTester.drawMarkers(frameCtx);
1193
- this._occlusionTester.doOcclusionTest(); // Updates Marker "visible" properties
1194
- this._occlusionTester.unbindRenderBuf();
1195
- }
1196
- };
1197
-
1198
- /**
1199
- * Read pixels from the renderer's current output. Performs a force-render first.
1200
- * @param pixels
1201
- * @param colors
1202
- * @param len
1203
- * @param opaqueOnly
1204
- * @private
1205
- */
1206
- this.readPixels = function (pixels, colors, len, opaqueOnly) {
1207
- snapshotBuffer.bind();
1208
- snapshotBuffer.clear();
1209
- this.render({force: true, opaqueOnly: opaqueOnly});
1210
- let color;
1211
- let i;
1212
- let j;
1213
- let k;
1214
- for (i = 0; i < len; i++) {
1215
- j = i * 2;
1216
- k = i * 4;
1217
- color = snapshotBuffer.read(pixels[j], pixels[j + 1]);
1218
- colors[k] = color[0];
1219
- colors[k + 1] = color[1];
1220
- colors[k + 2] = color[2];
1221
- colors[k + 3] = color[3];
1222
- }
1223
- snapshotBuffer.unbind();
1224
- imageDirty = true;
1225
- };
1226
-
1227
- /**
1228
- * Enter snapshot mode.
1229
- *
1230
- * Switches rendering to a hidden snapshot canvas.
1231
- *
1232
- * Exit snapshot mode using endSnapshot().
1233
- */
1234
- this.beginSnapshot = function () {
1235
- snapshotBuffer.bind();
1236
- snapshotBuffer.clear();
1237
- snapshotBound = true;
1238
- };
1239
-
1240
- /**
1241
- * When in snapshot mode, renders a frame of the current Scene state to the snapshot canvas.
1242
- */
1243
- this.renderSnapshot = function () {
1244
- if (!snapshotBound) {
1245
- return;
1246
- }
1247
- snapshotBuffer.clear();
1248
- this.render({force: true, opaqueOnly: false});
1249
- imageDirty = true;
1250
- };
1251
-
1252
- /**
1253
- * When in snapshot mode, gets an image of the snapshot canvas.
1254
- *
1255
- * @private
1256
- * @returns {String} The image data URI.
1257
- */
1258
- this.readSnapshot = function (params) {
1259
- const imageDataURI = snapshotBuffer.readImage(params);
1260
- return imageDataURI;
1261
- };
1262
-
1263
- /**
1264
- * Exists snapshot mode.
1265
- *
1266
- * Switches rendering back to the main canvas.
1267
- */
1268
- this.endSnapshot = function () {
1269
- if (!snapshotBound) {
1270
- return;
1271
- }
1272
- snapshotBuffer.unbind();
1273
- snapshotBound = false;
1274
- };
1275
-
1276
- /**
1277
- * Destroys this renderer.
1278
- * @private
1279
- */
1280
- this.destroy = function () {
1281
-
1282
- drawableTypeInfo = {};
1283
- drawables = {};
1284
-
1285
- pickBuffer.destroy();
1286
- snapshotBuffer.destroy();
1287
- saoDepthRenderBuffer.destroy();
1288
- occlusionRenderBuffer1.destroy();
1289
- occlusionRenderBuffer2.destroy();
1290
-
1291
- saoOcclusionRenderer.destroy();
1292
- saoDepthLimitedBlurRenderer.destroy();
1293
-
1294
- if (this._occlusionTester) {
1295
- this._occlusionTester.destroy();
1296
- }
1297
- };
1298
- };
1299
-
1300
- export {Renderer};