@divinevoxel/vlox 0.0.78 → 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.
- package/Builder/Tools/Wrench/WrenchTool.js +26 -21
- package/Builder/VoxelBuildSpace.d.ts +2 -2
- package/Builder/VoxelBuildSpace.js +4 -4
- package/Builder/World/InitTasks.js +1 -1
- package/Cache/Cache.types.d.ts +0 -4
- package/Cache/CacheManager.d.ts +1 -2
- package/Cache/CacheManager.js +0 -2
- package/Contexts/Base/Main/InitDataGenerator.js +10 -2
- package/Contexts/Base/Remote/DataSync.types.d.ts +10 -4
- package/Contexts/Base/Remote/InitDataSync.js +10 -20
- package/Init/StartMesher.js +2 -1
- package/Init/StartRenderer.js +2 -1
- package/Mesher/{Geomtry → Geometry}/Geometry.types.d.ts +1 -0
- package/Mesher/InitMesher.d.ts +1 -2
- package/Mesher/InitMesher.js +7 -14
- package/Mesher/Items/{Geomtry → Geometry}/ItemGeometryBuilder.d.ts +2 -2
- package/Mesher/Items/{Geomtry → Geometry}/ItemGeometryBuilder.js +1 -1
- package/Mesher/Items/MeshTexture.d.ts +2 -1
- package/Mesher/Items/MeshTexture.js +7 -6
- package/Mesher/Items/MeshTextureO.js +1 -1
- package/Mesher/Items/Models/ItemModelBuilder.d.ts +1 -1
- package/Mesher/Items/Models/ItemModelBuilder.js +2 -2
- package/Mesher/Voxels/Base/CompactTemplateMesh.js +1 -1
- package/Mesher/Voxels/Base/CompactVoxelSectionMesh.js +2 -2
- package/Mesher/Voxels/Base/MeshSectionBase.js +1 -3
- package/Mesher/Voxels/{Geomtry → Geometry}/CompactedSectionVoxelMesh.js +3 -3
- package/Mesher/Voxels/{Geomtry → Geometry}/VoxelGeometryBuilder.d.ts +2 -2
- package/Mesher/Voxels/{Geomtry → Geometry}/VoxelGeometryBuilder.js +1 -1
- package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHBuilder.js +1 -1
- package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHStructCursor.d.ts +1 -1
- package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHStructCursor.js +1 -1
- package/Mesher/Voxels/MeshTemplate.js +0 -3
- package/Mesher/Voxels/MeshVoxel.js +0 -2
- package/Mesher/Voxels/Models/Common/Calc/CalcConstants.d.ts +1 -1
- package/Mesher/Voxels/Models/Common/Calc/CalcConstants.js +2 -2
- package/Mesher/Voxels/Models/Common/Calc/FaceDataCalc.js +4 -1
- package/Mesher/Voxels/Models/Common/Faces/CullRulledFace.js +29 -18
- package/Mesher/Voxels/Models/Common/Faces/ShadeRulelessFace.d.ts +1 -1
- package/Mesher/Voxels/Models/Common/Faces/ShadeRulledFace.d.ts +1 -1
- package/Mesher/Voxels/Models/Common/Faces/ShadeRulledFace.js +31 -21
- package/Mesher/Voxels/Models/Common/GetTexture.d.ts +4 -4
- package/Mesher/Voxels/Models/Nodes/Custom/Liquid/FlowGradient.d.ts +1 -1
- package/Mesher/Voxels/Models/Nodes/Custom/Liquid/FlowGradient.js +1 -1
- package/Mesher/Voxels/Models/Nodes/Custom/Liquid/{LiquidGeomtryNode.d.ts → LiquidGeometryNode.d.ts} +2 -2
- package/Mesher/Voxels/Models/Nodes/Custom/Liquid/{LiquidGeomtryNode.js → LiquidGeometryNode.js} +5 -5
- package/Mesher/Voxels/Models/Nodes/Default/QuadVoxelGeometryNode.d.ts +3 -3
- package/Mesher/Voxels/Models/Nodes/Default/QuadVoxelGeometryNode.js +2 -2
- package/Mesher/Voxels/Models/Nodes/Default/TriangleVoxelGeometryNode.d.ts +3 -3
- package/Mesher/Voxels/Models/Nodes/Default/TriangleVoxelGeometryNode.js +2 -2
- package/Mesher/Voxels/Models/Nodes/GeometryNode.d.ts +3 -3
- package/Mesher/Voxels/Models/Nodes/GeometryNode.js +3 -3
- package/Mesher/Voxels/Models/Nodes/Types/GeometryNode.types.d.ts +7 -0
- package/Mesher/Voxels/Models/Nodes/Types/QuadVoxelGometryNodeTypes.d.ts +3 -3
- package/Mesher/Voxels/Models/Nodes/Types/TriangleVoxelGometryNodeTypes.d.ts +2 -2
- package/Mesher/Voxels/Models/Nodes/VoxelGeometryConstructor.d.ts +2 -3
- package/Mesher/Voxels/Models/Nodes/VoxelGeometryConstructor.js +6 -5
- package/Mesher/Voxels/Models/Procedures/Default/ConsistentRotationTextureProcedure.d.ts +4 -4
- package/Mesher/Voxels/Models/Procedures/Default/OutlinedTextureProcedure.d.ts +4 -4
- package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.d.ts +4 -4
- package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.js +20 -6
- package/Mesher/Voxels/Models/Procedures/TextureProcedure.d.ts +2 -2
- package/Mesher/Voxels/Models/VoxelConstructor.d.ts +1 -16
- package/Mesher/Voxels/Models/VoxelConstructor.js +50 -56
- package/Mesher/Voxels/Models/VoxelGeometryBuilderCacheSpace.d.ts +3 -6
- package/Mesher/Voxels/Models/VoxelGeometryBuilderCacheSpace.js +40 -44
- package/Mesher/Voxels/Models/VoxelModelBuilder.d.ts +4 -4
- package/Mesher/Voxels/Models/VoxelModelBuilder.js +4 -4
- package/Mesher/Voxels/Models/VoxelModelConstructorRegister.d.ts +1 -14
- package/Mesher/Voxels/Models/VoxelModelConstructorRegister.js +7 -21
- package/Mesher/Voxels/Models/VoxelModelEffect.d.ts +1 -7
- package/Mesher/Voxels/Models/VoxelModelEffect.js +23 -26
- package/Renderer/Classes/DVESectionMeshes.d.ts +1 -1
- package/Renderer/MeshManager.js +1 -1
- package/Settings/EngineSettings.types.d.ts +2 -1
- package/Settings/EngineSettings.types.js +1 -0
- package/Stats/EngineStats.d.ts +5 -3
- package/Stats/EngineStats.js +8 -6
- package/Templates/Archive/ArchivedVoxelTemplate.d.ts +1 -1
- package/Templates/Archive/ArchivedVoxelTemplate.js +5 -5
- package/Templates/Archive/Functions/CreateArchivedTemplate.d.ts +1 -1
- package/Templates/Archive/Functions/CreateArchivedTemplate.js +2 -2
- package/Templates/Cursor/TemplateCursor.d.ts +1 -1
- package/Templates/Cursor/TemplateCursor.js +1 -1
- package/Templates/Full/FullVoxelTemplate.d.ts +1 -1
- package/Templates/Full/FullVoxelTemplate.js +1 -1
- package/Templates/Full/Functions/CreateFullTemplate.d.ts +1 -1
- package/Templates/Selection/VoxelBFSSelection.d.ts +1 -1
- package/Templates/Selection/VoxelBFSSelection.js +1 -1
- package/Templates/Selection/VoxelBoundsSelection.d.ts +1 -1
- package/Templates/Selection/VoxelBoundsSelection.js +1 -1
- package/Templates/Selection/VoxelPointSelection.d.ts +1 -1
- package/Templates/Selection/VoxelPointSelection.js +1 -1
- package/Templates/Selection/VoxelSelection.d.ts +1 -1
- package/Templates/Selection/VoxelSurfaceSelection.d.ts +1 -1
- package/Templates/Selection/VoxelSurfaceSelection.js +1 -1
- package/Templates/Selection/VoxelTemplateSelection.d.ts +1 -1
- package/Templates/Selection/VoxelTemplateSelection.js +1 -1
- package/Templates/Shapes/Selections/BoxVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/BoxVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/ConeVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/ConeVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/SphereVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/SphereVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/TorusVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/TorusVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/VoxelShapeTemplate.d.ts +1 -1
- package/Templates/Shapes/VoxelShapeTemplate.js +1 -1
- package/Templates/VoxelTemplates.types.d.ts +1 -1
- package/Textures/Functions/BuildTextureData.js +4 -52
- package/Tools/Brush/Brush.js +5 -5
- package/Util/StringPalette.js +2 -0
- package/Voxels/Archive/VoxelPaletteArchiveReader.js +7 -6
- package/Voxels/Archive/VoxelPaletteArechive.js +8 -8
- package/Voxels/Cursor/DataCursor.interface.d.ts +1 -1
- package/Voxels/Cursor/VoxelCursor.interface.d.ts +0 -2
- package/Voxels/Cursor/VoxelCursor.interface.js +14 -16
- package/Voxels/Cursor/VoxelCursor.js +5 -5
- package/Voxels/Data/GeometryLUT.d.ts +32 -0
- package/Voxels/Data/GeometryLUT.js +50 -0
- package/Voxels/Data/VoxelLUT.d.ts +83 -0
- package/Voxels/Data/VoxelLUT.js +119 -0
- package/Voxels/Data/VoxelTagsRegister.d.ts +2 -2
- package/Voxels/Data/VoxelTagsRegister.js +2 -2
- package/Voxels/Functions/BuildLUTs.d.ts +6 -0
- package/Voxels/Functions/BuildLUTs.js +361 -0
- package/Voxels/Functions/BuildTagData.d.ts +4 -2
- package/Voxels/Functions/BuildTagData.js +15 -32
- package/Voxels/Functions/Geometry/BuildGeometryLUT.d.ts +11 -0
- package/Voxels/Functions/Geometry/BuildGeometryLUT.js +395 -0
- package/Voxels/{Models/Rules/Functions/Compile/Nodes → Functions/Geometry}/CalcFunctions.d.ts +3 -3
- package/Voxels/{Models/Rules/Functions/Compile/Nodes → Functions/Geometry}/CalcFunctions.js +2 -2
- package/Voxels/Functions/Geometry/Compile/BuildCompiled.d.ts +4 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiled.js +25 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledBox.d.ts +4 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledBox.js +13 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledQuad.d.ts +4 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledQuad.js +41 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledTri.d.ts +4 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledTri.js +44 -0
- package/Voxels/Functions/Geometry/GeometryLUT.types.d.ts +7 -0
- package/Voxels/Functions/Geometry/Inputs/BaseFunctions.d.ts +4 -0
- package/Voxels/Functions/Geometry/Inputs/BaseFunctions.js +28 -0
- package/Voxels/Functions/Geometry/Inputs/BuildBoxInputs.d.ts +5 -0
- package/Voxels/Functions/Geometry/Inputs/BuildBoxInputs.js +8 -0
- package/Voxels/Functions/Geometry/Inputs/BuildCustomInputs.d.ts +5 -0
- package/Voxels/Functions/Geometry/Inputs/BuildCustomInputs.js +41 -0
- package/Voxels/Functions/Geometry/Inputs/BuildQuadInputs.d.ts +5 -0
- package/Voxels/Functions/Geometry/Inputs/BuildQuadInputs.js +103 -0
- package/Voxels/Functions/Geometry/Inputs/BuildTriangleInputs.d.ts +5 -0
- package/Voxels/Functions/Geometry/Inputs/BuildTriangleInputs.js +101 -0
- package/Voxels/Functions/Geometry/Inputs/BuldInputs.d.ts +4 -0
- package/Voxels/Functions/Geometry/Inputs/BuldInputs.js +22 -0
- package/Voxels/Functions/Geometry/Rules/BuildRules.d.ts +1 -0
- package/Voxels/{Models/Rules/Functions → Functions/Geometry/Rules}/BuildRules.js +23 -23
- package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFaceRegister.d.ts +2 -2
- package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionQuadFace.js +1 -1
- package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionTriangleFace.js +1 -1
- package/Voxels/{Models/Indexing → Geometry}/AOOcclusionFaceIndex.d.ts +2 -2
- package/Voxels/Geometry/AOOcclusionFaceIndex.js +28 -0
- package/Voxels/{Models/Indexing → Geometry}/CulledOcclusionFaceIndex.d.ts +2 -2
- package/Voxels/Geometry/CulledOcclusionFaceIndex.js +27 -0
- package/Voxels/Geometry/VoxelGeometry.types.d.ts +105 -0
- package/Voxels/Geometry/VoxelGeometry.types.js +1 -0
- package/Voxels/Indexes/VoxelIndex.js +15 -21
- package/Voxels/InitVoxelData.d.ts +4 -3
- package/Voxels/InitVoxelData.js +53 -110
- package/Voxels/Interaction/Functions/PickVoxel.js +1 -1
- package/Voxels/Logic/Classes/Types/VoxelLogicStateType.js +2 -2
- package/Voxels/Logic/Classes/VoxelLogic.d.ts +2 -2
- package/Voxels/Logic/Classes/VoxelLogic.js +2 -2
- package/Voxels/Logic/VoxelLogicRegister.js +2 -2
- package/Voxels/Models/Defaults/CubeVoxelGeometry.d.ts +1 -1
- package/Voxels/Models/Defaults/CubeVoxelModels.d.ts +1 -0
- package/Voxels/Models/Defaults/CubeVoxelModels.js +45 -0
- package/Voxels/Models/Defaults/Examples.d.ts +2 -1
- package/Voxels/Models/Defaults/Examples.js +28 -28
- package/Voxels/Models/Defaults/FarmVoxelModels.d.ts +3 -2
- package/Voxels/Models/Defaults/FarmVoxelModels.js +3 -3
- package/Voxels/Models/Defaults/LiquidVoxelModel.d.ts +2 -1
- package/Voxels/Models/Defaults/PanelVoxelGeometry.d.ts +1 -1
- package/Voxels/Models/VoxelModel.types.d.ts +2 -109
- package/Voxels/State/{Schema → Reltional}/Conditions/SameVoxelConditions.d.ts +2 -2
- package/Voxels/State/Reltional/Conditions/SameVoxelConditions.js +19 -0
- package/Voxels/State/Reltional/Conditions/ShapeStateSchemaRelationsCondition.d.ts +6 -0
- package/Voxels/State/Reltional/Conditions/ShapeStateSchemaRelationsCondition.js +6 -0
- package/Voxels/State/Reltional/ReltionalStateBuilder.d.ts +18 -0
- package/Voxels/State/Reltional/ReltionalStateBuilder.js +42 -0
- package/Voxels/State/Schema/BinarySchema.d.ts +1 -0
- package/Voxels/State/Schema/BinarySchema.js +3 -0
- package/Voxels/State/State.types.d.ts +0 -25
- package/Voxels/State/State.types.js +1 -22
- package/Voxels/State/VoxelSchemas.d.ts +22 -0
- package/Voxels/State/VoxelSchemas.js +60 -0
- package/Voxels/Types/PaintVoxelData.js +55 -45
- package/Voxels/Types/VoxelModelCompiledData.types.d.ts +4 -22
- package/World/Archive/Classes/ImportedSection.js +8 -8
- package/World/Archive/Functions/Sector/ArchiveSector.js +3 -3
- package/World/Cursor/SectionCursor.d.ts +1 -1
- package/World/Cursor/SectionCursor.js +1 -1
- package/World/Cursor/SectorCursor.d.ts +1 -1
- package/World/Cursor/SectorCursor.js +1 -1
- package/World/Cursor/WorldCursor.d.ts +1 -1
- package/World/Cursor/WorldCursor.js +1 -1
- package/World/Lock/Function/LockSectors.d.ts +1 -1
- package/World/Lock/Function/UnLockSectors.d.ts +1 -1
- package/World/SnapShot/SectionSnapShotCursor.d.ts +1 -1
- package/World/SnapShot/SectionSnapShotCursor.js +1 -1
- package/World/SnapShot/SnapShots.d.ts +1 -1
- package/World/SnapShot/SnapShots.js +1 -1
- package/WorldSimulation/Dimensions/SimulationSector.d.ts +1 -1
- package/WorldSimulation/Dimensions/SimulationSector.js +2 -2
- package/WorldSimulation/Tools/SimulationBrush.js +9 -9
- package/WorldSimulation/Voxels/Behaviors/Types/CropVoxelBehavior.js +4 -2
- package/WorldSimulation/Voxels/Behaviors/Types/FarmlandVoxelBehavior.js +5 -2
- package/WorldSimulation/WorldSimulation.d.ts +1 -0
- package/WorldSimulation/WorldSimulation.js +2 -1
- package/package.json +1 -1
- package/Mesher/Voxels/Models/Nodes/Types/GeomtryNode.types.d.ts +0 -7
- package/Voxels/Data/VoxelPalettesRegister.d.ts +0 -18
- package/Voxels/Data/VoxelPalettesRegister.js +0 -24
- package/Voxels/Functions/BuildPaletteData.d.ts +0 -6
- package/Voxels/Functions/BuildPaletteData.js +0 -87
- package/Voxels/Functions/BuildStateData.d.ts +0 -23
- package/Voxels/Functions/BuildStateData.js +0 -327
- package/Voxels/Models/CompiledVoxelModel.types.d.ts +0 -46
- package/Voxels/Models/Indexing/AOOcclusionFaceIndex.js +0 -28
- package/Voxels/Models/Indexing/CulledOcclusionFaceIndex.js +0 -27
- package/Voxels/Models/Rules/Classes/GeomtryInput.d.ts +0 -16
- package/Voxels/Models/Rules/Classes/GeomtryInput.js +0 -85
- package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.d.ts +0 -22
- package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.js +0 -15
- package/Voxels/Models/Rules/Classes/VoxelRulesModel.d.ts +0 -19
- package/Voxels/Models/Rules/Classes/VoxelRulesModel.js +0 -29
- package/Voxels/Models/Rules/Functions/BuildFinalInputs.d.ts +0 -5
- package/Voxels/Models/Rules/Functions/BuildFinalInputs.js +0 -87
- package/Voxels/Models/Rules/Functions/BuildRules.d.ts +0 -7
- package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.d.ts +0 -4
- package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.js +0 -39
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.d.ts +0 -5
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.js +0 -14
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.d.ts +0 -6
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.js +0 -92
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.d.ts +0 -6
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.js +0 -115
- package/Voxels/Models/Rules/VoxelModelRuleBuilderRegister.d.ts +0 -18
- package/Voxels/Models/Rules/VoxelModelRuleBuilderRegister.js +0 -202
- package/Voxels/State/CondiotnalTreeReader.d.ts +0 -10
- package/Voxels/State/CondiotnalTreeReader.js +0 -23
- package/Voxels/State/LogicStatementReader.d.ts +0 -9
- package/Voxels/State/LogicStatementReader.js +0 -50
- package/Voxels/State/Schema/Conditions/SameVoxelConditions.js +0 -19
- package/Voxels/State/Schema/Conditions/ShapeStateSchemaRelationsCondition.d.ts +0 -6
- package/Voxels/State/Schema/Conditions/ShapeStateSchemaRelationsCondition.js +0 -6
- package/Voxels/State/Schema/ShapeStateRelationsNode.d.ts +0 -10
- package/Voxels/State/Schema/ShapeStateRelationsNode.js +0 -26
- package/Voxels/State/Schema/StateSchema.d.ts +0 -13
- package/Voxels/State/Schema/StateSchema.js +0 -17
- package/Voxels/State/Schema/VoxelSchema.d.ts +0 -7
- package/Voxels/State/Schema/VoxelSchema.js +0 -10
- package/Voxels/State/SchemaRegister.d.ts +0 -18
- package/Voxels/State/SchemaRegister.js +0 -76
- package/Voxels/State/StateTreeReader.d.ts +0 -9
- package/Voxels/State/StateTreeReader.js +0 -37
- /package/Mesher/{Geomtry → Geometry}/Functions/GetBounds.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Functions/GetBounds.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Geometry.types.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/Quad.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/Quad.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/QuadVertexData.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/QuadVertexData.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/Triangle.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/Triangle.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/TriangleVertexData.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/TriangleVertexData.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/index.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/index.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMesh.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMesh.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMeshBuffer.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMeshBuffer.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Shapes/Box.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Shapes/Box.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformBox.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformBox.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformQuad.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformQuad.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformTriangle.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformTriangle.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/index.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/index.js +0 -0
- /package/Mesher/Items/{Geomtry → Geometry}/ItemMeshVertexStructCursor.d.ts +0 -0
- /package/Mesher/Items/{Geomtry → Geometry}/ItemMeshVertexStructCursor.js +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/CompactedSectionVoxelMesh.d.ts +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHBuilder.d.ts +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshVertexStructCursor.d.ts +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshVertexStructCursor.js +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelShaderData.d.ts +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelShaderData.js +0 -0
- /package/Mesher/Voxels/Models/Nodes/Types/{GeomtryNode.types.js → GeometryNode.types.js} +0 -0
- /package/Voxels/{Models/CompiledVoxelModel.types.js → Functions/Geometry/GeometryLUT.types.js} +0 -0
- /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFace.d.ts +0 -0
- /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFace.js +0 -0
- /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFaceRegister.js +0 -0
- /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionQuadFace.d.ts +0 -0
- /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionTriangleFace.d.ts +0 -0
- /package/Voxels/{Models/Indexing → Geometry}/VoxelRelativeCubeIndex.d.ts +0 -0
- /package/Voxels/{Models/Indexing → Geometry}/VoxelRelativeCubeIndex.js +0 -0
|
@@ -1,327 +0,0 @@
|
|
|
1
|
-
import { StateCompareOperationsMap, StateLogicOperationsMap, } from "../State/State.types";
|
|
2
|
-
import { StringPalette } from "../../Util/StringPalette";
|
|
3
|
-
import { VoxelModelRuleBuilderRegister } from "../Models/Rules/VoxelModelRuleBuilderRegister";
|
|
4
|
-
class StateTreeNode {
|
|
5
|
-
id;
|
|
6
|
-
children = new Map();
|
|
7
|
-
result;
|
|
8
|
-
constructor(id) {
|
|
9
|
-
this.id = id;
|
|
10
|
-
}
|
|
11
|
-
addChild(value, node) {
|
|
12
|
-
this.children.set(value, node);
|
|
13
|
-
}
|
|
14
|
-
getChild(value) {
|
|
15
|
-
return this.children.get(value);
|
|
16
|
-
}
|
|
17
|
-
toJSON() {
|
|
18
|
-
const childrenObj = {};
|
|
19
|
-
this.children.forEach((childNode, key) => {
|
|
20
|
-
childrenObj[key] = childNode.toJSON();
|
|
21
|
-
});
|
|
22
|
-
if (this.result != undefined)
|
|
23
|
-
return this.result;
|
|
24
|
-
return childrenObj;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
function generateCombinations(length) {
|
|
28
|
-
const values = [0, 1];
|
|
29
|
-
function gen(currentCombination, remainingLength) {
|
|
30
|
-
if (remainingLength === 0) {
|
|
31
|
-
return [currentCombination];
|
|
32
|
-
}
|
|
33
|
-
let combinations = [];
|
|
34
|
-
for (let value of values) {
|
|
35
|
-
combinations.push(...gen([...currentCombination, value], remainingLength - 1));
|
|
36
|
-
}
|
|
37
|
-
return combinations;
|
|
38
|
-
}
|
|
39
|
-
return gen([], length);
|
|
40
|
-
}
|
|
41
|
-
function generateNestedCombinations(length, values) {
|
|
42
|
-
let combinationIndex = 0;
|
|
43
|
-
function createNestedArray(depth) {
|
|
44
|
-
if (depth === length) {
|
|
45
|
-
return combinationIndex++;
|
|
46
|
-
}
|
|
47
|
-
const nestedArray = [];
|
|
48
|
-
for (let i = 0; i < values.length; i++) {
|
|
49
|
-
nestedArray.push(createNestedArray(depth + 1));
|
|
50
|
-
}
|
|
51
|
-
return nestedArray;
|
|
52
|
-
}
|
|
53
|
-
return createNestedArray(0);
|
|
54
|
-
}
|
|
55
|
-
function addPathToTree(root, path, result) {
|
|
56
|
-
let currentNode = root;
|
|
57
|
-
for (let i = 0; i < path.length; i += 2) {
|
|
58
|
-
const key = path[i];
|
|
59
|
-
const value = path[i + 1];
|
|
60
|
-
let childNode = currentNode.getChild(key);
|
|
61
|
-
if (!childNode) {
|
|
62
|
-
childNode = new StateTreeNode(key);
|
|
63
|
-
currentNode.addChild(key, childNode);
|
|
64
|
-
}
|
|
65
|
-
let valueNode = childNode.getChild(value);
|
|
66
|
-
if (!valueNode) {
|
|
67
|
-
valueNode = new StateTreeNode(value);
|
|
68
|
-
childNode.addChild(value, valueNode);
|
|
69
|
-
}
|
|
70
|
-
currentNode = valueNode;
|
|
71
|
-
}
|
|
72
|
-
currentNode.result = result;
|
|
73
|
-
}
|
|
74
|
-
function reMapTree(schemaIdPalette, schemaValuePalette, baseObj, newObj, modelOrVodelId) {
|
|
75
|
-
for (const key in baseObj) {
|
|
76
|
-
if (key == "*")
|
|
77
|
-
continue;
|
|
78
|
-
const propertyIndex = schemaIdPalette.getNumberId(key);
|
|
79
|
-
const baseChild = baseObj[key];
|
|
80
|
-
const reMapedChildren = [];
|
|
81
|
-
const schemaValueIndex = schemaValuePalette.has(key)
|
|
82
|
-
? schemaValuePalette.get(key)
|
|
83
|
-
: Number(key);
|
|
84
|
-
if (propertyIndex === undefined) {
|
|
85
|
-
console.error(baseObj);
|
|
86
|
-
throw new Error(`Unkown variable in state string ${key} | ${modelOrVodelId}`);
|
|
87
|
-
}
|
|
88
|
-
if (schemaValueIndex === undefined)
|
|
89
|
-
continue;
|
|
90
|
-
for (const value in baseChild) {
|
|
91
|
-
const propertyValue = baseChild[value];
|
|
92
|
-
const valueIndex = typeof value === "string" && typeof schemaValueIndex == "object"
|
|
93
|
-
? schemaValueIndex.getNumberId(value)
|
|
94
|
-
: Number(value);
|
|
95
|
-
if (typeof propertyValue == "object" && !Array.isArray(propertyValue)) {
|
|
96
|
-
reMapedChildren[valueIndex] = reMapTree(schemaIdPalette, schemaValuePalette, baseChild[value], [], modelOrVodelId);
|
|
97
|
-
continue;
|
|
98
|
-
}
|
|
99
|
-
reMapedChildren[valueIndex] = baseChild[value];
|
|
100
|
-
}
|
|
101
|
-
newObj[propertyIndex] = reMapedChildren;
|
|
102
|
-
}
|
|
103
|
-
return newObj;
|
|
104
|
-
}
|
|
105
|
-
function buildSchemas(binaryNodes, relationNodes) {
|
|
106
|
-
const baseSchema = {
|
|
107
|
-
binary: [],
|
|
108
|
-
relational: [],
|
|
109
|
-
};
|
|
110
|
-
const schemaIdPalette = new StringPalette();
|
|
111
|
-
const schemaValuePalette = new Map();
|
|
112
|
-
for (const schemaNode of binaryNodes) {
|
|
113
|
-
schemaIdPalette.register(schemaNode.name);
|
|
114
|
-
if (schemaNode.values) {
|
|
115
|
-
schemaValuePalette.set(schemaNode.name, new StringPalette(schemaNode.values));
|
|
116
|
-
}
|
|
117
|
-
baseSchema.binary.push(schemaNode);
|
|
118
|
-
}
|
|
119
|
-
for (const schemaNode of relationNodes) {
|
|
120
|
-
schemaIdPalette.register(schemaNode.name);
|
|
121
|
-
baseSchema.relational.push(schemaNode);
|
|
122
|
-
schemaValuePalette.set(schemaNode.name, new StringPalette(["false", "true"]));
|
|
123
|
-
}
|
|
124
|
-
return {
|
|
125
|
-
baseSchema,
|
|
126
|
-
schemaIdPalette,
|
|
127
|
-
schemaValuePalette,
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
export function BuildStateData(model, geoPalette) {
|
|
131
|
-
const data = model.data;
|
|
132
|
-
const { baseSchema, schemaIdPalette, schemaValuePalette } = buildSchemas(data.stateSchema, data.relationsSchema);
|
|
133
|
-
//maps geo link ids to geomtry ids
|
|
134
|
-
const geometryLinkStateMap = {};
|
|
135
|
-
//add geomtry from main shape states
|
|
136
|
-
for (const key in data.stateNodes) {
|
|
137
|
-
const nodeData = data.stateNodes[key];
|
|
138
|
-
for (let i = 0; i < nodeData.length; i++) {
|
|
139
|
-
geometryLinkStateMap[key] ??= {};
|
|
140
|
-
const node = nodeData[i];
|
|
141
|
-
geometryLinkStateMap[key][i] ??= geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(node));
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
//add geomtry from condiotnal shape states
|
|
145
|
-
for (const key in data.conditonalNodes) {
|
|
146
|
-
const nodeData = data.conditonalNodes[key];
|
|
147
|
-
for (let i = 0; i < nodeData.length; i++) {
|
|
148
|
-
geometryLinkStateMap[key] ??= {};
|
|
149
|
-
const node = nodeData[i];
|
|
150
|
-
geometryLinkStateMap[key][i] ??= geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(node));
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
const stateRelativeGeometryMap = [];
|
|
154
|
-
const relativeGeometryByteIndexMap = [];
|
|
155
|
-
//build state trees
|
|
156
|
-
const stateTree = new StateTreeNode("root");
|
|
157
|
-
const stateGeoLinkPalette = [];
|
|
158
|
-
const stateGeometryPalette = [];
|
|
159
|
-
let relativeGeoId = 0;
|
|
160
|
-
let relativeByteCount = 0;
|
|
161
|
-
const stateRecord = {};
|
|
162
|
-
for (const key in data.stateNodes) {
|
|
163
|
-
stateGeoLinkPalette.push(data.stateNodes[key].map((_, index) => geometryLinkStateMap[key][index]));
|
|
164
|
-
stateGeometryPalette.push(data.stateNodes[key].map((_) => geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(_))));
|
|
165
|
-
stateRecord[key] = stateGeometryPalette.length - 1;
|
|
166
|
-
stateRelativeGeometryMap[stateRecord[key]] ??= [];
|
|
167
|
-
const nodeData = data.stateNodes[key];
|
|
168
|
-
for (const node of nodeData) {
|
|
169
|
-
stateRelativeGeometryMap[stateRecord[key]][geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(node))] = relativeGeoId;
|
|
170
|
-
relativeGeometryByteIndexMap[relativeGeoId] = relativeByteCount;
|
|
171
|
-
relativeGeoId++;
|
|
172
|
-
}
|
|
173
|
-
addPathToTree(stateTree, key
|
|
174
|
-
.split(",")
|
|
175
|
-
.map((pair) => pair.split("="))
|
|
176
|
-
.flat(), stateGeoLinkPalette.length - 1);
|
|
177
|
-
}
|
|
178
|
-
const condiotnalShapeStateRelativeGeometryMap = [];
|
|
179
|
-
const condiotnalShapeStateNodePalette = [];
|
|
180
|
-
const condiotnalShapeStateGeometryPalette = [];
|
|
181
|
-
const condiotnalShapeStateNodeRecord = {};
|
|
182
|
-
const condiotnalStatements = [];
|
|
183
|
-
const compareOperations = Object.keys(StateCompareOperationsMap);
|
|
184
|
-
for (const key in data.conditonalNodes) {
|
|
185
|
-
condiotnalShapeStateNodePalette.push(data.conditonalNodes[key].map((_, index) => geometryLinkStateMap[key][index]));
|
|
186
|
-
condiotnalShapeStateGeometryPalette.push(data.conditonalNodes[key].map((_) => geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(_))));
|
|
187
|
-
condiotnalShapeStateNodeRecord[key] =
|
|
188
|
-
condiotnalShapeStateGeometryPalette.length - 1;
|
|
189
|
-
condiotnalShapeStateRelativeGeometryMap[condiotnalShapeStateNodeRecord[key]] ??= [];
|
|
190
|
-
const nodeData = data.conditonalNodes[key];
|
|
191
|
-
for (const node of nodeData) {
|
|
192
|
-
condiotnalShapeStateRelativeGeometryMap[condiotnalShapeStateNodeRecord[key]][geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(node))] = relativeGeoId;
|
|
193
|
-
relativeGeometryByteIndexMap[relativeGeoId] = relativeByteCount;
|
|
194
|
-
relativeGeoId++;
|
|
195
|
-
}
|
|
196
|
-
const statement = [];
|
|
197
|
-
const nodes = key.split(" ");
|
|
198
|
-
let mode = "node";
|
|
199
|
-
for (const node of nodes) {
|
|
200
|
-
if (!node)
|
|
201
|
-
continue;
|
|
202
|
-
if (mode == "node") {
|
|
203
|
-
mode = "operation";
|
|
204
|
-
for (const op of compareOperations) {
|
|
205
|
-
if (node.includes(op)) {
|
|
206
|
-
const [schemaId, value] = node.split(op);
|
|
207
|
-
statement.push([
|
|
208
|
-
schemaIdPalette.getNumberId(schemaId),
|
|
209
|
-
StateCompareOperationsMap[op],
|
|
210
|
-
schemaValuePalette.has(schemaId)
|
|
211
|
-
? schemaValuePalette.get(schemaId).getNumberId(value)
|
|
212
|
-
: Number(value),
|
|
213
|
-
]);
|
|
214
|
-
break;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
continue;
|
|
218
|
-
}
|
|
219
|
-
if (mode == "operation") {
|
|
220
|
-
mode = "node";
|
|
221
|
-
statement.push(StateLogicOperationsMap[node]);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
condiotnalStatements.push(statement);
|
|
225
|
-
}
|
|
226
|
-
const condiotnalNodeStateTree = generateNestedCombinations(condiotnalStatements.length, [0, 1]);
|
|
227
|
-
const allCombinations = generateCombinations(condiotnalStatements.length);
|
|
228
|
-
const condiotanlStatePalette = [];
|
|
229
|
-
const condiotanlGeometryStatePalette = [];
|
|
230
|
-
for (const combo of allCombinations) {
|
|
231
|
-
const newStateCombo = [];
|
|
232
|
-
const newGeoCombo = [];
|
|
233
|
-
for (let i = 0; i < combo.length; i++) {
|
|
234
|
-
if (combo[i] == 0) {
|
|
235
|
-
newStateCombo[i] = [];
|
|
236
|
-
newGeoCombo[i] = [];
|
|
237
|
-
continue;
|
|
238
|
-
}
|
|
239
|
-
newStateCombo[i] = condiotnalShapeStateNodePalette[i];
|
|
240
|
-
newGeoCombo[i] = condiotnalShapeStateGeometryPalette[i];
|
|
241
|
-
}
|
|
242
|
-
condiotanlStatePalette.push(newStateCombo);
|
|
243
|
-
condiotanlGeometryStatePalette.push(newGeoCombo);
|
|
244
|
-
}
|
|
245
|
-
const stateTreeData = stateTree.toJSON();
|
|
246
|
-
const newShapeStateTree = [];
|
|
247
|
-
reMapTree(schemaIdPalette, schemaValuePalette, stateTreeData, newShapeStateTree, model.data.id);
|
|
248
|
-
const modelEffects = [];
|
|
249
|
-
const tagEffects = [];
|
|
250
|
-
if (model.data.effects) {
|
|
251
|
-
for (const effect of model.data.effects) {
|
|
252
|
-
const tagStateTree = new StateTreeNode("root");
|
|
253
|
-
const treePalette = [];
|
|
254
|
-
for (const key in effect.values) {
|
|
255
|
-
const nodeData = effect.values[key];
|
|
256
|
-
treePalette.push(nodeData);
|
|
257
|
-
addPathToTree(tagStateTree, key
|
|
258
|
-
.split(",")
|
|
259
|
-
.map((pair) => pair.split("="))
|
|
260
|
-
.flat(), treePalette.length - 1);
|
|
261
|
-
}
|
|
262
|
-
const tagStateTreeData = tagStateTree.toJSON();
|
|
263
|
-
const newTagStateTree = [];
|
|
264
|
-
reMapTree(schemaIdPalette, schemaValuePalette, tagStateTreeData, newTagStateTree, model.data.id);
|
|
265
|
-
if (effect.type == "tag") {
|
|
266
|
-
tagEffects.push({
|
|
267
|
-
type: "tag",
|
|
268
|
-
tagId: effect.tagId,
|
|
269
|
-
tree: newTagStateTree,
|
|
270
|
-
treePalette,
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
if (effect.type == "fx-points") {
|
|
274
|
-
modelEffects.push({
|
|
275
|
-
type: "fx-points",
|
|
276
|
-
effectId: effect.effectId,
|
|
277
|
-
tree: newTagStateTree,
|
|
278
|
-
treePalette,
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
for (const [voxelId, voxelData] of model.voxels) {
|
|
284
|
-
const modeStateTree = new StateTreeNode("root");
|
|
285
|
-
const modStatePalette = [];
|
|
286
|
-
const modStateRecord = {};
|
|
287
|
-
const { baseSchema, schemaIdPalette, schemaValuePalette } = buildSchemas(voxelData.modSchema || [], voxelData.modRelationSchema || []);
|
|
288
|
-
for (const key in voxelData.inputs) {
|
|
289
|
-
modStatePalette.push(voxelData.inputs[key]);
|
|
290
|
-
modStateRecord[key] = modStatePalette.length - 1;
|
|
291
|
-
addPathToTree(modeStateTree, key
|
|
292
|
-
.split(",")
|
|
293
|
-
.map((pair) => pair.split("="))
|
|
294
|
-
.flat(), modStatePalette.length - 1);
|
|
295
|
-
}
|
|
296
|
-
const modTreeData = modeStateTree.toJSON();
|
|
297
|
-
const newModTree = [];
|
|
298
|
-
reMapTree(schemaIdPalette, schemaValuePalette, modTreeData, newModTree, voxelId);
|
|
299
|
-
model.voxelModData.set(voxelId, {
|
|
300
|
-
modSchema: baseSchema,
|
|
301
|
-
modPalette: modStatePalette,
|
|
302
|
-
modRecord: modStateRecord,
|
|
303
|
-
modStateTree: newModTree,
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
const finalData = {
|
|
307
|
-
schema: baseSchema,
|
|
308
|
-
effects: modelEffects,
|
|
309
|
-
stateGeometryPalette: stateGeometryPalette,
|
|
310
|
-
condiotnalShapeStateGeometryPalette,
|
|
311
|
-
stateTree: newShapeStateTree,
|
|
312
|
-
geometryLinkStateMap,
|
|
313
|
-
statePalette: stateGeoLinkPalette,
|
|
314
|
-
stateRecord: stateRecord,
|
|
315
|
-
condiotnalNodeStateTree,
|
|
316
|
-
condiotnalStatements,
|
|
317
|
-
condiotnalStatePalette: condiotnalShapeStateNodePalette,
|
|
318
|
-
condiotnalShapeStateRecord: condiotnalShapeStateNodeRecord,
|
|
319
|
-
condiotanlStatePalette,
|
|
320
|
-
condiotanlGeometryStatePalette,
|
|
321
|
-
stateRelativeGeometryMap: stateRelativeGeometryMap,
|
|
322
|
-
relativeGeometryByteIndexMap,
|
|
323
|
-
condiotnalShapeStateRelativeGeometryMap,
|
|
324
|
-
};
|
|
325
|
-
model.stateData = finalData;
|
|
326
|
-
return finalData;
|
|
327
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { AOOcclusionFaceIndexData } from "../Models/Indexing/AOOcclusionFaceIndex";
|
|
2
|
-
import { CulledOcclusionFaceIndexData } from "../Models/Indexing/CulledOcclusionFaceIndex";
|
|
3
|
-
import { VoxelStateSchemaData, StateLogicStatement } from "../State/State.types";
|
|
4
|
-
import { CullingProcedureData } from "../Models/VoxelModel.types";
|
|
5
|
-
import { VoxelEffectSyncData } from "../Effects/VoxelEffects.types";
|
|
6
|
-
import { CompiledGeomtryNodes } from "../../Mesher/Voxels/Models/Nodes/Types/GeomtryNode.types";
|
|
7
|
-
export type CompiledVoxelGeometrySyncData = {
|
|
8
|
-
id: string;
|
|
9
|
-
cullingProcedure: CullingProcedureData;
|
|
10
|
-
nodes: CompiledGeomtryNodes[];
|
|
11
|
-
};
|
|
12
|
-
export interface CompiledVoxelModelData {
|
|
13
|
-
id: string;
|
|
14
|
-
schema: VoxelStateSchemaData;
|
|
15
|
-
effects: VoxelEffectSyncData[];
|
|
16
|
-
stateTree: any[];
|
|
17
|
-
stateMap: number[][];
|
|
18
|
-
stateGeometryMap: number[][];
|
|
19
|
-
stateRelativeGeometryMap: number[][];
|
|
20
|
-
relativeGeometryByteIndexMap: number[];
|
|
21
|
-
condiotnalStatements: StateLogicStatement[];
|
|
22
|
-
condiotnalStateMap: number[][];
|
|
23
|
-
condiotnalShapeStateMap: number[][][];
|
|
24
|
-
condiotanlGeometryStatePalette: number[][][];
|
|
25
|
-
condiotnalShapeStateRelativeGeometryMap: number[][];
|
|
26
|
-
condiotnalStateTree: any[];
|
|
27
|
-
}
|
|
28
|
-
export interface CompiledVoxelModelInputData {
|
|
29
|
-
id: string;
|
|
30
|
-
materialId: string;
|
|
31
|
-
modelId: string;
|
|
32
|
-
modSchema: VoxelStateSchemaData;
|
|
33
|
-
modStateTree: any[];
|
|
34
|
-
baseGeometryInputMap: any[][];
|
|
35
|
-
condiotnalGeometryInputMap: any[][];
|
|
36
|
-
}
|
|
37
|
-
export interface FinalCompiledVoxelModelData {
|
|
38
|
-
geometryPalette: string[];
|
|
39
|
-
geometry: CompiledVoxelGeometrySyncData[];
|
|
40
|
-
aoIndex: AOOcclusionFaceIndexData;
|
|
41
|
-
faceCullIndex: CulledOcclusionFaceIndexData;
|
|
42
|
-
vertexHitMap: number[][][];
|
|
43
|
-
faceCullMap: number[][];
|
|
44
|
-
models: CompiledVoxelModelData[];
|
|
45
|
-
voxels: CompiledVoxelModelInputData[];
|
|
46
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { getBitArrayIndex, setBitArrayIndex, } from "../../../Util/Binary/BinaryArrays";
|
|
2
|
-
import { VoxelRelativeCubeIndex } from "./VoxelRelativeCubeIndex";
|
|
3
|
-
const flatIndexSize = VoxelRelativeCubeIndex.flatIndex.size;
|
|
4
|
-
function getIndex(geomtryId, directionIndex, faceIndex, totalFaces, vertexIndex) {
|
|
5
|
-
const start = totalFaces * 4 * flatIndexSize * geomtryId +
|
|
6
|
-
directionIndex * (totalFaces * 4);
|
|
7
|
-
return start + faceIndex * 4 + vertexIndex;
|
|
8
|
-
}
|
|
9
|
-
export class AOOcclusionFaceIndex {
|
|
10
|
-
view;
|
|
11
|
-
totalFaces;
|
|
12
|
-
constructor(data) {
|
|
13
|
-
this.view = new Uint8Array(data.buffer);
|
|
14
|
-
this.totalFaces = data.totalFaces;
|
|
15
|
-
}
|
|
16
|
-
getValue(geomtryId, directionIndex, faceIndex, vertexIndex) {
|
|
17
|
-
return getBitArrayIndex(this.view, getIndex(geomtryId, directionIndex, faceIndex, this.totalFaces, vertexIndex));
|
|
18
|
-
}
|
|
19
|
-
setValue(geomtryId, directionIndex, faceIndex, vertexIndex, value = 0) {
|
|
20
|
-
return setBitArrayIndex(this.view, getIndex(geomtryId, directionIndex, faceIndex, this.totalFaces, vertexIndex), value);
|
|
21
|
-
}
|
|
22
|
-
toJSON() {
|
|
23
|
-
return {
|
|
24
|
-
buffer: this.view.buffer,
|
|
25
|
-
totalFaces: this.totalFaces,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { getBitArrayIndex, setBitArrayIndex } from "../../../Util/Binary/BinaryArrays";
|
|
2
|
-
import { VoxelRelativeCubeIndex } from "./VoxelRelativeCubeIndex";
|
|
3
|
-
const flatIndexSize = VoxelRelativeCubeIndex.flatIndex.size;
|
|
4
|
-
function getIndex(geomtryId, directionIndex, faceIndex, totalFaces) {
|
|
5
|
-
const start = totalFaces * flatIndexSize * geomtryId + directionIndex * totalFaces;
|
|
6
|
-
return start + faceIndex;
|
|
7
|
-
}
|
|
8
|
-
export class CulledOcclusionFaceIndex {
|
|
9
|
-
view;
|
|
10
|
-
totalFaces;
|
|
11
|
-
constructor(data) {
|
|
12
|
-
this.view = new Uint8Array(data.buffer);
|
|
13
|
-
this.totalFaces = data.totalFaces;
|
|
14
|
-
}
|
|
15
|
-
getValue(geomtryId, directionIndex, faceIndex) {
|
|
16
|
-
return getBitArrayIndex(this.view, getIndex(geomtryId, directionIndex, faceIndex, this.totalFaces));
|
|
17
|
-
}
|
|
18
|
-
setValue(geomtryId, directionIndex, faceIndex, value = 0) {
|
|
19
|
-
return setBitArrayIndex(this.view, getIndex(geomtryId, directionIndex, faceIndex, this.totalFaces), value);
|
|
20
|
-
}
|
|
21
|
-
toJSON() {
|
|
22
|
-
return {
|
|
23
|
-
buffer: this.view.buffer,
|
|
24
|
-
totalFaces: this.totalFaces,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { VoxelGeometryData, VoxelModelConstructorData } from "../../VoxelModel.types";
|
|
2
|
-
export declare class GeomtryInput {
|
|
3
|
-
geomtry: VoxelGeometryData;
|
|
4
|
-
inputObservers: Map<string, ((data: any) => void)[]>;
|
|
5
|
-
orginalArgs: any[];
|
|
6
|
-
args: any[];
|
|
7
|
-
get arguments(): Record<string, import("../../VoxelModel.types").VoxelGeometryTextureArgument | import("../../VoxelModel.types").VoxelGeometryArgumentAliasList | import("../../VoxelModel.types").VoxelGeometryBooleanArgument | import("../../VoxelModel.types").VoxelGeometryIntArgument | import("../../VoxelModel.types").VoxelGeometryFloatArgument | import("../../VoxelModel.types").VoxelGeometryBoxUVArgument | import("../../VoxelModel.types").VoxelGeometryUVArgument | import("../../VoxelModel.types").VoxelGeometryVector3Argument>;
|
|
8
|
-
proxy: Record<string, any>;
|
|
9
|
-
isArgString(data: any): boolean;
|
|
10
|
-
cloneArgs(): any[];
|
|
11
|
-
resetDefaults(): void;
|
|
12
|
-
currentModelState: string;
|
|
13
|
-
currentModel: VoxelModelConstructorData;
|
|
14
|
-
constructor(geomtry: VoxelGeometryData);
|
|
15
|
-
onInput(id: string, subscribe: (data: any) => any): number;
|
|
16
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { TextureManager } from "../../../../Textures/TextureManager";
|
|
2
|
-
export class GeomtryInput {
|
|
3
|
-
geomtry;
|
|
4
|
-
inputObservers = new Map();
|
|
5
|
-
orginalArgs = [];
|
|
6
|
-
args = [];
|
|
7
|
-
get arguments() {
|
|
8
|
-
return this.geomtry.arguments;
|
|
9
|
-
}
|
|
10
|
-
proxy = {};
|
|
11
|
-
isArgString(data) {
|
|
12
|
-
if (typeof data !== "string")
|
|
13
|
-
return false;
|
|
14
|
-
return data[0] == "@";
|
|
15
|
-
}
|
|
16
|
-
cloneArgs() {
|
|
17
|
-
return structuredClone(this.args);
|
|
18
|
-
}
|
|
19
|
-
resetDefaults() {
|
|
20
|
-
this.args = structuredClone(this.orginalArgs);
|
|
21
|
-
}
|
|
22
|
-
currentModelState;
|
|
23
|
-
currentModel;
|
|
24
|
-
constructor(geomtry) {
|
|
25
|
-
this.geomtry = geomtry;
|
|
26
|
-
for (const arg in geomtry.arguments) {
|
|
27
|
-
if (this.inputObservers.has(arg))
|
|
28
|
-
continue;
|
|
29
|
-
const obs = [];
|
|
30
|
-
this.inputObservers.set(arg, obs);
|
|
31
|
-
const data = geomtry.arguments[arg];
|
|
32
|
-
Object.defineProperty(this.proxy, arg, {
|
|
33
|
-
set: (value) => {
|
|
34
|
-
if (data.type == "texture") {
|
|
35
|
-
const textureId = value;
|
|
36
|
-
if (!Array.isArray(textureId) && typeof textureId == "object") {
|
|
37
|
-
const procedureData = structuredClone({
|
|
38
|
-
...textureId,
|
|
39
|
-
});
|
|
40
|
-
if (procedureData.texture) {
|
|
41
|
-
let texture = procedureData.texture;
|
|
42
|
-
if (typeof texture == "string" && texture[0] === "@") {
|
|
43
|
-
const input = texture.replace("@", "");
|
|
44
|
-
texture =
|
|
45
|
-
this.currentModel.inputs["*"]?.[input] ??
|
|
46
|
-
this.currentModel.inputs[this.currentModelState][input];
|
|
47
|
-
}
|
|
48
|
-
procedureData.texture =
|
|
49
|
-
TextureManager.getTexture("dve_voxel")?.getTextureIndex(texture);
|
|
50
|
-
}
|
|
51
|
-
if (procedureData.textureRecrod) {
|
|
52
|
-
for (const key in procedureData.textureRecrod) {
|
|
53
|
-
let texture = procedureData.textureRecrod[key];
|
|
54
|
-
if (typeof texture == "string" && texture[0] === "@") {
|
|
55
|
-
const input = texture.replace("@", "");
|
|
56
|
-
texture =
|
|
57
|
-
this.currentModel.inputs["*"]?.[input] ??
|
|
58
|
-
this.currentModel.inputs[this.currentModelState][input];
|
|
59
|
-
}
|
|
60
|
-
procedureData.textureRecrod[key] =
|
|
61
|
-
TextureManager.getTexture("dve_voxel")?.getTextureIndex(texture);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
value = { ...procedureData };
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
value =
|
|
68
|
-
TextureManager.getTexture("dve_voxel")?.getTextureIndex(textureId);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
for (const func of obs) {
|
|
72
|
-
func(value);
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
onInput(id, subscribe) {
|
|
79
|
-
id = id.replace("@", "");
|
|
80
|
-
const obs = this.inputObservers.get(id);
|
|
81
|
-
if (!obs)
|
|
82
|
-
throw new Error(`Input [${id}] does not exist on ${this.geomtry.id}`);
|
|
83
|
-
return obs.push(subscribe);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { BuildStateData } from "../../../../Voxels/Functions/BuildStateData";
|
|
2
|
-
import { CullingProcedureData, VoxelGeometryData, VoxelGeometryNodes } from "../../../../Voxels/Models/VoxelModel.types";
|
|
3
|
-
import { CompiledGeomtryNodes } from "../../../../Mesher/Voxels/Models/Nodes/Types/GeomtryNode.types";
|
|
4
|
-
import { GeomtryInput } from "./GeomtryInput";
|
|
5
|
-
import { VoxelGeometryTransform } from "Mesher/Geomtry/Geometry.types";
|
|
6
|
-
export interface VoxelRuleGeometryData {
|
|
7
|
-
id: string;
|
|
8
|
-
cullingProcedure: CullingProcedureData;
|
|
9
|
-
ogData: VoxelGeometryData;
|
|
10
|
-
nodes: {
|
|
11
|
-
node: VoxelGeometryNodes;
|
|
12
|
-
tranform: VoxelGeometryTransform;
|
|
13
|
-
}[];
|
|
14
|
-
}
|
|
15
|
-
export declare class VoxelRuleGeometry {
|
|
16
|
-
id: string;
|
|
17
|
-
data: VoxelRuleGeometryData;
|
|
18
|
-
state: ReturnType<typeof BuildStateData>;
|
|
19
|
-
input: GeomtryInput;
|
|
20
|
-
compiled: CompiledGeomtryNodes[];
|
|
21
|
-
constructor(id: string, data: VoxelRuleGeometryData);
|
|
22
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { CompileGeomtryNodes } from "../Functions/Compile/CompileGeomtryNodes";
|
|
2
|
-
import { GeomtryInput } from "./GeomtryInput";
|
|
3
|
-
export class VoxelRuleGeometry {
|
|
4
|
-
id;
|
|
5
|
-
data;
|
|
6
|
-
state;
|
|
7
|
-
input;
|
|
8
|
-
compiled;
|
|
9
|
-
constructor(id, data) {
|
|
10
|
-
this.id = id;
|
|
11
|
-
this.data = data;
|
|
12
|
-
this.input = new GeomtryInput(data.ogData);
|
|
13
|
-
this.compiled = CompileGeomtryNodes(data.ogData.doNotBuildRules !== true, this.input, data.nodes);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { VoxelModelConstructorData, VoxelModelData } from "../../VoxelModel.types";
|
|
2
|
-
import { BuildStateData } from "../../../../Voxels/Functions/BuildStateData";
|
|
3
|
-
import { VoxelStateSchemaData } from "../../../../Voxels/State/State.types";
|
|
4
|
-
export declare class VoxelRulesModoel {
|
|
5
|
-
data: VoxelModelData;
|
|
6
|
-
states: Map<string, string[]>;
|
|
7
|
-
conditionalNodes: Map<string, string[]>;
|
|
8
|
-
stateData: ReturnType<typeof BuildStateData>;
|
|
9
|
-
voxels: Map<string, VoxelModelConstructorData>;
|
|
10
|
-
voxelModData: Map<string, {
|
|
11
|
-
modSchema: VoxelStateSchemaData;
|
|
12
|
-
modStateTree: any[];
|
|
13
|
-
modPalette: any[];
|
|
14
|
-
modRecord: Record<string, any>;
|
|
15
|
-
}>;
|
|
16
|
-
constructor(data: VoxelModelData);
|
|
17
|
-
registerShapeState(id: string, geomtryId: string): void;
|
|
18
|
-
registerCondiotnalNode(id: string, geomtryId: string): void;
|
|
19
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export class VoxelRulesModoel {
|
|
2
|
-
data;
|
|
3
|
-
states = new Map();
|
|
4
|
-
conditionalNodes = new Map();
|
|
5
|
-
stateData;
|
|
6
|
-
voxels = new Map();
|
|
7
|
-
voxelModData = new Map();
|
|
8
|
-
constructor(data) {
|
|
9
|
-
this.data = data;
|
|
10
|
-
}
|
|
11
|
-
registerShapeState(id, geomtryId) {
|
|
12
|
-
let stateArray = this.states.get(id);
|
|
13
|
-
if (!stateArray) {
|
|
14
|
-
stateArray = [];
|
|
15
|
-
this.states.set(id, stateArray);
|
|
16
|
-
}
|
|
17
|
-
if (!stateArray.find((_) => _ == geomtryId))
|
|
18
|
-
stateArray.push(geomtryId);
|
|
19
|
-
}
|
|
20
|
-
registerCondiotnalNode(id, geomtryId) {
|
|
21
|
-
let stateArray = this.conditionalNodes.get(id);
|
|
22
|
-
if (!stateArray) {
|
|
23
|
-
stateArray = [];
|
|
24
|
-
this.conditionalNodes.set(id, stateArray);
|
|
25
|
-
}
|
|
26
|
-
if (!stateArray.find((_) => _ == geomtryId))
|
|
27
|
-
stateArray.push(geomtryId);
|
|
28
|
-
}
|
|
29
|
-
}
|