@needle-tools/three 0.146.10 → 0.153.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (865) hide show
  1. package/LICENSE +1 -1
  2. package/build/three.cjs +40124 -20919
  3. package/build/three.js +40120 -20914
  4. package/build/three.min.js +8 -6
  5. package/build/three.module.js +7298 -6003
  6. package/build/three.module.min.js +7 -0
  7. package/examples/jsm/animation/AnimationClipCreator.js +5 -3
  8. package/examples/jsm/cameras/CinematicCamera.js +1 -2
  9. package/examples/jsm/capabilities/WebGPU.js +17 -5
  10. package/examples/jsm/controls/ArcballControls.js +1828 -1821
  11. package/examples/jsm/controls/MapControls.js +28 -0
  12. package/examples/jsm/controls/OrbitControls.js +26 -53
  13. package/examples/jsm/controls/PointerLockControls.js +70 -65
  14. package/examples/jsm/controls/TrackballControls.js +18 -4
  15. package/examples/jsm/controls/TransformControls.js +0 -1
  16. package/examples/jsm/csm/CSM.js +11 -5
  17. package/examples/jsm/csm/CSMShader.js +7 -6
  18. package/examples/jsm/effects/AnaglyphEffect.js +6 -20
  19. package/examples/jsm/effects/AsciiEffect.js +3 -6
  20. package/examples/jsm/effects/OutlineEffect.js +1 -15
  21. package/examples/jsm/effects/ParallaxBarrierEffect.js +3 -0
  22. package/examples/jsm/exporters/DRACOExporter.js +53 -11
  23. package/examples/jsm/exporters/EXRExporter.js +3 -9
  24. package/examples/jsm/exporters/GLTFExporter.js +561 -154
  25. package/examples/jsm/exporters/KTX2Exporter.js +34 -23
  26. package/examples/jsm/exporters/MMDExporter.js +1 -1
  27. package/examples/jsm/exporters/PLYExporter.js +8 -1
  28. package/examples/jsm/exporters/STLExporter.js +8 -4
  29. package/examples/jsm/exporters/USDZExporter.js +305 -792
  30. package/examples/jsm/geometries/ConvexGeometry.js +0 -6
  31. package/examples/jsm/geometries/ParametricGeometry.js +10 -0
  32. package/examples/jsm/helpers/OctreeHelper.js +1 -0
  33. package/examples/jsm/helpers/ViewHelper.js +71 -57
  34. package/examples/jsm/interactive/HTMLMesh.js +16 -3
  35. package/examples/jsm/interactive/InteractiveGroup.js +1 -1
  36. package/examples/{js → jsm}/libs/basis/README.md +4 -4
  37. package/examples/jsm/libs/draco/draco_decoder.js +34 -0
  38. package/examples/jsm/libs/draco/draco_decoder.wasm +0 -0
  39. package/examples/jsm/libs/draco/draco_wasm_wrapper.js +117 -0
  40. package/examples/jsm/libs/draco/gltf/draco_decoder.js +33 -0
  41. package/examples/jsm/libs/draco/gltf/draco_decoder.wasm +0 -0
  42. package/examples/jsm/libs/draco/gltf/draco_wasm_wrapper.js +116 -0
  43. package/examples/jsm/libs/lil-gui.module.min.js +2 -2
  44. package/examples/jsm/libs/tween.module.js +803 -0
  45. package/examples/jsm/lights/IESSpotLight.js +25 -0
  46. package/examples/jsm/lights/LightProbeGenerator.js +11 -9
  47. package/examples/jsm/lines/LineSegments2.js +16 -10
  48. package/examples/jsm/loaders/3DMLoader.js +8 -5
  49. package/examples/jsm/loaders/3MFLoader.js +12 -11
  50. package/examples/jsm/loaders/AMFLoader.js +2 -3
  51. package/examples/jsm/loaders/BVHLoader.js +2 -2
  52. package/examples/jsm/loaders/ColladaLoader.js +15 -16
  53. package/examples/jsm/loaders/DRACOLoader.js +69 -18
  54. package/examples/jsm/loaders/EXRLoader.js +23 -24
  55. package/examples/jsm/loaders/FBXLoader.js +34 -50
  56. package/examples/jsm/loaders/GCodeLoader.js +1 -2
  57. package/examples/jsm/loaders/GLTFLoader.js +417 -895
  58. package/examples/jsm/loaders/GLTFLoaderAnimationPointer.js +684 -0
  59. package/examples/jsm/loaders/HDRCubeTextureLoader.js +4 -4
  60. package/examples/jsm/loaders/IESLoader.js +337 -0
  61. package/examples/jsm/loaders/KMZLoader.js +4 -4
  62. package/examples/jsm/loaders/KTX2Loader.js +145 -69
  63. package/examples/jsm/loaders/LDrawLoader.js +20 -18
  64. package/examples/jsm/loaders/LWOLoader.js +12 -29
  65. package/examples/jsm/loaders/LottieLoader.js +3 -1
  66. package/examples/jsm/loaders/MMDLoader.js +49 -18
  67. package/examples/jsm/loaders/MTLLoader.js +2 -2
  68. package/examples/jsm/loaders/MaterialXLoader.js +9 -3
  69. package/examples/jsm/loaders/NRRDLoader.js +33 -5
  70. package/examples/jsm/loaders/OBJLoader.js +1 -1
  71. package/examples/jsm/loaders/PCDLoader.js +26 -12
  72. package/examples/jsm/loaders/PDBLoader.js +7 -2
  73. package/examples/jsm/loaders/PLYLoader.js +254 -109
  74. package/examples/jsm/loaders/RGBELoader.js +3 -3
  75. package/examples/jsm/loaders/STLLoader.js +9 -5
  76. package/examples/jsm/loaders/SVGLoader.js +36 -27
  77. package/examples/jsm/loaders/TTFLoader.js +1 -8
  78. package/examples/jsm/loaders/TiltLoader.js +13 -7
  79. package/examples/jsm/loaders/USDZLoader.js +6 -6
  80. package/examples/jsm/loaders/VOXLoader.js +8 -2
  81. package/examples/jsm/loaders/VRMLLoader.js +44 -16
  82. package/examples/jsm/loaders/VTKLoader.js +19 -10
  83. package/examples/jsm/loaders/XYZLoader.js +9 -3
  84. package/examples/jsm/loaders/lwo/IFFParser.js +19 -19
  85. package/examples/jsm/materials/MeshGouraudMaterial.js +0 -3
  86. package/examples/jsm/math/ConvexHull.js +3 -3
  87. package/examples/jsm/math/Lut.js +5 -4
  88. package/examples/jsm/math/MeshSurfaceSampler.js +7 -9
  89. package/examples/jsm/math/Octree.js +1 -1
  90. package/examples/jsm/misc/ConvexObjectBreaker.js +2 -8
  91. package/examples/jsm/misc/GPUComputationRenderer.js +6 -5
  92. package/examples/jsm/misc/MD2Character.js +2 -2
  93. package/examples/jsm/misc/MD2CharacterComplex.js +2 -2
  94. package/examples/jsm/misc/ProgressiveLightMap.js +12 -10
  95. package/examples/jsm/misc/RollerCoaster.js +7 -1
  96. package/examples/jsm/misc/Volume.js +20 -5
  97. package/examples/jsm/misc/VolumeSlice.js +3 -1
  98. package/examples/jsm/modifiers/CurveModifier.js +1 -0
  99. package/examples/jsm/modifiers/TessellateModifier.js +19 -19
  100. package/examples/jsm/nodes/Nodes.js +144 -335
  101. package/examples/jsm/nodes/accessors/BitangentNode.js +43 -16
  102. package/examples/jsm/nodes/accessors/BufferAttributeNode.js +86 -0
  103. package/examples/jsm/nodes/accessors/BufferNode.js +6 -0
  104. package/examples/jsm/nodes/accessors/CameraNode.js +12 -2
  105. package/examples/jsm/nodes/accessors/CubeTextureNode.js +27 -33
  106. package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +58 -0
  107. package/examples/jsm/nodes/accessors/InstanceNode.js +41 -26
  108. package/examples/jsm/nodes/accessors/MaterialNode.js +155 -38
  109. package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +16 -0
  110. package/examples/jsm/nodes/accessors/ModelNode.js +11 -0
  111. package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +13 -14
  112. package/examples/jsm/nodes/accessors/NormalNode.js +35 -19
  113. package/examples/jsm/nodes/accessors/Object3DNode.js +32 -12
  114. package/examples/jsm/nodes/accessors/PointUVNode.js +6 -1
  115. package/examples/jsm/nodes/accessors/PositionNode.js +38 -23
  116. package/examples/jsm/nodes/accessors/ReferenceNode.js +21 -14
  117. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +11 -7
  118. package/examples/jsm/nodes/accessors/SkinningNode.js +43 -40
  119. package/examples/jsm/nodes/accessors/StorageBufferNode.js +6 -0
  120. package/examples/jsm/nodes/accessors/TangentNode.js +28 -20
  121. package/examples/jsm/nodes/accessors/TextureNode.js +80 -12
  122. package/examples/jsm/nodes/accessors/UVNode.js +6 -0
  123. package/examples/jsm/nodes/accessors/UserDataNode.js +6 -0
  124. package/examples/jsm/nodes/code/CodeNode.js +75 -0
  125. package/examples/jsm/nodes/code/ExpressionNode.js +37 -0
  126. package/examples/jsm/nodes/{core → code}/FunctionCallNode.js +15 -1
  127. package/examples/jsm/nodes/{core → code}/FunctionNode.js +8 -7
  128. package/examples/jsm/nodes/code/ScriptableNode.js +488 -0
  129. package/examples/jsm/nodes/code/ScriptableValueNode.js +167 -0
  130. package/examples/jsm/nodes/core/ArrayUniformNode.js +3 -0
  131. package/examples/jsm/nodes/core/AttributeNode.js +17 -9
  132. package/examples/jsm/nodes/core/BypassNode.js +9 -2
  133. package/examples/jsm/nodes/core/CacheNode.js +46 -0
  134. package/examples/jsm/nodes/core/ConstNode.js +3 -0
  135. package/examples/jsm/nodes/core/ContextNode.js +8 -1
  136. package/examples/jsm/nodes/core/InputNode.js +26 -5
  137. package/examples/jsm/nodes/core/InstanceIndexNode.js +26 -2
  138. package/examples/jsm/nodes/core/LightingModel.js +16 -0
  139. package/examples/jsm/nodes/core/Node.js +129 -35
  140. package/examples/jsm/nodes/core/NodeAttribute.js +2 -1
  141. package/examples/jsm/nodes/core/NodeBuilder.js +271 -121
  142. package/examples/jsm/nodes/core/NodeCache.js +26 -0
  143. package/examples/jsm/nodes/core/NodeFrame.js +56 -5
  144. package/examples/jsm/nodes/core/NodeUtils.js +115 -28
  145. package/examples/jsm/nodes/core/PropertyNode.js +19 -2
  146. package/examples/jsm/nodes/core/StackNode.js +99 -0
  147. package/examples/jsm/nodes/core/TempNode.js +11 -3
  148. package/examples/jsm/nodes/core/UniformNode.js +16 -1
  149. package/examples/jsm/nodes/core/VarNode.js +21 -29
  150. package/examples/jsm/nodes/core/VaryingNode.js +15 -2
  151. package/examples/jsm/nodes/core/constants.js +6 -0
  152. package/examples/jsm/nodes/display/BlendModeNode.js +25 -11
  153. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +30 -14
  154. package/examples/jsm/nodes/display/ColorSpaceNode.js +39 -27
  155. package/examples/jsm/nodes/display/FrontFacingNode.js +7 -1
  156. package/examples/jsm/nodes/display/NormalMapNode.js +31 -18
  157. package/examples/jsm/nodes/display/PosterizeNode.js +10 -3
  158. package/examples/jsm/nodes/display/ToneMappingNode.js +101 -11
  159. package/examples/jsm/nodes/display/ViewportNode.js +27 -18
  160. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +30 -0
  161. package/examples/jsm/nodes/display/ViewportTextureNode.js +67 -0
  162. package/examples/jsm/nodes/fog/FogExp2Node.js +35 -0
  163. package/examples/jsm/nodes/fog/FogNode.js +12 -6
  164. package/examples/jsm/nodes/fog/FogRangeNode.js +12 -5
  165. package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +30 -0
  166. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +10 -13
  167. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  168. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +8 -6
  169. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +4 -4
  170. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +3 -3
  171. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +7 -5
  172. package/examples/jsm/nodes/functions/PhongLightingModel.js +28 -0
  173. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +35 -36
  174. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +4 -3
  175. package/examples/jsm/nodes/functions/material/getRoughness.js +4 -4
  176. package/examples/jsm/nodes/geometry/RangeNode.js +50 -55
  177. package/examples/jsm/nodes/gpgpu/ComputeNode.js +9 -2
  178. package/examples/jsm/nodes/lighting/AONode.js +5 -3
  179. package/examples/jsm/nodes/lighting/AmbientLightNode.js +27 -0
  180. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +114 -5
  181. package/examples/jsm/nodes/lighting/DirectionalLightNode.js +43 -0
  182. package/examples/jsm/nodes/lighting/EnvironmentNode.js +121 -35
  183. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +15 -10
  184. package/examples/jsm/nodes/lighting/IESSpotLightNode.js +39 -0
  185. package/examples/jsm/nodes/lighting/LightNode.js +57 -0
  186. package/examples/jsm/nodes/lighting/LightUtils.js +17 -0
  187. package/examples/jsm/nodes/lighting/LightingContextNode.js +30 -8
  188. package/examples/jsm/nodes/lighting/LightingNode.js +3 -1
  189. package/examples/jsm/nodes/lighting/LightsNode.js +18 -10
  190. package/examples/jsm/nodes/lighting/PointLightNode.js +71 -0
  191. package/examples/jsm/nodes/lighting/SpotLightNode.js +92 -0
  192. package/examples/jsm/nodes/loaders/NodeLoader.js +5 -4
  193. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +4 -20
  194. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +6 -9
  195. package/examples/jsm/nodes/materials/Materials.js +11 -55
  196. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +5 -11
  197. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +48 -0
  198. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +74 -0
  199. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +6 -6
  200. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +21 -96
  201. package/examples/jsm/nodes/materials/NodeMaterial.js +284 -62
  202. package/examples/jsm/nodes/materials/PointsNodeMaterial.js +7 -1
  203. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +29 -25
  204. package/examples/jsm/nodes/materialx/MaterialXNodes.js +31 -22
  205. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +1 -1
  206. package/examples/jsm/nodes/materialx/lib/mx_noise.js +2 -1
  207. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +2 -1
  208. package/examples/jsm/nodes/math/CondNode.js +43 -17
  209. package/examples/jsm/nodes/math/MathNode.js +178 -73
  210. package/examples/jsm/nodes/math/OperatorNode.js +52 -2
  211. package/examples/jsm/nodes/procedural/CheckerNode.js +14 -6
  212. package/examples/jsm/nodes/shadernode/ShaderNode.js +186 -63
  213. package/examples/jsm/nodes/utils/ArrayElementNode.js +4 -2
  214. package/examples/jsm/nodes/utils/ConvertNode.js +19 -1
  215. package/examples/jsm/nodes/utils/DiscardNode.js +26 -0
  216. package/examples/jsm/nodes/utils/EquirectUVNode.js +10 -4
  217. package/examples/jsm/nodes/utils/JoinNode.js +4 -1
  218. package/examples/jsm/nodes/utils/LoopNode.js +186 -0
  219. package/examples/jsm/nodes/utils/MatcapUVNode.js +11 -4
  220. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +18 -5
  221. package/examples/jsm/nodes/utils/OscNode.js +21 -14
  222. package/examples/jsm/nodes/utils/PackingNode.js +55 -0
  223. package/examples/jsm/nodes/utils/RemapNode.js +13 -5
  224. package/examples/jsm/nodes/utils/RotateUVNode.js +18 -7
  225. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +37 -0
  226. package/examples/jsm/nodes/utils/SplitNode.js +7 -5
  227. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +15 -30
  228. package/examples/jsm/nodes/utils/TimerNode.js +16 -6
  229. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +21 -10
  230. package/examples/jsm/objects/GroundProjectedSkybox.js +172 -0
  231. package/examples/jsm/objects/Lensflare.js +3 -4
  232. package/examples/jsm/objects/MarchingCubes.js +5 -1
  233. package/examples/jsm/objects/Reflector.js +7 -4
  234. package/examples/jsm/objects/Refractor.js +4 -4
  235. package/examples/jsm/objects/ShadowMesh.js +3 -3
  236. package/examples/jsm/objects/Water.js +2 -1
  237. package/examples/jsm/physics/AmmoPhysics.js +27 -28
  238. package/examples/jsm/physics/RapierPhysics.js +199 -0
  239. package/examples/jsm/postprocessing/AfterimagePass.js +3 -2
  240. package/examples/jsm/postprocessing/BloomPass.js +7 -4
  241. package/examples/jsm/postprocessing/BokehPass.js +3 -8
  242. package/examples/jsm/postprocessing/DotScreenPass.js +1 -2
  243. package/examples/jsm/postprocessing/EffectComposer.js +5 -95
  244. package/examples/jsm/postprocessing/FilmPass.js +1 -2
  245. package/examples/jsm/postprocessing/GlitchPass.js +0 -2
  246. package/examples/jsm/postprocessing/HalftonePass.js +0 -6
  247. package/examples/jsm/postprocessing/OutlinePass.js +7 -7
  248. package/examples/jsm/postprocessing/OutputPass.js +72 -0
  249. package/examples/jsm/postprocessing/Pass.js +2 -0
  250. package/examples/jsm/postprocessing/RenderPixelatedPass.js +4 -3
  251. package/examples/jsm/postprocessing/SAOPass.js +4 -26
  252. package/examples/jsm/postprocessing/SMAAPass.js +5 -8
  253. package/examples/jsm/postprocessing/SSAARenderPass.js +15 -6
  254. package/examples/jsm/postprocessing/SSAOPass.js +4 -14
  255. package/examples/jsm/postprocessing/SSRPass.js +3 -7
  256. package/examples/jsm/postprocessing/SavePass.js +2 -3
  257. package/examples/jsm/postprocessing/ShaderPass.js +1 -0
  258. package/examples/jsm/postprocessing/TAARenderPass.js +3 -2
  259. package/examples/jsm/postprocessing/TexturePass.js +0 -2
  260. package/examples/jsm/postprocessing/UnrealBloomPass.js +4 -11
  261. package/examples/jsm/renderers/CSS2DRenderer.js +6 -1
  262. package/examples/jsm/renderers/CSS3DRenderer.js +27 -5
  263. package/examples/jsm/renderers/{webgpu/WebGPUAnimation.js → common/Animation.js} +4 -4
  264. package/examples/jsm/renderers/common/Attributes.js +75 -0
  265. package/examples/jsm/renderers/common/Backend.js +160 -0
  266. package/examples/jsm/renderers/common/Background.js +133 -0
  267. package/examples/jsm/renderers/common/Binding.js +11 -0
  268. package/examples/jsm/renderers/common/Bindings.js +169 -0
  269. package/examples/jsm/renderers/common/Buffer.js +38 -0
  270. package/examples/jsm/renderers/{webgpu/WebGPUBufferUtils.js → common/BufferUtils.js} +2 -2
  271. package/examples/jsm/renderers/common/ChainMap.js +89 -0
  272. package/examples/jsm/renderers/common/ComputePipeline.js +17 -0
  273. package/examples/jsm/renderers/common/Constants.js +14 -0
  274. package/examples/jsm/renderers/common/CubeRenderTarget.js +65 -0
  275. package/examples/jsm/renderers/common/DataMap.js +54 -0
  276. package/examples/jsm/renderers/common/Geometries.js +215 -0
  277. package/examples/jsm/renderers/{webgpu/WebGPUInfo.js → common/Info.js} +2 -3
  278. package/examples/jsm/renderers/common/Pipeline.js +13 -0
  279. package/examples/jsm/renderers/common/Pipelines.js +309 -0
  280. package/examples/jsm/renderers/common/ProgrammableStage.js +18 -0
  281. package/examples/jsm/renderers/common/RenderContext.js +37 -0
  282. package/examples/jsm/renderers/common/RenderContexts.js +38 -0
  283. package/examples/jsm/renderers/{webgpu/WebGPURenderLists.js → common/RenderList.js} +26 -47
  284. package/examples/jsm/renderers/common/RenderLists.js +38 -0
  285. package/examples/jsm/renderers/common/RenderObject.js +95 -0
  286. package/examples/jsm/renderers/common/RenderObjects.js +92 -0
  287. package/examples/jsm/renderers/common/RenderPipeline.js +16 -0
  288. package/examples/jsm/renderers/common/RenderTarget.js +15 -0
  289. package/examples/jsm/renderers/common/Renderer.js +822 -0
  290. package/examples/jsm/renderers/common/SampledTexture.js +80 -0
  291. package/examples/jsm/renderers/common/Sampler.js +18 -0
  292. package/examples/jsm/renderers/common/StorageBuffer.js +17 -0
  293. package/examples/jsm/renderers/common/Textures.js +206 -0
  294. package/examples/jsm/renderers/{webgpu/WebGPUUniform.js → common/Uniform.js} +13 -9
  295. package/examples/jsm/renderers/common/UniformBuffer.js +15 -0
  296. package/examples/jsm/renderers/{webgpu/WebGPUUniformsGroup.js → common/UniformsGroup.js} +13 -13
  297. package/examples/jsm/renderers/common/nodes/NodeRender.js +302 -0
  298. package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampledTexture.js → common/nodes/NodeSampledTexture.js} +4 -4
  299. package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampler.js → common/nodes/NodeSampler.js} +3 -3
  300. package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeUniform.js → common/nodes/NodeUniform.js} +1 -1
  301. package/examples/jsm/renderers/common/nodes/Nodes.js +319 -0
  302. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +35 -31
  303. package/examples/jsm/renderers/webgpu/WebGPUBackend.js +765 -0
  304. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +15 -987
  305. package/examples/jsm/renderers/webgpu/nodes/{WebGPUNodeBuilder.js → WGSLNodeBuilder.js} +117 -90
  306. package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeFunction.js +2 -2
  307. package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeParser.js +1 -1
  308. package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +251 -0
  309. package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +145 -0
  310. package/examples/jsm/renderers/webgpu/{constants.js → utils/WebGPUConstants.js} +73 -12
  311. package/examples/jsm/renderers/webgpu/{WebGPURenderPipeline.js → utils/WebGPUPipelineUtils.js} +135 -285
  312. package/examples/jsm/renderers/webgpu/{WebGPUTextureUtils.js → utils/WebGPUTextureMipmapUtils.js} +5 -25
  313. package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +855 -0
  314. package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +88 -0
  315. package/examples/jsm/shaders/BleachBypassShader.js +2 -0
  316. package/examples/jsm/shaders/BokehShader2.js +3 -0
  317. package/examples/jsm/shaders/ColorifyShader.js +2 -0
  318. package/examples/jsm/shaders/ConvolutionShader.js +2 -0
  319. package/examples/jsm/shaders/CopyShader.js +2 -0
  320. package/examples/jsm/shaders/DotScreenShader.js +2 -0
  321. package/examples/jsm/shaders/ExposureShader.js +44 -0
  322. package/examples/jsm/shaders/FilmShader.js +2 -0
  323. package/examples/jsm/shaders/GammaCorrectionShader.js +2 -0
  324. package/examples/jsm/shaders/HorizontalBlurShader.js +2 -0
  325. package/examples/jsm/shaders/MMDToonShader.js +15 -4
  326. package/examples/jsm/shaders/OutputShader.js +61 -0
  327. package/examples/jsm/shaders/RGBShiftShader.js +4 -2
  328. package/examples/jsm/shaders/SepiaShader.js +2 -0
  329. package/examples/jsm/shaders/ToonShader.js +13 -5
  330. package/examples/jsm/shaders/VelocityShader.js +1 -1
  331. package/examples/jsm/shaders/VerticalBlurShader.js +2 -0
  332. package/examples/jsm/shaders/VignetteShader.js +2 -0
  333. package/examples/jsm/shaders/WaterRefractionShader.js +5 -2
  334. package/examples/jsm/utils/BufferGeometryUtils.js +54 -36
  335. package/examples/jsm/utils/LDrawUtils.js +4 -4
  336. package/examples/jsm/utils/PackedPhongMaterial.js +5 -78
  337. package/examples/jsm/utils/SceneUtils.js +8 -4
  338. package/examples/jsm/utils/SkeletonUtils.js +27 -210
  339. package/examples/jsm/utils/TextureUtils.js +41 -40
  340. package/examples/jsm/webxr/VRButton.js +1 -2
  341. package/examples/jsm/webxr/XRButton.js +198 -0
  342. package/examples/jsm/webxr/XRHandPrimitiveModel.js +1 -0
  343. package/examples/jsm/webxr/XRPlanes.js +100 -0
  344. package/package.json +34 -87
  345. package/src/Three.Legacy.js +19 -110
  346. package/src/Three.js +4 -3
  347. package/src/animation/AnimationUtils.js +13 -1
  348. package/src/audio/Audio.js +7 -2
  349. package/src/audio/PositionalAudio.js +8 -0
  350. package/src/cameras/Camera.js +5 -0
  351. package/src/cameras/CubeCamera.js +76 -13
  352. package/src/cameras/OrthographicCamera.js +1 -1
  353. package/src/cameras/PerspectiveCamera.js +1 -1
  354. package/src/constants.js +22 -2
  355. package/src/core/BufferAttribute.js +150 -9
  356. package/src/core/BufferGeometry.js +4 -10
  357. package/src/core/GLBufferAttribute.js +2 -0
  358. package/src/core/InterleavedBufferAttribute.js +5 -5
  359. package/src/core/Object3D.js +37 -8
  360. package/src/extras/DataUtils.js +7 -1
  361. package/src/extras/ImageUtils.js +2 -2
  362. package/src/extras/PMREMGenerator.js +5 -5
  363. package/src/extras/core/Curve.js +1 -1
  364. package/src/extras/curves/LineCurve.js +6 -4
  365. package/src/extras/curves/LineCurve3.js +13 -0
  366. package/src/geometries/BoxGeometry.js +10 -0
  367. package/src/geometries/CircleGeometry.js +11 -1
  368. package/src/geometries/ConeGeometry.js +1 -1
  369. package/src/geometries/CylinderGeometry.js +11 -1
  370. package/src/geometries/EdgesGeometry.js +10 -0
  371. package/src/geometries/ExtrudeGeometry.js +11 -1
  372. package/src/geometries/LatheGeometry.js +10 -0
  373. package/src/geometries/PlaneGeometry.js +10 -0
  374. package/src/geometries/PolyhedronGeometry.js +11 -1
  375. package/src/geometries/RingGeometry.js +11 -1
  376. package/src/geometries/ShapeGeometry.js +11 -1
  377. package/src/geometries/SphereGeometry.js +12 -2
  378. package/src/geometries/TorusGeometry.js +11 -1
  379. package/src/geometries/TorusKnotGeometry.js +10 -0
  380. package/src/geometries/TubeGeometry.js +10 -0
  381. package/src/geometries/WireframeGeometry.js +10 -0
  382. package/src/helpers/Box3Helper.js +1 -2
  383. package/src/lights/DirectionalLight.js +1 -1
  384. package/src/lights/HemisphereLight.js +1 -1
  385. package/src/lights/SpotLight.js +1 -1
  386. package/src/loaders/AudioLoader.js +14 -8
  387. package/src/loaders/CubeTextureLoader.js +2 -0
  388. package/src/loaders/DataTextureLoader.js +5 -1
  389. package/src/loaders/MaterialLoader.js +8 -0
  390. package/src/loaders/ObjectLoader.js +10 -2
  391. package/src/materials/LineBasicMaterial.js +4 -0
  392. package/src/materials/Material.js +16 -4
  393. package/src/materials/MeshDistanceMaterial.js +0 -9
  394. package/src/materials/MeshPhysicalMaterial.js +32 -6
  395. package/src/materials/ShaderMaterial.js +6 -1
  396. package/src/math/Box2.js +3 -2
  397. package/src/math/Box3.js +49 -64
  398. package/src/math/Color.js +88 -66
  399. package/src/math/ColorManagement.js +75 -16
  400. package/src/math/Euler.js +2 -11
  401. package/src/math/Frustum.js +29 -5
  402. package/src/math/MathUtils.js +43 -1
  403. package/src/math/Matrix3.js +26 -6
  404. package/src/math/Matrix4.js +74 -19
  405. package/src/math/Plane.js +2 -2
  406. package/src/math/Quaternion.js +6 -0
  407. package/src/math/Ray.js +7 -7
  408. package/src/math/Triangle.js +37 -7
  409. package/src/math/Vector2.js +16 -0
  410. package/src/math/Vector3.js +10 -0
  411. package/src/math/interpolants/CubicInterpolant.js +1 -2
  412. package/src/objects/InstancedMesh.js +82 -1
  413. package/src/objects/Mesh.js +108 -76
  414. package/src/objects/Skeleton.js +1 -1
  415. package/src/objects/SkinnedMesh.js +123 -8
  416. package/src/objects/Sprite.js +1 -1
  417. package/src/renderers/WebGLCubeRenderTarget.js +12 -3
  418. package/src/renderers/WebGLMultipleRenderTargets.js +4 -2
  419. package/src/renderers/WebGLRenderTarget.js +14 -2
  420. package/src/renderers/WebGLRenderer.js +1433 -1236
  421. package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +1 -1
  422. package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +1 -1
  423. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +0 -271
  424. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +5 -5
  425. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +2 -10
  426. package/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js +5 -5
  427. package/src/renderers/shaders/ShaderChunk/common.glsl.js +32 -0
  428. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +1 -1
  429. package/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js +1 -1
  430. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +1 -1
  431. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +26 -3
  432. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +1 -1
  433. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
  434. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +10 -2
  435. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +11 -11
  436. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +39 -13
  437. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +306 -10
  438. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +2 -10
  439. package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +9 -1
  440. package/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js +10 -2
  441. package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +1 -1
  442. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +32 -10
  443. package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +5 -13
  444. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +7 -7
  445. package/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +1 -2
  446. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +11 -5
  447. package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +1 -1
  448. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +4 -11
  449. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +2 -2
  450. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +39 -34
  451. package/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js +1 -1
  452. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
  453. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +5 -5
  454. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +101 -16
  455. package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +113 -1
  456. package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +134 -6
  457. package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +116 -1
  458. package/src/renderers/shaders/ShaderChunk.js +0 -6
  459. package/src/renderers/shaders/ShaderLib/background.glsl.js +0 -8
  460. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +5 -0
  461. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +1 -4
  462. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +0 -3
  463. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +3 -3
  464. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -3
  465. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +16 -12
  466. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -3
  467. package/src/renderers/shaders/ShaderLib/points.glsl.js +13 -0
  468. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +5 -0
  469. package/src/renderers/shaders/ShaderLib.js +18 -4
  470. package/src/renderers/shaders/UniformsLib.js +27 -15
  471. package/src/renderers/shaders/UniformsUtils.js +12 -3
  472. package/src/renderers/webgl/WebGLBackground.js +23 -12
  473. package/src/renderers/webgl/WebGLBindingStates.js +13 -5
  474. package/src/renderers/webgl/WebGLCapabilities.js +1 -2
  475. package/src/renderers/webgl/WebGLClipping.js +7 -3
  476. package/src/renderers/webgl/WebGLGeometries.js +12 -0
  477. package/src/renderers/webgl/WebGLInfo.js +0 -1
  478. package/src/renderers/webgl/WebGLLights.js +2 -2
  479. package/src/renderers/webgl/WebGLMaterials.js +123 -234
  480. package/src/renderers/webgl/WebGLMorphtargets.js +1 -1
  481. package/src/renderers/webgl/WebGLProgram.js +130 -48
  482. package/src/renderers/webgl/WebGLPrograms.js +210 -130
  483. package/src/renderers/webgl/WebGLRenderStates.js +2 -2
  484. package/src/renderers/webgl/WebGLShadowMap.js +40 -27
  485. package/src/renderers/webgl/WebGLState.js +23 -9
  486. package/src/renderers/webgl/WebGLTextures.js +39 -19
  487. package/src/renderers/webgl/WebGLUniformsGroups.js +74 -33
  488. package/src/renderers/webgl/WebGLUtils.js +41 -29
  489. package/src/renderers/webxr/WebXRController.js +3 -0
  490. package/src/renderers/webxr/WebXRManager.js +89 -141
  491. package/src/scenes/Scene.js +4 -6
  492. package/src/textures/CompressedTexture.js +2 -2
  493. package/src/textures/CubeTexture.js +2 -2
  494. package/src/textures/DataTexture.js +2 -2
  495. package/src/textures/DepthTexture.js +22 -0
  496. package/src/textures/FramebufferTexture.js +1 -3
  497. package/src/textures/Source.js +4 -0
  498. package/src/textures/Texture.js +43 -13
  499. package/src/utils.js +13 -1
  500. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff +0 -0
  501. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff2 +0 -0
  502. package/examples/fonts/open-sans/open-sans.css +0 -9
  503. package/examples/fonts/tabler-icons/fonts/tabler-icons.eot +0 -0
  504. package/examples/fonts/tabler-icons/fonts/tabler-icons.svg +0 -3966
  505. package/examples/fonts/tabler-icons/fonts/tabler-icons.ttf +0 -0
  506. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff +0 -0
  507. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff2 +0 -0
  508. package/examples/fonts/tabler-icons/tabler-icons.min.css +0 -4
  509. package/examples/js/animation/AnimationClipCreator.js +0 -89
  510. package/examples/js/animation/CCDIKSolver.js +0 -416
  511. package/examples/js/animation/MMDAnimationHelper.js +0 -1046
  512. package/examples/js/animation/MMDPhysics.js +0 -1174
  513. package/examples/js/cameras/CinematicCamera.js +0 -168
  514. package/examples/js/controls/ArcballControls.js +0 -2770
  515. package/examples/js/controls/DragControls.js +0 -205
  516. package/examples/js/controls/FirstPersonControls.js +0 -312
  517. package/examples/js/controls/FlyControls.js +0 -321
  518. package/examples/js/controls/OrbitControls.js +0 -1065
  519. package/examples/js/controls/PointerLockControls.js +0 -144
  520. package/examples/js/controls/TrackballControls.js +0 -729
  521. package/examples/js/controls/TransformControls.js +0 -1301
  522. package/examples/js/csm/CSM.js +0 -347
  523. package/examples/js/csm/CSMFrustum.js +0 -127
  524. package/examples/js/csm/CSMHelper.js +0 -165
  525. package/examples/js/csm/CSMShader.js +0 -253
  526. package/examples/js/curves/CurveExtras.js +0 -348
  527. package/examples/js/curves/NURBSCurve.js +0 -63
  528. package/examples/js/curves/NURBSSurface.js +0 -48
  529. package/examples/js/curves/NURBSUtils.js +0 -439
  530. package/examples/js/effects/AnaglyphEffect.js +0 -86
  531. package/examples/js/effects/AsciiEffect.js +0 -260
  532. package/examples/js/effects/OutlineEffect.js +0 -450
  533. package/examples/js/effects/ParallaxBarrierEffect.js +0 -62
  534. package/examples/js/effects/PeppersGhostEffect.js +0 -139
  535. package/examples/js/effects/StereoEffect.js +0 -46
  536. package/examples/js/environments/DebugEnvironment.js +0 -53
  537. package/examples/js/environments/RoomEnvironment.js +0 -124
  538. package/examples/js/exporters/ColladaExporter.js +0 -487
  539. package/examples/js/exporters/DRACOExporter.js +0 -212
  540. package/examples/js/exporters/EXRExporter.js +0 -455
  541. package/examples/js/exporters/GLTFExporter.js +0 -2425
  542. package/examples/js/exporters/MMDExporter.js +0 -187
  543. package/examples/js/exporters/OBJExporter.js +0 -260
  544. package/examples/js/exporters/PLYExporter.js +0 -427
  545. package/examples/js/exporters/STLExporter.js +0 -188
  546. package/examples/js/exporters/USDZExporter.js +0 -608
  547. package/examples/js/geometries/BoxLineGeometry.js +0 -59
  548. package/examples/js/geometries/ConvexGeometry.js +0 -53
  549. package/examples/js/geometries/DecalGeometry.js +0 -324
  550. package/examples/js/geometries/LightningStrike.js +0 -861
  551. package/examples/js/geometries/ParametricGeometries.js +0 -216
  552. package/examples/js/geometries/ParametricGeometry.js +0 -121
  553. package/examples/js/geometries/RoundedBoxGeometry.js +0 -142
  554. package/examples/js/geometries/TeapotGeometry.js +0 -335
  555. package/examples/js/geometries/TextGeometry.js +0 -53
  556. package/examples/js/helpers/LightProbeHelper.js +0 -48
  557. package/examples/js/helpers/OctreeHelper.js +0 -76
  558. package/examples/js/helpers/PositionalAudioHelper.js +0 -91
  559. package/examples/js/helpers/RectAreaLightHelper.js +0 -73
  560. package/examples/js/helpers/VertexNormalsHelper.js +0 -74
  561. package/examples/js/helpers/VertexTangentsHelper.js +0 -68
  562. package/examples/js/helpers/ViewHelper.js +0 -281
  563. package/examples/js/interactive/HTMLMesh.js +0 -497
  564. package/examples/js/interactive/InteractiveGroup.js +0 -95
  565. package/examples/js/interactive/SelectionBox.js +0 -195
  566. package/examples/js/interactive/SelectionHelper.js +0 -83
  567. package/examples/js/libs/chevrotain.min.js +0 -3
  568. package/examples/js/libs/draco/draco_decoder.js +0 -52
  569. package/examples/js/libs/draco/draco_decoder.wasm +0 -0
  570. package/examples/js/libs/draco/draco_wasm_wrapper.js +0 -104
  571. package/examples/js/libs/draco/gltf/draco_decoder.js +0 -48
  572. package/examples/js/libs/draco/gltf/draco_decoder.wasm +0 -0
  573. package/examples/js/libs/draco/gltf/draco_wasm_wrapper.js +0 -104
  574. package/examples/js/libs/fflate.min.js +0 -7
  575. package/examples/js/libs/ktx-parse.umd.js +0 -1
  576. package/examples/js/libs/meshopt_decoder.js +0 -188
  577. package/examples/js/libs/opentype.min.js +0 -1
  578. package/examples/js/libs/stats.min.js +0 -5
  579. package/examples/js/lights/LightProbeGenerator.js +0 -221
  580. package/examples/js/lights/RectAreaLightUniformsLib.js +0 -60
  581. package/examples/js/lines/Line2.js +0 -19
  582. package/examples/js/lines/LineGeometry.js +0 -69
  583. package/examples/js/lines/LineMaterial.js +0 -635
  584. package/examples/js/lines/LineSegments2.js +0 -311
  585. package/examples/js/lines/LineSegmentsGeometry.js +0 -198
  586. package/examples/js/lines/Wireframe.js +0 -47
  587. package/examples/js/lines/WireframeGeometry2.js +0 -20
  588. package/examples/js/loaders/3DMLoader.js +0 -1273
  589. package/examples/js/loaders/3MFLoader.js +0 -1306
  590. package/examples/js/loaders/AMFLoader.js +0 -504
  591. package/examples/js/loaders/BVHLoader.js +0 -395
  592. package/examples/js/loaders/BasisTextureLoader.js +0 -706
  593. package/examples/js/loaders/ColladaLoader.js +0 -3663
  594. package/examples/js/loaders/DDSLoader.js +0 -244
  595. package/examples/js/loaders/DRACOLoader.js +0 -511
  596. package/examples/js/loaders/EXRLoader.js +0 -2039
  597. package/examples/js/loaders/FBXLoader.js +0 -3680
  598. package/examples/js/loaders/FontLoader.js +0 -160
  599. package/examples/js/loaders/GCodeLoader.js +0 -255
  600. package/examples/js/loaders/GLTFLoader.js +0 -4108
  601. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -87
  602. package/examples/js/loaders/KMZLoader.js +0 -121
  603. package/examples/js/loaders/KTXLoader.js +0 -159
  604. package/examples/js/loaders/LDrawLoader.js +0 -2263
  605. package/examples/js/loaders/LUT3dlLoader.js +0 -135
  606. package/examples/js/loaders/LUTCubeLoader.js +0 -132
  607. package/examples/js/loaders/LWOLoader.js +0 -901
  608. package/examples/js/loaders/LogLuvLoader.js +0 -715
  609. package/examples/js/loaders/LottieLoader.js +0 -62
  610. package/examples/js/loaders/MD2Loader.js +0 -248
  611. package/examples/js/loaders/MDDLoader.js +0 -91
  612. package/examples/js/loaders/MMDLoader.js +0 -1915
  613. package/examples/js/loaders/MTLLoader.js +0 -472
  614. package/examples/js/loaders/MaterialXLoader.js +0 -392
  615. package/examples/js/loaders/NRRDLoader.js +0 -609
  616. package/examples/js/loaders/OBJLoader.js +0 -789
  617. package/examples/js/loaders/PCDLoader.js +0 -413
  618. package/examples/js/loaders/PDBLoader.js +0 -317
  619. package/examples/js/loaders/PLYLoader.js +0 -532
  620. package/examples/js/loaders/PRWMLoader.js +0 -249
  621. package/examples/js/loaders/PVRLoader.js +0 -218
  622. package/examples/js/loaders/RGBELoader.js +0 -442
  623. package/examples/js/loaders/RGBMLoader.js +0 -1354
  624. package/examples/js/loaders/STLLoader.js +0 -364
  625. package/examples/js/loaders/SVGLoader.js +0 -2783
  626. package/examples/js/loaders/TDSLoader.js +0 -992
  627. package/examples/js/loaders/TGALoader.js +0 -484
  628. package/examples/js/loaders/TIFFLoader.js +0 -30
  629. package/examples/js/loaders/TTFLoader.js +0 -203
  630. package/examples/js/loaders/TiltLoader.js +0 -459
  631. package/examples/js/loaders/VOXLoader.js +0 -240
  632. package/examples/js/loaders/VRMLLoader.js +0 -3140
  633. package/examples/js/loaders/VTKLoader.js +0 -1078
  634. package/examples/js/loaders/XYZLoader.js +0 -89
  635. package/examples/js/loaders/lwo/IFFParser.js +0 -1067
  636. package/examples/js/loaders/lwo/LWO2Parser.js +0 -397
  637. package/examples/js/loaders/lwo/LWO3Parser.js +0 -360
  638. package/examples/js/materials/MeshGouraudMaterial.js +0 -387
  639. package/examples/js/math/Capsule.js +0 -103
  640. package/examples/js/math/ColorConverter.js +0 -33
  641. package/examples/js/math/ConvexHull.js +0 -1154
  642. package/examples/js/math/ImprovedNoise.js +0 -66
  643. package/examples/js/math/Lut.js +0 -164
  644. package/examples/js/math/MeshSurfaceSampler.js +0 -171
  645. package/examples/js/math/OBB.js +0 -382
  646. package/examples/js/math/Octree.js +0 -410
  647. package/examples/js/math/SimplexNoise.js +0 -445
  648. package/examples/js/misc/ConvexObjectBreaker.js +0 -474
  649. package/examples/js/misc/GPUComputationRenderer.js +0 -393
  650. package/examples/js/misc/Gyroscope.js +0 -56
  651. package/examples/js/misc/MD2Character.js +0 -235
  652. package/examples/js/misc/MD2CharacterComplex.js +0 -513
  653. package/examples/js/misc/MorphAnimMesh.js +0 -63
  654. package/examples/js/misc/MorphBlendMesh.js +0 -265
  655. package/examples/js/misc/ProgressiveLightMap.js +0 -335
  656. package/examples/js/misc/RollerCoaster.js +0 -430
  657. package/examples/js/misc/TubePainter.js +0 -167
  658. package/examples/js/misc/Volume.js +0 -437
  659. package/examples/js/misc/VolumeSlice.js +0 -214
  660. package/examples/js/modifiers/CurveModifier.js +0 -309
  661. package/examples/js/modifiers/EdgeSplitModifier.js +0 -228
  662. package/examples/js/modifiers/SimplifyModifier.js +0 -465
  663. package/examples/js/modifiers/TessellateModifier.js +0 -276
  664. package/examples/js/objects/GroundProjectedEnv.js +0 -181
  665. package/examples/js/objects/Lensflare.js +0 -356
  666. package/examples/js/objects/LightningStorm.js +0 -206
  667. package/examples/js/objects/MarchingCubes.js +0 -759
  668. package/examples/js/objects/Reflector.js +0 -216
  669. package/examples/js/objects/ReflectorForSSRPass.js +0 -315
  670. package/examples/js/objects/Refractor.js +0 -283
  671. package/examples/js/objects/ShadowMesh.js +0 -59
  672. package/examples/js/objects/Sky.js +0 -218
  673. package/examples/js/objects/Water.js +0 -292
  674. package/examples/js/objects/Water2.js +0 -307
  675. package/examples/js/physics/AmmoPhysics.js +0 -259
  676. package/examples/js/physics/OimoPhysics.js +0 -217
  677. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +0 -335
  678. package/examples/js/postprocessing/AfterimagePass.js +0 -77
  679. package/examples/js/postprocessing/BloomPass.js +0 -135
  680. package/examples/js/postprocessing/BokehPass.js +0 -120
  681. package/examples/js/postprocessing/ClearPass.js +0 -39
  682. package/examples/js/postprocessing/CubeTexturePass.js +0 -60
  683. package/examples/js/postprocessing/DotScreenPass.js +0 -51
  684. package/examples/js/postprocessing/EffectComposer.js +0 -272
  685. package/examples/js/postprocessing/FilmPass.js +0 -52
  686. package/examples/js/postprocessing/GlitchPass.js +0 -104
  687. package/examples/js/postprocessing/HalftonePass.js +0 -75
  688. package/examples/js/postprocessing/LUTPass.js +0 -171
  689. package/examples/js/postprocessing/MaskPass.js +0 -95
  690. package/examples/js/postprocessing/OutlinePass.js +0 -598
  691. package/examples/js/postprocessing/Pass.js +0 -72
  692. package/examples/js/postprocessing/RenderPass.js +0 -70
  693. package/examples/js/postprocessing/SAOPass.js +0 -374
  694. package/examples/js/postprocessing/SMAAPass.js +0 -170
  695. package/examples/js/postprocessing/SSAARenderPass.js +0 -156
  696. package/examples/js/postprocessing/SSAOPass.js +0 -365
  697. package/examples/js/postprocessing/SSRPass.js +0 -567
  698. package/examples/js/postprocessing/SavePass.js +0 -59
  699. package/examples/js/postprocessing/ShaderPass.js +0 -64
  700. package/examples/js/postprocessing/TAARenderPass.js +0 -130
  701. package/examples/js/postprocessing/TexturePass.js +0 -49
  702. package/examples/js/postprocessing/UnrealBloomPass.js +0 -375
  703. package/examples/js/renderers/CSS2DRenderer.js +0 -178
  704. package/examples/js/renderers/CSS3DRenderer.js +0 -237
  705. package/examples/js/renderers/Projector.js +0 -818
  706. package/examples/js/renderers/SVGRenderer.js +0 -491
  707. package/examples/js/shaders/ACESFilmicToneMappingShader.js +0 -89
  708. package/examples/js/shaders/AfterimageShader.js +0 -60
  709. package/examples/js/shaders/BasicShader.js +0 -27
  710. package/examples/js/shaders/BleachBypassShader.js +0 -62
  711. package/examples/js/shaders/BlendShader.js +0 -54
  712. package/examples/js/shaders/BokehShader.js +0 -156
  713. package/examples/js/shaders/BokehShader2.js +0 -419
  714. package/examples/js/shaders/BrightnessContrastShader.js +0 -58
  715. package/examples/js/shaders/ColorCorrectionShader.js +0 -52
  716. package/examples/js/shaders/ColorifyShader.js +0 -47
  717. package/examples/js/shaders/ConvolutionShader.js +0 -92
  718. package/examples/js/shaders/CopyShader.js +0 -45
  719. package/examples/js/shaders/DOFMipMapShader.js +0 -60
  720. package/examples/js/shaders/DepthLimitedBlurShader.js +0 -173
  721. package/examples/js/shaders/DigitalGlitch.js +0 -127
  722. package/examples/js/shaders/DotScreenShader.js +0 -72
  723. package/examples/js/shaders/FXAAShader.js +0 -284
  724. package/examples/js/shaders/FilmShader.js +0 -110
  725. package/examples/js/shaders/FocusShader.js +0 -95
  726. package/examples/js/shaders/FreiChenShader.js +0 -93
  727. package/examples/js/shaders/GammaCorrectionShader.js +0 -41
  728. package/examples/js/shaders/GodRaysShader.js +0 -284
  729. package/examples/js/shaders/HalftoneShader.js +0 -336
  730. package/examples/js/shaders/HorizontalBlurShader.js +0 -59
  731. package/examples/js/shaders/HorizontalTiltShiftShader.js +0 -65
  732. package/examples/js/shaders/HueSaturationShader.js +0 -69
  733. package/examples/js/shaders/KaleidoShader.js +0 -60
  734. package/examples/js/shaders/LuminosityHighPassShader.js +0 -67
  735. package/examples/js/shaders/LuminosityShader.js +0 -46
  736. package/examples/js/shaders/MMDToonShader.js +0 -96
  737. package/examples/js/shaders/MirrorShader.js +0 -56
  738. package/examples/js/shaders/NormalMapShader.js +0 -55
  739. package/examples/js/shaders/RGBShiftShader.js +0 -56
  740. package/examples/js/shaders/SAOShader.js +0 -209
  741. package/examples/js/shaders/SMAAShader.js +0 -454
  742. package/examples/js/shaders/SSAOShader.js +0 -295
  743. package/examples/js/shaders/SSRShader.js +0 -381
  744. package/examples/js/shaders/SepiaShader.js +0 -52
  745. package/examples/js/shaders/SobelOperatorShader.js +0 -88
  746. package/examples/js/shaders/SubsurfaceScatteringShader.js +0 -49
  747. package/examples/js/shaders/TechnicolorShader.js +0 -43
  748. package/examples/js/shaders/ToneMapShader.js +0 -84
  749. package/examples/js/shaders/ToonShader.js +0 -335
  750. package/examples/js/shaders/TriangleBlurShader.js +0 -70
  751. package/examples/js/shaders/UnpackDepthRGBAShader.js +0 -47
  752. package/examples/js/shaders/VelocityShader.js +0 -126
  753. package/examples/js/shaders/VerticalBlurShader.js +0 -59
  754. package/examples/js/shaders/VerticalTiltShiftShader.js +0 -65
  755. package/examples/js/shaders/VignetteShader.js +0 -53
  756. package/examples/js/shaders/VolumeShader.js +0 -296
  757. package/examples/js/shaders/WaterRefractionShader.js +0 -84
  758. package/examples/js/textures/FlakesTexture.js +0 -40
  759. package/examples/js/utils/BufferGeometryUtils.js +0 -1160
  760. package/examples/js/utils/CameraUtils.js +0 -71
  761. package/examples/js/utils/GPUStatsPanel.js +0 -125
  762. package/examples/js/utils/GeometryCompressionUtils.js +0 -549
  763. package/examples/js/utils/GeometryUtils.js +0 -168
  764. package/examples/js/utils/LDrawUtils.js +0 -179
  765. package/examples/js/utils/PackedPhongMaterial.js +0 -109
  766. package/examples/js/utils/SceneUtils.js +0 -214
  767. package/examples/js/utils/ShadowMapViewer.js +0 -183
  768. package/examples/js/utils/SkeletonUtils.js +0 -493
  769. package/examples/js/utils/UVsDebug.js +0 -143
  770. package/examples/js/utils/WorkerPool.js +0 -105
  771. package/examples/jsm/exporters/ColladaExporter.js +0 -713
  772. package/examples/jsm/geometries/LightningStrike.js +0 -1017
  773. package/examples/jsm/libs/OimoPhysics/OimoPhysics.js +0 -37071
  774. package/examples/jsm/libs/OimoPhysics/index.js +0 -43
  775. package/examples/jsm/libs/flow.module.js +0 -4552
  776. package/examples/jsm/libs/tween.module.min.js +0 -3
  777. package/examples/jsm/loaders/BasisTextureLoader.js +0 -790
  778. package/examples/jsm/loaders/IFCLoader.js +0 -2431
  779. package/examples/jsm/loaders/PRWMLoader.js +0 -299
  780. package/examples/jsm/loaders/ifc/web-ifc-api.js +0 -47504
  781. package/examples/jsm/loaders/ifc/web-ifc.wasm +0 -0
  782. package/examples/jsm/node-editor/NodeEditor.js +0 -857
  783. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +0 -14
  784. package/examples/jsm/node-editor/accessors/NormalEditor.js +0 -30
  785. package/examples/jsm/node-editor/accessors/PositionEditor.js +0 -30
  786. package/examples/jsm/node-editor/accessors/UVEditor.js +0 -25
  787. package/examples/jsm/node-editor/core/BaseNode.js +0 -96
  788. package/examples/jsm/node-editor/core/DataFile.js +0 -59
  789. package/examples/jsm/node-editor/core/FileEditor.js +0 -20
  790. package/examples/jsm/node-editor/core/FileURLEditor.js +0 -29
  791. package/examples/jsm/node-editor/display/BlendEditor.js +0 -44
  792. package/examples/jsm/node-editor/display/NormalMapEditor.js +0 -49
  793. package/examples/jsm/node-editor/examples/animate-uv.json +0 -1
  794. package/examples/jsm/node-editor/examples/fake-top-light.json +0 -1
  795. package/examples/jsm/node-editor/examples/matcap.json +0 -1
  796. package/examples/jsm/node-editor/examples/oscillator-color.json +0 -1
  797. package/examples/jsm/node-editor/examples/rim.json +0 -1
  798. package/examples/jsm/node-editor/inputs/ColorEditor.js +0 -96
  799. package/examples/jsm/node-editor/inputs/FloatEditor.js +0 -23
  800. package/examples/jsm/node-editor/inputs/SliderEditor.js +0 -67
  801. package/examples/jsm/node-editor/inputs/TextureEditor.js +0 -155
  802. package/examples/jsm/node-editor/inputs/Vector2Editor.js +0 -28
  803. package/examples/jsm/node-editor/inputs/Vector3Editor.js +0 -30
  804. package/examples/jsm/node-editor/inputs/Vector4Editor.js +0 -37
  805. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +0 -84
  806. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +0 -102
  807. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +0 -118
  808. package/examples/jsm/node-editor/math/AngleEditor.js +0 -40
  809. package/examples/jsm/node-editor/math/DotEditor.js +0 -35
  810. package/examples/jsm/node-editor/math/InvertEditor.js +0 -39
  811. package/examples/jsm/node-editor/math/LimiterEditor.js +0 -62
  812. package/examples/jsm/node-editor/math/NormalizeEditor.js +0 -28
  813. package/examples/jsm/node-editor/math/OperatorEditor.js +0 -63
  814. package/examples/jsm/node-editor/math/PowerEditor.js +0 -44
  815. package/examples/jsm/node-editor/math/TrigonometryEditor.js +0 -45
  816. package/examples/jsm/node-editor/procedural/CheckerEditor.js +0 -27
  817. package/examples/jsm/node-editor/scene/MeshEditor.js +0 -102
  818. package/examples/jsm/node-editor/scene/Object3DEditor.js +0 -160
  819. package/examples/jsm/node-editor/scene/PointsEditor.js +0 -99
  820. package/examples/jsm/node-editor/utils/JoinEditor.js +0 -58
  821. package/examples/jsm/node-editor/utils/OscillatorEditor.js +0 -43
  822. package/examples/jsm/node-editor/utils/PreviewEditor.js +0 -170
  823. package/examples/jsm/node-editor/utils/SplitEditor.js +0 -39
  824. package/examples/jsm/node-editor/utils/TimerEditor.js +0 -58
  825. package/examples/jsm/nodes/core/CodeNode.js +0 -50
  826. package/examples/jsm/nodes/core/ExpressionNode.js +0 -32
  827. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +0 -22
  828. package/examples/jsm/nodes/lighting/PunctualLightNode.js +0 -68
  829. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +0 -301
  830. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +0 -149
  831. package/examples/jsm/objects/GroundProjectedEnv.js +0 -186
  832. package/examples/jsm/objects/LightningStorm.js +0 -245
  833. package/examples/jsm/physics/OimoPhysics.js +0 -231
  834. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +0 -369
  835. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +0 -187
  836. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +0 -173
  837. package/examples/jsm/renderers/webgpu/WebGPUBinding.js +0 -22
  838. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +0 -255
  839. package/examples/jsm/renderers/webgpu/WebGPUBuffer.js +0 -43
  840. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +0 -78
  841. package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +0 -82
  842. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +0 -36
  843. package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +0 -22
  844. package/examples/jsm/renderers/webgpu/WebGPUProperties.js +0 -38
  845. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +0 -296
  846. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +0 -66
  847. package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +0 -73
  848. package/examples/jsm/renderers/webgpu/WebGPUSampler.js +0 -29
  849. package/examples/jsm/renderers/webgpu/WebGPUStorageBuffer.js +0 -20
  850. package/examples/jsm/renderers/webgpu/WebGPUTextureRenderer.js +0 -40
  851. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +0 -794
  852. package/examples/jsm/renderers/webgpu/WebGPUUniformBuffer.js +0 -18
  853. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +0 -81
  854. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +0 -83
  855. package/examples/jsm/shaders/ToneMapShader.js +0 -73
  856. package/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js +0 -7
  857. package/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js +0 -10
  858. package/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js +0 -7
  859. /package/examples/{js → jsm}/libs/ammo.wasm.js +0 -0
  860. /package/examples/{js → jsm}/libs/ammo.wasm.wasm +0 -0
  861. /package/examples/{js → jsm}/libs/basis/basis_transcoder.js +0 -0
  862. /package/examples/{js → jsm}/libs/basis/basis_transcoder.wasm +0 -0
  863. /package/examples/{js → jsm}/libs/draco/README.md +0 -0
  864. /package/examples/{js → jsm}/libs/draco/draco_encoder.js +0 -0
  865. /package/examples/{js → jsm}/libs/draco/gltf/draco_encoder.js +0 -0
@@ -1,2431 +0,0 @@
1
- import {
2
- IFCRELAGGREGATES,
3
- IFCRELCONTAINEDINSPATIALSTRUCTURE,
4
- IFCRELDEFINESBYPROPERTIES,
5
- IFCRELASSOCIATESMATERIAL,
6
- IFCRELDEFINESBYTYPE,
7
- IFCPROJECT,
8
- IfcAPI
9
- } from './ifc/web-ifc-api.js';
10
- import {
11
- BufferAttribute,
12
- Mesh,
13
- Matrix4,
14
- BufferGeometry,
15
- Color,
16
- MeshLambertMaterial,
17
- DoubleSide,
18
- Loader,
19
- FileLoader
20
- } from 'three';
21
- import { mergeBufferGeometries } from '../utils/BufferGeometryUtils.js';
22
-
23
- const IdAttrName = 'expressID';
24
- const merge = ( geoms, createGroups = false ) => {
25
-
26
- return mergeBufferGeometries( geoms, createGroups );
27
-
28
- };
29
-
30
- const newFloatAttr = ( data, size ) => {
31
-
32
- return new BufferAttribute( new Float32Array( data ), size );
33
-
34
- };
35
-
36
- const newIntAttr = ( data, size ) => {
37
-
38
- return new BufferAttribute( new Uint32Array( data ), size );
39
-
40
- };
41
-
42
- const DEFAULT = 'default';
43
- const PropsNames = {
44
- aggregates: {
45
- name: IFCRELAGGREGATES,
46
- relating: 'RelatingObject',
47
- related: 'RelatedObjects',
48
- key: 'children'
49
- },
50
- spatial: {
51
- name: IFCRELCONTAINEDINSPATIALSTRUCTURE,
52
- relating: 'RelatingStructure',
53
- related: 'RelatedElements',
54
- key: 'children'
55
- },
56
- psets: {
57
- name: IFCRELDEFINESBYPROPERTIES,
58
- relating: 'RelatingPropertyDefinition',
59
- related: 'RelatedObjects',
60
- key: 'hasPsets'
61
- },
62
- materials: {
63
- name: IFCRELASSOCIATESMATERIAL,
64
- relating: 'RelatingMaterial',
65
- related: 'RelatedObjects',
66
- key: 'hasMaterial'
67
- },
68
- type: {
69
- name: IFCRELDEFINESBYTYPE,
70
- relating: 'RelatingType',
71
- related: 'RelatedObjects',
72
- key: 'hasType'
73
- }
74
- };
75
-
76
- class IFCParser {
77
-
78
- constructor( state, BVH ) {
79
-
80
- this.state = state;
81
- this.BVH = BVH;
82
- this.loadedModels = 0;
83
- this.currentWebIfcID = - 1;
84
- this.currentModelID = - 1;
85
-
86
- }
87
-
88
- async parse( buffer ) {
89
-
90
- if ( this.state.api.wasmModule === undefined )
91
- await this.state.api.Init();
92
- this.newIfcModel( buffer );
93
- this.loadedModels ++;
94
- return this.loadAllGeometry();
95
-
96
- }
97
-
98
- newIfcModel( buffer ) {
99
-
100
- const data = new Uint8Array( buffer );
101
- this.currentWebIfcID = this.state.api.OpenModel( data, this.state.webIfcSettings );
102
- this.currentModelID = this.state.useJSON ? this.loadedModels : this.currentWebIfcID;
103
- this.state.models[ this.currentModelID ] = {
104
- modelID: this.currentModelID,
105
- mesh: {},
106
- items: {},
107
- types: {},
108
- jsonData: {}
109
- };
110
-
111
- }
112
-
113
- loadAllGeometry() {
114
-
115
- this.saveAllPlacedGeometriesByMaterial();
116
- return this.generateAllGeometriesByMaterial();
117
-
118
- }
119
-
120
- generateAllGeometriesByMaterial() {
121
-
122
- const { geometry, materials } = this.getGeometryAndMaterials();
123
- this.BVH.applyThreeMeshBVH( geometry );
124
- const mesh = new Mesh( geometry, materials );
125
- mesh.modelID = this.currentModelID;
126
- this.state.models[ this.currentModelID ].mesh = mesh;
127
- return mesh;
128
-
129
- }
130
-
131
- getGeometryAndMaterials() {
132
-
133
- const items = this.state.models[ this.currentModelID ].items;
134
- const mergedByMaterial = [];
135
- const materials = [];
136
- for ( const materialID in items ) {
137
-
138
- materials.push( items[ materialID ].material );
139
- const geometries = Object.values( items[ materialID ].geometries );
140
- mergedByMaterial.push( merge( geometries ) );
141
-
142
- }
143
-
144
- const geometry = merge( mergedByMaterial, true );
145
- return {
146
- geometry,
147
- materials
148
- };
149
-
150
- }
151
-
152
- saveAllPlacedGeometriesByMaterial() {
153
-
154
- const flatMeshes = this.state.api.LoadAllGeometry( this.currentWebIfcID );
155
- for ( let i = 0; i < flatMeshes.size(); i ++ ) {
156
-
157
- const flatMesh = flatMeshes.get( i );
158
- const placedGeom = flatMesh.geometries;
159
- for ( let j = 0; j < placedGeom.size(); j ++ ) {
160
-
161
- this.savePlacedGeometry( placedGeom.get( j ), flatMesh.expressID );
162
-
163
- }
164
-
165
- }
166
-
167
- }
168
-
169
- savePlacedGeometry( placedGeometry, id ) {
170
-
171
- const geometry = this.getBufferGeometry( placedGeometry );
172
- geometry.computeVertexNormals();
173
- const matrix = this.getMeshMatrix( placedGeometry.flatTransformation );
174
- geometry.applyMatrix4( matrix );
175
- this.saveGeometryByMaterial( geometry, placedGeometry, id );
176
-
177
- }
178
-
179
- getBufferGeometry( placed ) {
180
-
181
- const geometry = this.state.api.GetGeometry( this.currentWebIfcID, placed.geometryExpressID );
182
- const vertexData = this.getVertices( geometry );
183
- const indices = this.getIndices( geometry );
184
- const { vertices, normals } = this.extractVertexData( vertexData );
185
- return this.ifcGeomToBufferGeom( vertices, normals, indices );
186
-
187
- }
188
-
189
- getVertices( geometry ) {
190
-
191
- const vData = geometry.GetVertexData();
192
- const vDataSize = geometry.GetVertexDataSize();
193
- return this.state.api.GetVertexArray( vData, vDataSize );
194
-
195
- }
196
-
197
- getIndices( geometry ) {
198
-
199
- const iData = geometry.GetIndexData();
200
- const iDataSize = geometry.GetIndexDataSize();
201
- return this.state.api.GetIndexArray( iData, iDataSize );
202
-
203
- }
204
-
205
- getMeshMatrix( matrix ) {
206
-
207
- const mat = new Matrix4();
208
- mat.fromArray( matrix );
209
- return mat;
210
-
211
- }
212
-
213
- ifcGeomToBufferGeom( vertices, normals, indexData ) {
214
-
215
- const geometry = new BufferGeometry();
216
- geometry.setAttribute( 'position', newFloatAttr( vertices, 3 ) );
217
- geometry.setAttribute( 'normal', newFloatAttr( normals, 3 ) );
218
- geometry.setIndex( new BufferAttribute( indexData, 1 ) );
219
- return geometry;
220
-
221
- }
222
-
223
- extractVertexData( vertexData ) {
224
-
225
- const vertices = [];
226
- const normals = [];
227
- let isNormalData = false;
228
- for ( let i = 0; i < vertexData.length; i ++ ) {
229
-
230
- isNormalData ? normals.push( vertexData[ i ] ) : vertices.push( vertexData[ i ] );
231
- if ( ( i + 1 ) % 3 == 0 )
232
- isNormalData = ! isNormalData;
233
-
234
- }
235
-
236
- return {
237
- vertices,
238
- normals
239
- };
240
-
241
- }
242
-
243
- saveGeometryByMaterial( geom, placedGeom, id ) {
244
-
245
- const color = placedGeom.color;
246
- const colorID = `${color.x}${color.y}${color.z}${color.w}`;
247
- this.storeGeometryAttribute( id, geom );
248
- this.createMaterial( colorID, color );
249
- const item = this.state.models[ this.currentModelID ].items[ colorID ];
250
- const currentGeom = item.geometries[ id ];
251
- if ( ! currentGeom )
252
- return ( item.geometries[ id ] = geom );
253
- const merged = merge( [ currentGeom, geom ] );
254
- item.geometries[ id ] = merged;
255
-
256
- }
257
-
258
- storeGeometryAttribute( id, geometry ) {
259
-
260
- const size = geometry.attributes.position.count;
261
- const idAttribute = new Array( size ).fill( id );
262
- geometry.setAttribute( IdAttrName, newIntAttr( idAttribute, 1 ) );
263
-
264
- }
265
-
266
- createMaterial( colorID, color ) {
267
-
268
- const items = this.state.models[ this.currentModelID ].items;
269
- if ( items[ colorID ] )
270
- return;
271
- const col = new Color( color.x, color.y, color.z );
272
- const newMaterial = new MeshLambertMaterial( {
273
- color: col,
274
- side: DoubleSide
275
- } );
276
- newMaterial.transparent = color.w !== 1;
277
- if ( newMaterial.transparent )
278
- newMaterial.opacity = color.w;
279
- items[ colorID ] = {
280
- material: newMaterial,
281
- geometries: {}
282
- };
283
-
284
- }
285
-
286
- }
287
-
288
- class SubsetManager {
289
-
290
- constructor( state, BVH ) {
291
-
292
- this.selected = {};
293
- this.state = state;
294
- this.BVH = BVH;
295
-
296
- }
297
-
298
- getSubset( modelID, material ) {
299
-
300
- const currentMat = this.matIDNoConfig( modelID, material );
301
- if ( ! this.selected[ currentMat ] )
302
- return null;
303
- return this.selected[ currentMat ].mesh;
304
-
305
- }
306
-
307
- removeSubset( modelID, parent, material ) {
308
-
309
- const currentMat = this.matIDNoConfig( modelID, material );
310
- if ( ! this.selected[ currentMat ] )
311
- return;
312
- if ( parent )
313
- parent.remove( this.selected[ currentMat ].mesh );
314
- delete this.selected[ currentMat ];
315
-
316
- }
317
-
318
- createSubset( config ) {
319
-
320
- if ( ! this.isConfigValid( config ) )
321
- return;
322
- if ( this.isPreviousSelection( config ) )
323
- return;
324
- if ( this.isEasySelection( config ) )
325
- return this.addToPreviousSelection( config );
326
- this.updatePreviousSelection( config.scene, config );
327
- return this.createSelectionInScene( config );
328
-
329
- }
330
-
331
- createSelectionInScene( config ) {
332
-
333
- const filtered = this.filter( config );
334
- const { geomsByMaterial, materials } = this.getGeomAndMat( filtered );
335
- const isDefMaterial = this.isDefaultMat( config );
336
- const geometry = this.getMergedGeometry( geomsByMaterial, isDefMaterial );
337
- const mats = isDefMaterial ? materials : config.material;
338
- this.BVH.applyThreeMeshBVH( geometry );
339
- const mesh = new Mesh( geometry, mats );
340
- this.selected[ this.matID( config ) ].mesh = mesh;
341
- mesh.modelID = config.modelID;
342
- config.scene.add( mesh );
343
- return mesh;
344
-
345
- }
346
-
347
- getMergedGeometry( geomsByMaterial, hasDefaultMaterial ) {
348
-
349
- return geomsByMaterial.length > 0
350
- ? merge( geomsByMaterial, hasDefaultMaterial )
351
- : new BufferGeometry();
352
-
353
- }
354
-
355
- isConfigValid( config ) {
356
-
357
- return ( this.isValid( config.scene ) &&
358
- this.isValid( config.modelID ) &&
359
- this.isValid( config.ids ) &&
360
- this.isValid( config.removePrevious ) );
361
-
362
- }
363
-
364
- isValid( item ) {
365
-
366
- return item != undefined && item != null;
367
-
368
- }
369
-
370
- getGeomAndMat( filtered ) {
371
-
372
- const geomsByMaterial = [];
373
- const materials = [];
374
- for ( const matID in filtered ) {
375
-
376
- const geoms = Object.values( filtered[ matID ].geometries );
377
- if ( ! geoms.length )
378
- continue;
379
- materials.push( filtered[ matID ].material );
380
- if ( geoms.length > 1 )
381
- geomsByMaterial.push( merge( geoms ) );
382
- else
383
- geomsByMaterial.push( ...geoms );
384
-
385
- }
386
-
387
- return {
388
- geomsByMaterial,
389
- materials
390
- };
391
-
392
- }
393
-
394
- updatePreviousSelection( parent, config ) {
395
-
396
- const previous = this.selected[ this.matID( config ) ];
397
- if ( ! previous )
398
- return this.newSelectionGroup( config );
399
- parent.remove( previous.mesh );
400
- config.removePrevious
401
- ? ( previous.ids = new Set( config.ids ) )
402
- : config.ids.forEach( ( id ) => previous.ids.add( id ) );
403
-
404
- }
405
-
406
- newSelectionGroup( config ) {
407
-
408
- this.selected[ this.matID( config ) ] = {
409
- ids: new Set( config.ids ),
410
- mesh: {}
411
- };
412
-
413
- }
414
-
415
- isPreviousSelection( config ) {
416
-
417
- if ( ! this.selected[ this.matID( config ) ] )
418
- return false;
419
- if ( this.containsIds( config ) )
420
- return true;
421
- const previousIds = this.selected[ this.matID( config ) ].ids;
422
- return JSON.stringify( config.ids ) === JSON.stringify( previousIds );
423
-
424
- }
425
-
426
- containsIds( config ) {
427
-
428
- const newIds = config.ids;
429
- const previous = Array.from( this.selected[ this.matID( config ) ].ids );
430
- return newIds.every( ( i => v => ( i = previous.indexOf( v, i ) + 1 ) )( 0 ) );
431
-
432
- }
433
-
434
- addToPreviousSelection( config ) {
435
-
436
- const previous = this.selected[ this.matID( config ) ];
437
- const filtered = this.filter( config );
438
- const geometries = Object.values( filtered ).map( ( i ) => Object.values( i.geometries ) ).flat();
439
- const previousGeom = previous.mesh.geometry;
440
- previous.mesh.geometry = merge( [ previousGeom, ...geometries ] );
441
- config.ids.forEach( ( id ) => previous.ids.add( id ) );
442
-
443
- }
444
-
445
- filter( config ) {
446
-
447
- const ids = this.selected[ this.matID( config ) ].ids;
448
- const items = this.state.models[ config.modelID ].items;
449
- const filtered = {};
450
- for ( const matID in items ) {
451
-
452
- filtered[ matID ] = {
453
- material: items[ matID ].material,
454
- geometries: this.filterGeometries( ids, items[ matID ].geometries )
455
- };
456
-
457
- }
458
-
459
- return filtered;
460
-
461
- }
462
-
463
- filterGeometries( selectedIDs, geometries ) {
464
-
465
- const ids = Array.from( selectedIDs );
466
- return Object.keys( geometries )
467
- .filter( ( key ) => ids.includes( parseInt( key, 10 ) ) )
468
- .reduce( ( obj, key ) => {
469
-
470
- return {
471
- ...obj,
472
- [ key ]: geometries[ key ]
473
- };
474
-
475
- }, {} );
476
-
477
- }
478
-
479
- isEasySelection( config ) {
480
-
481
- const matID = this.matID( config );
482
- if ( ! config.removePrevious && ! this.isDefaultMat( config ) && this.selected[ matID ] )
483
- return true;
484
-
485
- }
486
-
487
- isDefaultMat( config ) {
488
-
489
- return this.matIDNoConfig( config.modelID ) === this.matID( config );
490
-
491
- }
492
-
493
- matID( config ) {
494
-
495
- let name;
496
- if ( ! config.material )
497
- name = DEFAULT;
498
- else
499
- name = config.material.uuid || DEFAULT;
500
- return name.concat( ' - ' ).concat( config.modelID.toString() );
501
-
502
- }
503
-
504
- matIDNoConfig( modelID, material ) {
505
-
506
- let name = DEFAULT;
507
- if ( material )
508
- name = material.uuid;
509
- return name.concat( ' - ' ).concat( modelID.toString() );
510
-
511
- }
512
-
513
- }
514
-
515
- const IfcElements = {
516
- 103090709: 'IFCPROJECT',
517
- 4097777520: 'IFCSITE',
518
- 4031249490: 'IFCBUILDING',
519
- 3124254112: 'IFCBUILDINGSTOREY',
520
- 3856911033: 'IFCSPACE',
521
- 1674181508: 'IFCANNOTATION',
522
- 25142252: 'IFCCONTROLLER',
523
- 32344328: 'IFCBOILER',
524
- 76236018: 'IFCLAMP',
525
- 90941305: 'IFCPUMP',
526
- 177149247: 'IFCAIRTERMINALBOX',
527
- 182646315: 'IFCFLOWINSTRUMENT',
528
- 263784265: 'IFCFURNISHINGELEMENT',
529
- 264262732: 'IFCELECTRICGENERATOR',
530
- 277319702: 'IFCAUDIOVISUALAPPLIANCE',
531
- 310824031: 'IFCPIPEFITTING',
532
- 331165859: 'IFCSTAIR',
533
- 342316401: 'IFCDUCTFITTING',
534
- 377706215: 'IFCMECHANICALFASTENER',
535
- 395920057: 'IFCDOOR',
536
- 402227799: 'IFCELECTRICMOTOR',
537
- 413509423: 'IFCSYSTEMFURNITUREELEMENT',
538
- 484807127: 'IFCEVAPORATOR',
539
- 486154966: 'IFCWINDOWSTANDARDCASE',
540
- 629592764: 'IFCLIGHTFIXTURE',
541
- 630975310: 'IFCUNITARYCONTROLELEMENT',
542
- 635142910: 'IFCCABLECARRIERFITTING',
543
- 639361253: 'IFCCOIL',
544
- 647756555: 'IFCFASTENER',
545
- 707683696: 'IFCFLOWSTORAGEDEVICE',
546
- 738039164: 'IFCPROTECTIVEDEVICE',
547
- 753842376: 'IFCBEAM',
548
- 812556717: 'IFCTANK',
549
- 819412036: 'IFCFILTER',
550
- 843113511: 'IFCCOLUMN',
551
- 862014818: 'IFCELECTRICDISTRIBUTIONBOARD',
552
- 900683007: 'IFCFOOTING',
553
- 905975707: 'IFCCOLUMNSTANDARDCASE',
554
- 926996030: 'IFCVOIDINGFEATURE',
555
- 979691226: 'IFCREINFORCINGBAR',
556
- 987401354: 'IFCFLOWSEGMENT',
557
- 1003880860: 'IFCELECTRICTIMECONTROL',
558
- 1051757585: 'IFCCABLEFITTING',
559
- 1052013943: 'IFCDISTRIBUTIONCHAMBERELEMENT',
560
- 1062813311: 'IFCDISTRIBUTIONCONTROLELEMENT',
561
- 1073191201: 'IFCMEMBER',
562
- 1095909175: 'IFCBUILDINGELEMENTPROXY',
563
- 1156407060: 'IFCPLATESTANDARDCASE',
564
- 1162798199: 'IFCSWITCHINGDEVICE',
565
- 1329646415: 'IFCSHADINGDEVICE',
566
- 1335981549: 'IFCDISCRETEACCESSORY',
567
- 1360408905: 'IFCDUCTSILENCER',
568
- 1404847402: 'IFCSTACKTERMINAL',
569
- 1426591983: 'IFCFIRESUPPRESSIONTERMINAL',
570
- 1437502449: 'IFCMEDICALDEVICE',
571
- 1509553395: 'IFCFURNITURE',
572
- 1529196076: 'IFCSLAB',
573
- 1620046519: 'IFCTRANSPORTELEMENT',
574
- 1634111441: 'IFCAIRTERMINAL',
575
- 1658829314: 'IFCENERGYCONVERSIONDEVICE',
576
- 1677625105: 'IFCCIVILELEMENT',
577
- 1687234759: 'IFCPILE',
578
- 1904799276: 'IFCELECTRICAPPLIANCE',
579
- 1911478936: 'IFCMEMBERSTANDARDCASE',
580
- 1945004755: 'IFCDISTRIBUTIONELEMENT',
581
- 1973544240: 'IFCCOVERING',
582
- 1999602285: 'IFCSPACEHEATER',
583
- 2016517767: 'IFCROOF',
584
- 2056796094: 'IFCAIRTOAIRHEATRECOVERY',
585
- 2058353004: 'IFCFLOWCONTROLLER',
586
- 2068733104: 'IFCHUMIDIFIER',
587
- 2176052936: 'IFCJUNCTIONBOX',
588
- 2188021234: 'IFCFLOWMETER',
589
- 2223149337: 'IFCFLOWTERMINAL',
590
- 2262370178: 'IFCRAILING',
591
- 2272882330: 'IFCCONDENSER',
592
- 2295281155: 'IFCPROTECTIVEDEVICETRIPPINGUNIT',
593
- 2320036040: 'IFCREINFORCINGMESH',
594
- 2347447852: 'IFCTENDONANCHOR',
595
- 2391383451: 'IFCVIBRATIONISOLATOR',
596
- 2391406946: 'IFCWALL',
597
- 2474470126: 'IFCMOTORCONNECTION',
598
- 2769231204: 'IFCVIRTUALELEMENT',
599
- 2814081492: 'IFCENGINE',
600
- 2906023776: 'IFCBEAMSTANDARDCASE',
601
- 2938176219: 'IFCBURNER',
602
- 2979338954: 'IFCBUILDINGELEMENTPART',
603
- 3024970846: 'IFCRAMP',
604
- 3026737570: 'IFCTUBEBUNDLE',
605
- 3027962421: 'IFCSLABSTANDARDCASE',
606
- 3040386961: 'IFCDISTRIBUTIONFLOWELEMENT',
607
- 3053780830: 'IFCSANITARYTERMINAL',
608
- 3079942009: 'IFCOPENINGSTANDARDCASE',
609
- 3087945054: 'IFCALARM',
610
- 3101698114: 'IFCSURFACEFEATURE',
611
- 3127900445: 'IFCSLABELEMENTEDCASE',
612
- 3132237377: 'IFCFLOWMOVINGDEVICE',
613
- 3171933400: 'IFCPLATE',
614
- 3221913625: 'IFCCOMMUNICATIONSAPPLIANCE',
615
- 3242481149: 'IFCDOORSTANDARDCASE',
616
- 3283111854: 'IFCRAMPFLIGHT',
617
- 3296154744: 'IFCCHIMNEY',
618
- 3304561284: 'IFCWINDOW',
619
- 3310460725: 'IFCELECTRICFLOWSTORAGEDEVICE',
620
- 3319311131: 'IFCHEATEXCHANGER',
621
- 3415622556: 'IFCFAN',
622
- 3420628829: 'IFCSOLARDEVICE',
623
- 3493046030: 'IFCGEOGRAPHICELEMENT',
624
- 3495092785: 'IFCCURTAINWALL',
625
- 3508470533: 'IFCFLOWTREATMENTDEVICE',
626
- 3512223829: 'IFCWALLSTANDARDCASE',
627
- 3518393246: 'IFCDUCTSEGMENT',
628
- 3571504051: 'IFCCOMPRESSOR',
629
- 3588315303: 'IFCOPENINGELEMENT',
630
- 3612865200: 'IFCPIPESEGMENT',
631
- 3640358203: 'IFCCOOLINGTOWER',
632
- 3651124850: 'IFCPROJECTIONELEMENT',
633
- 3694346114: 'IFCOUTLET',
634
- 3747195512: 'IFCEVAPORATIVECOOLER',
635
- 3758799889: 'IFCCABLECARRIERSEGMENT',
636
- 3824725483: 'IFCTENDON',
637
- 3825984169: 'IFCTRANSFORMER',
638
- 3902619387: 'IFCCHILLER',
639
- 4074379575: 'IFCDAMPER',
640
- 4086658281: 'IFCSENSOR',
641
- 4123344466: 'IFCELEMENTASSEMBLY',
642
- 4136498852: 'IFCCOOLEDBEAM',
643
- 4156078855: 'IFCWALLELEMENTEDCASE',
644
- 4175244083: 'IFCINTERCEPTOR',
645
- 4207607924: 'IFCVALVE',
646
- 4217484030: 'IFCCABLESEGMENT',
647
- 4237592921: 'IFCWASTETERMINAL',
648
- 4252922144: 'IFCSTAIRFLIGHT',
649
- 4278956645: 'IFCFLOWFITTING',
650
- 4288193352: 'IFCACTUATOR',
651
- 4292641817: 'IFCUNITARYEQUIPMENT',
652
- 3009204131: 'IFCGRID'
653
- };
654
-
655
- const IfcTypesMap = {
656
- 3821786052: 'IFCACTIONREQUEST',
657
- 2296667514: 'IFCACTOR',
658
- 3630933823: 'IFCACTORROLE',
659
- 4288193352: 'IFCACTUATOR',
660
- 2874132201: 'IFCACTUATORTYPE',
661
- 618182010: 'IFCADDRESS',
662
- 1635779807: 'IFCADVANCEDBREP',
663
- 2603310189: 'IFCADVANCEDBREPWITHVOIDS',
664
- 3406155212: 'IFCADVANCEDFACE',
665
- 1634111441: 'IFCAIRTERMINAL',
666
- 177149247: 'IFCAIRTERMINALBOX',
667
- 1411407467: 'IFCAIRTERMINALBOXTYPE',
668
- 3352864051: 'IFCAIRTERMINALTYPE',
669
- 2056796094: 'IFCAIRTOAIRHEATRECOVERY',
670
- 1871374353: 'IFCAIRTOAIRHEATRECOVERYTYPE',
671
- 3087945054: 'IFCALARM',
672
- 3001207471: 'IFCALARMTYPE',
673
- 325726236: 'IFCALIGNMENT',
674
- 749761778: 'IFCALIGNMENT2DHORIZONTAL',
675
- 3199563722: 'IFCALIGNMENT2DHORIZONTALSEGMENT',
676
- 2483840362: 'IFCALIGNMENT2DSEGMENT',
677
- 3379348081: 'IFCALIGNMENT2DVERSEGCIRCULARARC',
678
- 3239324667: 'IFCALIGNMENT2DVERSEGLINE',
679
- 4263986512: 'IFCALIGNMENT2DVERSEGPARABOLICARC',
680
- 53199957: 'IFCALIGNMENT2DVERTICAL',
681
- 2029264950: 'IFCALIGNMENT2DVERTICALSEGMENT',
682
- 3512275521: 'IFCALIGNMENTCURVE',
683
- 1674181508: 'IFCANNOTATION',
684
- 669184980: 'IFCANNOTATIONFILLAREA',
685
- 639542469: 'IFCAPPLICATION',
686
- 411424972: 'IFCAPPLIEDVALUE',
687
- 130549933: 'IFCAPPROVAL',
688
- 3869604511: 'IFCAPPROVALRELATIONSHIP',
689
- 3798115385: 'IFCARBITRARYCLOSEDPROFILEDEF',
690
- 1310608509: 'IFCARBITRARYOPENPROFILEDEF',
691
- 2705031697: 'IFCARBITRARYPROFILEDEFWITHVOIDS',
692
- 3460190687: 'IFCASSET',
693
- 3207858831: 'IFCASYMMETRICISHAPEPROFILEDEF',
694
- 277319702: 'IFCAUDIOVISUALAPPLIANCE',
695
- 1532957894: 'IFCAUDIOVISUALAPPLIANCETYPE',
696
- 4261334040: 'IFCAXIS1PLACEMENT',
697
- 3125803723: 'IFCAXIS2PLACEMENT2D',
698
- 2740243338: 'IFCAXIS2PLACEMENT3D',
699
- 1967976161: 'IFCBSPLINECURVE',
700
- 2461110595: 'IFCBSPLINECURVEWITHKNOTS',
701
- 2887950389: 'IFCBSPLINESURFACE',
702
- 167062518: 'IFCBSPLINESURFACEWITHKNOTS',
703
- 753842376: 'IFCBEAM',
704
- 2906023776: 'IFCBEAMSTANDARDCASE',
705
- 819618141: 'IFCBEAMTYPE',
706
- 4196446775: 'IFCBEARING',
707
- 3649138523: 'IFCBEARINGTYPE',
708
- 616511568: 'IFCBLOBTEXTURE',
709
- 1334484129: 'IFCBLOCK',
710
- 32344328: 'IFCBOILER',
711
- 231477066: 'IFCBOILERTYPE',
712
- 3649129432: 'IFCBOOLEANCLIPPINGRESULT',
713
- 2736907675: 'IFCBOOLEANRESULT',
714
- 4037036970: 'IFCBOUNDARYCONDITION',
715
- 1136057603: 'IFCBOUNDARYCURVE',
716
- 1560379544: 'IFCBOUNDARYEDGECONDITION',
717
- 3367102660: 'IFCBOUNDARYFACECONDITION',
718
- 1387855156: 'IFCBOUNDARYNODECONDITION',
719
- 2069777674: 'IFCBOUNDARYNODECONDITIONWARPING',
720
- 1260505505: 'IFCBOUNDEDCURVE',
721
- 4182860854: 'IFCBOUNDEDSURFACE',
722
- 2581212453: 'IFCBOUNDINGBOX',
723
- 2713105998: 'IFCBOXEDHALFSPACE',
724
- 644574406: 'IFCBRIDGE',
725
- 963979645: 'IFCBRIDGEPART',
726
- 4031249490: 'IFCBUILDING',
727
- 3299480353: 'IFCBUILDINGELEMENT',
728
- 2979338954: 'IFCBUILDINGELEMENTPART',
729
- 39481116: 'IFCBUILDINGELEMENTPARTTYPE',
730
- 1095909175: 'IFCBUILDINGELEMENTPROXY',
731
- 1909888760: 'IFCBUILDINGELEMENTPROXYTYPE',
732
- 1950629157: 'IFCBUILDINGELEMENTTYPE',
733
- 3124254112: 'IFCBUILDINGSTOREY',
734
- 1177604601: 'IFCBUILDINGSYSTEM',
735
- 2938176219: 'IFCBURNER',
736
- 2188180465: 'IFCBURNERTYPE',
737
- 2898889636: 'IFCCSHAPEPROFILEDEF',
738
- 635142910: 'IFCCABLECARRIERFITTING',
739
- 395041908: 'IFCCABLECARRIERFITTINGTYPE',
740
- 3758799889: 'IFCCABLECARRIERSEGMENT',
741
- 3293546465: 'IFCCABLECARRIERSEGMENTTYPE',
742
- 1051757585: 'IFCCABLEFITTING',
743
- 2674252688: 'IFCCABLEFITTINGTYPE',
744
- 4217484030: 'IFCCABLESEGMENT',
745
- 1285652485: 'IFCCABLESEGMENTTYPE',
746
- 3999819293: 'IFCCAISSONFOUNDATION',
747
- 3203706013: 'IFCCAISSONFOUNDATIONTYPE',
748
- 1123145078: 'IFCCARTESIANPOINT',
749
- 574549367: 'IFCCARTESIANPOINTLIST',
750
- 1675464909: 'IFCCARTESIANPOINTLIST2D',
751
- 2059837836: 'IFCCARTESIANPOINTLIST3D',
752
- 59481748: 'IFCCARTESIANTRANSFORMATIONOPERATOR',
753
- 3749851601: 'IFCCARTESIANTRANSFORMATIONOPERATOR2D',
754
- 3486308946: 'IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM',
755
- 3331915920: 'IFCCARTESIANTRANSFORMATIONOPERATOR3D',
756
- 1416205885: 'IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM',
757
- 3150382593: 'IFCCENTERLINEPROFILEDEF',
758
- 3902619387: 'IFCCHILLER',
759
- 2951183804: 'IFCCHILLERTYPE',
760
- 3296154744: 'IFCCHIMNEY',
761
- 2197970202: 'IFCCHIMNEYTYPE',
762
- 2611217952: 'IFCCIRCLE',
763
- 2937912522: 'IFCCIRCLEHOLLOWPROFILEDEF',
764
- 1383045692: 'IFCCIRCLEPROFILEDEF',
765
- 1062206242: 'IFCCIRCULARARCSEGMENT2D',
766
- 1677625105: 'IFCCIVILELEMENT',
767
- 3893394355: 'IFCCIVILELEMENTTYPE',
768
- 747523909: 'IFCCLASSIFICATION',
769
- 647927063: 'IFCCLASSIFICATIONREFERENCE',
770
- 2205249479: 'IFCCLOSEDSHELL',
771
- 639361253: 'IFCCOIL',
772
- 2301859152: 'IFCCOILTYPE',
773
- 776857604: 'IFCCOLOURRGB',
774
- 3285139300: 'IFCCOLOURRGBLIST',
775
- 3264961684: 'IFCCOLOURSPECIFICATION',
776
- 843113511: 'IFCCOLUMN',
777
- 905975707: 'IFCCOLUMNSTANDARDCASE',
778
- 300633059: 'IFCCOLUMNTYPE',
779
- 3221913625: 'IFCCOMMUNICATIONSAPPLIANCE',
780
- 400855858: 'IFCCOMMUNICATIONSAPPLIANCETYPE',
781
- 2542286263: 'IFCCOMPLEXPROPERTY',
782
- 3875453745: 'IFCCOMPLEXPROPERTYTEMPLATE',
783
- 3732776249: 'IFCCOMPOSITECURVE',
784
- 15328376: 'IFCCOMPOSITECURVEONSURFACE',
785
- 2485617015: 'IFCCOMPOSITECURVESEGMENT',
786
- 1485152156: 'IFCCOMPOSITEPROFILEDEF',
787
- 3571504051: 'IFCCOMPRESSOR',
788
- 3850581409: 'IFCCOMPRESSORTYPE',
789
- 2272882330: 'IFCCONDENSER',
790
- 2816379211: 'IFCCONDENSERTYPE',
791
- 2510884976: 'IFCCONIC',
792
- 370225590: 'IFCCONNECTEDFACESET',
793
- 1981873012: 'IFCCONNECTIONCURVEGEOMETRY',
794
- 2859738748: 'IFCCONNECTIONGEOMETRY',
795
- 45288368: 'IFCCONNECTIONPOINTECCENTRICITY',
796
- 2614616156: 'IFCCONNECTIONPOINTGEOMETRY',
797
- 2732653382: 'IFCCONNECTIONSURFACEGEOMETRY',
798
- 775493141: 'IFCCONNECTIONVOLUMEGEOMETRY',
799
- 1959218052: 'IFCCONSTRAINT',
800
- 3898045240: 'IFCCONSTRUCTIONEQUIPMENTRESOURCE',
801
- 2185764099: 'IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE',
802
- 1060000209: 'IFCCONSTRUCTIONMATERIALRESOURCE',
803
- 4105962743: 'IFCCONSTRUCTIONMATERIALRESOURCETYPE',
804
- 488727124: 'IFCCONSTRUCTIONPRODUCTRESOURCE',
805
- 1525564444: 'IFCCONSTRUCTIONPRODUCTRESOURCETYPE',
806
- 2559216714: 'IFCCONSTRUCTIONRESOURCE',
807
- 2574617495: 'IFCCONSTRUCTIONRESOURCETYPE',
808
- 3419103109: 'IFCCONTEXT',
809
- 3050246964: 'IFCCONTEXTDEPENDENTUNIT',
810
- 3293443760: 'IFCCONTROL',
811
- 25142252: 'IFCCONTROLLER',
812
- 578613899: 'IFCCONTROLLERTYPE',
813
- 2889183280: 'IFCCONVERSIONBASEDUNIT',
814
- 2713554722: 'IFCCONVERSIONBASEDUNITWITHOFFSET',
815
- 4136498852: 'IFCCOOLEDBEAM',
816
- 335055490: 'IFCCOOLEDBEAMTYPE',
817
- 3640358203: 'IFCCOOLINGTOWER',
818
- 2954562838: 'IFCCOOLINGTOWERTYPE',
819
- 1785450214: 'IFCCOORDINATEOPERATION',
820
- 1466758467: 'IFCCOORDINATEREFERENCESYSTEM',
821
- 3895139033: 'IFCCOSTITEM',
822
- 1419761937: 'IFCCOSTSCHEDULE',
823
- 602808272: 'IFCCOSTVALUE',
824
- 1973544240: 'IFCCOVERING',
825
- 1916426348: 'IFCCOVERINGTYPE',
826
- 3295246426: 'IFCCREWRESOURCE',
827
- 1815067380: 'IFCCREWRESOURCETYPE',
828
- 2506170314: 'IFCCSGPRIMITIVE3D',
829
- 2147822146: 'IFCCSGSOLID',
830
- 539742890: 'IFCCURRENCYRELATIONSHIP',
831
- 3495092785: 'IFCCURTAINWALL',
832
- 1457835157: 'IFCCURTAINWALLTYPE',
833
- 2601014836: 'IFCCURVE',
834
- 2827736869: 'IFCCURVEBOUNDEDPLANE',
835
- 2629017746: 'IFCCURVEBOUNDEDSURFACE',
836
- 1186437898: 'IFCCURVESEGMENT2D',
837
- 3800577675: 'IFCCURVESTYLE',
838
- 1105321065: 'IFCCURVESTYLEFONT',
839
- 2367409068: 'IFCCURVESTYLEFONTANDSCALING',
840
- 3510044353: 'IFCCURVESTYLEFONTPATTERN',
841
- 1213902940: 'IFCCYLINDRICALSURFACE',
842
- 4074379575: 'IFCDAMPER',
843
- 3961806047: 'IFCDAMPERTYPE',
844
- 3426335179: 'IFCDEEPFOUNDATION',
845
- 1306400036: 'IFCDEEPFOUNDATIONTYPE',
846
- 3632507154: 'IFCDERIVEDPROFILEDEF',
847
- 1765591967: 'IFCDERIVEDUNIT',
848
- 1045800335: 'IFCDERIVEDUNITELEMENT',
849
- 2949456006: 'IFCDIMENSIONALEXPONENTS',
850
- 32440307: 'IFCDIRECTION',
851
- 1335981549: 'IFCDISCRETEACCESSORY',
852
- 2635815018: 'IFCDISCRETEACCESSORYTYPE',
853
- 1945343521: 'IFCDISTANCEEXPRESSION',
854
- 1052013943: 'IFCDISTRIBUTIONCHAMBERELEMENT',
855
- 1599208980: 'IFCDISTRIBUTIONCHAMBERELEMENTTYPE',
856
- 562808652: 'IFCDISTRIBUTIONCIRCUIT',
857
- 1062813311: 'IFCDISTRIBUTIONCONTROLELEMENT',
858
- 2063403501: 'IFCDISTRIBUTIONCONTROLELEMENTTYPE',
859
- 1945004755: 'IFCDISTRIBUTIONELEMENT',
860
- 3256556792: 'IFCDISTRIBUTIONELEMENTTYPE',
861
- 3040386961: 'IFCDISTRIBUTIONFLOWELEMENT',
862
- 3849074793: 'IFCDISTRIBUTIONFLOWELEMENTTYPE',
863
- 3041715199: 'IFCDISTRIBUTIONPORT',
864
- 3205830791: 'IFCDISTRIBUTIONSYSTEM',
865
- 1154170062: 'IFCDOCUMENTINFORMATION',
866
- 770865208: 'IFCDOCUMENTINFORMATIONRELATIONSHIP',
867
- 3732053477: 'IFCDOCUMENTREFERENCE',
868
- 395920057: 'IFCDOOR',
869
- 2963535650: 'IFCDOORLININGPROPERTIES',
870
- 1714330368: 'IFCDOORPANELPROPERTIES',
871
- 3242481149: 'IFCDOORSTANDARDCASE',
872
- 526551008: 'IFCDOORSTYLE',
873
- 2323601079: 'IFCDOORTYPE',
874
- 445594917: 'IFCDRAUGHTINGPREDEFINEDCOLOUR',
875
- 4006246654: 'IFCDRAUGHTINGPREDEFINEDCURVEFONT',
876
- 342316401: 'IFCDUCTFITTING',
877
- 869906466: 'IFCDUCTFITTINGTYPE',
878
- 3518393246: 'IFCDUCTSEGMENT',
879
- 3760055223: 'IFCDUCTSEGMENTTYPE',
880
- 1360408905: 'IFCDUCTSILENCER',
881
- 2030761528: 'IFCDUCTSILENCERTYPE',
882
- 3900360178: 'IFCEDGE',
883
- 476780140: 'IFCEDGECURVE',
884
- 1472233963: 'IFCEDGELOOP',
885
- 1904799276: 'IFCELECTRICAPPLIANCE',
886
- 663422040: 'IFCELECTRICAPPLIANCETYPE',
887
- 862014818: 'IFCELECTRICDISTRIBUTIONBOARD',
888
- 2417008758: 'IFCELECTRICDISTRIBUTIONBOARDTYPE',
889
- 3310460725: 'IFCELECTRICFLOWSTORAGEDEVICE',
890
- 3277789161: 'IFCELECTRICFLOWSTORAGEDEVICETYPE',
891
- 264262732: 'IFCELECTRICGENERATOR',
892
- 1534661035: 'IFCELECTRICGENERATORTYPE',
893
- 402227799: 'IFCELECTRICMOTOR',
894
- 1217240411: 'IFCELECTRICMOTORTYPE',
895
- 1003880860: 'IFCELECTRICTIMECONTROL',
896
- 712377611: 'IFCELECTRICTIMECONTROLTYPE',
897
- 1758889154: 'IFCELEMENT',
898
- 4123344466: 'IFCELEMENTASSEMBLY',
899
- 2397081782: 'IFCELEMENTASSEMBLYTYPE',
900
- 1623761950: 'IFCELEMENTCOMPONENT',
901
- 2590856083: 'IFCELEMENTCOMPONENTTYPE',
902
- 1883228015: 'IFCELEMENTQUANTITY',
903
- 339256511: 'IFCELEMENTTYPE',
904
- 2777663545: 'IFCELEMENTARYSURFACE',
905
- 1704287377: 'IFCELLIPSE',
906
- 2835456948: 'IFCELLIPSEPROFILEDEF',
907
- 1658829314: 'IFCENERGYCONVERSIONDEVICE',
908
- 2107101300: 'IFCENERGYCONVERSIONDEVICETYPE',
909
- 2814081492: 'IFCENGINE',
910
- 132023988: 'IFCENGINETYPE',
911
- 3747195512: 'IFCEVAPORATIVECOOLER',
912
- 3174744832: 'IFCEVAPORATIVECOOLERTYPE',
913
- 484807127: 'IFCEVAPORATOR',
914
- 3390157468: 'IFCEVAPORATORTYPE',
915
- 4148101412: 'IFCEVENT',
916
- 211053100: 'IFCEVENTTIME',
917
- 4024345920: 'IFCEVENTTYPE',
918
- 297599258: 'IFCEXTENDEDPROPERTIES',
919
- 4294318154: 'IFCEXTERNALINFORMATION',
920
- 3200245327: 'IFCEXTERNALREFERENCE',
921
- 1437805879: 'IFCEXTERNALREFERENCERELATIONSHIP',
922
- 1209101575: 'IFCEXTERNALSPATIALELEMENT',
923
- 2853485674: 'IFCEXTERNALSPATIALSTRUCTUREELEMENT',
924
- 2242383968: 'IFCEXTERNALLYDEFINEDHATCHSTYLE',
925
- 1040185647: 'IFCEXTERNALLYDEFINEDSURFACESTYLE',
926
- 3548104201: 'IFCEXTERNALLYDEFINEDTEXTFONT',
927
- 477187591: 'IFCEXTRUDEDAREASOLID',
928
- 2804161546: 'IFCEXTRUDEDAREASOLIDTAPERED',
929
- 2556980723: 'IFCFACE',
930
- 2047409740: 'IFCFACEBASEDSURFACEMODEL',
931
- 1809719519: 'IFCFACEBOUND',
932
- 803316827: 'IFCFACEOUTERBOUND',
933
- 3008276851: 'IFCFACESURFACE',
934
- 807026263: 'IFCFACETEDBREP',
935
- 3737207727: 'IFCFACETEDBREPWITHVOIDS',
936
- 24185140: 'IFCFACILITY',
937
- 1310830890: 'IFCFACILITYPART',
938
- 4219587988: 'IFCFAILURECONNECTIONCONDITION',
939
- 3415622556: 'IFCFAN',
940
- 346874300: 'IFCFANTYPE',
941
- 647756555: 'IFCFASTENER',
942
- 2489546625: 'IFCFASTENERTYPE',
943
- 2827207264: 'IFCFEATUREELEMENT',
944
- 2143335405: 'IFCFEATUREELEMENTADDITION',
945
- 1287392070: 'IFCFEATUREELEMENTSUBTRACTION',
946
- 738692330: 'IFCFILLAREASTYLE',
947
- 374418227: 'IFCFILLAREASTYLEHATCHING',
948
- 315944413: 'IFCFILLAREASTYLETILES',
949
- 819412036: 'IFCFILTER',
950
- 1810631287: 'IFCFILTERTYPE',
951
- 1426591983: 'IFCFIRESUPPRESSIONTERMINAL',
952
- 4222183408: 'IFCFIRESUPPRESSIONTERMINALTYPE',
953
- 2652556860: 'IFCFIXEDREFERENCESWEPTAREASOLID',
954
- 2058353004: 'IFCFLOWCONTROLLER',
955
- 3907093117: 'IFCFLOWCONTROLLERTYPE',
956
- 4278956645: 'IFCFLOWFITTING',
957
- 3198132628: 'IFCFLOWFITTINGTYPE',
958
- 182646315: 'IFCFLOWINSTRUMENT',
959
- 4037862832: 'IFCFLOWINSTRUMENTTYPE',
960
- 2188021234: 'IFCFLOWMETER',
961
- 3815607619: 'IFCFLOWMETERTYPE',
962
- 3132237377: 'IFCFLOWMOVINGDEVICE',
963
- 1482959167: 'IFCFLOWMOVINGDEVICETYPE',
964
- 987401354: 'IFCFLOWSEGMENT',
965
- 1834744321: 'IFCFLOWSEGMENTTYPE',
966
- 707683696: 'IFCFLOWSTORAGEDEVICE',
967
- 1339347760: 'IFCFLOWSTORAGEDEVICETYPE',
968
- 2223149337: 'IFCFLOWTERMINAL',
969
- 2297155007: 'IFCFLOWTERMINALTYPE',
970
- 3508470533: 'IFCFLOWTREATMENTDEVICE',
971
- 3009222698: 'IFCFLOWTREATMENTDEVICETYPE',
972
- 900683007: 'IFCFOOTING',
973
- 1893162501: 'IFCFOOTINGTYPE',
974
- 263784265: 'IFCFURNISHINGELEMENT',
975
- 4238390223: 'IFCFURNISHINGELEMENTTYPE',
976
- 1509553395: 'IFCFURNITURE',
977
- 1268542332: 'IFCFURNITURETYPE',
978
- 3493046030: 'IFCGEOGRAPHICELEMENT',
979
- 4095422895: 'IFCGEOGRAPHICELEMENTTYPE',
980
- 987898635: 'IFCGEOMETRICCURVESET',
981
- 3448662350: 'IFCGEOMETRICREPRESENTATIONCONTEXT',
982
- 2453401579: 'IFCGEOMETRICREPRESENTATIONITEM',
983
- 4142052618: 'IFCGEOMETRICREPRESENTATIONSUBCONTEXT',
984
- 3590301190: 'IFCGEOMETRICSET',
985
- 3009204131: 'IFCGRID',
986
- 852622518: 'IFCGRIDAXIS',
987
- 178086475: 'IFCGRIDPLACEMENT',
988
- 2706460486: 'IFCGROUP',
989
- 812098782: 'IFCHALFSPACESOLID',
990
- 3319311131: 'IFCHEATEXCHANGER',
991
- 1251058090: 'IFCHEATEXCHANGERTYPE',
992
- 2068733104: 'IFCHUMIDIFIER',
993
- 1806887404: 'IFCHUMIDIFIERTYPE',
994
- 1484403080: 'IFCISHAPEPROFILEDEF',
995
- 3905492369: 'IFCIMAGETEXTURE',
996
- 3570813810: 'IFCINDEXEDCOLOURMAP',
997
- 2571569899: 'IFCINDEXEDPOLYCURVE',
998
- 178912537: 'IFCINDEXEDPOLYGONALFACE',
999
- 2294589976: 'IFCINDEXEDPOLYGONALFACEWITHVOIDS',
1000
- 1437953363: 'IFCINDEXEDTEXTUREMAP',
1001
- 2133299955: 'IFCINDEXEDTRIANGLETEXTUREMAP',
1002
- 4175244083: 'IFCINTERCEPTOR',
1003
- 3946677679: 'IFCINTERCEPTORTYPE',
1004
- 3113134337: 'IFCINTERSECTIONCURVE',
1005
- 2391368822: 'IFCINVENTORY',
1006
- 3741457305: 'IFCIRREGULARTIMESERIES',
1007
- 3020489413: 'IFCIRREGULARTIMESERIESVALUE',
1008
- 2176052936: 'IFCJUNCTIONBOX',
1009
- 4288270099: 'IFCJUNCTIONBOXTYPE',
1010
- 572779678: 'IFCLSHAPEPROFILEDEF',
1011
- 3827777499: 'IFCLABORRESOURCE',
1012
- 428585644: 'IFCLABORRESOURCETYPE',
1013
- 1585845231: 'IFCLAGTIME',
1014
- 76236018: 'IFCLAMP',
1015
- 1051575348: 'IFCLAMPTYPE',
1016
- 2655187982: 'IFCLIBRARYINFORMATION',
1017
- 3452421091: 'IFCLIBRARYREFERENCE',
1018
- 4162380809: 'IFCLIGHTDISTRIBUTIONDATA',
1019
- 629592764: 'IFCLIGHTFIXTURE',
1020
- 1161773419: 'IFCLIGHTFIXTURETYPE',
1021
- 1566485204: 'IFCLIGHTINTENSITYDISTRIBUTION',
1022
- 1402838566: 'IFCLIGHTSOURCE',
1023
- 125510826: 'IFCLIGHTSOURCEAMBIENT',
1024
- 2604431987: 'IFCLIGHTSOURCEDIRECTIONAL',
1025
- 4266656042: 'IFCLIGHTSOURCEGONIOMETRIC',
1026
- 1520743889: 'IFCLIGHTSOURCEPOSITIONAL',
1027
- 3422422726: 'IFCLIGHTSOURCESPOT',
1028
- 1281925730: 'IFCLINE',
1029
- 3092502836: 'IFCLINESEGMENT2D',
1030
- 388784114: 'IFCLINEARPLACEMENT',
1031
- 1154579445: 'IFCLINEARPOSITIONINGELEMENT',
1032
- 2624227202: 'IFCLOCALPLACEMENT',
1033
- 1008929658: 'IFCLOOP',
1034
- 1425443689: 'IFCMANIFOLDSOLIDBREP',
1035
- 3057273783: 'IFCMAPCONVERSION',
1036
- 2347385850: 'IFCMAPPEDITEM',
1037
- 1838606355: 'IFCMATERIAL',
1038
- 1847130766: 'IFCMATERIALCLASSIFICATIONRELATIONSHIP',
1039
- 3708119000: 'IFCMATERIALCONSTITUENT',
1040
- 2852063980: 'IFCMATERIALCONSTITUENTSET',
1041
- 760658860: 'IFCMATERIALDEFINITION',
1042
- 2022407955: 'IFCMATERIALDEFINITIONREPRESENTATION',
1043
- 248100487: 'IFCMATERIALLAYER',
1044
- 3303938423: 'IFCMATERIALLAYERSET',
1045
- 1303795690: 'IFCMATERIALLAYERSETUSAGE',
1046
- 1847252529: 'IFCMATERIALLAYERWITHOFFSETS',
1047
- 2199411900: 'IFCMATERIALLIST',
1048
- 2235152071: 'IFCMATERIALPROFILE',
1049
- 164193824: 'IFCMATERIALPROFILESET',
1050
- 3079605661: 'IFCMATERIALPROFILESETUSAGE',
1051
- 3404854881: 'IFCMATERIALPROFILESETUSAGETAPERING',
1052
- 552965576: 'IFCMATERIALPROFILEWITHOFFSETS',
1053
- 3265635763: 'IFCMATERIALPROPERTIES',
1054
- 853536259: 'IFCMATERIALRELATIONSHIP',
1055
- 1507914824: 'IFCMATERIALUSAGEDEFINITION',
1056
- 2597039031: 'IFCMEASUREWITHUNIT',
1057
- 377706215: 'IFCMECHANICALFASTENER',
1058
- 2108223431: 'IFCMECHANICALFASTENERTYPE',
1059
- 1437502449: 'IFCMEDICALDEVICE',
1060
- 1114901282: 'IFCMEDICALDEVICETYPE',
1061
- 1073191201: 'IFCMEMBER',
1062
- 1911478936: 'IFCMEMBERSTANDARDCASE',
1063
- 3181161470: 'IFCMEMBERTYPE',
1064
- 3368373690: 'IFCMETRIC',
1065
- 2998442950: 'IFCMIRROREDPROFILEDEF',
1066
- 2706619895: 'IFCMONETARYUNIT',
1067
- 2474470126: 'IFCMOTORCONNECTION',
1068
- 977012517: 'IFCMOTORCONNECTIONTYPE',
1069
- 1918398963: 'IFCNAMEDUNIT',
1070
- 3888040117: 'IFCOBJECT',
1071
- 219451334: 'IFCOBJECTDEFINITION',
1072
- 3701648758: 'IFCOBJECTPLACEMENT',
1073
- 2251480897: 'IFCOBJECTIVE',
1074
- 4143007308: 'IFCOCCUPANT',
1075
- 590820931: 'IFCOFFSETCURVE',
1076
- 3388369263: 'IFCOFFSETCURVE2D',
1077
- 3505215534: 'IFCOFFSETCURVE3D',
1078
- 2485787929: 'IFCOFFSETCURVEBYDISTANCES',
1079
- 2665983363: 'IFCOPENSHELL',
1080
- 3588315303: 'IFCOPENINGELEMENT',
1081
- 3079942009: 'IFCOPENINGSTANDARDCASE',
1082
- 4251960020: 'IFCORGANIZATION',
1083
- 1411181986: 'IFCORGANIZATIONRELATIONSHIP',
1084
- 643959842: 'IFCORIENTATIONEXPRESSION',
1085
- 1029017970: 'IFCORIENTEDEDGE',
1086
- 144952367: 'IFCOUTERBOUNDARYCURVE',
1087
- 3694346114: 'IFCOUTLET',
1088
- 2837617999: 'IFCOUTLETTYPE',
1089
- 1207048766: 'IFCOWNERHISTORY',
1090
- 2529465313: 'IFCPARAMETERIZEDPROFILEDEF',
1091
- 2519244187: 'IFCPATH',
1092
- 1682466193: 'IFCPCURVE',
1093
- 2382730787: 'IFCPERFORMANCEHISTORY',
1094
- 3566463478: 'IFCPERMEABLECOVERINGPROPERTIES',
1095
- 3327091369: 'IFCPERMIT',
1096
- 2077209135: 'IFCPERSON',
1097
- 101040310: 'IFCPERSONANDORGANIZATION',
1098
- 3021840470: 'IFCPHYSICALCOMPLEXQUANTITY',
1099
- 2483315170: 'IFCPHYSICALQUANTITY',
1100
- 2226359599: 'IFCPHYSICALSIMPLEQUANTITY',
1101
- 1687234759: 'IFCPILE',
1102
- 1158309216: 'IFCPILETYPE',
1103
- 310824031: 'IFCPIPEFITTING',
1104
- 804291784: 'IFCPIPEFITTINGTYPE',
1105
- 3612865200: 'IFCPIPESEGMENT',
1106
- 4231323485: 'IFCPIPESEGMENTTYPE',
1107
- 597895409: 'IFCPIXELTEXTURE',
1108
- 2004835150: 'IFCPLACEMENT',
1109
- 603570806: 'IFCPLANARBOX',
1110
- 1663979128: 'IFCPLANAREXTENT',
1111
- 220341763: 'IFCPLANE',
1112
- 3171933400: 'IFCPLATE',
1113
- 1156407060: 'IFCPLATESTANDARDCASE',
1114
- 4017108033: 'IFCPLATETYPE',
1115
- 2067069095: 'IFCPOINT',
1116
- 4022376103: 'IFCPOINTONCURVE',
1117
- 1423911732: 'IFCPOINTONSURFACE',
1118
- 2924175390: 'IFCPOLYLOOP',
1119
- 2775532180: 'IFCPOLYGONALBOUNDEDHALFSPACE',
1120
- 2839578677: 'IFCPOLYGONALFACESET',
1121
- 3724593414: 'IFCPOLYLINE',
1122
- 3740093272: 'IFCPORT',
1123
- 1946335990: 'IFCPOSITIONINGELEMENT',
1124
- 3355820592: 'IFCPOSTALADDRESS',
1125
- 759155922: 'IFCPREDEFINEDCOLOUR',
1126
- 2559016684: 'IFCPREDEFINEDCURVEFONT',
1127
- 3727388367: 'IFCPREDEFINEDITEM',
1128
- 3778827333: 'IFCPREDEFINEDPROPERTIES',
1129
- 3967405729: 'IFCPREDEFINEDPROPERTYSET',
1130
- 1775413392: 'IFCPREDEFINEDTEXTFONT',
1131
- 677532197: 'IFCPRESENTATIONITEM',
1132
- 2022622350: 'IFCPRESENTATIONLAYERASSIGNMENT',
1133
- 1304840413: 'IFCPRESENTATIONLAYERWITHSTYLE',
1134
- 3119450353: 'IFCPRESENTATIONSTYLE',
1135
- 2417041796: 'IFCPRESENTATIONSTYLEASSIGNMENT',
1136
- 2744685151: 'IFCPROCEDURE',
1137
- 569719735: 'IFCPROCEDURETYPE',
1138
- 2945172077: 'IFCPROCESS',
1139
- 4208778838: 'IFCPRODUCT',
1140
- 673634403: 'IFCPRODUCTDEFINITIONSHAPE',
1141
- 2095639259: 'IFCPRODUCTREPRESENTATION',
1142
- 3958567839: 'IFCPROFILEDEF',
1143
- 2802850158: 'IFCPROFILEPROPERTIES',
1144
- 103090709: 'IFCPROJECT',
1145
- 653396225: 'IFCPROJECTLIBRARY',
1146
- 2904328755: 'IFCPROJECTORDER',
1147
- 3843373140: 'IFCPROJECTEDCRS',
1148
- 3651124850: 'IFCPROJECTIONELEMENT',
1149
- 2598011224: 'IFCPROPERTY',
1150
- 986844984: 'IFCPROPERTYABSTRACTION',
1151
- 871118103: 'IFCPROPERTYBOUNDEDVALUE',
1152
- 1680319473: 'IFCPROPERTYDEFINITION',
1153
- 148025276: 'IFCPROPERTYDEPENDENCYRELATIONSHIP',
1154
- 4166981789: 'IFCPROPERTYENUMERATEDVALUE',
1155
- 3710013099: 'IFCPROPERTYENUMERATION',
1156
- 2752243245: 'IFCPROPERTYLISTVALUE',
1157
- 941946838: 'IFCPROPERTYREFERENCEVALUE',
1158
- 1451395588: 'IFCPROPERTYSET',
1159
- 3357820518: 'IFCPROPERTYSETDEFINITION',
1160
- 492091185: 'IFCPROPERTYSETTEMPLATE',
1161
- 3650150729: 'IFCPROPERTYSINGLEVALUE',
1162
- 110355661: 'IFCPROPERTYTABLEVALUE',
1163
- 3521284610: 'IFCPROPERTYTEMPLATE',
1164
- 1482703590: 'IFCPROPERTYTEMPLATEDEFINITION',
1165
- 738039164: 'IFCPROTECTIVEDEVICE',
1166
- 2295281155: 'IFCPROTECTIVEDEVICETRIPPINGUNIT',
1167
- 655969474: 'IFCPROTECTIVEDEVICETRIPPINGUNITTYPE',
1168
- 1842657554: 'IFCPROTECTIVEDEVICETYPE',
1169
- 3219374653: 'IFCPROXY',
1170
- 90941305: 'IFCPUMP',
1171
- 2250791053: 'IFCPUMPTYPE',
1172
- 2044713172: 'IFCQUANTITYAREA',
1173
- 2093928680: 'IFCQUANTITYCOUNT',
1174
- 931644368: 'IFCQUANTITYLENGTH',
1175
- 2090586900: 'IFCQUANTITYSET',
1176
- 3252649465: 'IFCQUANTITYTIME',
1177
- 2405470396: 'IFCQUANTITYVOLUME',
1178
- 825690147: 'IFCQUANTITYWEIGHT',
1179
- 2262370178: 'IFCRAILING',
1180
- 2893384427: 'IFCRAILINGTYPE',
1181
- 3024970846: 'IFCRAMP',
1182
- 3283111854: 'IFCRAMPFLIGHT',
1183
- 2324767716: 'IFCRAMPFLIGHTTYPE',
1184
- 1469900589: 'IFCRAMPTYPE',
1185
- 1232101972: 'IFCRATIONALBSPLINECURVEWITHKNOTS',
1186
- 683857671: 'IFCRATIONALBSPLINESURFACEWITHKNOTS',
1187
- 2770003689: 'IFCRECTANGLEHOLLOWPROFILEDEF',
1188
- 3615266464: 'IFCRECTANGLEPROFILEDEF',
1189
- 2798486643: 'IFCRECTANGULARPYRAMID',
1190
- 3454111270: 'IFCRECTANGULARTRIMMEDSURFACE',
1191
- 3915482550: 'IFCRECURRENCEPATTERN',
1192
- 2433181523: 'IFCREFERENCE',
1193
- 4021432810: 'IFCREFERENT',
1194
- 3413951693: 'IFCREGULARTIMESERIES',
1195
- 1580146022: 'IFCREINFORCEMENTBARPROPERTIES',
1196
- 3765753017: 'IFCREINFORCEMENTDEFINITIONPROPERTIES',
1197
- 979691226: 'IFCREINFORCINGBAR',
1198
- 2572171363: 'IFCREINFORCINGBARTYPE',
1199
- 3027567501: 'IFCREINFORCINGELEMENT',
1200
- 964333572: 'IFCREINFORCINGELEMENTTYPE',
1201
- 2320036040: 'IFCREINFORCINGMESH',
1202
- 2310774935: 'IFCREINFORCINGMESHTYPE',
1203
- 160246688: 'IFCRELAGGREGATES',
1204
- 3939117080: 'IFCRELASSIGNS',
1205
- 1683148259: 'IFCRELASSIGNSTOACTOR',
1206
- 2495723537: 'IFCRELASSIGNSTOCONTROL',
1207
- 1307041759: 'IFCRELASSIGNSTOGROUP',
1208
- 1027710054: 'IFCRELASSIGNSTOGROUPBYFACTOR',
1209
- 4278684876: 'IFCRELASSIGNSTOPROCESS',
1210
- 2857406711: 'IFCRELASSIGNSTOPRODUCT',
1211
- 205026976: 'IFCRELASSIGNSTORESOURCE',
1212
- 1865459582: 'IFCRELASSOCIATES',
1213
- 4095574036: 'IFCRELASSOCIATESAPPROVAL',
1214
- 919958153: 'IFCRELASSOCIATESCLASSIFICATION',
1215
- 2728634034: 'IFCRELASSOCIATESCONSTRAINT',
1216
- 982818633: 'IFCRELASSOCIATESDOCUMENT',
1217
- 3840914261: 'IFCRELASSOCIATESLIBRARY',
1218
- 2655215786: 'IFCRELASSOCIATESMATERIAL',
1219
- 826625072: 'IFCRELCONNECTS',
1220
- 1204542856: 'IFCRELCONNECTSELEMENTS',
1221
- 3945020480: 'IFCRELCONNECTSPATHELEMENTS',
1222
- 4201705270: 'IFCRELCONNECTSPORTTOELEMENT',
1223
- 3190031847: 'IFCRELCONNECTSPORTS',
1224
- 2127690289: 'IFCRELCONNECTSSTRUCTURALACTIVITY',
1225
- 1638771189: 'IFCRELCONNECTSSTRUCTURALMEMBER',
1226
- 504942748: 'IFCRELCONNECTSWITHECCENTRICITY',
1227
- 3678494232: 'IFCRELCONNECTSWITHREALIZINGELEMENTS',
1228
- 3242617779: 'IFCRELCONTAINEDINSPATIALSTRUCTURE',
1229
- 886880790: 'IFCRELCOVERSBLDGELEMENTS',
1230
- 2802773753: 'IFCRELCOVERSSPACES',
1231
- 2565941209: 'IFCRELDECLARES',
1232
- 2551354335: 'IFCRELDECOMPOSES',
1233
- 693640335: 'IFCRELDEFINES',
1234
- 1462361463: 'IFCRELDEFINESBYOBJECT',
1235
- 4186316022: 'IFCRELDEFINESBYPROPERTIES',
1236
- 307848117: 'IFCRELDEFINESBYTEMPLATE',
1237
- 781010003: 'IFCRELDEFINESBYTYPE',
1238
- 3940055652: 'IFCRELFILLSELEMENT',
1239
- 279856033: 'IFCRELFLOWCONTROLELEMENTS',
1240
- 427948657: 'IFCRELINTERFERESELEMENTS',
1241
- 3268803585: 'IFCRELNESTS',
1242
- 1441486842: 'IFCRELPOSITIONS',
1243
- 750771296: 'IFCRELPROJECTSELEMENT',
1244
- 1245217292: 'IFCRELREFERENCEDINSPATIALSTRUCTURE',
1245
- 4122056220: 'IFCRELSEQUENCE',
1246
- 366585022: 'IFCRELSERVICESBUILDINGS',
1247
- 3451746338: 'IFCRELSPACEBOUNDARY',
1248
- 3523091289: 'IFCRELSPACEBOUNDARY1STLEVEL',
1249
- 1521410863: 'IFCRELSPACEBOUNDARY2NDLEVEL',
1250
- 1401173127: 'IFCRELVOIDSELEMENT',
1251
- 478536968: 'IFCRELATIONSHIP',
1252
- 816062949: 'IFCREPARAMETRISEDCOMPOSITECURVESEGMENT',
1253
- 1076942058: 'IFCREPRESENTATION',
1254
- 3377609919: 'IFCREPRESENTATIONCONTEXT',
1255
- 3008791417: 'IFCREPRESENTATIONITEM',
1256
- 1660063152: 'IFCREPRESENTATIONMAP',
1257
- 2914609552: 'IFCRESOURCE',
1258
- 2943643501: 'IFCRESOURCEAPPROVALRELATIONSHIP',
1259
- 1608871552: 'IFCRESOURCECONSTRAINTRELATIONSHIP',
1260
- 2439245199: 'IFCRESOURCELEVELRELATIONSHIP',
1261
- 1042787934: 'IFCRESOURCETIME',
1262
- 1856042241: 'IFCREVOLVEDAREASOLID',
1263
- 3243963512: 'IFCREVOLVEDAREASOLIDTAPERED',
1264
- 4158566097: 'IFCRIGHTCIRCULARCONE',
1265
- 3626867408: 'IFCRIGHTCIRCULARCYLINDER',
1266
- 2016517767: 'IFCROOF',
1267
- 2781568857: 'IFCROOFTYPE',
1268
- 2341007311: 'IFCROOT',
1269
- 2778083089: 'IFCROUNDEDRECTANGLEPROFILEDEF',
1270
- 448429030: 'IFCSIUNIT',
1271
- 3053780830: 'IFCSANITARYTERMINAL',
1272
- 1768891740: 'IFCSANITARYTERMINALTYPE',
1273
- 1054537805: 'IFCSCHEDULINGTIME',
1274
- 2157484638: 'IFCSEAMCURVE',
1275
- 2042790032: 'IFCSECTIONPROPERTIES',
1276
- 4165799628: 'IFCSECTIONREINFORCEMENTPROPERTIES',
1277
- 1862484736: 'IFCSECTIONEDSOLID',
1278
- 1290935644: 'IFCSECTIONEDSOLIDHORIZONTAL',
1279
- 1509187699: 'IFCSECTIONEDSPINE',
1280
- 4086658281: 'IFCSENSOR',
1281
- 1783015770: 'IFCSENSORTYPE',
1282
- 1329646415: 'IFCSHADINGDEVICE',
1283
- 4074543187: 'IFCSHADINGDEVICETYPE',
1284
- 867548509: 'IFCSHAPEASPECT',
1285
- 3982875396: 'IFCSHAPEMODEL',
1286
- 4240577450: 'IFCSHAPEREPRESENTATION',
1287
- 4124623270: 'IFCSHELLBASEDSURFACEMODEL',
1288
- 3692461612: 'IFCSIMPLEPROPERTY',
1289
- 3663146110: 'IFCSIMPLEPROPERTYTEMPLATE',
1290
- 4097777520: 'IFCSITE',
1291
- 1529196076: 'IFCSLAB',
1292
- 3127900445: 'IFCSLABELEMENTEDCASE',
1293
- 3027962421: 'IFCSLABSTANDARDCASE',
1294
- 2533589738: 'IFCSLABTYPE',
1295
- 2609359061: 'IFCSLIPPAGECONNECTIONCONDITION',
1296
- 3420628829: 'IFCSOLARDEVICE',
1297
- 1072016465: 'IFCSOLARDEVICETYPE',
1298
- 723233188: 'IFCSOLIDMODEL',
1299
- 3856911033: 'IFCSPACE',
1300
- 1999602285: 'IFCSPACEHEATER',
1301
- 1305183839: 'IFCSPACEHEATERTYPE',
1302
- 3812236995: 'IFCSPACETYPE',
1303
- 1412071761: 'IFCSPATIALELEMENT',
1304
- 710998568: 'IFCSPATIALELEMENTTYPE',
1305
- 2706606064: 'IFCSPATIALSTRUCTUREELEMENT',
1306
- 3893378262: 'IFCSPATIALSTRUCTUREELEMENTTYPE',
1307
- 463610769: 'IFCSPATIALZONE',
1308
- 2481509218: 'IFCSPATIALZONETYPE',
1309
- 451544542: 'IFCSPHERE',
1310
- 4015995234: 'IFCSPHERICALSURFACE',
1311
- 1404847402: 'IFCSTACKTERMINAL',
1312
- 3112655638: 'IFCSTACKTERMINALTYPE',
1313
- 331165859: 'IFCSTAIR',
1314
- 4252922144: 'IFCSTAIRFLIGHT',
1315
- 1039846685: 'IFCSTAIRFLIGHTTYPE',
1316
- 338393293: 'IFCSTAIRTYPE',
1317
- 682877961: 'IFCSTRUCTURALACTION',
1318
- 3544373492: 'IFCSTRUCTURALACTIVITY',
1319
- 2515109513: 'IFCSTRUCTURALANALYSISMODEL',
1320
- 1179482911: 'IFCSTRUCTURALCONNECTION',
1321
- 2273995522: 'IFCSTRUCTURALCONNECTIONCONDITION',
1322
- 1004757350: 'IFCSTRUCTURALCURVEACTION',
1323
- 4243806635: 'IFCSTRUCTURALCURVECONNECTION',
1324
- 214636428: 'IFCSTRUCTURALCURVEMEMBER',
1325
- 2445595289: 'IFCSTRUCTURALCURVEMEMBERVARYING',
1326
- 2757150158: 'IFCSTRUCTURALCURVEREACTION',
1327
- 3136571912: 'IFCSTRUCTURALITEM',
1328
- 1807405624: 'IFCSTRUCTURALLINEARACTION',
1329
- 2162789131: 'IFCSTRUCTURALLOAD',
1330
- 385403989: 'IFCSTRUCTURALLOADCASE',
1331
- 3478079324: 'IFCSTRUCTURALLOADCONFIGURATION',
1332
- 1252848954: 'IFCSTRUCTURALLOADGROUP',
1333
- 1595516126: 'IFCSTRUCTURALLOADLINEARFORCE',
1334
- 609421318: 'IFCSTRUCTURALLOADORRESULT',
1335
- 2668620305: 'IFCSTRUCTURALLOADPLANARFORCE',
1336
- 2473145415: 'IFCSTRUCTURALLOADSINGLEDISPLACEMENT',
1337
- 1973038258: 'IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION',
1338
- 1597423693: 'IFCSTRUCTURALLOADSINGLEFORCE',
1339
- 1190533807: 'IFCSTRUCTURALLOADSINGLEFORCEWARPING',
1340
- 2525727697: 'IFCSTRUCTURALLOADSTATIC',
1341
- 3408363356: 'IFCSTRUCTURALLOADTEMPERATURE',
1342
- 530289379: 'IFCSTRUCTURALMEMBER',
1343
- 1621171031: 'IFCSTRUCTURALPLANARACTION',
1344
- 2082059205: 'IFCSTRUCTURALPOINTACTION',
1345
- 734778138: 'IFCSTRUCTURALPOINTCONNECTION',
1346
- 1235345126: 'IFCSTRUCTURALPOINTREACTION',
1347
- 3689010777: 'IFCSTRUCTURALREACTION',
1348
- 2986769608: 'IFCSTRUCTURALRESULTGROUP',
1349
- 3657597509: 'IFCSTRUCTURALSURFACEACTION',
1350
- 1975003073: 'IFCSTRUCTURALSURFACECONNECTION',
1351
- 3979015343: 'IFCSTRUCTURALSURFACEMEMBER',
1352
- 2218152070: 'IFCSTRUCTURALSURFACEMEMBERVARYING',
1353
- 603775116: 'IFCSTRUCTURALSURFACEREACTION',
1354
- 2830218821: 'IFCSTYLEMODEL',
1355
- 3958052878: 'IFCSTYLEDITEM',
1356
- 3049322572: 'IFCSTYLEDREPRESENTATION',
1357
- 148013059: 'IFCSUBCONTRACTRESOURCE',
1358
- 4095615324: 'IFCSUBCONTRACTRESOURCETYPE',
1359
- 2233826070: 'IFCSUBEDGE',
1360
- 2513912981: 'IFCSURFACE',
1361
- 699246055: 'IFCSURFACECURVE',
1362
- 2028607225: 'IFCSURFACECURVESWEPTAREASOLID',
1363
- 3101698114: 'IFCSURFACEFEATURE',
1364
- 2809605785: 'IFCSURFACEOFLINEAREXTRUSION',
1365
- 4124788165: 'IFCSURFACEOFREVOLUTION',
1366
- 2934153892: 'IFCSURFACEREINFORCEMENTAREA',
1367
- 1300840506: 'IFCSURFACESTYLE',
1368
- 3303107099: 'IFCSURFACESTYLELIGHTING',
1369
- 1607154358: 'IFCSURFACESTYLEREFRACTION',
1370
- 1878645084: 'IFCSURFACESTYLERENDERING',
1371
- 846575682: 'IFCSURFACESTYLESHADING',
1372
- 1351298697: 'IFCSURFACESTYLEWITHTEXTURES',
1373
- 626085974: 'IFCSURFACETEXTURE',
1374
- 2247615214: 'IFCSWEPTAREASOLID',
1375
- 1260650574: 'IFCSWEPTDISKSOLID',
1376
- 1096409881: 'IFCSWEPTDISKSOLIDPOLYGONAL',
1377
- 230924584: 'IFCSWEPTSURFACE',
1378
- 1162798199: 'IFCSWITCHINGDEVICE',
1379
- 2315554128: 'IFCSWITCHINGDEVICETYPE',
1380
- 2254336722: 'IFCSYSTEM',
1381
- 413509423: 'IFCSYSTEMFURNITUREELEMENT',
1382
- 1580310250: 'IFCSYSTEMFURNITUREELEMENTTYPE',
1383
- 3071757647: 'IFCTSHAPEPROFILEDEF',
1384
- 985171141: 'IFCTABLE',
1385
- 2043862942: 'IFCTABLECOLUMN',
1386
- 531007025: 'IFCTABLEROW',
1387
- 812556717: 'IFCTANK',
1388
- 5716631: 'IFCTANKTYPE',
1389
- 3473067441: 'IFCTASK',
1390
- 1549132990: 'IFCTASKTIME',
1391
- 2771591690: 'IFCTASKTIMERECURRING',
1392
- 3206491090: 'IFCTASKTYPE',
1393
- 912023232: 'IFCTELECOMADDRESS',
1394
- 3824725483: 'IFCTENDON',
1395
- 2347447852: 'IFCTENDONANCHOR',
1396
- 3081323446: 'IFCTENDONANCHORTYPE',
1397
- 3663046924: 'IFCTENDONCONDUIT',
1398
- 2281632017: 'IFCTENDONCONDUITTYPE',
1399
- 2415094496: 'IFCTENDONTYPE',
1400
- 2387106220: 'IFCTESSELLATEDFACESET',
1401
- 901063453: 'IFCTESSELLATEDITEM',
1402
- 4282788508: 'IFCTEXTLITERAL',
1403
- 3124975700: 'IFCTEXTLITERALWITHEXTENT',
1404
- 1447204868: 'IFCTEXTSTYLE',
1405
- 1983826977: 'IFCTEXTSTYLEFONTMODEL',
1406
- 2636378356: 'IFCTEXTSTYLEFORDEFINEDFONT',
1407
- 1640371178: 'IFCTEXTSTYLETEXTMODEL',
1408
- 280115917: 'IFCTEXTURECOORDINATE',
1409
- 1742049831: 'IFCTEXTURECOORDINATEGENERATOR',
1410
- 2552916305: 'IFCTEXTUREMAP',
1411
- 1210645708: 'IFCTEXTUREVERTEX',
1412
- 3611470254: 'IFCTEXTUREVERTEXLIST',
1413
- 1199560280: 'IFCTIMEPERIOD',
1414
- 3101149627: 'IFCTIMESERIES',
1415
- 581633288: 'IFCTIMESERIESVALUE',
1416
- 1377556343: 'IFCTOPOLOGICALREPRESENTATIONITEM',
1417
- 1735638870: 'IFCTOPOLOGYREPRESENTATION',
1418
- 1935646853: 'IFCTOROIDALSURFACE',
1419
- 3825984169: 'IFCTRANSFORMER',
1420
- 1692211062: 'IFCTRANSFORMERTYPE',
1421
- 2595432518: 'IFCTRANSITIONCURVESEGMENT2D',
1422
- 1620046519: 'IFCTRANSPORTELEMENT',
1423
- 2097647324: 'IFCTRANSPORTELEMENTTYPE',
1424
- 2715220739: 'IFCTRAPEZIUMPROFILEDEF',
1425
- 2916149573: 'IFCTRIANGULATEDFACESET',
1426
- 1229763772: 'IFCTRIANGULATEDIRREGULARNETWORK',
1427
- 3593883385: 'IFCTRIMMEDCURVE',
1428
- 3026737570: 'IFCTUBEBUNDLE',
1429
- 1600972822: 'IFCTUBEBUNDLETYPE',
1430
- 1628702193: 'IFCTYPEOBJECT',
1431
- 3736923433: 'IFCTYPEPROCESS',
1432
- 2347495698: 'IFCTYPEPRODUCT',
1433
- 3698973494: 'IFCTYPERESOURCE',
1434
- 427810014: 'IFCUSHAPEPROFILEDEF',
1435
- 180925521: 'IFCUNITASSIGNMENT',
1436
- 630975310: 'IFCUNITARYCONTROLELEMENT',
1437
- 3179687236: 'IFCUNITARYCONTROLELEMENTTYPE',
1438
- 4292641817: 'IFCUNITARYEQUIPMENT',
1439
- 1911125066: 'IFCUNITARYEQUIPMENTTYPE',
1440
- 4207607924: 'IFCVALVE',
1441
- 728799441: 'IFCVALVETYPE',
1442
- 1417489154: 'IFCVECTOR',
1443
- 2799835756: 'IFCVERTEX',
1444
- 2759199220: 'IFCVERTEXLOOP',
1445
- 1907098498: 'IFCVERTEXPOINT',
1446
- 1530820697: 'IFCVIBRATIONDAMPER',
1447
- 3956297820: 'IFCVIBRATIONDAMPERTYPE',
1448
- 2391383451: 'IFCVIBRATIONISOLATOR',
1449
- 3313531582: 'IFCVIBRATIONISOLATORTYPE',
1450
- 2769231204: 'IFCVIRTUALELEMENT',
1451
- 891718957: 'IFCVIRTUALGRIDINTERSECTION',
1452
- 926996030: 'IFCVOIDINGFEATURE',
1453
- 2391406946: 'IFCWALL',
1454
- 4156078855: 'IFCWALLELEMENTEDCASE',
1455
- 3512223829: 'IFCWALLSTANDARDCASE',
1456
- 1898987631: 'IFCWALLTYPE',
1457
- 4237592921: 'IFCWASTETERMINAL',
1458
- 1133259667: 'IFCWASTETERMINALTYPE',
1459
- 3304561284: 'IFCWINDOW',
1460
- 336235671: 'IFCWINDOWLININGPROPERTIES',
1461
- 512836454: 'IFCWINDOWPANELPROPERTIES',
1462
- 486154966: 'IFCWINDOWSTANDARDCASE',
1463
- 1299126871: 'IFCWINDOWSTYLE',
1464
- 4009809668: 'IFCWINDOWTYPE',
1465
- 4088093105: 'IFCWORKCALENDAR',
1466
- 1028945134: 'IFCWORKCONTROL',
1467
- 4218914973: 'IFCWORKPLAN',
1468
- 3342526732: 'IFCWORKSCHEDULE',
1469
- 1236880293: 'IFCWORKTIME',
1470
- 2543172580: 'IFCZSHAPEPROFILEDEF',
1471
- 1033361043: 'IFCZONE',
1472
- };
1473
-
1474
- class PropertyManager {
1475
-
1476
- constructor( state ) {
1477
-
1478
- this.state = state;
1479
-
1480
- }
1481
-
1482
- getExpressId( geometry, faceIndex ) {
1483
-
1484
- if ( ! geometry.index )
1485
- return;
1486
- const geoIndex = geometry.index.array;
1487
- return geometry.attributes[ IdAttrName ].getX( geoIndex[ 3 * faceIndex ] );
1488
-
1489
- }
1490
-
1491
- getItemProperties( modelID, id, recursive = false ) {
1492
-
1493
- return this.state.useJSON ?
1494
- {
1495
- ...this.state.models[ modelID ].jsonData[ id ]
1496
- } :
1497
- this.state.api.GetLine( modelID, id, recursive );
1498
-
1499
- }
1500
-
1501
- getAllItemsOfType( modelID, type, verbose ) {
1502
-
1503
- return this.state.useJSON ?
1504
- this.getAllItemsOfTypeJSON( modelID, type, verbose ) :
1505
- this.getAllItemsOfTypeWebIfcAPI( modelID, type, verbose );
1506
-
1507
- }
1508
-
1509
- getPropertySets( modelID, elementID, recursive = false ) {
1510
-
1511
- return this.state.useJSON ?
1512
- this.getPropertyJSON( modelID, elementID, recursive, PropsNames.psets ) :
1513
- this.getPropertyWebIfcAPI( modelID, elementID, recursive, PropsNames.psets );
1514
-
1515
- }
1516
-
1517
- getTypeProperties( modelID, elementID, recursive = false ) {
1518
-
1519
- return this.state.useJSON ?
1520
- this.getPropertyJSON( modelID, elementID, recursive, PropsNames.type ) :
1521
- this.getPropertyWebIfcAPI( modelID, elementID, recursive, PropsNames.type );
1522
-
1523
- }
1524
-
1525
- getMaterialsProperties( modelID, elementID, recursive = false ) {
1526
-
1527
- return this.state.useJSON ?
1528
- this.getPropertyJSON( modelID, elementID, recursive, PropsNames.materials ) :
1529
- this.getPropertyWebIfcAPI( modelID, elementID, recursive, PropsNames.materials );
1530
-
1531
- }
1532
-
1533
- getSpatialStructure( modelID ) {
1534
-
1535
- return this.state.useJSON ?
1536
- this.getSpatialStructureJSON( modelID ) :
1537
- this.getSpatialStructureWebIfcAPI( modelID );
1538
-
1539
- }
1540
-
1541
- getSpatialStructureJSON( modelID ) {
1542
-
1543
- const chunks = this.getSpatialTreeChunks( modelID );
1544
- const projectID = this.getAllItemsOfTypeJSON( modelID, IFCPROJECT, false )[ 0 ];
1545
- const project = this.newIfcProject( projectID );
1546
- this.getSpatialNode( modelID, project, chunks );
1547
- return {
1548
- ...project
1549
- };
1550
-
1551
- }
1552
-
1553
- getSpatialStructureWebIfcAPI( modelID ) {
1554
-
1555
- const chunks = this.getSpatialTreeChunks( modelID );
1556
- const projectID = this.state.api.GetLineIDsWithType( modelID, IFCPROJECT ).get( 0 );
1557
- const project = this.newIfcProject( projectID );
1558
- this.getSpatialNode( modelID, project, chunks );
1559
- return project;
1560
-
1561
- }
1562
-
1563
- getAllItemsOfTypeJSON( modelID, type, verbose ) {
1564
-
1565
- const data = this.state.models[ modelID ].jsonData;
1566
- const typeName = IfcTypesMap[ type ];
1567
- if ( ! typeName ) {
1568
-
1569
- throw new Error( `Type not found: ${type}` );
1570
-
1571
- }
1572
-
1573
- return this.filterJSONItemsByType( data, typeName, verbose );
1574
-
1575
- }
1576
-
1577
- filterJSONItemsByType( data, typeName, verbose ) {
1578
-
1579
- const result = [];
1580
- Object.keys( data ).forEach( key => {
1581
-
1582
- const numKey = parseInt( key );
1583
- if ( data[ numKey ].type.toUpperCase() === typeName ) {
1584
-
1585
- result.push( verbose ? {
1586
- ...data[ numKey ]
1587
- } : numKey );
1588
-
1589
- }
1590
-
1591
- } );
1592
- return result;
1593
-
1594
- }
1595
-
1596
- getItemsByIDJSON( modelID, ids ) {
1597
-
1598
- const data = this.state.models[ modelID ].jsonData;
1599
- const result = [];
1600
- ids.forEach( id => result.push( {
1601
- ...data[ id ]
1602
- } ) );
1603
- return result;
1604
-
1605
- }
1606
-
1607
- getPropertyJSON( modelID, elementID, recursive = false, propName ) {
1608
-
1609
- const resultIDs = this.getAllRelatedItemsOfTypeJSON( modelID, elementID, propName );
1610
- const result = this.getItemsByIDJSON( modelID, resultIDs );
1611
- if ( recursive ) {
1612
-
1613
- result.forEach( result => this.getJSONReferencesRecursively( modelID, result ) );
1614
-
1615
- }
1616
-
1617
- return result;
1618
-
1619
- }
1620
-
1621
- getJSONReferencesRecursively( modelID, jsonObject ) {
1622
-
1623
- if ( jsonObject == undefined )
1624
- return;
1625
- const keys = Object.keys( jsonObject );
1626
- for ( let i = 0; i < keys.length; i ++ ) {
1627
-
1628
- const key = keys[ i ];
1629
- this.getJSONItem( modelID, jsonObject, key );
1630
-
1631
- }
1632
-
1633
- }
1634
-
1635
- getJSONItem( modelID, jsonObject, key ) {
1636
-
1637
- if ( Array.isArray( jsonObject[ key ] ) ) {
1638
-
1639
- return this.getMultipleJSONItems( modelID, jsonObject, key );
1640
-
1641
- }
1642
-
1643
- if ( jsonObject[ key ] && jsonObject[ key ].type === 5 ) {
1644
-
1645
- jsonObject[ key ] = this.getItemsByIDJSON( modelID, [ jsonObject[ key ].value ] )[ 0 ];
1646
- this.getJSONReferencesRecursively( modelID, jsonObject[ key ] );
1647
-
1648
- }
1649
-
1650
- }
1651
-
1652
- getMultipleJSONItems( modelID, jsonObject, key ) {
1653
-
1654
- jsonObject[ key ] = jsonObject[ key ].map( ( item ) => {
1655
-
1656
- if ( item.type === 5 ) {
1657
-
1658
- item = this.getItemsByIDJSON( modelID, [ item.value ] )[ 0 ];
1659
- this.getJSONReferencesRecursively( modelID, item );
1660
-
1661
- }
1662
-
1663
- return item;
1664
-
1665
- } );
1666
-
1667
- }
1668
-
1669
- getPropertyWebIfcAPI( modelID, elementID, recursive = false, propName ) {
1670
-
1671
- const propSetIds = this.getAllRelatedItemsOfTypeWebIfcAPI( modelID, elementID, propName );
1672
- return propSetIds.map( ( id ) => this.state.api.GetLine( modelID, id, recursive ) );
1673
-
1674
- }
1675
-
1676
- getAllItemsOfTypeWebIfcAPI( modelID, type, verbose ) {
1677
-
1678
- const items = [];
1679
- const lines = this.state.api.GetLineIDsWithType( modelID, type );
1680
- for ( let i = 0; i < lines.size(); i ++ )
1681
- items.push( lines.get( i ) );
1682
- if ( verbose )
1683
- return items.map( ( id ) => this.state.api.GetLine( modelID, id ) );
1684
- return items;
1685
-
1686
- }
1687
-
1688
- newIfcProject( id ) {
1689
-
1690
- return {
1691
- expressID: id,
1692
- type: 'IFCPROJECT',
1693
- children: []
1694
- };
1695
-
1696
- }
1697
-
1698
- getSpatialTreeChunks( modelID ) {
1699
-
1700
- const treeChunks = {};
1701
- const json = this.state.useJSON;
1702
- if ( json ) {
1703
-
1704
- this.getChunksJSON( modelID, treeChunks, PropsNames.aggregates );
1705
- this.getChunksJSON( modelID, treeChunks, PropsNames.spatial );
1706
-
1707
- } else {
1708
-
1709
- this.getChunksWebIfcAPI( modelID, treeChunks, PropsNames.aggregates );
1710
- this.getChunksWebIfcAPI( modelID, treeChunks, PropsNames.spatial );
1711
-
1712
- }
1713
-
1714
- return treeChunks;
1715
-
1716
- }
1717
-
1718
- getChunksJSON( modelID, chunks, propNames ) {
1719
-
1720
- const relation = this.getAllItemsOfTypeJSON( modelID, propNames.name, true );
1721
- relation.forEach( rel => {
1722
-
1723
- this.saveChunk( chunks, propNames, rel );
1724
-
1725
- } );
1726
-
1727
- }
1728
-
1729
- getChunksWebIfcAPI( modelID, chunks, propNames ) {
1730
-
1731
- const relation = this.state.api.GetLineIDsWithType( modelID, propNames.name );
1732
- for ( let i = 0; i < relation.size(); i ++ ) {
1733
-
1734
- const rel = this.state.api.GetLine( modelID, relation.get( i ), false );
1735
- this.saveChunk( chunks, propNames, rel );
1736
-
1737
- }
1738
-
1739
- }
1740
-
1741
- saveChunk( chunks, propNames, rel ) {
1742
-
1743
- const relating = rel[ propNames.relating ].value;
1744
- const related = rel[ propNames.related ].map( ( r ) => r.value );
1745
- if ( chunks[ relating ] == undefined ) {
1746
-
1747
- chunks[ relating ] = related;
1748
-
1749
- } else {
1750
-
1751
- chunks[ relating ] = chunks[ relating ].concat( related );
1752
-
1753
- }
1754
-
1755
- }
1756
-
1757
- getSpatialNode( modelID, node, treeChunks ) {
1758
-
1759
- this.getChildren( modelID, node, treeChunks, PropsNames.aggregates );
1760
- this.getChildren( modelID, node, treeChunks, PropsNames.spatial );
1761
-
1762
- }
1763
-
1764
- getChildren( modelID, node, treeChunks, propNames ) {
1765
-
1766
- const children = treeChunks[ node.expressID ];
1767
- if ( children == undefined )
1768
- return;
1769
- const prop = propNames.key;
1770
- node[ prop ] = children.map( ( child ) => {
1771
-
1772
- const node = this.newNode( modelID, child );
1773
- this.getSpatialNode( modelID, node, treeChunks );
1774
- return node;
1775
-
1776
- } );
1777
-
1778
- }
1779
-
1780
- newNode( modelID, id ) {
1781
-
1782
- const typeName = this.getNodeType( modelID, id );
1783
- return {
1784
- expressID: id,
1785
- type: typeName,
1786
- children: []
1787
- };
1788
-
1789
- }
1790
-
1791
- getNodeType( modelID, id ) {
1792
-
1793
- if ( this.state.useJSON )
1794
- return this.state.models[ modelID ].jsonData[ id ].type;
1795
- const typeID = this.state.models[ modelID ].types[ id ];
1796
- return IfcElements[ typeID ];
1797
-
1798
- }
1799
-
1800
- getAllRelatedItemsOfTypeJSON( modelID, id, propNames ) {
1801
-
1802
- const lines = this.getAllItemsOfTypeJSON( modelID, propNames.name, true );
1803
- const IDs = [];
1804
- lines.forEach( line => {
1805
-
1806
- const isRelated = this.isRelated( id, line, propNames );
1807
- if ( isRelated )
1808
- this.getRelated( line, propNames, IDs );
1809
-
1810
- } );
1811
- return IDs;
1812
-
1813
- }
1814
-
1815
- getAllRelatedItemsOfTypeWebIfcAPI( modelID, id, propNames ) {
1816
-
1817
- const lines = this.state.api.GetLineIDsWithType( modelID, propNames.name );
1818
- const IDs = [];
1819
- for ( let i = 0; i < lines.size(); i ++ ) {
1820
-
1821
- const rel = this.state.api.GetLine( modelID, lines.get( i ) );
1822
- const isRelated = this.isRelated( id, rel, propNames );
1823
- if ( isRelated )
1824
- this.getRelated( rel, propNames, IDs );
1825
-
1826
- }
1827
-
1828
- return IDs;
1829
-
1830
- }
1831
-
1832
- getRelated( rel, propNames, IDs ) {
1833
-
1834
- const element = rel[ propNames.relating ];
1835
- if ( ! Array.isArray( element ) )
1836
- IDs.push( element.value );
1837
- else
1838
- element.forEach( ( ele ) => IDs.push( ele.value ) );
1839
-
1840
- }
1841
-
1842
- isRelated( id, rel, propNames ) {
1843
-
1844
- const relatedItems = rel[ propNames.related ];
1845
- if ( Array.isArray( relatedItems ) ) {
1846
-
1847
- const values = relatedItems.map( ( item ) => item.value );
1848
- return values.includes( id );
1849
-
1850
- }
1851
-
1852
- return relatedItems.value === id;
1853
-
1854
- }
1855
-
1856
- }
1857
-
1858
- class TypeManager {
1859
-
1860
- constructor( state ) {
1861
-
1862
- this.state = state;
1863
-
1864
- }
1865
-
1866
- getAllTypes() {
1867
-
1868
- for ( const modelID in this.state.models ) {
1869
-
1870
- const types = this.state.models[ modelID ].types;
1871
- if ( Object.keys( types ).length == 0 )
1872
- this.getAllTypesOfModel( parseInt( modelID ) );
1873
-
1874
- }
1875
-
1876
- }
1877
-
1878
- getAllTypesOfModel( modelID ) {
1879
-
1880
- this.state.models[ modelID ].types;
1881
- const elements = Object.keys( IfcElements ).map( ( e ) => parseInt( e ) );
1882
- const types = this.state.models[ modelID ].types;
1883
- elements.forEach( ( type ) => {
1884
-
1885
- const lines = this.state.api.GetLineIDsWithType( modelID, type );
1886
- for ( let i = 0; i < lines.size(); i ++ )
1887
- types[ lines.get( i ) ] = type;
1888
-
1889
- } );
1890
-
1891
- }
1892
-
1893
- }
1894
-
1895
- let modelIdCounter = 0;
1896
- const nullIfcManagerErrorMessage = 'IfcManager is null!';
1897
-
1898
- class IFCModel extends Mesh {
1899
-
1900
- constructor() {
1901
-
1902
- super( ...arguments );
1903
- this.modelID = modelIdCounter ++;
1904
- this.ifcManager = null;
1905
- this.mesh = this;
1906
-
1907
- }
1908
-
1909
- setIFCManager( manager ) {
1910
-
1911
- this.ifcManager = manager;
1912
-
1913
- }
1914
-
1915
- setWasmPath( path ) {
1916
-
1917
- if ( this.ifcManager === null )
1918
- throw new Error( nullIfcManagerErrorMessage );
1919
- this.ifcManager.setWasmPath( path );
1920
-
1921
- }
1922
-
1923
- close( scene ) {
1924
-
1925
- if ( this.ifcManager === null )
1926
- throw new Error( nullIfcManagerErrorMessage );
1927
- this.ifcManager.close( this.modelID, scene );
1928
-
1929
- }
1930
-
1931
- getExpressId( geometry, faceIndex ) {
1932
-
1933
- if ( this.ifcManager === null )
1934
- throw new Error( nullIfcManagerErrorMessage );
1935
- return this.ifcManager.getExpressId( geometry, faceIndex );
1936
-
1937
- }
1938
-
1939
- getAllItemsOfType( type, verbose ) {
1940
-
1941
- if ( this.ifcManager === null )
1942
- throw new Error( nullIfcManagerErrorMessage );
1943
- return this.ifcManager.getAllItemsOfType( this.modelID, type, verbose );
1944
-
1945
- }
1946
-
1947
- getItemProperties( id, recursive = false ) {
1948
-
1949
- if ( this.ifcManager === null )
1950
- throw new Error( nullIfcManagerErrorMessage );
1951
- return this.ifcManager.getItemProperties( this.modelID, id, recursive );
1952
-
1953
- }
1954
-
1955
- getPropertySets( id, recursive = false ) {
1956
-
1957
- if ( this.ifcManager === null )
1958
- throw new Error( nullIfcManagerErrorMessage );
1959
- return this.ifcManager.getPropertySets( this.modelID, id, recursive );
1960
-
1961
- }
1962
-
1963
- getTypeProperties( id, recursive = false ) {
1964
-
1965
- if ( this.ifcManager === null )
1966
- throw new Error( nullIfcManagerErrorMessage );
1967
- return this.ifcManager.getTypeProperties( this.modelID, id, recursive );
1968
-
1969
- }
1970
-
1971
- getIfcType( id ) {
1972
-
1973
- if ( this.ifcManager === null )
1974
- throw new Error( nullIfcManagerErrorMessage );
1975
- return this.ifcManager.getIfcType( this.modelID, id );
1976
-
1977
- }
1978
-
1979
- getSpatialStructure() {
1980
-
1981
- if ( this.ifcManager === null )
1982
- throw new Error( nullIfcManagerErrorMessage );
1983
- return this.ifcManager.getSpatialStructure( this.modelID );
1984
-
1985
- }
1986
-
1987
- getSubset( material ) {
1988
-
1989
- if ( this.ifcManager === null )
1990
- throw new Error( nullIfcManagerErrorMessage );
1991
- return this.ifcManager.getSubset( this.modelID, material );
1992
-
1993
- }
1994
-
1995
- removeSubset( parent, material ) {
1996
-
1997
- if ( this.ifcManager === null )
1998
- throw new Error( nullIfcManagerErrorMessage );
1999
- this.ifcManager.removeSubset( this.modelID, parent, material );
2000
-
2001
- }
2002
-
2003
- createSubset( config ) {
2004
-
2005
- if ( this.ifcManager === null )
2006
- throw new Error( nullIfcManagerErrorMessage );
2007
- const modelConfig = {
2008
- ...config,
2009
- modelID: this.modelID
2010
- };
2011
- return this.ifcManager.createSubset( modelConfig );
2012
-
2013
- }
2014
-
2015
- hideItems( ids ) {
2016
-
2017
- if ( this.ifcManager === null )
2018
- throw new Error( nullIfcManagerErrorMessage );
2019
- this.ifcManager.hideItems( this.modelID, ids );
2020
-
2021
- }
2022
-
2023
- hideAllItems() {
2024
-
2025
- if ( this.ifcManager === null )
2026
- throw new Error( nullIfcManagerErrorMessage );
2027
- this.ifcManager.hideAllItems( this.modelID );
2028
-
2029
- }
2030
-
2031
- showItems( ids ) {
2032
-
2033
- if ( this.ifcManager === null )
2034
- throw new Error( nullIfcManagerErrorMessage );
2035
- this.ifcManager.showItems( this.modelID, ids );
2036
-
2037
- }
2038
-
2039
- showAllItems() {
2040
-
2041
- if ( this.ifcManager === null )
2042
- throw new Error( nullIfcManagerErrorMessage );
2043
- this.ifcManager.showAllItems( this.modelID );
2044
-
2045
- }
2046
-
2047
- }
2048
-
2049
- class BvhManager {
2050
-
2051
- initializeMeshBVH( computeBoundsTree, disposeBoundsTree, acceleratedRaycast ) {
2052
-
2053
- this.computeBoundsTree = computeBoundsTree;
2054
- this.disposeBoundsTree = disposeBoundsTree;
2055
- this.acceleratedRaycast = acceleratedRaycast;
2056
- this.setupThreeMeshBVH();
2057
-
2058
- }
2059
-
2060
- applyThreeMeshBVH( geometry ) {
2061
-
2062
- if ( this.computeBoundsTree )
2063
- geometry.computeBoundsTree();
2064
-
2065
- }
2066
-
2067
- setupThreeMeshBVH() {
2068
-
2069
- if ( ! this.computeBoundsTree || ! this.disposeBoundsTree || ! this.acceleratedRaycast )
2070
- return;
2071
- BufferGeometry.prototype.computeBoundsTree = this.computeBoundsTree;
2072
- BufferGeometry.prototype.disposeBoundsTree = this.disposeBoundsTree;
2073
- Mesh.prototype.raycast = this.acceleratedRaycast;
2074
-
2075
- }
2076
-
2077
- }
2078
-
2079
- class ItemsHider {
2080
-
2081
- constructor( state ) {
2082
-
2083
- this.modelCoordinates = {};
2084
- this.expressIDCoordinatesMap = {};
2085
- this.state = state;
2086
-
2087
- }
2088
-
2089
-
2090
-
2091
- processCoordinates( modelID ) {
2092
-
2093
- const attributes = this.getAttributes( modelID );
2094
- const ids = Array.from( attributes.expressID.array );
2095
- this.expressIDCoordinatesMap[ modelID ] = {};
2096
- for ( let i = 0; i < ids.length; i ++ ) {
2097
-
2098
- if ( ! this.expressIDCoordinatesMap[ modelID ][ ids[ i ] ] ) {
2099
-
2100
- this.expressIDCoordinatesMap[ modelID ][ ids[ i ] ] = [];
2101
-
2102
- }
2103
-
2104
- const current = this.expressIDCoordinatesMap[ modelID ];
2105
- current[ ids[ i ] ].push( 3 * i );
2106
-
2107
- }
2108
-
2109
- this.initializeCoordinates( modelID );
2110
-
2111
- }
2112
-
2113
- hideItems( modelID, ids ) {
2114
-
2115
- this.editCoordinates( modelID, ids, true );
2116
-
2117
- }
2118
-
2119
- showItems( modelID, ids ) {
2120
-
2121
- this.editCoordinates( modelID, ids, false );
2122
-
2123
- }
2124
-
2125
- editCoordinates( modelID, ids, hide ) {
2126
-
2127
- const current = this.expressIDCoordinatesMap[ modelID ];
2128
- const indices = [];
2129
- ids.forEach( ( id ) => {
2130
-
2131
- if ( current[ id ] )
2132
- indices.push( ...current[ id ] );
2133
-
2134
- } );
2135
- const coords = this.getCoordinates( modelID );
2136
- const initial = this.modelCoordinates[ modelID ];
2137
- if ( hide )
2138
- indices.forEach( i => coords.set( [ 0, 0, 0 ], i ) );
2139
- else
2140
- indices.forEach( i => coords.set( [ initial[ i ], initial[ i + 1 ], initial[ i + 2 ] ], i ) );
2141
- this.getAttributes( modelID ).position.needsUpdate = true;
2142
-
2143
- }
2144
-
2145
- showAllItems( modelID ) {
2146
-
2147
- if ( this.modelCoordinates[ modelID ] ) {
2148
-
2149
- this.resetCoordinates( modelID );
2150
- this.getAttributes( modelID ).position.needsUpdate = true;
2151
-
2152
- }
2153
-
2154
- }
2155
-
2156
- hideAllItems( modelID ) {
2157
-
2158
- this.getCoordinates( modelID ).fill( 0 );
2159
- this.getAttributes( modelID ).position.needsUpdate = true;
2160
-
2161
- }
2162
-
2163
- initializeCoordinates( modelID ) {
2164
-
2165
- const coordinates = this.getCoordinates( modelID );
2166
- if ( ! this.modelCoordinates[ modelID ] ) {
2167
-
2168
- this.modelCoordinates[ modelID ] = new Float32Array( coordinates );
2169
-
2170
- }
2171
-
2172
- }
2173
-
2174
- resetCoordinates( modelID ) {
2175
-
2176
- const initial = this.modelCoordinates[ modelID ];
2177
- this.getCoordinates( modelID ).set( initial );
2178
-
2179
- }
2180
-
2181
- getCoordinates( modelID ) {
2182
-
2183
- return this.getAttributes( modelID ).position.array;
2184
-
2185
- }
2186
-
2187
- getAttributes( modelID ) {
2188
-
2189
- return this.state.models[ modelID ].mesh.geometry.attributes;
2190
-
2191
- }
2192
-
2193
- }
2194
-
2195
- class IFCManager {
2196
-
2197
- constructor() {
2198
-
2199
- this.state = {
2200
- models: [],
2201
- api: new IfcAPI(),
2202
- useJSON: false
2203
- };
2204
- this.BVH = new BvhManager();
2205
- this.parser = new IFCParser( this.state, this.BVH );
2206
- this.subsets = new SubsetManager( this.state, this.BVH );
2207
- this.properties = new PropertyManager( this.state );
2208
- this.types = new TypeManager( this.state );
2209
- this.hider = new ItemsHider( this.state );
2210
-
2211
- }
2212
-
2213
- async parse( buffer ) {
2214
-
2215
- const mesh = await this.parser.parse( buffer );
2216
- this.state.useJSON ? this.disposeMemory() : this.types.getAllTypes();
2217
- this.hider.processCoordinates( mesh.modelID );
2218
- const model = new IFCModel( mesh.geometry, mesh.material );
2219
- model.setIFCManager( this );
2220
- return model;
2221
-
2222
- }
2223
-
2224
- setWasmPath( path ) {
2225
-
2226
- this.state.api.SetWasmPath( path );
2227
-
2228
- }
2229
-
2230
- applyWebIfcConfig( settings ) {
2231
-
2232
- this.state.webIfcSettings = settings;
2233
-
2234
- }
2235
-
2236
- useJSONData( useJSON = true ) {
2237
-
2238
- this.state.useJSON = useJSON;
2239
- this.disposeMemory();
2240
-
2241
- }
2242
-
2243
- addModelJSONData( modelID, data ) {
2244
-
2245
- const model = this.state.models[ modelID ];
2246
- if ( model ) {
2247
-
2248
- model.jsonData = data;
2249
-
2250
- }
2251
-
2252
- }
2253
-
2254
- disposeMemory() {
2255
-
2256
- this.state.api = null;
2257
- this.state.api = new IfcAPI();
2258
-
2259
- }
2260
-
2261
- setupThreeMeshBVH( computeBoundsTree, disposeBoundsTree, acceleratedRaycast ) {
2262
-
2263
- this.BVH.initializeMeshBVH( computeBoundsTree, disposeBoundsTree, acceleratedRaycast );
2264
-
2265
- }
2266
-
2267
- close( modelID, scene ) {
2268
-
2269
- this.state.api.CloseModel( modelID );
2270
- if ( scene ) {
2271
-
2272
- scene.remove( this.state.models[ modelID ].mesh );
2273
-
2274
- }
2275
-
2276
- delete this.state.models[ modelID ];
2277
-
2278
- }
2279
-
2280
- getExpressId( geometry, faceIndex ) {
2281
-
2282
- return this.properties.getExpressId( geometry, faceIndex );
2283
-
2284
- }
2285
-
2286
- getAllItemsOfType( modelID, type, verbose ) {
2287
-
2288
- return this.properties.getAllItemsOfType( modelID, type, verbose );
2289
-
2290
- }
2291
-
2292
- getItemProperties( modelID, id, recursive = false ) {
2293
-
2294
- return this.properties.getItemProperties( modelID, id, recursive );
2295
-
2296
- }
2297
-
2298
- getPropertySets( modelID, id, recursive = false ) {
2299
-
2300
- return this.properties.getPropertySets( modelID, id, recursive );
2301
-
2302
- }
2303
-
2304
- getTypeProperties( modelID, id, recursive = false ) {
2305
-
2306
- return this.properties.getTypeProperties( modelID, id, recursive );
2307
-
2308
- }
2309
-
2310
- getMaterialsProperties( modelID, id, recursive = false ) {
2311
-
2312
- return this.properties.getMaterialsProperties( modelID, id, recursive );
2313
-
2314
- }
2315
-
2316
- getIfcType( modelID, id ) {
2317
-
2318
- const typeID = this.state.models[ modelID ].types[ id ];
2319
- return IfcElements[ typeID ];
2320
-
2321
- }
2322
-
2323
- getSpatialStructure( modelID ) {
2324
-
2325
- return this.properties.getSpatialStructure( modelID );
2326
-
2327
- }
2328
-
2329
- getSubset( modelID, material ) {
2330
-
2331
- return this.subsets.getSubset( modelID, material );
2332
-
2333
- }
2334
-
2335
- removeSubset( modelID, parent, material ) {
2336
-
2337
- this.subsets.removeSubset( modelID, parent, material );
2338
-
2339
- }
2340
-
2341
- createSubset( config ) {
2342
-
2343
- return this.subsets.createSubset( config );
2344
-
2345
- }
2346
-
2347
- hideItems( modelID, ids ) {
2348
-
2349
- this.hider.hideItems( modelID, ids );
2350
-
2351
- }
2352
-
2353
- hideAllItems( modelID ) {
2354
-
2355
- this.hider.hideAllItems( modelID );
2356
-
2357
- }
2358
-
2359
- showItems( modelID, ids ) {
2360
-
2361
- this.hider.showItems( modelID, ids );
2362
-
2363
- }
2364
-
2365
- showAllItems( modelID ) {
2366
-
2367
- this.hider.showAllItems( modelID );
2368
-
2369
- }
2370
-
2371
- }
2372
-
2373
- class IFCLoader extends Loader {
2374
-
2375
- constructor( manager ) {
2376
-
2377
- super( manager );
2378
- this.ifcManager = new IFCManager();
2379
-
2380
- }
2381
-
2382
- load( url, onLoad, onProgress, onError ) {
2383
-
2384
- const scope = this;
2385
- const loader = new FileLoader( scope.manager );
2386
- loader.setPath( scope.path );
2387
- loader.setResponseType( 'arraybuffer' );
2388
- loader.setRequestHeader( scope.requestHeader );
2389
- loader.setWithCredentials( scope.withCredentials );
2390
- loader.load( url, async function ( buffer ) {
2391
-
2392
- try {
2393
-
2394
- if ( typeof buffer == 'string' ) {
2395
-
2396
- throw new Error( 'IFC files must be given as a buffer!' );
2397
-
2398
- }
2399
-
2400
- onLoad( await scope.parse( buffer ) );
2401
-
2402
- } catch ( e ) {
2403
-
2404
- if ( onError ) {
2405
-
2406
- onError( e );
2407
-
2408
- } else {
2409
-
2410
- console.error( e );
2411
-
2412
- }
2413
-
2414
- scope.manager.itemError( url );
2415
-
2416
- }
2417
-
2418
- }, onProgress, onError );
2419
-
2420
- }
2421
-
2422
- parse( buffer ) {
2423
-
2424
- return this.ifcManager.parse( buffer );
2425
-
2426
- }
2427
-
2428
- }
2429
-
2430
- export { IFCLoader };
2431
- //# sourceMappingURL=IFCLoader.js.map