@divinevoxel/vlox 0.0.76 → 0.0.77
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/Brush/BrushTool.d.ts +16 -9
- package/Builder/Tools/Brush/BrushTool.js +258 -52
- package/Builder/Tools/BuilderToolBase.d.ts +36 -0
- package/Builder/Tools/BuilderToolBase.js +39 -0
- package/Builder/Tools/Hand/HandTool.d.ts +9 -7
- package/Builder/Tools/Hand/HandTool.js +40 -23
- package/Builder/Tools/Path/PahtTool.d.ts +12 -7
- package/Builder/Tools/Path/PahtTool.js +32 -21
- package/Builder/Tools/Sculpt/SculptTool.d.ts +34 -0
- package/Builder/Tools/Sculpt/SculptTool.js +102 -0
- package/Builder/Tools/Shape/ShapeTool.d.ts +32 -0
- package/Builder/Tools/Shape/ShapeTool.js +78 -0
- package/Builder/Tools/Template/TemplateTool.d.ts +35 -0
- package/Builder/Tools/Template/TemplateTool.js +73 -0
- package/Builder/Tools/Wand/WandTool.d.ts +9 -7
- package/Builder/Tools/Wand/WandTool.js +43 -20
- package/Builder/Tools/Wrench/WrenchTool.d.ts +7 -7
- package/Builder/Tools/Wrench/WrenchTool.js +22 -13
- package/Builder/Util/FreeBoxSelection.d.ts +12 -0
- package/Builder/Util/FreeBoxSelection.js +21 -0
- package/Builder/Util/FreePointSelection.d.ts +14 -0
- package/Builder/Util/FreePointSelection.js +39 -0
- package/Builder/Util/SurfaceBoxSelection.d.ts +12 -0
- package/Builder/{Tools/Box/BoxSelection.js → Util/SurfaceBoxSelection.js} +1 -3
- package/Builder/VoxelBuildSpace.d.ts +37 -25
- package/Builder/VoxelBuildSpace.js +99 -40
- package/Builder/World/InitTasks.js +17 -22
- package/Mesher/Geomtry/Proto/ProtoMesh.d.ts +18 -0
- package/Mesher/Geomtry/Proto/ProtoMesh.js +73 -0
- package/Mesher/Geomtry/{VoxelMeshBuffers.d.ts → Proto/ProtoMeshBuffer.d.ts} +2 -2
- package/Mesher/Geomtry/{VoxelMeshBuffers.js → Proto/ProtoMeshBuffer.js} +2 -2
- package/Mesher/Geomtry/Shapes/Box.d.ts +2 -9
- package/Mesher/Geomtry/Shapes/Box.js +7 -12
- package/Mesher/Geomtry/Transform/TransformBox.js +5 -2
- package/Mesher/InitMesher.js +4 -4
- package/Mesher/InitTask.js +2 -2
- package/Mesher/Items/Base/CompactItemMesh.d.ts +3 -0
- package/Mesher/Items/Base/CompactItemMesh.js +20 -0
- package/Mesher/Items/Geomtry/ItemGeometryBuilder.d.ts +5 -0
- package/Mesher/Items/Geomtry/ItemGeometryBuilder.js +131 -0
- package/Mesher/Items/Geomtry/ItemMeshVertexStructCursor.d.ts +48 -0
- package/Mesher/Items/Geomtry/ItemMeshVertexStructCursor.js +114 -0
- package/Mesher/Items/MeshTexture.d.ts +1 -0
- package/Mesher/Items/MeshTexture.js +214 -0
- package/Mesher/Items/MeshTextureO.js +277 -0
- package/Mesher/Items/Models/ItemModelBuilder.d.ts +27 -0
- package/Mesher/Items/Models/ItemModelBuilder.js +64 -0
- package/Mesher/Types/ItemMesh.types.d.ts +5 -0
- package/Mesher/Types/ItemMesh.types.js +12 -0
- package/Mesher/Types/Mesher.types.d.ts +15 -9
- package/Mesher/Types/Mesher.types.js +14 -0
- package/Mesher/Types/VoxelMesh.types.js +7 -6
- package/Mesher/Voxels/Base/CompactTemplateMesh.d.ts +3 -0
- package/Mesher/{Functions/CompactVoxelMesh.js → Voxels/Base/CompactTemplateMesh.js} +4 -40
- package/Mesher/{Functions → Voxels/Base}/CompactVoxelSectionMesh.d.ts +2 -2
- package/Mesher/{Functions → Voxels}/Base/MeshSectionBase.d.ts +1 -1
- package/Mesher/{Functions → Voxels}/Base/MeshSectionBase.js +9 -8
- package/Mesher/{Geomtry → Voxels/Geomtry}/CompactedSectionVoxelMesh.d.ts +1 -1
- package/Mesher/{Geomtry → Voxels/Geomtry}/CompactedSectionVoxelMesh.js +1 -1
- package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelGeometryBuilder.d.ts +2 -2
- package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelGeometryBuilder.js +1 -1
- package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHBuilder.d.ts +1 -1
- package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHBuilder.js +2 -2
- package/Mesher/Voxels/MeshTemplate.d.ts +3 -0
- package/Mesher/Voxels/MeshTemplate.js +81 -0
- package/Mesher/{Functions → Voxels}/MeshVoxel.d.ts +1 -1
- package/Mesher/{Functions → Voxels}/MeshVoxel.js +4 -4
- package/Mesher/{Models → Voxels/Models}/Common/Calc/CalcConstants.d.ts +2 -2
- package/Mesher/{Models → Voxels/Models}/Common/Calc/CalcConstants.js +4 -4
- package/Mesher/{Models → Voxels/Models}/Common/Calc/FaceDataCalc.d.ts +1 -1
- package/Mesher/{Models → Voxels/Models}/Common/Calc/FaceDataCalc.js +2 -2
- package/Mesher/{Models → Voxels/Models}/Common/Faces/CullRulledFace.js +1 -1
- package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulelessFace.d.ts +1 -1
- package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulledFace.d.ts +1 -1
- package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulledFace.js +1 -1
- package/Mesher/{Models → Voxels/Models}/Common/GetTexture.d.ts +3 -3
- package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/FlowGradient.d.ts +1 -1
- package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/FlowGradient.js +1 -1
- package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/LiquidGeomtryNode.d.ts +3 -3
- package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/LiquidGeomtryNode.js +14 -16
- package/Mesher/{Models → Voxels/Models}/Nodes/Default/QuadVoxelGeometryNode.d.ts +2 -2
- package/Mesher/{Models → Voxels/Models}/Nodes/Default/QuadVoxelGeometryNode.js +1 -1
- package/Mesher/{Models → Voxels/Models}/Nodes/Default/TriangleVoxelGeometryNode.d.ts +2 -2
- package/Mesher/{Models → Voxels/Models}/Nodes/Default/TriangleVoxelGeometryNode.js +1 -1
- package/Mesher/{Models → Voxels/Models}/Nodes/Types/QuadVoxelGometryNodeTypes.d.ts +2 -2
- package/Mesher/{Models → Voxels/Models}/Nodes/Types/TriangleVoxelGometryNodeTypes.d.ts +1 -1
- package/Mesher/{Models → Voxels/Models}/Nodes/VoxelGeometryConstructor.d.ts +2 -2
- package/Mesher/Voxels/Models/Procedures/Default/ConsistentRotationTextureProcedure.d.ts +24 -0
- package/Mesher/{Models → Voxels/Models}/Procedures/Default/ConsistentRotationTextureProcedure.js +2 -2
- package/Mesher/{Models → Voxels/Models}/Procedures/Default/OutlinedTextureProcedure.d.ts +4 -5
- package/Mesher/Voxels/Models/Procedures/Default/OutlinedTextureProcedure.js +205 -0
- package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.d.ts +28 -0
- package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.js +109 -0
- package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedure.d.ts +3 -3
- package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedureRegister.js +2 -0
- package/Mesher/{Models → Voxels/Models}/VoxelConstructor.d.ts +4 -4
- package/Mesher/{Models → Voxels/Models}/VoxelConstructor.js +3 -3
- package/Mesher/{Models → Voxels/Models}/VoxelGeometryBuilderCacheSpace.d.ts +2 -2
- package/Mesher/{Models → Voxels/Models}/VoxelGeometryBuilderCacheSpace.js +2 -2
- package/Mesher/{Models → Voxels/Models}/VoxelModelBuilder.d.ts +7 -7
- package/Mesher/{Models → Voxels/Models}/VoxelModelBuilder.js +6 -5
- package/Mesher/{Models → Voxels/Models}/VoxelModelConstructorRegister.d.ts +4 -4
- package/Mesher/{Models → Voxels/Models}/VoxelModelConstructorRegister.js +2 -2
- package/Mesher/{Models → Voxels/Models}/VoxelModelEffect.d.ts +1 -1
- package/Mesher/{Models → Voxels/Models}/VoxelModelEffect.js +1 -1
- 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 +3 -1
- package/Tasks/Paint/Common.js +14 -9
- package/Tasks/Paint/Erase/EraseVoxelSelection.d.ts +4 -0
- package/Tasks/Paint/Erase/EraseVoxelSelection.js +33 -0
- package/Tasks/Paint/Erase/EraseVoxelTemplate.js +1 -2
- package/Tasks/Paint/Paint/PaintVoxel.js +1 -1
- package/Tasks/Paint/Paint/PaintVoxelTemplate.js +1 -1
- package/Tasks/Propagation/Illumanation/RGBUpdate.js +1 -1
- package/Tasks/Tasks.types.d.ts +2 -0
- package/Tasks/TasksIds.d.ts +1 -0
- package/Tasks/TasksIds.js +1 -0
- package/Tasks/WorldGeneration/InitTasks.js +3 -1
- package/Templates/Archive/ArchivedVoxelTemplate.d.ts +5 -5
- package/Templates/Archive/ArchivedVoxelTemplate.js +52 -49
- package/Templates/Archive/Functions/CreateArchivedTemplate.js +0 -2
- package/Templates/Archive/Functions/ExportArchiedTemplateJSON.js +0 -1
- package/Templates/Archive/Functions/ImportArchivedTemplateJSON.js +0 -2
- package/Templates/Cursor/TemplateCursor.d.ts +6 -1
- package/Templates/Cursor/TemplateCursor.js +13 -2
- package/Templates/Cursor/TemplateProxy.js +1 -6
- package/Templates/Cursor/TemplateVoxelCursor.d.ts +1 -0
- package/Templates/Cursor/TemplateVoxelCursor.js +6 -0
- package/Templates/Full/FullVoxelTemplate.d.ts +4 -4
- package/Templates/Full/FullVoxelTemplate.js +29 -18
- package/Templates/Functions/ExtrudeSelection.d.ts +5 -0
- package/Templates/Functions/ExtrudeSelection.js +44 -0
- package/Templates/Functions/FillSelection.d.ts +4 -0
- package/Templates/Functions/FillSelection.js +20 -0
- package/Templates/Functions/FlipTemplate.d.ts +2 -2
- package/Templates/Functions/FlipTemplate.js +8 -8
- package/Templates/Functions/RotateTemplate.d.ts +2 -2
- package/Templates/Path/VoxelPath.js +2 -1
- package/Templates/Selection/VoxelBFSSelection.d.ts +3 -6
- package/Templates/Selection/VoxelBFSSelection.js +20 -24
- package/Templates/Selection/{VoxelBoxSelection.d.ts → VoxelBoundsSelection.d.ts} +9 -6
- package/Templates/Selection/{VoxelBoxSelection.js → VoxelBoundsSelection.js} +29 -22
- package/Templates/Selection/VoxelPointSelection.d.ts +8 -6
- package/Templates/Selection/VoxelPointSelection.js +25 -24
- package/Templates/Selection/VoxelSelection.d.ts +18 -0
- package/Templates/Selection/VoxelSurfaceSelection.d.ts +5 -12
- package/Templates/Selection/VoxelSurfaceSelection.js +76 -90
- package/Templates/Selection/VoxelTemplateSelection.d.ts +10 -4
- package/Templates/Selection/VoxelTemplateSelection.js +18 -10
- package/Templates/Shapes/Selections/BoxVoxelShapeSelection.d.ts +28 -0
- package/Templates/Shapes/Selections/BoxVoxelShapeSelection.js +77 -0
- package/Templates/Shapes/Selections/ConeVoxelShapeSelection.d.ts +28 -0
- package/Templates/Shapes/Selections/ConeVoxelShapeSelection.js +77 -0
- package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.d.ts +28 -0
- package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.js +77 -0
- package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.d.ts +28 -0
- package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.js +92 -0
- package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.d.ts +28 -0
- package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.js +76 -0
- package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.d.ts +37 -0
- package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.js +137 -0
- package/Templates/Shapes/Selections/SphereVoxelShapeSelection.d.ts +20 -0
- package/Templates/Shapes/Selections/SphereVoxelShapeSelection.js +61 -0
- package/Templates/Shapes/Selections/TorusVoxelShapeSelection.d.ts +28 -0
- package/Templates/Shapes/Selections/TorusVoxelShapeSelection.js +76 -0
- package/Templates/Shapes/Selections/VoxelShapeSelection.d.ts +5 -0
- package/Templates/Shapes/Selections/VoxelShapeSelection.js +1 -0
- package/Templates/Shapes/VoxelShape.types.d.ts +2 -0
- package/Templates/Shapes/VoxelShape.types.js +8 -0
- package/Templates/Shapes/VoxelShapeTemplate.d.ts +37 -0
- package/Templates/Shapes/{BasicVoxelShapeTemplate.js → VoxelShapeTemplate.js} +43 -37
- package/Templates/Shapes/VoxelShapeTemplate.types.d.ts +4 -13
- package/Templates/Shapes/VoxelShapeTemplate.types.js +0 -1
- package/Templates/{VoxelTempateRegister.d.ts → VoxelTemplateRegister.d.ts} +4 -0
- package/Templates/VoxelTemplateRegister.js +60 -0
- package/Templates/VoxelTemplates.types.d.ts +2 -3
- package/Textures/Classes/CompiledTexture.d.ts +2 -0
- package/Textures/Classes/CompiledTexture.js +19 -1
- package/Textures/Functions/BuildTextureData.js +13 -0
- package/Textures/TextureManager.d.ts +1 -0
- package/Textures/TextureManager.js +11 -5
- package/Tools/Brush/Brush.d.ts +2 -0
- package/Tools/Brush/Brush.js +19 -0
- package/Tools/Tasks/TasksTool.d.ts +2 -1
- package/Tools/Tasks/TasksTool.js +2 -0
- package/Voxels/Cursor/DataCursor.interface.d.ts +4 -0
- package/Voxels/Cursor/VoxelLightData.js +2 -2
- package/Voxels/Functions/BuildTagData.js +1 -1
- package/Voxels/Indexes/VoxelIndex.d.ts +1 -0
- package/Voxels/Indexes/VoxelIndex.js +11 -13
- package/Voxels/InitVoxelData.js +5 -14
- package/Voxels/Interaction/Functions/PickVoxel.d.ts +0 -5
- package/Voxels/Interaction/Functions/PickVoxel.js +64 -85
- package/Voxels/Interaction/Functions/PickVoxelWorld.js +6 -3
- package/Voxels/Models/CompiledVoxelModel.types.d.ts +1 -1
- package/Voxels/Models/Defaults/CubeVoxelGeometry.js +11 -0
- package/Voxels/Models/Defaults/CubeVoxelModels.js +44 -99
- package/Voxels/Models/Defaults/PanelVoxelGeometry.d.ts +1 -3
- package/Voxels/Models/Defaults/PanelVoxelGeometry.js +2 -226
- package/Voxels/Models/Defaults/PanelVoxelModels.d.ts +1 -0
- package/Voxels/Models/Defaults/PanelVoxelModels.js +100 -258
- package/Voxels/Models/Defaults/StairVoxelModel.js +2 -2
- package/Voxels/Models/Rules/Classes/GeomtryInput.d.ts +4 -1
- package/Voxels/Models/Rules/Classes/GeomtryInput.js +26 -5
- package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.d.ts +1 -1
- package/Voxels/Models/Rules/Functions/BuildFinalInputs.js +23 -8
- package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.d.ts +1 -1
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.d.ts +1 -1
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.d.ts +1 -1
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.js +1 -1
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.d.ts +1 -1
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.js +1 -1
- package/Voxels/Models/VoxelModel.types.d.ts +6 -1
- package/Voxels/Types/PaintVoxelData.d.ts +2 -0
- package/Voxels/Types/PaintVoxelData.js +51 -0
- package/World/Cursor/SectionCursor.d.ts +4 -0
- package/World/Cursor/SectionCursor.js +13 -16
- package/World/Cursor/SectorCursor.d.ts +4 -0
- package/World/Cursor/SectorCursor.js +13 -16
- package/World/Cursor/WorldCursor.d.ts +4 -0
- package/World/Cursor/WorldCursor.js +8 -0
- package/World/Sector/SectorHeightMap.d.ts +6 -0
- package/World/Sector/SectorHeightMap.js +6 -0
- package/World/SnapShot/SectionSnapShotCursor.d.ts +3 -0
- package/World/SnapShot/SectionSnapShotCursor.js +6 -0
- package/World/WorldSpaces.js +3 -3
- package/WorldSimulation/Dimensions/DimensionSimulation.d.ts +5 -1
- package/WorldSimulation/Dimensions/DimensionSimulation.js +12 -0
- package/WorldSimulation/Dimensions/Generator.d.ts +1 -0
- package/WorldSimulation/Dimensions/Generator.js +1 -0
- package/WorldSimulation/Dimensions/SimulationSector.d.ts +3 -0
- package/WorldSimulation/Dimensions/SimulationSector.js +71 -41
- package/WorldSimulation/Internal/WorldSimulationTasks.js +5 -2
- package/WorldSimulation/Procedures/BuildOnly.d.ts +10 -0
- package/WorldSimulation/Procedures/BuildOnly.js +55 -0
- package/WorldSimulation/Procedures/InitalLoad.js +3 -0
- package/WorldSimulation/Tasks/SimulationTaskBase.d.ts +2 -0
- package/WorldSimulation/Tasks/SimulationTaskBase.js +11 -3
- package/WorldSimulation/Tasks/TaskSegment.d.ts +2 -1
- package/WorldSimulation/Tasks/TaskSegment.js +3 -1
- package/WorldSimulation/Tick/TickQueue.d.ts +2 -0
- package/WorldSimulation/Tick/TickQueue.js +26 -0
- package/WorldSimulation/Tools/SimulationBrush.d.ts +3 -0
- package/WorldSimulation/Tools/SimulationBrush.js +52 -0
- package/WorldSimulation/Voxels/Behaviors/Types/DefaultVoxelBehavior.js +3 -0
- package/WorldSimulation/Voxels/Behaviors/Types/LiquidVoxelBehavior.js +21 -1
- package/WorldSimulation/Voxels/Behaviors/VoxelBehaviors.d.ts +2 -0
- package/WorldSimulation/Voxels/Behaviors/VoxelBehaviors.js +6 -0
- package/WorldSimulation/Voxels/Ticks/Types/LiquidVoxelUpdate.js +39 -14
- package/WorldSimulation/WorldSimulation.d.ts +10 -0
- package/WorldSimulation/WorldSimulation.js +41 -1
- package/package.json +1 -30
- package/Builder/Tools/Box/BoxSelection.d.ts +0 -12
- package/Builder/Tools/Box/BoxTool.d.ts +0 -31
- package/Builder/Tools/Box/BoxTool.js +0 -91
- package/Builder/Tools/Box/BoxToolTemplate.d.ts +0 -13
- package/Builder/Tools/Box/BoxToolTemplate.js +0 -23
- package/Builder/VoxelBuilder.types.d.ts +0 -0
- package/Builder/VoxelBuilder.types.js +0 -1
- package/Mesher/Functions/CompactVoxelMesh.d.ts +0 -3
- package/Mesher/Functions/MeshTexture.js +0 -278
- package/Mesher/Geomtry/VoxelMesh.d.ts +0 -12
- package/Mesher/Geomtry/VoxelMesh.js +0 -25
- package/Mesher/Models/Procedures/Default/ConsistentRotationTextureProcedure.d.ts +0 -25
- package/Mesher/Models/Procedures/Default/OutlinedTextureProcedure.js +0 -162
- package/Templates/Selection/VoxelSelecton.d.ts +0 -9
- package/Templates/Shapes/BasicVoxelShapeTemplate.d.ts +0 -36
- package/Templates/Shapes/BoxVoxelTemplate.d.ts +0 -23
- package/Templates/Shapes/BoxVoxelTemplate.js +0 -83
- package/Templates/Shapes/ConeVoxelTemplate.d.ts +0 -23
- package/Templates/Shapes/ConeVoxelTemplate.js +0 -73
- package/Templates/Shapes/CylinderVoxelTemplate.d.ts +0 -23
- package/Templates/Shapes/CylinderVoxelTemplate.js +0 -73
- package/Templates/Shapes/EllipsoidVoxelTemplate.d.ts +0 -23
- package/Templates/Shapes/EllipsoidVoxelTemplate.js +0 -89
- package/Templates/Shapes/OctahedronVoxelTemplate.d.ts +0 -23
- package/Templates/Shapes/OctahedronVoxelTemplate.js +0 -73
- package/Templates/Shapes/PyramidVoxelTemplate.d.ts +0 -31
- package/Templates/Shapes/PyramidVoxelTemplate.js +0 -148
- package/Templates/Shapes/SphereVoxelTemplate.d.ts +0 -15
- package/Templates/Shapes/SphereVoxelTemplate.js +0 -59
- package/Templates/Shapes/TorusVoxelTemplate.d.ts +0 -23
- package/Templates/Shapes/TorusVoxelTemplate.js +0 -73
- package/Templates/VoxelTempateRegister.js +0 -30
- /package/Mesher/{Functions/MeshTexture.d.ts → Items/MeshTextureO.d.ts} +0 -0
- /package/Mesher/{Functions → Voxels/Base}/CompactVoxelSectionMesh.js +0 -0
- /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHStructCursor.d.ts +0 -0
- /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHStructCursor.js +0 -0
- /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshVertexStructCursor.d.ts +0 -0
- /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshVertexStructCursor.js +0 -0
- /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelShaderData.d.ts +0 -0
- /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelShaderData.js +0 -0
- /package/Mesher/{Functions → Voxels}/MeshSection.d.ts +0 -0
- /package/Mesher/{Functions → Voxels}/MeshSection.js +0 -0
- /package/Mesher/{Functions → Voxels}/MeshSectionSnapShot.d.ts +0 -0
- /package/Mesher/{Functions → Voxels}/MeshSectionSnapShot.js +0 -0
- /package/Mesher/{Models → Voxels/Models}/Common/Faces/CullRulledFace.d.ts +0 -0
- /package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulelessFace.js +0 -0
- /package/Mesher/{Models → Voxels/Models}/Common/GetTexture.js +0 -0
- /package/Mesher/{Models → Voxels/Models}/Nodes/Custom/index.d.ts +0 -0
- /package/Mesher/{Models → Voxels/Models}/Nodes/Custom/index.js +0 -0
- /package/Mesher/{Models → Voxels/Models}/Nodes/GeometryNode.d.ts +0 -0
- /package/Mesher/{Models → Voxels/Models}/Nodes/GeometryNode.js +0 -0
- /package/Mesher/{Models → Voxels/Models}/Nodes/Types/GeomtryNode.types.d.ts +0 -0
- /package/Mesher/{Models → Voxels/Models}/Nodes/Types/GeomtryNode.types.js +0 -0
- /package/Mesher/{Models → Voxels/Models}/Nodes/Types/QuadVoxelGometryNodeTypes.js +0 -0
- /package/Mesher/{Models → Voxels/Models}/Nodes/Types/TriangleVoxelGometryNodeTypes.js +0 -0
- /package/Mesher/{Models → Voxels/Models}/Nodes/VoxelGeometryConstructor.js +0 -0
- /package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedure.js +0 -0
- /package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedureRegister.d.ts +0 -0
- /package/Mesher/{Models → Voxels/Models}/RenderedMaterials.d.ts +0 -0
- /package/Mesher/{Models → Voxels/Models}/RenderedMaterials.js +0 -0
- /package/Templates/Selection/{VoxelSelecton.js → VoxelSelection.js} +0 -0
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { VoxelBoxSelection } from "../../../Templates/Selection/VoxelBoxSelection";
|
|
2
|
-
import { Vector3Like } from "@amodx/math";
|
|
3
|
-
import { BoxSelection } from "./BoxSelection";
|
|
4
|
-
import { BoxToolTemplate } from "./BoxToolTemplate";
|
|
5
|
-
import { BuilderToolBase } from "../BuilderToolBase";
|
|
6
|
-
export var BoxToolModes;
|
|
7
|
-
(function (BoxToolModes) {
|
|
8
|
-
BoxToolModes["Fill"] = "Fill";
|
|
9
|
-
BoxToolModes["Extrude"] = "Extrude";
|
|
10
|
-
BoxToolModes["Template"] = "Template";
|
|
11
|
-
BoxToolModes["Remove"] = "Remove";
|
|
12
|
-
})(BoxToolModes || (BoxToolModes = {}));
|
|
13
|
-
export class BoxTool extends BuilderToolBase {
|
|
14
|
-
space;
|
|
15
|
-
static ToolId = "Box";
|
|
16
|
-
static ModeArray = [
|
|
17
|
-
BoxToolModes.Fill,
|
|
18
|
-
BoxToolModes.Extrude,
|
|
19
|
-
BoxToolModes.Template,
|
|
20
|
-
BoxToolModes.Remove,
|
|
21
|
-
];
|
|
22
|
-
mode = BoxToolModes.Fill;
|
|
23
|
-
selection = new VoxelBoxSelection();
|
|
24
|
-
boxSelection;
|
|
25
|
-
constructor(space) {
|
|
26
|
-
super();
|
|
27
|
-
this.space = space;
|
|
28
|
-
console.warn("CREATE BOX TOOL", this.space, this.selection);
|
|
29
|
-
this.boxSelection = new BoxSelection(this.space, this.selection);
|
|
30
|
-
}
|
|
31
|
-
_started = false;
|
|
32
|
-
isSelectionStarted() {
|
|
33
|
-
return this._started;
|
|
34
|
-
}
|
|
35
|
-
updateOffset(offset) {
|
|
36
|
-
this.boxSelection.offset = offset;
|
|
37
|
-
this.boxSelection.update();
|
|
38
|
-
}
|
|
39
|
-
updatePlacer(picked, placerMode = null) {
|
|
40
|
-
if (!this._started && !placerMode && picked) {
|
|
41
|
-
if (this.mode == BoxToolModes.Fill ||
|
|
42
|
-
this.mode == BoxToolModes.Template ||
|
|
43
|
-
this.mode == BoxToolModes.Extrude) {
|
|
44
|
-
this.selection.reConstruct(picked.normalPosition, picked.normal, Vector3Like.Add(picked.normalPosition, Vector3Like.Create(1, 1, 1)), picked.normal);
|
|
45
|
-
}
|
|
46
|
-
if (this.mode == BoxToolModes.Remove) {
|
|
47
|
-
this.selection.reConstruct(picked.position, picked.normal, Vector3Like.Add(picked.position, Vector3Like.Create(1, 1, 1)), picked.normal);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (!this._started && placerMode == "start" && picked) {
|
|
51
|
-
this.boxSelection.offset = 0;
|
|
52
|
-
Vector3Like.Copy(this.boxSelection.planeNormal, picked.normal);
|
|
53
|
-
if (this.mode == BoxToolModes.Fill ||
|
|
54
|
-
this.mode == BoxToolModes.Template ||
|
|
55
|
-
this.mode == BoxToolModes.Extrude) {
|
|
56
|
-
Vector3Like.Copy(this.boxSelection.planeOrigin, picked.normalPosition);
|
|
57
|
-
}
|
|
58
|
-
if (this.mode == BoxToolModes.Remove) {
|
|
59
|
-
Vector3Like.Copy(this.boxSelection.planeOrigin, picked.position);
|
|
60
|
-
}
|
|
61
|
-
this.boxSelection.update();
|
|
62
|
-
this._started = true;
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (this._started && !placerMode && !picked) {
|
|
66
|
-
this.boxSelection.update();
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (this._started && placerMode == "end") {
|
|
70
|
-
this.boxSelection.update();
|
|
71
|
-
this._started = false;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
async use(voxelData, usePlacingStrategy = true) {
|
|
75
|
-
if (this.mode == BoxToolModes.Fill) {
|
|
76
|
-
await this.space.paintTemplate(Vector3Like.ToArray(this.selection.origin), this.selection
|
|
77
|
-
.toTemplate({
|
|
78
|
-
fillVoxel: voxelData,
|
|
79
|
-
})
|
|
80
|
-
.toJSON());
|
|
81
|
-
}
|
|
82
|
-
if (this.mode == BoxToolModes.Template) {
|
|
83
|
-
const boxTemplate = new BoxToolTemplate(this.space, this.selection.clone());
|
|
84
|
-
await boxTemplate.create();
|
|
85
|
-
this.dispatch("template-created", boxTemplate);
|
|
86
|
-
}
|
|
87
|
-
if (this.mode == BoxToolModes.Remove) {
|
|
88
|
-
await this.space.eraseTemplate(Vector3Like.ToArray(this.selection.origin), this.selection.toTemplate({}).toJSON());
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { FullVoxelTemplate } from "../../../Templates/Full/FullVoxelTemplate";
|
|
2
|
-
import { VoxelBoxSelection } from "../../../Templates/Selection/VoxelBoxSelection";
|
|
3
|
-
import { VoxelBuildSpace } from "../../VoxelBuildSpace";
|
|
4
|
-
export declare class BoxToolTemplate {
|
|
5
|
-
space: VoxelBuildSpace;
|
|
6
|
-
selection: VoxelBoxSelection;
|
|
7
|
-
template: FullVoxelTemplate;
|
|
8
|
-
private _created;
|
|
9
|
-
constructor(space: VoxelBuildSpace, selection: VoxelBoxSelection);
|
|
10
|
-
create(): Promise<void>;
|
|
11
|
-
place(): Promise<void>;
|
|
12
|
-
clear(): Promise<void>;
|
|
13
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export class BoxToolTemplate {
|
|
2
|
-
space;
|
|
3
|
-
selection;
|
|
4
|
-
template;
|
|
5
|
-
_created = false;
|
|
6
|
-
constructor(space, selection) {
|
|
7
|
-
this.space = space;
|
|
8
|
-
this.selection = selection;
|
|
9
|
-
}
|
|
10
|
-
async create() {
|
|
11
|
-
if (this._created)
|
|
12
|
-
return;
|
|
13
|
-
const bounds = this.selection.bounds.getMinMax();
|
|
14
|
-
this.template = await this.space.createTemplate(bounds);
|
|
15
|
-
this._created = true;
|
|
16
|
-
}
|
|
17
|
-
async place() {
|
|
18
|
-
await this.space.paintTemplate(this.selection.origin, this.template.toJSON());
|
|
19
|
-
}
|
|
20
|
-
async clear() {
|
|
21
|
-
await this.space.eraseTemplate(this.selection.origin, this.template.toJSON());
|
|
22
|
-
}
|
|
23
|
-
}
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
import { Quad } from "../Geomtry/Primitives/Quad";
|
|
2
|
-
const Quads = {
|
|
3
|
-
north: Quad.Create([
|
|
4
|
-
[1, 1, 0],
|
|
5
|
-
[0, 1, 0],
|
|
6
|
-
[0, 0, 0],
|
|
7
|
-
[1, 0, 0],
|
|
8
|
-
], Quad.FullUVs),
|
|
9
|
-
south: Quad.Create([
|
|
10
|
-
[1, 1, 0],
|
|
11
|
-
[0, 1, 0],
|
|
12
|
-
[0, 0, 0],
|
|
13
|
-
[1, 0, 0],
|
|
14
|
-
], Quad.FullUVs),
|
|
15
|
-
};
|
|
16
|
-
//const tool = new MesherDataTool();
|
|
17
|
-
//tool.startNewMesh();
|
|
18
|
-
//tool.mesh!.attributes.set("uv", [[], 2, BinaryNumberTypes.Float32]);
|
|
19
|
-
//tool.mesh!.attributes.set("textureIndex", [[], 3, BinaryNumberTypes.Float32]);
|
|
20
|
-
export function MeshTexture(textureId, textureData) {
|
|
21
|
-
/*
|
|
22
|
-
const width = Math.sqrt(textureData.length / 4);
|
|
23
|
-
const height = Math.sqrt(textureData.length / 4);
|
|
24
|
-
const factor = 1 / width;
|
|
25
|
-
|
|
26
|
-
const textureDataIndex = Flat2DIndex.GetXYOrder();
|
|
27
|
-
textureDataIndex.setBounds(width, height);
|
|
28
|
-
|
|
29
|
-
const origin = Vector3Like.Create(-0.5, -0.5, -0.5);
|
|
30
|
-
|
|
31
|
-
const isSolid = (x: number, y: number) =>
|
|
32
|
-
x >= 0 &&
|
|
33
|
-
x < width &&
|
|
34
|
-
y >= 0 &&
|
|
35
|
-
y < height &&
|
|
36
|
-
textureData[textureDataIndex.getIndexXY(x, y) * 4 + 3] > 0.01
|
|
37
|
-
? true
|
|
38
|
-
: false;
|
|
39
|
-
|
|
40
|
-
const uvs = tool.mesh!.getAttribute("uv");
|
|
41
|
-
const textureIndex = tool.mesh!.getAttribute("textureIndex");
|
|
42
|
-
const uvOffset = width > 16 ? -(2 / Math.max(width, height)) : 0;
|
|
43
|
-
|
|
44
|
-
const addUvs = (sx: number, sy: number, ex: number, ey: number) => {
|
|
45
|
-
uvs.push(
|
|
46
|
-
(ex + uvOffset) * factor,
|
|
47
|
-
(ey + uvOffset) * factor,
|
|
48
|
-
(sx - uvOffset) * factor,
|
|
49
|
-
(ey + uvOffset) * factor,
|
|
50
|
-
(sx - uvOffset) * factor,
|
|
51
|
-
(sy - uvOffset) * factor,
|
|
52
|
-
(ex + uvOffset) * factor,
|
|
53
|
-
(sy - uvOffset) * factor
|
|
54
|
-
);
|
|
55
|
-
textureIndex.push(
|
|
56
|
-
textureId,
|
|
57
|
-
0,
|
|
58
|
-
0,
|
|
59
|
-
textureId,
|
|
60
|
-
0,
|
|
61
|
-
0,
|
|
62
|
-
textureId,
|
|
63
|
-
0,
|
|
64
|
-
0,
|
|
65
|
-
textureId,
|
|
66
|
-
0,
|
|
67
|
-
0
|
|
68
|
-
);
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
{
|
|
72
|
-
GeometryBuilder.addQuad(tool, origin, Quads.south);
|
|
73
|
-
uvs.push(
|
|
74
|
-
Quads.south.uvs.vertices[QuadVerticies.TopRight].x,
|
|
75
|
-
Quads.south.uvs.vertices[QuadVerticies.TopRight].y,
|
|
76
|
-
Quads.south.uvs.vertices[QuadVerticies.TopLeft].x,
|
|
77
|
-
Quads.south.uvs.vertices[QuadVerticies.TopLeft].y,
|
|
78
|
-
Quads.south.uvs.vertices[QuadVerticies.BottomLeft].x,
|
|
79
|
-
Quads.south.uvs.vertices[QuadVerticies.BottomLeft].y,
|
|
80
|
-
Quads.south.uvs.vertices[QuadVerticies.BottomRight].x,
|
|
81
|
-
Quads.south.uvs.vertices[QuadVerticies.BottomRight].y
|
|
82
|
-
);
|
|
83
|
-
|
|
84
|
-
textureIndex.push(
|
|
85
|
-
textureId,
|
|
86
|
-
0,
|
|
87
|
-
0,
|
|
88
|
-
textureId,
|
|
89
|
-
0,
|
|
90
|
-
0,
|
|
91
|
-
textureId,
|
|
92
|
-
0,
|
|
93
|
-
0,
|
|
94
|
-
textureId,
|
|
95
|
-
0,
|
|
96
|
-
0
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
{
|
|
101
|
-
const backPositionZ = factor;
|
|
102
|
-
Quads.north.positions.vertices[QuadVerticies.TopRight].z = backPositionZ;
|
|
103
|
-
Quads.north.positions.vertices[QuadVerticies.TopLeft].z = backPositionZ;
|
|
104
|
-
Quads.north.positions.vertices[QuadVerticies.BottomLeft].z = backPositionZ;
|
|
105
|
-
Quads.north.positions.vertices[QuadVerticies.BottomRight].z = backPositionZ;
|
|
106
|
-
Quads.north.flip = true;
|
|
107
|
-
uvs.push(
|
|
108
|
-
Quads.north.uvs.vertices[QuadVerticies.TopLeft].x,
|
|
109
|
-
Quads.north.uvs.vertices[QuadVerticies.TopLeft].y,
|
|
110
|
-
Quads.north.uvs.vertices[QuadVerticies.TopRight].x,
|
|
111
|
-
Quads.north.uvs.vertices[QuadVerticies.TopRight].y,
|
|
112
|
-
Quads.north.uvs.vertices[QuadVerticies.BottomRight].x,
|
|
113
|
-
Quads.north.uvs.vertices[QuadVerticies.BottomRight].y,
|
|
114
|
-
Quads.north.uvs.vertices[QuadVerticies.BottomLeft].x,
|
|
115
|
-
Quads.north.uvs.vertices[QuadVerticies.BottomLeft].y
|
|
116
|
-
);
|
|
117
|
-
GeometryBuilder.addQuad(tool, origin, Quads.north);
|
|
118
|
-
textureIndex.push(
|
|
119
|
-
textureId,
|
|
120
|
-
0,
|
|
121
|
-
0,
|
|
122
|
-
textureId,
|
|
123
|
-
0,
|
|
124
|
-
0,
|
|
125
|
-
textureId,
|
|
126
|
-
0,
|
|
127
|
-
0,
|
|
128
|
-
textureId,
|
|
129
|
-
0,
|
|
130
|
-
0
|
|
131
|
-
);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
for (let x = 0; x < width; x++) {
|
|
135
|
-
let eastFace: Vec2Array | null = null;
|
|
136
|
-
let westFace: Vec2Array | null = null;
|
|
137
|
-
for (let y = 0; y < height; y++) {
|
|
138
|
-
let eastFaceExposed = true;
|
|
139
|
-
let westFaceExposed = true;
|
|
140
|
-
|
|
141
|
-
if (!isSolid(x, y)) {
|
|
142
|
-
eastFaceExposed = false;
|
|
143
|
-
westFaceExposed = false;
|
|
144
|
-
}
|
|
145
|
-
if (isSolid(x + 1, y)) {
|
|
146
|
-
eastFaceExposed = false;
|
|
147
|
-
}
|
|
148
|
-
if (isSolid(x - 1, y)) {
|
|
149
|
-
westFaceExposed = false;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
if (eastFace && !eastFaceExposed) {
|
|
153
|
-
const newQuad = Quad.Create(
|
|
154
|
-
[
|
|
155
|
-
[x * factor + factor, eastFace[1] * factor, 0],
|
|
156
|
-
[x * factor + factor, y * factor, factor],
|
|
157
|
-
],
|
|
158
|
-
Quad.FullUVs as any,
|
|
159
|
-
false,
|
|
160
|
-
0
|
|
161
|
-
);
|
|
162
|
-
GeometryBuilder.addQuad(tool, origin, newQuad);
|
|
163
|
-
|
|
164
|
-
let [sx, sy] = eastFace;
|
|
165
|
-
let ex = x;
|
|
166
|
-
let ey = y;
|
|
167
|
-
ex += 1;
|
|
168
|
-
addUvs(sx, sy, ex, ey);
|
|
169
|
-
eastFace = null;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
if (westFace && !westFaceExposed) {
|
|
173
|
-
const newQuad = Quad.Create(
|
|
174
|
-
[
|
|
175
|
-
[x * factor, westFace[1] * factor, 0],
|
|
176
|
-
[x * factor, y * factor, factor],
|
|
177
|
-
],
|
|
178
|
-
Quad.FullUVs as any,
|
|
179
|
-
false,
|
|
180
|
-
1
|
|
181
|
-
);
|
|
182
|
-
GeometryBuilder.addQuad(tool, origin, newQuad);
|
|
183
|
-
let [sx, sy] = westFace;
|
|
184
|
-
let ex = x;
|
|
185
|
-
let ey = y;
|
|
186
|
-
ex += 1;
|
|
187
|
-
addUvs(sx, sy, ex, ey);
|
|
188
|
-
westFace = null;
|
|
189
|
-
}
|
|
190
|
-
const isPixel = isSolid(x, y);
|
|
191
|
-
if (!isSolid(x + 1, y) && !eastFace && isPixel) {
|
|
192
|
-
eastFace = [x, y];
|
|
193
|
-
}
|
|
194
|
-
if (!isSolid(x - 1, y) && !westFace && isPixel) {
|
|
195
|
-
westFace = [x, y];
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
for (let y = 0; y < height; y++) {
|
|
200
|
-
let upFace: Vec2Array | null = null;
|
|
201
|
-
let downFace: Vec2Array | null = null;
|
|
202
|
-
|
|
203
|
-
for (let x = 0; x < width; x++) {
|
|
204
|
-
let upFaceExposed = true;
|
|
205
|
-
let downFaceExposed = true;
|
|
206
|
-
|
|
207
|
-
if (!isSolid(x, y)) {
|
|
208
|
-
upFaceExposed = false;
|
|
209
|
-
downFaceExposed = false;
|
|
210
|
-
}
|
|
211
|
-
if (isSolid(x, y + 1)) {
|
|
212
|
-
upFaceExposed = false;
|
|
213
|
-
}
|
|
214
|
-
if (isSolid(x, y - 1)) {
|
|
215
|
-
downFaceExposed = false;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
if (upFace && !upFaceExposed) {
|
|
219
|
-
const newQuad = Quad.Create(
|
|
220
|
-
[
|
|
221
|
-
[upFace[0] * factor, y * factor + factor, 0],
|
|
222
|
-
[x * factor, y * factor + factor, factor],
|
|
223
|
-
],
|
|
224
|
-
Quad.FullUVs as any,
|
|
225
|
-
false,
|
|
226
|
-
0
|
|
227
|
-
);
|
|
228
|
-
GeometryBuilder.addQuad(tool, origin, newQuad);
|
|
229
|
-
let [sx, sy] = upFace;
|
|
230
|
-
let [ex, ey] = [x, y];
|
|
231
|
-
|
|
232
|
-
ey += 1;
|
|
233
|
-
addUvs(sx, sy, ex, ey);
|
|
234
|
-
upFace = null;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
if (downFace && !downFaceExposed) {
|
|
238
|
-
const newQuad = Quad.Create(
|
|
239
|
-
[
|
|
240
|
-
[downFace[0] * factor, y * factor, 0],
|
|
241
|
-
[x * factor, y * factor, factor],
|
|
242
|
-
],
|
|
243
|
-
Quad.FullUVs as any,
|
|
244
|
-
false,
|
|
245
|
-
1
|
|
246
|
-
);
|
|
247
|
-
GeometryBuilder.addQuad(tool, origin, newQuad);
|
|
248
|
-
let [sx, sy] = downFace;
|
|
249
|
-
let [ex, ey] = [x, y];
|
|
250
|
-
ey += 1;
|
|
251
|
-
addUvs(sx, sy, ex, ey);
|
|
252
|
-
downFace = null;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
const isPixel = isSolid(x, y);
|
|
256
|
-
if (!isSolid(x, y + 1) && !upFace && isPixel) {
|
|
257
|
-
upFace = [x, y];
|
|
258
|
-
}
|
|
259
|
-
if (!isSolid(x, y - 1) && !downFace && isPixel) {
|
|
260
|
-
downFace = [x, y];
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
for (const [key, [data]] of tool.mesh!.attributes) {
|
|
266
|
-
if (key == "position") {
|
|
267
|
-
for (let i = 0; i < data.length; i += 3) {
|
|
268
|
-
(data as any as number[])[i] -= 0.5;
|
|
269
|
-
(data as any as number[])[i + 1] -= 0.5;
|
|
270
|
-
(data as any as number[])[i + 2];
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
const compacted = CompactMesh("dve_node", tool);
|
|
276
|
-
*/
|
|
277
|
-
// return tool.mesh;
|
|
278
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Vector3Like } from "@amodx/math";
|
|
2
|
-
import { VoxelVertexBuffer, VoxelIndiceBuffer } from "./VoxelMeshBuffers";
|
|
3
|
-
export declare class VoxelMesh {
|
|
4
|
-
indicieCount: number;
|
|
5
|
-
vertexCount: number;
|
|
6
|
-
minBounds: Vector3Like;
|
|
7
|
-
maxBounds: Vector3Like;
|
|
8
|
-
readonly buffer: VoxelVertexBuffer;
|
|
9
|
-
readonly indices: VoxelIndiceBuffer;
|
|
10
|
-
addVerticies(vertexCount: number, indicesCount: number): void;
|
|
11
|
-
clear(): void;
|
|
12
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Vector3Like } from "@amodx/math";
|
|
2
|
-
import { VoxelVertexBuffer, VoxelIndiceBuffer } from "./VoxelMeshBuffers";
|
|
3
|
-
import { VoxelMeshVertexStructCursor } from "./VoxelMeshVertexStructCursor";
|
|
4
|
-
export class VoxelMesh {
|
|
5
|
-
indicieCount = 0;
|
|
6
|
-
vertexCount = 0;
|
|
7
|
-
minBounds = Vector3Like.Create(Infinity, Infinity, Infinity);
|
|
8
|
-
maxBounds = Vector3Like.Create(-Infinity, -Infinity, -Infinity);
|
|
9
|
-
buffer = new VoxelVertexBuffer(VoxelMeshVertexStructCursor.VertexFloatSize, 1024);
|
|
10
|
-
indices = new VoxelIndiceBuffer(1024);
|
|
11
|
-
addVerticies(vertexCount, indicesCount) {
|
|
12
|
-
this.vertexCount += vertexCount;
|
|
13
|
-
this.indicieCount += indicesCount;
|
|
14
|
-
}
|
|
15
|
-
clear() {
|
|
16
|
-
this.indicieCount = 0;
|
|
17
|
-
this.vertexCount = 0;
|
|
18
|
-
this.minBounds.x = Infinity;
|
|
19
|
-
this.minBounds.y = Infinity;
|
|
20
|
-
this.minBounds.z = Infinity;
|
|
21
|
-
this.maxBounds.x = -Infinity;
|
|
22
|
-
this.maxBounds.y = -Infinity;
|
|
23
|
-
this.maxBounds.z = -Infinity;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Vec3Array, Vector4Like } from "@amodx/math";
|
|
2
|
-
import type { Quad } from "../../../Geomtry";
|
|
3
|
-
import { VoxelModelBuilder } from "Mesher/Models/VoxelModelBuilder";
|
|
4
|
-
import { TextureProcedure, BaseVoxelGeomtryTextureProcedureData } from "../TextureProcedure";
|
|
5
|
-
import { TextureId } from "Textures";
|
|
6
|
-
import { VoxelFaces } from "Math";
|
|
7
|
-
/**
|
|
8
|
-
* Extend your data type so we can add a seed if we want, and define
|
|
9
|
-
* the rotations we can choose from.
|
|
10
|
-
*/
|
|
11
|
-
interface VoxelGeometryConsistentRotationTextureProcedureData extends BaseVoxelGeomtryTextureProcedureData {
|
|
12
|
-
type: "consistent-rotation";
|
|
13
|
-
texture: TextureId | number;
|
|
14
|
-
/**
|
|
15
|
-
* You can allow (0 | 90 | 180 | 270), or remove 0 if you don’t want an unrotated option
|
|
16
|
-
*/
|
|
17
|
-
rotations: (0 | 90 | 180 | 270)[];
|
|
18
|
-
rotationBounds?: Vec3Array;
|
|
19
|
-
}
|
|
20
|
-
export declare class ConsistentRotationTextureProcedure extends TextureProcedure<VoxelGeometryConsistentRotationTextureProcedureData> {
|
|
21
|
-
getTexture(builder: VoxelModelBuilder, data: VoxelGeometryConsistentRotationTextureProcedureData, closestFace: VoxelFaces, primitive: Quad): number;
|
|
22
|
-
getOverlayTexture(builder: VoxelModelBuilder, data: VoxelGeometryConsistentRotationTextureProcedureData, closestFace: VoxelFaces, primitive: Quad, ref: Vector4Like): Vector4Like;
|
|
23
|
-
transformUVs(builder: VoxelModelBuilder, data: VoxelGeometryConsistentRotationTextureProcedureData, closestFace: VoxelFaces, primitive: Quad): void;
|
|
24
|
-
}
|
|
25
|
-
export {};
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { TextureProcedure } from "../TextureProcedure";
|
|
2
|
-
import { VoxelFaces } from "../../../../Math/index.js";
|
|
3
|
-
const textureMap = [
|
|
4
|
-
"top",
|
|
5
|
-
"corner-top-right",
|
|
6
|
-
"corner-top-left",
|
|
7
|
-
"corner-top-left-top-right",
|
|
8
|
-
"bottom",
|
|
9
|
-
"corner-bottom-right",
|
|
10
|
-
"corner-bottom-left",
|
|
11
|
-
"corner-bottom-left-bottom-right",
|
|
12
|
-
"right",
|
|
13
|
-
"left",
|
|
14
|
-
];
|
|
15
|
-
/*
|
|
16
|
-
0 -> normal direction
|
|
17
|
-
1 -> top right
|
|
18
|
-
2 -> top left
|
|
19
|
-
*/
|
|
20
|
-
const uvsSets = {
|
|
21
|
-
//top bottom faces
|
|
22
|
-
north: {
|
|
23
|
-
0b0: 0,
|
|
24
|
-
0b101: 1,
|
|
25
|
-
0b011: 2,
|
|
26
|
-
0b001: 3,
|
|
27
|
-
},
|
|
28
|
-
south: {
|
|
29
|
-
0b0: 4,
|
|
30
|
-
0b101: 5,
|
|
31
|
-
0b011: 6,
|
|
32
|
-
0b001: 7,
|
|
33
|
-
},
|
|
34
|
-
east: {
|
|
35
|
-
0b0: 8,
|
|
36
|
-
},
|
|
37
|
-
west: {
|
|
38
|
-
0b0: 9,
|
|
39
|
-
},
|
|
40
|
-
//side faces
|
|
41
|
-
top: {
|
|
42
|
-
0b0: 0,
|
|
43
|
-
0b101: 1,
|
|
44
|
-
0b011: 2,
|
|
45
|
-
0b001: 3,
|
|
46
|
-
},
|
|
47
|
-
bottom: {
|
|
48
|
-
0b0: 4,
|
|
49
|
-
0b101: 5,
|
|
50
|
-
0b011: 6,
|
|
51
|
-
0b001: 7,
|
|
52
|
-
},
|
|
53
|
-
right: {
|
|
54
|
-
0b0: 8,
|
|
55
|
-
},
|
|
56
|
-
left: {
|
|
57
|
-
0b0: 9,
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
const topAndDown = {
|
|
61
|
-
north: [
|
|
62
|
-
[0, 0, 1],
|
|
63
|
-
[1, 0, 1],
|
|
64
|
-
[-1, 0, 1],
|
|
65
|
-
],
|
|
66
|
-
south: [
|
|
67
|
-
[0, 0, -1],
|
|
68
|
-
[1, 0, -1],
|
|
69
|
-
[-1, 0, -1],
|
|
70
|
-
],
|
|
71
|
-
east: [[1, 0, 0]],
|
|
72
|
-
west: [[-1, 0, 0]],
|
|
73
|
-
};
|
|
74
|
-
const eastAndWest = {
|
|
75
|
-
north: [
|
|
76
|
-
[0, 1, 0],
|
|
77
|
-
[0, 1, 1],
|
|
78
|
-
[0, 1, -1],
|
|
79
|
-
],
|
|
80
|
-
south: [
|
|
81
|
-
[0, -1, 0],
|
|
82
|
-
[0, -1, 1],
|
|
83
|
-
[0, -1, -1],
|
|
84
|
-
],
|
|
85
|
-
east: [[0, 0, 1]],
|
|
86
|
-
west: [[0, 0, -1]],
|
|
87
|
-
};
|
|
88
|
-
const northAndSouth = {
|
|
89
|
-
north: [
|
|
90
|
-
[0, 1, 0],
|
|
91
|
-
[1, 1, 0],
|
|
92
|
-
[-1, 1, 0],
|
|
93
|
-
],
|
|
94
|
-
south: [
|
|
95
|
-
[0, -1, 0],
|
|
96
|
-
[1, -1, 0],
|
|
97
|
-
[-1, -1, 0],
|
|
98
|
-
],
|
|
99
|
-
east: [[1, 0, 0]],
|
|
100
|
-
west: [[-1, 0, 0]],
|
|
101
|
-
};
|
|
102
|
-
const CheckSets = {
|
|
103
|
-
[VoxelFaces.Up]: topAndDown,
|
|
104
|
-
[VoxelFaces.Down]: topAndDown,
|
|
105
|
-
[VoxelFaces.North]: northAndSouth,
|
|
106
|
-
[VoxelFaces.South]: northAndSouth,
|
|
107
|
-
[VoxelFaces.East]: eastAndWest,
|
|
108
|
-
[VoxelFaces.West]: eastAndWest,
|
|
109
|
-
};
|
|
110
|
-
const generateCheck = (direction, tool, normal, sets) => {
|
|
111
|
-
const { x, y, z } = tool.position;
|
|
112
|
-
let key = 0b0;
|
|
113
|
-
for (let i = 0; i < sets.length; i++) {
|
|
114
|
-
const set = sets[i];
|
|
115
|
-
const cx = x + set[0];
|
|
116
|
-
const cy = y + set[1];
|
|
117
|
-
const cz = z + set[2];
|
|
118
|
-
const sameLevelCheck = tool.nVoxel
|
|
119
|
-
.getVoxel(cx, cy, cz)
|
|
120
|
-
?.isSameVoxel(tool.voxel);
|
|
121
|
-
let normalCheck = true;
|
|
122
|
-
const nVoxel = tool.nVoxel.getVoxel(cx + normal[0], cy + normal[1], cz + normal[2]);
|
|
123
|
-
if (nVoxel && nVoxel.isRenderable() && nVoxel.isOpaque()) {
|
|
124
|
-
normalCheck = false;
|
|
125
|
-
}
|
|
126
|
-
if (sameLevelCheck && normalCheck) {
|
|
127
|
-
key |= 0b1 << i;
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
key |= 0b0 << i;
|
|
131
|
-
if (i == 0)
|
|
132
|
-
break;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
if (uvsSets[direction][key] == undefined)
|
|
136
|
-
return 0;
|
|
137
|
-
const index = uvsSets[direction][key];
|
|
138
|
-
return textureMap[index];
|
|
139
|
-
};
|
|
140
|
-
const normal = [0, 0, 0];
|
|
141
|
-
export class OutlinedTextureProcedure extends TextureProcedure {
|
|
142
|
-
getTexture(builder, data, closestFace, primitive) {
|
|
143
|
-
return data.texture;
|
|
144
|
-
}
|
|
145
|
-
getOverlayTexture(builder, data, closestFace, primitive, ref) {
|
|
146
|
-
const set = CheckSets[closestFace];
|
|
147
|
-
const x = generateCheck("north", builder, normal, set.north);
|
|
148
|
-
if (x)
|
|
149
|
-
ref.x = data.textureRecrod[x];
|
|
150
|
-
const y = generateCheck("south", builder, normal, set.south);
|
|
151
|
-
if (y)
|
|
152
|
-
ref.y = data.textureRecrod[y];
|
|
153
|
-
const z = generateCheck("east", builder, normal, set.east);
|
|
154
|
-
if (z)
|
|
155
|
-
ref.z = data.textureRecrod[z];
|
|
156
|
-
const w = generateCheck("west", builder, normal, set.west);
|
|
157
|
-
if (w)
|
|
158
|
-
ref.w = data.textureRecrod[w];
|
|
159
|
-
return ref;
|
|
160
|
-
}
|
|
161
|
-
transformUVs(builder, data, closestFace, primitive) { }
|
|
162
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Vector3Like } from "@amodx/math";
|
|
2
|
-
import { BoundingBox } from "@amodx/math/Geomtry/Bounds/BoundingBox";
|
|
3
|
-
export interface IVoxelSelection {
|
|
4
|
-
origin: Vector3Like;
|
|
5
|
-
size: Vector3Like;
|
|
6
|
-
bounds: BoundingBox;
|
|
7
|
-
isSelected(x: number, y: number, z: number): boolean;
|
|
8
|
-
clone(): IVoxelSelection;
|
|
9
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Flat3DIndex, Vector3Like } from "@amodx/math";
|
|
2
|
-
import { PaintVoxelData, RawVoxelData } from "../../Voxels";
|
|
3
|
-
import { IVoxelShapeTemplate, IVoxelShapeTemplateData, VoxelShapeTemplateFillModes, IVoxelShapeTemplateEvents } from "./VoxelShapeTemplate.types";
|
|
4
|
-
import { TypedEventTarget } from "../../Util/TypedEventTarget";
|
|
5
|
-
import { BoundingBox } from "@amodx/math/Geomtry/Bounds/BoundingBox";
|
|
6
|
-
export declare abstract class BasicVoxelShapeTemplate<Type extends string, Data extends IVoxelShapeTemplateData<any>, Events extends IVoxelShapeTemplateEvents = IVoxelShapeTemplateEvents> extends TypedEventTarget<Events> implements IVoxelShapeTemplate<Type, Data, Events> {
|
|
7
|
-
static CreateBaseData<Type extends string>(type: Type, data: Partial<IVoxelShapeTemplateData<Type>>): IVoxelShapeTemplateData<Type>;
|
|
8
|
-
position: Vector3Like;
|
|
9
|
-
index: Flat3DIndex;
|
|
10
|
-
bounds: BoundingBox;
|
|
11
|
-
type: string;
|
|
12
|
-
fillMode: VoxelShapeTemplateFillModes;
|
|
13
|
-
fillVoxel: PaintVoxelData;
|
|
14
|
-
faceVoxel: PaintVoxelData;
|
|
15
|
-
edgeVoxel: PaintVoxelData;
|
|
16
|
-
pointVoxel: PaintVoxelData;
|
|
17
|
-
_fillVoxel: RawVoxelData;
|
|
18
|
-
_faceVoxel: RawVoxelData;
|
|
19
|
-
_edgeVoxel: RawVoxelData;
|
|
20
|
-
_pointVoxel: RawVoxelData;
|
|
21
|
-
constructor(data: Data);
|
|
22
|
-
setVoxels(fill: PaintVoxelData, face?: PaintVoxelData, edge?: PaintVoxelData, point?: PaintVoxelData): void;
|
|
23
|
-
getIndex(x: number, y: number, z: number): number;
|
|
24
|
-
setPosition(x: number, y: number, z: number): void;
|
|
25
|
-
abstract isIncluded(index: number): boolean;
|
|
26
|
-
abstract clone(): BasicVoxelShapeTemplate<Type, Data, Events>;
|
|
27
|
-
isAir(index: number): boolean;
|
|
28
|
-
getId(index: number): number;
|
|
29
|
-
getLight(index: number): number;
|
|
30
|
-
getLevel(index: number): number;
|
|
31
|
-
getSecondary(index: number): number;
|
|
32
|
-
getRaw(index: number, rawRef?: RawVoxelData): RawVoxelData;
|
|
33
|
-
protected _updateBounds(): void;
|
|
34
|
-
abstract toJSON(): Data;
|
|
35
|
-
protected getBaseJSON(): IVoxelShapeTemplateData<any>;
|
|
36
|
-
}
|