@divinevoxel/vlox 0.0.77 → 0.0.79

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 (315) hide show
  1. package/Builder/Tools/Wrench/WrenchTool.js +26 -21
  2. package/Builder/VoxelBuildSpace.d.ts +2 -2
  3. package/Builder/VoxelBuildSpace.js +4 -4
  4. package/Builder/World/InitTasks.js +1 -1
  5. package/Cache/Cache.types.d.ts +0 -4
  6. package/Cache/CacheManager.d.ts +1 -2
  7. package/Cache/CacheManager.js +0 -2
  8. package/Contexts/Base/Main/InitDataGenerator.js +10 -2
  9. package/Contexts/Base/Remote/DataSync.types.d.ts +10 -4
  10. package/Contexts/Base/Remote/InitDataSync.js +10 -20
  11. package/Init/StartMesher.js +2 -1
  12. package/Init/StartRenderer.js +2 -1
  13. package/Mesher/{Geomtry → Geometry}/Geometry.types.d.ts +1 -0
  14. package/Mesher/InitMesher.d.ts +1 -2
  15. package/Mesher/InitMesher.js +7 -14
  16. package/Mesher/Items/{Geomtry → Geometry}/ItemGeometryBuilder.d.ts +2 -2
  17. package/Mesher/Items/{Geomtry → Geometry}/ItemGeometryBuilder.js +1 -1
  18. package/Mesher/Items/MeshTexture.d.ts +2 -1
  19. package/Mesher/Items/MeshTexture.js +7 -6
  20. package/Mesher/Items/MeshTextureO.js +1 -1
  21. package/Mesher/Items/Models/ItemModelBuilder.d.ts +1 -1
  22. package/Mesher/Items/Models/ItemModelBuilder.js +2 -2
  23. package/Mesher/Voxels/Base/CompactTemplateMesh.js +1 -1
  24. package/Mesher/Voxels/Base/CompactVoxelSectionMesh.js +2 -2
  25. package/Mesher/Voxels/Base/MeshSectionBase.js +1 -3
  26. package/Mesher/Voxels/{Geomtry → Geometry}/CompactedSectionVoxelMesh.js +3 -3
  27. package/Mesher/Voxels/{Geomtry → Geometry}/VoxelGeometryBuilder.d.ts +2 -2
  28. package/Mesher/Voxels/{Geomtry → Geometry}/VoxelGeometryBuilder.js +1 -1
  29. package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHBuilder.js +1 -1
  30. package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHStructCursor.d.ts +1 -1
  31. package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHStructCursor.js +1 -1
  32. package/Mesher/Voxels/MeshTemplate.js +0 -3
  33. package/Mesher/Voxels/MeshVoxel.js +0 -2
  34. package/Mesher/Voxels/Models/Common/Calc/CalcConstants.d.ts +1 -1
  35. package/Mesher/Voxels/Models/Common/Calc/CalcConstants.js +2 -2
  36. package/Mesher/Voxels/Models/Common/Calc/FaceDataCalc.js +4 -1
  37. package/Mesher/Voxels/Models/Common/Faces/CullRulledFace.js +29 -18
  38. package/Mesher/Voxels/Models/Common/Faces/ShadeRulelessFace.d.ts +1 -1
  39. package/Mesher/Voxels/Models/Common/Faces/ShadeRulledFace.d.ts +1 -1
  40. package/Mesher/Voxels/Models/Common/Faces/ShadeRulledFace.js +31 -21
  41. package/Mesher/Voxels/Models/Common/GetTexture.d.ts +4 -4
  42. package/Mesher/Voxels/Models/Nodes/Custom/Liquid/FlowGradient.d.ts +1 -1
  43. package/Mesher/Voxels/Models/Nodes/Custom/Liquid/FlowGradient.js +1 -1
  44. package/Mesher/Voxels/Models/Nodes/Custom/Liquid/{LiquidGeomtryNode.d.ts → LiquidGeometryNode.d.ts} +2 -2
  45. package/Mesher/Voxels/Models/Nodes/Custom/Liquid/{LiquidGeomtryNode.js → LiquidGeometryNode.js} +5 -5
  46. package/Mesher/Voxels/Models/Nodes/Default/QuadVoxelGeometryNode.d.ts +3 -3
  47. package/Mesher/Voxels/Models/Nodes/Default/QuadVoxelGeometryNode.js +2 -2
  48. package/Mesher/Voxels/Models/Nodes/Default/TriangleVoxelGeometryNode.d.ts +3 -3
  49. package/Mesher/Voxels/Models/Nodes/Default/TriangleVoxelGeometryNode.js +2 -2
  50. package/Mesher/Voxels/Models/Nodes/GeometryNode.d.ts +3 -3
  51. package/Mesher/Voxels/Models/Nodes/GeometryNode.js +3 -3
  52. package/Mesher/Voxels/Models/Nodes/Types/GeometryNode.types.d.ts +7 -0
  53. package/Mesher/Voxels/Models/Nodes/Types/QuadVoxelGometryNodeTypes.d.ts +3 -3
  54. package/Mesher/Voxels/Models/Nodes/Types/TriangleVoxelGometryNodeTypes.d.ts +2 -2
  55. package/Mesher/Voxels/Models/Nodes/VoxelGeometryConstructor.d.ts +2 -3
  56. package/Mesher/Voxels/Models/Nodes/VoxelGeometryConstructor.js +6 -5
  57. package/Mesher/Voxels/Models/Procedures/Default/ConsistentRotationTextureProcedure.d.ts +4 -4
  58. package/Mesher/Voxels/Models/Procedures/Default/OutlinedTextureProcedure.d.ts +4 -4
  59. package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.d.ts +4 -4
  60. package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.js +20 -6
  61. package/Mesher/Voxels/Models/Procedures/TextureProcedure.d.ts +2 -2
  62. package/Mesher/Voxels/Models/VoxelConstructor.d.ts +1 -16
  63. package/Mesher/Voxels/Models/VoxelConstructor.js +50 -56
  64. package/Mesher/Voxels/Models/VoxelGeometryBuilderCacheSpace.d.ts +3 -6
  65. package/Mesher/Voxels/Models/VoxelGeometryBuilderCacheSpace.js +40 -44
  66. package/Mesher/Voxels/Models/VoxelModelBuilder.d.ts +4 -4
  67. package/Mesher/Voxels/Models/VoxelModelBuilder.js +4 -4
  68. package/Mesher/Voxels/Models/VoxelModelConstructorRegister.d.ts +1 -14
  69. package/Mesher/Voxels/Models/VoxelModelConstructorRegister.js +7 -21
  70. package/Mesher/Voxels/Models/VoxelModelEffect.d.ts +1 -7
  71. package/Mesher/Voxels/Models/VoxelModelEffect.js +23 -26
  72. package/Renderer/Classes/DVESectionMeshes.d.ts +1 -1
  73. package/Renderer/MeshManager.js +1 -1
  74. package/Settings/EngineSettings.types.d.ts +2 -1
  75. package/Settings/EngineSettings.types.js +1 -0
  76. package/Stats/EngineStats.d.ts +5 -3
  77. package/Stats/EngineStats.js +8 -6
  78. package/Templates/Archive/ArchivedVoxelTemplate.d.ts +1 -1
  79. package/Templates/Archive/ArchivedVoxelTemplate.js +5 -5
  80. package/Templates/Archive/Functions/CreateArchivedTemplate.d.ts +1 -1
  81. package/Templates/Archive/Functions/CreateArchivedTemplate.js +2 -2
  82. package/Templates/Cursor/TemplateCursor.d.ts +1 -1
  83. package/Templates/Cursor/TemplateCursor.js +1 -1
  84. package/Templates/Full/FullVoxelTemplate.d.ts +1 -1
  85. package/Templates/Full/FullVoxelTemplate.js +1 -1
  86. package/Templates/Full/Functions/CreateFullTemplate.d.ts +1 -1
  87. package/Templates/Selection/VoxelBFSSelection.d.ts +1 -1
  88. package/Templates/Selection/VoxelBFSSelection.js +1 -1
  89. package/Templates/Selection/VoxelBoundsSelection.d.ts +1 -1
  90. package/Templates/Selection/VoxelBoundsSelection.js +1 -1
  91. package/Templates/Selection/VoxelPointSelection.d.ts +1 -1
  92. package/Templates/Selection/VoxelPointSelection.js +1 -1
  93. package/Templates/Selection/VoxelSelection.d.ts +1 -1
  94. package/Templates/Selection/VoxelSurfaceSelection.d.ts +1 -1
  95. package/Templates/Selection/VoxelSurfaceSelection.js +1 -1
  96. package/Templates/Selection/VoxelTemplateSelection.d.ts +1 -1
  97. package/Templates/Selection/VoxelTemplateSelection.js +1 -1
  98. package/Templates/Shapes/Selections/BoxVoxelShapeSelection.d.ts +1 -1
  99. package/Templates/Shapes/Selections/BoxVoxelShapeSelection.js +1 -1
  100. package/Templates/Shapes/Selections/ConeVoxelShapeSelection.d.ts +1 -1
  101. package/Templates/Shapes/Selections/ConeVoxelShapeSelection.js +1 -1
  102. package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.d.ts +1 -1
  103. package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.js +1 -1
  104. package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.d.ts +1 -1
  105. package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.js +1 -1
  106. package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.d.ts +1 -1
  107. package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.js +1 -1
  108. package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.d.ts +1 -1
  109. package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.js +1 -1
  110. package/Templates/Shapes/Selections/SphereVoxelShapeSelection.d.ts +1 -1
  111. package/Templates/Shapes/Selections/SphereVoxelShapeSelection.js +1 -1
  112. package/Templates/Shapes/Selections/TorusVoxelShapeSelection.d.ts +1 -1
  113. package/Templates/Shapes/Selections/TorusVoxelShapeSelection.js +1 -1
  114. package/Templates/Shapes/VoxelShapeTemplate.d.ts +1 -1
  115. package/Templates/Shapes/VoxelShapeTemplate.js +1 -1
  116. package/Templates/VoxelTemplates.types.d.ts +1 -1
  117. package/Textures/Functions/BuildTextureData.js +4 -52
  118. package/Tools/Brush/Brush.js +5 -5
  119. package/Util/StringPalette.js +2 -0
  120. package/Voxels/Archive/VoxelPaletteArchiveReader.js +7 -6
  121. package/Voxels/Archive/VoxelPaletteArechive.js +8 -8
  122. package/Voxels/Cursor/DataCursor.interface.d.ts +1 -1
  123. package/Voxels/Cursor/VoxelCursor.interface.d.ts +0 -2
  124. package/Voxels/Cursor/VoxelCursor.interface.js +14 -16
  125. package/Voxels/Cursor/VoxelCursor.js +5 -5
  126. package/Voxels/Data/GeometryLUT.d.ts +32 -0
  127. package/Voxels/Data/GeometryLUT.js +50 -0
  128. package/Voxels/Data/VoxelLUT.d.ts +83 -0
  129. package/Voxels/Data/VoxelLUT.js +119 -0
  130. package/Voxels/Data/VoxelTagsRegister.d.ts +2 -2
  131. package/Voxels/Data/VoxelTagsRegister.js +2 -2
  132. package/Voxels/Functions/BuildLUTs.d.ts +6 -0
  133. package/Voxels/Functions/BuildLUTs.js +361 -0
  134. package/Voxels/Functions/BuildTagData.d.ts +4 -2
  135. package/Voxels/Functions/BuildTagData.js +15 -32
  136. package/Voxels/Functions/Geometry/BuildGeometryLUT.d.ts +11 -0
  137. package/Voxels/Functions/Geometry/BuildGeometryLUT.js +395 -0
  138. package/Voxels/{Models/Rules/Functions/Compile/Nodes → Functions/Geometry}/CalcFunctions.d.ts +3 -3
  139. package/Voxels/{Models/Rules/Functions/Compile/Nodes → Functions/Geometry}/CalcFunctions.js +2 -2
  140. package/Voxels/Functions/Geometry/Compile/BuildCompiled.d.ts +4 -0
  141. package/Voxels/Functions/Geometry/Compile/BuildCompiled.js +25 -0
  142. package/Voxels/Functions/Geometry/Compile/BuildCompiledBox.d.ts +4 -0
  143. package/Voxels/Functions/Geometry/Compile/BuildCompiledBox.js +13 -0
  144. package/Voxels/Functions/Geometry/Compile/BuildCompiledQuad.d.ts +4 -0
  145. package/Voxels/Functions/Geometry/Compile/BuildCompiledQuad.js +41 -0
  146. package/Voxels/Functions/Geometry/Compile/BuildCompiledTri.d.ts +4 -0
  147. package/Voxels/Functions/Geometry/Compile/BuildCompiledTri.js +44 -0
  148. package/Voxels/Functions/Geometry/GeometryLUT.types.d.ts +7 -0
  149. package/Voxels/Functions/Geometry/Inputs/BaseFunctions.d.ts +4 -0
  150. package/Voxels/Functions/Geometry/Inputs/BaseFunctions.js +28 -0
  151. package/Voxels/Functions/Geometry/Inputs/BuildBoxInputs.d.ts +5 -0
  152. package/Voxels/Functions/Geometry/Inputs/BuildBoxInputs.js +8 -0
  153. package/Voxels/Functions/Geometry/Inputs/BuildCustomInputs.d.ts +5 -0
  154. package/Voxels/Functions/Geometry/Inputs/BuildCustomInputs.js +41 -0
  155. package/Voxels/Functions/Geometry/Inputs/BuildQuadInputs.d.ts +5 -0
  156. package/Voxels/Functions/Geometry/Inputs/BuildQuadInputs.js +103 -0
  157. package/Voxels/Functions/Geometry/Inputs/BuildTriangleInputs.d.ts +5 -0
  158. package/Voxels/Functions/Geometry/Inputs/BuildTriangleInputs.js +101 -0
  159. package/Voxels/Functions/Geometry/Inputs/BuldInputs.d.ts +4 -0
  160. package/Voxels/Functions/Geometry/Inputs/BuldInputs.js +22 -0
  161. package/Voxels/Functions/Geometry/Rules/BuildRules.d.ts +1 -0
  162. package/Voxels/{Models/Rules/Functions → Functions/Geometry/Rules}/BuildRules.js +23 -23
  163. package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFaceRegister.d.ts +2 -2
  164. package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionQuadFace.js +1 -1
  165. package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionTriangleFace.js +1 -1
  166. package/Voxels/{Models/Indexing → Geometry}/AOOcclusionFaceIndex.d.ts +2 -2
  167. package/Voxels/Geometry/AOOcclusionFaceIndex.js +28 -0
  168. package/Voxels/{Models/Indexing → Geometry}/CulledOcclusionFaceIndex.d.ts +2 -2
  169. package/Voxels/Geometry/CulledOcclusionFaceIndex.js +27 -0
  170. package/Voxels/Geometry/VoxelGeometry.types.d.ts +105 -0
  171. package/Voxels/Geometry/VoxelGeometry.types.js +1 -0
  172. package/Voxels/Indexes/VoxelIndex.js +15 -21
  173. package/Voxels/InitVoxelData.d.ts +4 -3
  174. package/Voxels/InitVoxelData.js +53 -110
  175. package/Voxels/Interaction/Functions/PickVoxel.js +1 -1
  176. package/Voxels/Logic/Classes/Types/VoxelLogicStateType.js +2 -2
  177. package/Voxels/Logic/Classes/VoxelLogic.d.ts +2 -2
  178. package/Voxels/Logic/Classes/VoxelLogic.js +2 -2
  179. package/Voxels/Logic/VoxelLogicRegister.js +2 -2
  180. package/Voxels/Models/Defaults/CubeVoxelGeometry.d.ts +1 -1
  181. package/Voxels/Models/Defaults/CubeVoxelModels.d.ts +1 -0
  182. package/Voxels/Models/Defaults/CubeVoxelModels.js +45 -0
  183. package/Voxels/Models/Defaults/Examples.d.ts +2 -1
  184. package/Voxels/Models/Defaults/Examples.js +28 -28
  185. package/Voxels/Models/Defaults/FarmVoxelModels.d.ts +3 -2
  186. package/Voxels/Models/Defaults/FarmVoxelModels.js +3 -3
  187. package/Voxels/Models/Defaults/LiquidVoxelModel.d.ts +2 -1
  188. package/Voxels/Models/Defaults/PanelVoxelGeometry.d.ts +1 -1
  189. package/Voxels/Models/VoxelModel.types.d.ts +2 -109
  190. package/Voxels/State/{Schema → Reltional}/Conditions/SameVoxelConditions.d.ts +2 -2
  191. package/Voxels/State/Reltional/Conditions/SameVoxelConditions.js +19 -0
  192. package/Voxels/State/Reltional/Conditions/ShapeStateSchemaRelationsCondition.d.ts +6 -0
  193. package/Voxels/State/Reltional/Conditions/ShapeStateSchemaRelationsCondition.js +6 -0
  194. package/Voxels/State/Reltional/ReltionalStateBuilder.d.ts +18 -0
  195. package/Voxels/State/Reltional/ReltionalStateBuilder.js +42 -0
  196. package/Voxels/State/Schema/BinarySchema.d.ts +1 -0
  197. package/Voxels/State/Schema/BinarySchema.js +3 -0
  198. package/Voxels/State/State.types.d.ts +0 -25
  199. package/Voxels/State/State.types.js +1 -22
  200. package/Voxels/State/VoxelSchemas.d.ts +22 -0
  201. package/Voxels/State/VoxelSchemas.js +60 -0
  202. package/Voxels/Types/PaintVoxelData.js +55 -45
  203. package/Voxels/Types/VoxelModelCompiledData.types.d.ts +4 -22
  204. package/World/Archive/Classes/ImportedSection.js +8 -8
  205. package/World/Archive/Functions/Sector/ArchiveSector.js +3 -3
  206. package/World/Cursor/SectionCursor.d.ts +1 -1
  207. package/World/Cursor/SectionCursor.js +1 -1
  208. package/World/Cursor/SectorCursor.d.ts +1 -1
  209. package/World/Cursor/SectorCursor.js +1 -1
  210. package/World/Cursor/WorldCursor.d.ts +1 -1
  211. package/World/Cursor/WorldCursor.js +1 -1
  212. package/World/Lock/Function/LockSectors.d.ts +1 -1
  213. package/World/Lock/Function/UnLockSectors.d.ts +1 -1
  214. package/World/SnapShot/SectionSnapShotCursor.d.ts +1 -1
  215. package/World/SnapShot/SectionSnapShotCursor.js +1 -1
  216. package/World/SnapShot/SnapShots.d.ts +1 -1
  217. package/World/SnapShot/SnapShots.js +1 -1
  218. package/WorldSimulation/Dimensions/SimulationSector.d.ts +1 -1
  219. package/WorldSimulation/Dimensions/SimulationSector.js +2 -2
  220. package/WorldSimulation/Tools/SimulationBrush.js +9 -9
  221. package/WorldSimulation/Voxels/Behaviors/Types/CropVoxelBehavior.js +4 -2
  222. package/WorldSimulation/Voxels/Behaviors/Types/FarmlandVoxelBehavior.js +5 -2
  223. package/WorldSimulation/WorldSimulation.d.ts +1 -0
  224. package/WorldSimulation/WorldSimulation.js +2 -1
  225. package/package.json +1 -1
  226. package/Mesher/Voxels/Models/Nodes/Types/GeomtryNode.types.d.ts +0 -7
  227. package/Voxels/Data/VoxelPalettesRegister.d.ts +0 -18
  228. package/Voxels/Data/VoxelPalettesRegister.js +0 -24
  229. package/Voxels/Functions/BuildPaletteData.d.ts +0 -6
  230. package/Voxels/Functions/BuildPaletteData.js +0 -87
  231. package/Voxels/Functions/BuildStateData.d.ts +0 -23
  232. package/Voxels/Functions/BuildStateData.js +0 -327
  233. package/Voxels/Models/CompiledVoxelModel.types.d.ts +0 -46
  234. package/Voxels/Models/Indexing/AOOcclusionFaceIndex.js +0 -28
  235. package/Voxels/Models/Indexing/CulledOcclusionFaceIndex.js +0 -27
  236. package/Voxels/Models/Rules/Classes/GeomtryInput.d.ts +0 -16
  237. package/Voxels/Models/Rules/Classes/GeomtryInput.js +0 -85
  238. package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.d.ts +0 -22
  239. package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.js +0 -15
  240. package/Voxels/Models/Rules/Classes/VoxelRulesModel.d.ts +0 -19
  241. package/Voxels/Models/Rules/Classes/VoxelRulesModel.js +0 -29
  242. package/Voxels/Models/Rules/Functions/BuildFinalInputs.d.ts +0 -5
  243. package/Voxels/Models/Rules/Functions/BuildFinalInputs.js +0 -87
  244. package/Voxels/Models/Rules/Functions/BuildRules.d.ts +0 -7
  245. package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.d.ts +0 -4
  246. package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.js +0 -39
  247. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.d.ts +0 -5
  248. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.js +0 -14
  249. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.d.ts +0 -6
  250. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.js +0 -92
  251. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.d.ts +0 -6
  252. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.js +0 -115
  253. package/Voxels/Models/Rules/VoxelModelRuleBuilderRegister.d.ts +0 -18
  254. package/Voxels/Models/Rules/VoxelModelRuleBuilderRegister.js +0 -202
  255. package/Voxels/State/CondiotnalTreeReader.d.ts +0 -10
  256. package/Voxels/State/CondiotnalTreeReader.js +0 -23
  257. package/Voxels/State/LogicStatementReader.d.ts +0 -9
  258. package/Voxels/State/LogicStatementReader.js +0 -50
  259. package/Voxels/State/Schema/Conditions/SameVoxelConditions.js +0 -19
  260. package/Voxels/State/Schema/Conditions/ShapeStateSchemaRelationsCondition.d.ts +0 -6
  261. package/Voxels/State/Schema/Conditions/ShapeStateSchemaRelationsCondition.js +0 -6
  262. package/Voxels/State/Schema/ShapeStateRelationsNode.d.ts +0 -10
  263. package/Voxels/State/Schema/ShapeStateRelationsNode.js +0 -26
  264. package/Voxels/State/Schema/StateSchema.d.ts +0 -13
  265. package/Voxels/State/Schema/StateSchema.js +0 -17
  266. package/Voxels/State/Schema/VoxelSchema.d.ts +0 -7
  267. package/Voxels/State/Schema/VoxelSchema.js +0 -10
  268. package/Voxels/State/SchemaRegister.d.ts +0 -18
  269. package/Voxels/State/SchemaRegister.js +0 -76
  270. package/Voxels/State/StateTreeReader.d.ts +0 -9
  271. package/Voxels/State/StateTreeReader.js +0 -37
  272. /package/Mesher/{Geomtry → Geometry}/Functions/GetBounds.d.ts +0 -0
  273. /package/Mesher/{Geomtry → Geometry}/Functions/GetBounds.js +0 -0
  274. /package/Mesher/{Geomtry → Geometry}/Geometry.types.js +0 -0
  275. /package/Mesher/{Geomtry → Geometry}/Primitives/Quad.d.ts +0 -0
  276. /package/Mesher/{Geomtry → Geometry}/Primitives/Quad.js +0 -0
  277. /package/Mesher/{Geomtry → Geometry}/Primitives/QuadVertexData.d.ts +0 -0
  278. /package/Mesher/{Geomtry → Geometry}/Primitives/QuadVertexData.js +0 -0
  279. /package/Mesher/{Geomtry → Geometry}/Primitives/Triangle.d.ts +0 -0
  280. /package/Mesher/{Geomtry → Geometry}/Primitives/Triangle.js +0 -0
  281. /package/Mesher/{Geomtry → Geometry}/Primitives/TriangleVertexData.d.ts +0 -0
  282. /package/Mesher/{Geomtry → Geometry}/Primitives/TriangleVertexData.js +0 -0
  283. /package/Mesher/{Geomtry → Geometry}/Primitives/index.d.ts +0 -0
  284. /package/Mesher/{Geomtry → Geometry}/Primitives/index.js +0 -0
  285. /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMesh.d.ts +0 -0
  286. /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMesh.js +0 -0
  287. /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMeshBuffer.d.ts +0 -0
  288. /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMeshBuffer.js +0 -0
  289. /package/Mesher/{Geomtry → Geometry}/Shapes/Box.d.ts +0 -0
  290. /package/Mesher/{Geomtry → Geometry}/Shapes/Box.js +0 -0
  291. /package/Mesher/{Geomtry → Geometry}/Transform/TransformBox.d.ts +0 -0
  292. /package/Mesher/{Geomtry → Geometry}/Transform/TransformBox.js +0 -0
  293. /package/Mesher/{Geomtry → Geometry}/Transform/TransformQuad.d.ts +0 -0
  294. /package/Mesher/{Geomtry → Geometry}/Transform/TransformQuad.js +0 -0
  295. /package/Mesher/{Geomtry → Geometry}/Transform/TransformTriangle.d.ts +0 -0
  296. /package/Mesher/{Geomtry → Geometry}/Transform/TransformTriangle.js +0 -0
  297. /package/Mesher/{Geomtry → Geometry}/index.d.ts +0 -0
  298. /package/Mesher/{Geomtry → Geometry}/index.js +0 -0
  299. /package/Mesher/Items/{Geomtry → Geometry}/ItemMeshVertexStructCursor.d.ts +0 -0
  300. /package/Mesher/Items/{Geomtry → Geometry}/ItemMeshVertexStructCursor.js +0 -0
  301. /package/Mesher/Voxels/{Geomtry → Geometry}/CompactedSectionVoxelMesh.d.ts +0 -0
  302. /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHBuilder.d.ts +0 -0
  303. /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshVertexStructCursor.d.ts +0 -0
  304. /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshVertexStructCursor.js +0 -0
  305. /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelShaderData.d.ts +0 -0
  306. /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelShaderData.js +0 -0
  307. /package/Mesher/Voxels/Models/Nodes/Types/{GeomtryNode.types.js → GeometryNode.types.js} +0 -0
  308. /package/Voxels/{Models/CompiledVoxelModel.types.js → Functions/Geometry/GeometryLUT.types.js} +0 -0
  309. /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFace.d.ts +0 -0
  310. /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFace.js +0 -0
  311. /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFaceRegister.js +0 -0
  312. /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionQuadFace.d.ts +0 -0
  313. /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionTriangleFace.d.ts +0 -0
  314. /package/Voxels/{Models/Indexing → Geometry}/VoxelRelativeCubeIndex.d.ts +0 -0
  315. /package/Voxels/{Models/Indexing → Geometry}/VoxelRelativeCubeIndex.js +0 -0
@@ -1,87 +0,0 @@
1
- import { VoxelModelRuleBuilderRegister } from "../VoxelModelRuleBuilderRegister";
2
- export function BuildFinalInputs(model) {
3
- const stateVoxelInputs = {};
4
- const conditionalShapeStateVoxelInputs = {};
5
- for (const [voxelId, voxel] of model.voxels) {
6
- const voxelModData = model.voxelModData.get(voxelId);
7
- voxel.inputs;
8
- for (const modVoxelInputKey in voxel.inputs) {
9
- const modVoxelInput = voxel.inputs[modVoxelInputKey];
10
- const baseStates = [];
11
- for (const state in model.data.stateNodes) {
12
- const geoNodes = [];
13
- const stateNodes = model.data.stateNodes[state];
14
- for (let n = 0; n < stateNodes.length; n++) {
15
- const node = stateNodes[n];
16
- const geo = VoxelModelRuleBuilderRegister.getGeomtryFromLink(node);
17
- if (!geo)
18
- throw new Error(`Geometry does not exist`);
19
- geo.input.resetDefaults();
20
- for (const geoArg in node.inputs) {
21
- const arg = geo.input.arguments[geoArg];
22
- const keys = [];
23
- let proxyValue = null;
24
- if (arg.type === "arg-list") {
25
- keys.push(...arg.arguments);
26
- proxyValue = node.inputs[geoArg];
27
- }
28
- else {
29
- keys.push(geoArg);
30
- }
31
- geo.input.currentModel = voxel;
32
- geo.input.currentModelState = state;
33
- for (const key of keys) {
34
- const constructorArg = proxyValue ?? node.inputs[key];
35
- if (geo.input.isArgString(constructorArg)) {
36
- const arg = constructorArg.replace("@", "");
37
- if (!Object.hasOwn(modVoxelInput, arg)) {
38
- console.warn(`Could not input for voxel ${voxelId} and geo ${geo.data.id}. ${key} does not exist`);
39
- continue;
40
- }
41
- geo.input.proxy[key] = modVoxelInput[arg];
42
- continue;
43
- }
44
- geo.input.proxy[key] = constructorArg;
45
- }
46
- }
47
- geoNodes[model.stateData.geometryLinkStateMap[state][n]] =
48
- geo.input.cloneArgs();
49
- }
50
- baseStates[model.stateData.stateRecord[state]] = geoNodes;
51
- }
52
- stateVoxelInputs[voxelId] ??= [];
53
- stateVoxelInputs[voxelId][voxelModData.modRecord[modVoxelInputKey]] =
54
- baseStates;
55
- const condiotnalStates = [];
56
- for (const state in model.data.conditonalNodes) {
57
- const geoNodes = [];
58
- const stateNodes = model.data.conditonalNodes[state];
59
- for (let i = 0; i < stateNodes.length; i++) {
60
- const node = stateNodes[i];
61
- const geo = VoxelModelRuleBuilderRegister.getGeomtryFromLink(node);
62
- if (!geo)
63
- throw new Error(`Geometry does not exist`);
64
- geo.input.resetDefaults();
65
- for (const geoArg in node.inputs) {
66
- const constructorArg = node.inputs[geoArg];
67
- if (geo.input.isArgString(constructorArg)) {
68
- geo.input.proxy[geoArg] =
69
- modVoxelInput[constructorArg.replace("@", "")];
70
- continue;
71
- }
72
- geo.input.proxy[geoArg] = constructorArg;
73
- }
74
- geoNodes[i] = geo.input.cloneArgs();
75
- }
76
- condiotnalStates[model.stateData.condiotnalShapeStateRecord[state]] =
77
- geoNodes;
78
- }
79
- conditionalShapeStateVoxelInputs[voxelId] ??= [];
80
- conditionalShapeStateVoxelInputs[voxelId][voxelModData.modRecord[modVoxelInputKey]] = condiotnalStates;
81
- }
82
- }
83
- return {
84
- stateVoxelInputs,
85
- conditionalShapeStateVoxelInputs,
86
- };
87
- }
@@ -1,7 +0,0 @@
1
- import { StringPalette } from "../../../../Util/StringPalette";
2
- export declare function BuildRules(geoPalette: StringPalette): {
3
- aoIndex: import("../../Indexing/AOOcclusionFaceIndex").AOOcclusionFaceIndexData;
4
- faceCullIndex: import("../../Indexing/CulledOcclusionFaceIndex").CulledOcclusionFaceIndexData;
5
- faceCullMap: number[][];
6
- vertexHitMap: number[][][];
7
- };
@@ -1,4 +0,0 @@
1
- import { CompiledGeomtryNodes } from "../../../../../Mesher/Voxels/Models/Nodes/Types/GeomtryNode.types";
2
- import { VoxelRuleGeometryData } from "../../Classes/VoxelRulesGeometry";
3
- import { GeomtryInput } from "../../Classes/GeomtryInput";
4
- export declare function CompileGeomtryNodes(buildRules: boolean, input: GeomtryInput, data: VoxelRuleGeometryData["nodes"]): CompiledGeomtryNodes[];
@@ -1,39 +0,0 @@
1
- import { CompileBoxGeometryNode } from "./Nodes/CompileBoxGeometryNode";
2
- import { CompileQuadGeometryNode } from "./Nodes/CompileQuadGeometryNode";
3
- import { CompileTriangleGeometryNode } from "./Nodes/CompileTriangleGeometryNode";
4
- export function CompileGeomtryNodes(buildRules, input, data) {
5
- const compiled = [];
6
- for (const { node, tranform } of data) {
7
- if (node.type == "custom") {
8
- compiled.push({
9
- type: "custom",
10
- id: node.id,
11
- });
12
- input.args.push({});
13
- const argsIndex = input.args.length - 1;
14
- for (const inputArg in node.inputs) {
15
- const value = node.inputs[inputArg];
16
- if (input.isArgString(value)) {
17
- input.args[argsIndex][inputArg] = null;
18
- input.onInput(value, (value) => {
19
- input.args[argsIndex][inputArg] = value;
20
- });
21
- }
22
- else {
23
- input.args[argsIndex][inputArg] = value;
24
- }
25
- }
26
- }
27
- if (node.type == "box") {
28
- compiled.push(...CompileBoxGeometryNode(buildRules, input, node, tranform));
29
- }
30
- if (node.type == "quad") {
31
- compiled.push(CompileQuadGeometryNode(buildRules, input, node.points, node, tranform));
32
- }
33
- if (node.type == "triangle") {
34
- compiled.push(CompileTriangleGeometryNode(buildRules, input, node.points, node, tranform));
35
- }
36
- }
37
- input.orginalArgs = structuredClone(input.args);
38
- return compiled;
39
- }
@@ -1,5 +0,0 @@
1
- import { VoxelGeometryTransform } from "../../../../../../Mesher/Geomtry/Geometry.types";
2
- import { CompiledQuadVoxelGeomtryNode } from "Mesher/Voxels/Models/Nodes/Types/QuadVoxelGometryNodeTypes";
3
- import { GeomtryInput } from "../../../../../../Voxels/Models/Rules/Classes/GeomtryInput";
4
- import { VoxelBoxGeometryNode } from "Voxels/Models/VoxelModel.types";
5
- export declare function CompileBoxGeometryNode(buildRules: boolean, input: GeomtryInput, data: VoxelBoxGeometryNode, transform: VoxelGeometryTransform): CompiledQuadVoxelGeomtryNode[];
@@ -1,14 +0,0 @@
1
- import { VoxelFaceNameMap } from "../../../../../../Math";
2
- import { TransformBox } from "../../../../../../Mesher/Geomtry/Transform/TransformBox";
3
- import { CompileQuadGeometryNode } from "./CompileQuadGeometryNode";
4
- import { Box } from "../../../../../../Mesher/Geomtry/Shapes/Box";
5
- export function CompileBoxGeometryNode(buildRules, input, data, transform) {
6
- // const quads: Quad[] = [];
7
- const box = Box.Create(data.points);
8
- TransformBox(box, transform);
9
- const compiled = [];
10
- for (let i = 0; i < 6; i++) {
11
- compiled.push(CompileQuadGeometryNode(buildRules, input, box.quads[i].positions.toVec3Array(), data.faces[VoxelFaceNameMap[i]]));
12
- }
13
- return compiled;
14
- }
@@ -1,6 +0,0 @@
1
- import { Vec3Array } from "@amodx/math";
2
- import { VoxelGeometryTransform } from "../../../../../../Mesher/Geomtry/Geometry.types";
3
- import { CompiledQuadVoxelGeomtryNode } from "../../../../../../Mesher/Voxels/Models/Nodes/Types/QuadVoxelGometryNodeTypes";
4
- import { GeomtryInput } from "Voxels/Models/Rules/Classes/GeomtryInput";
5
- import { BaseVoxelQuadData } from "Voxels/Models/VoxelModel.types";
6
- export declare function CompileQuadGeometryNode(buildRules: boolean, input: GeomtryInput, points: [Vec3Array, Vec3Array, Vec3Array, Vec3Array], node: BaseVoxelQuadData, transform?: VoxelGeometryTransform): CompiledQuadVoxelGeomtryNode;
@@ -1,92 +0,0 @@
1
- import { Quad } from "../../../../../../Mesher/Geomtry/Primitives/Quad";
2
- import { getQuadWeights, mapQuadUvs } from "./CalcFunctions";
3
- import { TransformQuad } from "../../../../../../Mesher/Geomtry/Transform/TransformQuad";
4
- import { QuadVoxelGometryInputs, } from "../../../../../../Mesher/Voxels/Models/Nodes/Types/QuadVoxelGometryNodeTypes";
5
- import { OcclusionFaceRegister } from "../../../Classes/OcclusionFaceRegister";
6
- import { closestVoxelFace } from "../../../../../../Math/UtilFunctions";
7
- export function CompileQuadGeometryNode(buildRules, input, points, node, transform = {}) {
8
- const quad = transform
9
- ? TransformQuad(Quad.Create(points), transform)
10
- : Quad.Create(points);
11
- const normals = quad.normals.toArray();
12
- const averageNormal = [0, 0, 0];
13
- for (let i = 0; i < normals.length; i++) {
14
- averageNormal[0] += normals[i].x;
15
- averageNormal[1] += normals[i].y;
16
- averageNormal[2] += normals[i].z;
17
- }
18
- averageNormal[0] /= normals.length;
19
- averageNormal[1] /= normals.length;
20
- averageNormal[2] /= normals.length;
21
- // Normalize the average normal
22
- const magnitude = Math.sqrt(averageNormal[0] * averageNormal[0] +
23
- averageNormal[1] * averageNormal[1] +
24
- averageNormal[2] * averageNormal[2]);
25
- if (magnitude !== 0) {
26
- averageNormal[0] /= magnitude;
27
- averageNormal[1] /= magnitude;
28
- averageNormal[2] /= magnitude;
29
- }
30
- const closestFace = closestVoxelFace(averageNormal);
31
- const weights = getQuadWeights(quad, closestFace);
32
- const positions = quad.positions.toVec3Array();
33
- input.args.push(QuadVoxelGometryInputs.CreateArgs());
34
- const argsIndex = input.args.length - 1;
35
- let defaultUvs = [0, 0, 1, 1];
36
- if (input.isArgString(node.enabled)) {
37
- input.onInput(String(node.enabled), (value) => (input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.Enabled] =
38
- value));
39
- }
40
- else {
41
- node.enabled !== undefined &&
42
- (input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.Enabled] =
43
- node.enabled);
44
- }
45
- if (input.isArgString(node.doubleSided)) {
46
- input.onInput(String(node.doubleSided), (value) => (input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.DoubleSided] =
47
- value));
48
- }
49
- else {
50
- node.doubleSided !== undefined &&
51
- (input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.DoubleSided] =
52
- node.doubleSided);
53
- }
54
- if (input.isArgString(node.rotation)) {
55
- input.onInput(String(node.rotation), (value) => {
56
- input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.Rotation] = value;
57
- input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.UVs] = mapQuadUvs(defaultUvs, value, transform);
58
- });
59
- }
60
- else {
61
- node.rotation &&
62
- (input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.Rotation] =
63
- node.rotation);
64
- }
65
- if (input.isArgString(node.uv)) {
66
- const defaultInput = input.geomtry.arguments[node.uv.substring(1)];
67
- if (defaultInput.type == "box-uv" && defaultInput.default) {
68
- input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.UVs] = mapQuadUvs(defaultInput.default, input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.Rotation], transform);
69
- defaultUvs = defaultInput.default;
70
- }
71
- input.onInput(String(node.uv), (value) => {
72
- input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.UVs] = mapQuadUvs(value, input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.Rotation], transform);
73
- });
74
- }
75
- else {
76
- input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.UVs] = mapQuadUvs(node.uv, input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.Rotation], transform);
77
- defaultUvs = node.uv;
78
- }
79
- if (input.isArgString(node.texture)) {
80
- input.onInput(String(node.texture), (value) => (input.args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.Texture] =
81
- value));
82
- }
83
- return {
84
- type: "quad",
85
- positions,
86
- weights,
87
- closestFace,
88
- trueFaceIndex: buildRules
89
- ? OcclusionFaceRegister.getQuadId(quad)
90
- : undefined,
91
- };
92
- }
@@ -1,6 +0,0 @@
1
- import { Vec3Array } from "@amodx/math";
2
- import { VoxelGeometryTransform } from "../../../../../../Mesher/Geomtry/Geometry.types";
3
- import { CompiledTriangleVoxelGeomtryNode } from "../../../../../../Mesher/Voxels/Models/Nodes/Types/TriangleVoxelGometryNodeTypes";
4
- import { GeomtryInput } from "../../../Classes/GeomtryInput";
5
- import { BaseVoxelTriangleData } from "../../../../VoxelModel.types";
6
- export declare function CompileTriangleGeometryNode(buildRules: boolean, input: GeomtryInput, points: [Vec3Array, Vec3Array, Vec3Array], node: BaseVoxelTriangleData, transform?: VoxelGeometryTransform): CompiledTriangleVoxelGeomtryNode;
@@ -1,115 +0,0 @@
1
- import { Triangle } from "../../../../../../Mesher/Geomtry/Primitives/Triangle";
2
- import { getVertexWeights } from "./CalcFunctions";
3
- import { TransformTriangle } from "../../../../../../Mesher/Geomtry/Transform/TransformTriangle";
4
- import { TriangleVoxelGometryInputs, } from "../../../../../../Mesher/Voxels/Models/Nodes/Types/TriangleVoxelGometryNodeTypes";
5
- import { OcclusionFaceRegister } from "../../../Classes/OcclusionFaceRegister";
6
- import { closestVoxelFace } from "../../../../../../Math/UtilFunctions";
7
- export function CompileTriangleGeometryNode(buildRules, input, points, node, transform) {
8
- const triangle = transform
9
- ? TransformTriangle(Triangle.Create(points), transform)
10
- : Triangle.Create(points);
11
- const normals = triangle.normals.toArray();
12
- const averageNormal = [0, 0, 0];
13
- for (let i = 0; i < normals.length; i++) {
14
- averageNormal[0] += normals[i].x;
15
- averageNormal[1] += normals[i].y;
16
- averageNormal[2] += normals[i].z;
17
- }
18
- averageNormal[0] /= normals.length;
19
- averageNormal[1] /= normals.length;
20
- averageNormal[2] /= normals.length;
21
- // Normalize the average normal
22
- const magnitude = Math.sqrt(averageNormal[0] * averageNormal[0] +
23
- averageNormal[1] * averageNormal[1] +
24
- averageNormal[2] * averageNormal[2]);
25
- if (magnitude !== 0) {
26
- averageNormal[0] /= magnitude;
27
- averageNormal[1] /= magnitude;
28
- averageNormal[2] /= magnitude;
29
- }
30
- const closestFace = closestVoxelFace(averageNormal);
31
- const weights = [];
32
- const positions = triangle.positions.toVec3Array();
33
- for (let i = 0; i < positions.length; i++) {
34
- weights[i] = getVertexWeights(closestFace, ...positions[i]);
35
- }
36
- input.args.push(TriangleVoxelGometryInputs.CreateArgs());
37
- const argsIndex = input.args.length - 1;
38
- let defaultUvs = [
39
- [0, 0],
40
- [0, 0],
41
- [0, 0],
42
- ];
43
- if (input.isArgString(node.doubleSided)) {
44
- input.onInput(String(node.doubleSided), (value) => {
45
- input.args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.DoubleSided] =
46
- value;
47
- });
48
- }
49
- else {
50
- input.args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.DoubleSided] =
51
- Boolean(node.doubleSided);
52
- }
53
- if (input.isArgString(node.rotation)) {
54
- input.onInput(String(node.rotation), (value) => {
55
- input.args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.Rotation] =
56
- value;
57
- /* args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.UVs] = mapQuadUvs(
58
- defaultUvs,
59
- value,
60
- tranform
61
- ); */
62
- input.args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.UVs] =
63
- defaultUvs;
64
- });
65
- }
66
- else {
67
- node.rotation &&
68
- (input.args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.Rotation] =
69
- node.rotation);
70
- }
71
- if (input.isArgString(node.uv)) {
72
- const defaultInput = input.geomtry.arguments[node.uv.substring(1)];
73
- if (defaultInput.type == "uv" && defaultInput.default) {
74
- /* args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.UVs] = mapQuadUvs(
75
- defaultInput.default,
76
- args[argsIndex][QuadVoxelGometryInputs.ArgIndexes.Rotation],
77
- tranform
78
- ); */
79
- input.args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.UVs] =
80
- defaultInput.default;
81
- defaultInput.default = defaultUvs;
82
- }
83
- input.onInput(String(node.uv), (value) => {
84
- /* args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.UVs] = mapQuadUvs(
85
- value,
86
- args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.Rotation],
87
- transform
88
- );
89
- */
90
- input.args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.UVs] = value;
91
- });
92
- }
93
- else {
94
- /* args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.UVs] = mapQuadUvs(
95
- node.uv as Vec4Array,
96
- args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.Rotation],
97
- tranform
98
- ); */
99
- input.args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.UVs] = node.uv;
100
- defaultUvs = node.uv;
101
- }
102
- if (input.isArgString(node.texture)) {
103
- input.onInput(String(node.texture), (value) => (input.args[argsIndex][TriangleVoxelGometryInputs.ArgIndexes.Texture] =
104
- value));
105
- }
106
- return {
107
- type: "triangle",
108
- positions,
109
- weights,
110
- closestFace,
111
- trueFaceIndex: buildRules
112
- ? OcclusionFaceRegister.getTriangleId(triangle)
113
- : undefined,
114
- };
115
- }
@@ -1,18 +0,0 @@
1
- import { StringPalette } from "../../../Util/StringPalette";
2
- import { VoxelGeometryData, VoxelGeometryLinkData, VoxelModelConstructorData, VoxelModelData } from "../VoxelModel.types";
3
- import { VoxelRuleGeometry } from "./Classes/VoxelRulesGeometry";
4
- import { VoxelRulesModoel } from "./Classes/VoxelRulesModel";
5
- export declare class VoxelModelRuleBuilderRegister {
6
- static geometryPalette: StringPalette;
7
- static getGeometryLinkId: (node: VoxelGeometryLinkData) => string;
8
- static voxels: Map<string, {
9
- id: string;
10
- data: VoxelModelConstructorData;
11
- }[]>;
12
- static geometry: Map<string, VoxelRuleGeometry>;
13
- static models: Map<string, VoxelRulesModoel>;
14
- static registerGeometry(...geometry: VoxelGeometryData[]): void;
15
- static getGeomtryFromLink(link: VoxelGeometryLinkData): VoxelRuleGeometry | undefined;
16
- static registerModels(...models: VoxelModelData[]): void;
17
- static registerVoxel(id: string, data: VoxelModelConstructorData): void;
18
- }
@@ -1,202 +0,0 @@
1
- import { VoxelFaceNameArray } from "../../../Math";
2
- import { StringPalette } from "../../../Util/StringPalette";
3
- import { VoxelRuleGeometry } from "./Classes/VoxelRulesGeometry";
4
- import { VoxelRulesModoel } from "./Classes/VoxelRulesModel";
5
- const addGeo = (model, stateId, nodes) => {
6
- const registred = [];
7
- for (const geoLinkNode of nodes) {
8
- const geo = VoxelModelRuleBuilderRegister.geometry.get(geoLinkNode.geometryId);
9
- if (!geo)
10
- throw new Error(`Geometry ${geoLinkNode.geometryId} is not registered.`);
11
- const newId = getGeometryLinkId(geoLinkNode);
12
- if (VoxelModelRuleBuilderRegister.geometry.has(newId))
13
- continue;
14
- registred.push([stateId, newId]);
15
- if (!VoxelModelRuleBuilderRegister.geometryPalette.isRegistered(newId))
16
- VoxelModelRuleBuilderRegister.geometryPalette.register(newId);
17
- const newData = structuredClone(geo.data);
18
- newData.cullingProcedure = geoLinkNode?.cullingProcedure
19
- ? geoLinkNode?.cullingProcedure
20
- : newData.cullingProcedure;
21
- for (const node of newData.nodes) {
22
- node.tranform = {
23
- ...(geoLinkNode.position ? { position: geoLinkNode.position } : {}),
24
- ...(geoLinkNode.scale ? { scale: geoLinkNode.scale } : {}),
25
- ...(geoLinkNode.rotation ? { rotation: geoLinkNode.rotation } : {}),
26
- ...(geoLinkNode.rotationPivot
27
- ? { rotationPivot: geoLinkNode.rotationPivot }
28
- : {}),
29
- ...(geoLinkNode.flip ? { flip: geoLinkNode.flip } : {}),
30
- };
31
- }
32
- VoxelModelRuleBuilderRegister.geometry.set(newId, new VoxelRuleGeometry(newId, newData));
33
- continue;
34
- }
35
- return registred;
36
- };
37
- const getGeometryLinkId = (node) => {
38
- return `${node.geometryId}${node.cullingProcedure ? JSON.stringify(node.cullingProcedure) : " "}${node.position ? `-p${node.position.toString()}` : ""}${node.rotation ? `-r${node.rotation.toString()}` : ""}${node.scale ? `-s${node.scale.toString()}` : ""}`.trim();
39
- };
40
- export class VoxelModelRuleBuilderRegister {
41
- static geometryPalette = new StringPalette();
42
- static getGeometryLinkId = getGeometryLinkId;
43
- static voxels = new Map();
44
- static geometry = new Map();
45
- static models = new Map();
46
- static registerGeometry(...geometry) {
47
- for (const geo of geometry) {
48
- if (!this.geometryPalette.isRegistered(geo.id))
49
- this.geometryPalette.register(geo.id);
50
- const divisor = geo.divisor ? geo.divisor : false;
51
- if (divisor) {
52
- for (const node of geo.nodes) {
53
- if (node.type == "box") {
54
- let d = node.divisor ? node.divisor : divisor;
55
- node.points[0][0] /= d[0];
56
- node.points[0][1] /= d[1];
57
- node.points[0][2] /= d[2];
58
- node.points[1][0] /= d[0];
59
- node.points[1][1] /= d[1];
60
- node.points[1][2] /= d[2];
61
- for (const faceName of VoxelFaceNameArray) {
62
- const data = node.faces[faceName];
63
- if (Array.isArray(data.uv)) {
64
- data.uv[0] /= d[0];
65
- data.uv[1] /= d[1];
66
- data.uv[2] /= d[0];
67
- data.uv[3] /= d[1];
68
- }
69
- }
70
- }
71
- if (node.type == "quad") {
72
- let d = node.divisor ? node.divisor : divisor;
73
- for (let i = 0; i < 4; i++) {
74
- const point = node.points[i];
75
- point[0] /= d[0];
76
- point[1] /= d[1];
77
- point[2] /= d[2];
78
- }
79
- if (Array.isArray(node.uv)) {
80
- if (Array.isArray(node.uv[0])) {
81
- let uvs = node.uv;
82
- for (let i = 0; i < node.uv.length; i++) {
83
- uvs[i][0] /= d[0];
84
- uvs[i][1] /= d[1];
85
- }
86
- }
87
- else {
88
- let uvs = node.uv;
89
- uvs[0] /= d[0];
90
- uvs[1] /= d[1];
91
- uvs[2] /= d[0];
92
- uvs[3] /= d[1];
93
- }
94
- }
95
- }
96
- if (node.type == "triangle") {
97
- let d = node.divisor ? node.divisor : divisor;
98
- for (let i = 0; i < 4; i++) {
99
- const point = node.points[i];
100
- point[0] /= d[0];
101
- point[1] /= d[1];
102
- point[2] /= d[2];
103
- }
104
- if (Array.isArray(node.uv)) {
105
- if (Array.isArray(node.uv[0])) {
106
- let uvs = node.uv;
107
- for (let i = 0; i < node.uv.length; i++) {
108
- uvs[i][0] /= d[0];
109
- uvs[i][1] /= d[1];
110
- }
111
- }
112
- }
113
- }
114
- }
115
- }
116
- this.geometry.set(geo.id, new VoxelRuleGeometry(geo.id, {
117
- ogData: geo,
118
- id: geo.id,
119
- cullingProcedure: geo.cullingProcedure
120
- ? geo.cullingProcedure
121
- : { type: "default" },
122
- nodes: geo.nodes.map((node) => ({
123
- node,
124
- tranform: {},
125
- })),
126
- }));
127
- }
128
- }
129
- static getGeomtryFromLink(link) {
130
- return this.geometry.get(getGeometryLinkId(link));
131
- }
132
- static registerModels(...models) {
133
- for (const model of models) {
134
- const rulesModel = new VoxelRulesModoel(model);
135
- this.models.set(model.id, rulesModel);
136
- const divisor = model.divisor ? model.divisor : null;
137
- if (divisor) {
138
- for (const stateId in model.stateNodes) {
139
- const nodes = model.stateNodes[stateId];
140
- for (const node of nodes) {
141
- const d = "divisor" in node ? node.divisor : divisor;
142
- if (node.position) {
143
- node.position[0] /= d[0];
144
- node.position[1] /= d[1];
145
- node.position[2] /= d[2];
146
- }
147
- if (node.rotationPivot) {
148
- node.rotationPivot[0] /= d[0];
149
- node.rotationPivot[1] /= d[1];
150
- node.rotationPivot[2] /= d[2];
151
- }
152
- }
153
- }
154
- for (const stateId in model.conditonalNodes) {
155
- const nodes = model.conditonalNodes[stateId];
156
- for (const node of nodes) {
157
- const d = "divisor" in node ? node.divisor : divisor;
158
- if (node.position) {
159
- node.position[0] /= d[0];
160
- node.position[1] /= d[1];
161
- node.position[2] /= d[2];
162
- }
163
- if (node.rotationPivot) {
164
- node.rotationPivot[0] /= d[0];
165
- node.rotationPivot[1] /= d[1];
166
- node.rotationPivot[2] /= d[2];
167
- }
168
- }
169
- }
170
- if (model.effects) {
171
- for (const effect of model.effects) {
172
- if (effect.type == "fx-points") {
173
- for (const state in effect.values) {
174
- for (const point of effect.values[state]) {
175
- point[0] /= divisor[0];
176
- point[1] /= divisor[1];
177
- point[2] /= divisor[2];
178
- }
179
- }
180
- }
181
- }
182
- }
183
- }
184
- for (const stateId in model.stateNodes) {
185
- const nodes = model.stateNodes[stateId];
186
- addGeo(model, stateId, nodes).forEach((_) => rulesModel.registerShapeState(..._));
187
- }
188
- for (const stateId in model.conditonalNodes) {
189
- const nodes = model.conditonalNodes[stateId];
190
- addGeo(model, stateId, nodes).forEach((_) => rulesModel.registerCondiotnalNode(..._));
191
- }
192
- }
193
- }
194
- static registerVoxel(id, data) {
195
- let voxelModels = this.voxels.get(data.id);
196
- if (!voxelModels) {
197
- voxelModels = [];
198
- this.voxels.set(data.id, voxelModels);
199
- }
200
- voxelModels.push({ id, data });
201
- }
202
- }
@@ -1,10 +0,0 @@
1
- import { LogicStatementReader } from "./LogicStatementReader";
2
- import { StateSchema } from "./Schema/StateSchema";
3
- import { StateLogicStatement } from "./State.types";
4
- export declare class CondtionalTreeReader {
5
- schema: StateSchema;
6
- tree: any[];
7
- statements: LogicStatementReader[];
8
- constructor(schema: StateSchema, statements: StateLogicStatement[], tree: any[]);
9
- getState(): number;
10
- }
@@ -1,23 +0,0 @@
1
- import { LogicStatementReader } from "./LogicStatementReader";
2
- export class CondtionalTreeReader {
3
- schema;
4
- tree;
5
- statements = [];
6
- constructor(schema, statements, tree) {
7
- this.schema = schema;
8
- this.tree = tree;
9
- for (const statement of statements) {
10
- this.statements.push(new LogicStatementReader(schema, statement));
11
- }
12
- }
13
- getState() {
14
- if (!this.tree.length)
15
- return -1;
16
- let curretNode = this.tree;
17
- for (let i = 0; i < this.statements.length; i++) {
18
- const value = this.statements[i].getValue(this);
19
- curretNode = curretNode[value ? 1 : 0];
20
- }
21
- return curretNode;
22
- }
23
- }
@@ -1,9 +0,0 @@
1
- import { CondtionalTreeReader } from "./CondiotnalTreeReader";
2
- import { StateSchema } from "./Schema/StateSchema";
3
- import { StateLogicStatement } from "./State.types";
4
- export declare class LogicStatementReader {
5
- schema: StateSchema;
6
- statement: StateLogicStatement;
7
- constructor(schema: StateSchema, statement: StateLogicStatement);
8
- getValue(treeReader: CondtionalTreeReader): boolean;
9
- }