#ifndef VOXEL_MESHER #define VOXEL_MESHER #include #include #include #include "voxel.h" #include "voxel_buffer.h" class VoxelLibrary; class VoxelMesher : public Reference { OBJ_TYPE(VoxelMesher, Reference); public: static const unsigned int MAX_MATERIALS = 8; // Arbitrary. Tweak if needed. private: Ref _library; Ref _materials[MAX_MATERIALS]; SurfaceTool _surface_tool[MAX_MATERIALS]; float _baked_occlusion_darkness; bool _bake_occlusion; public: VoxelMesher(); void set_material(Ref material, unsigned int id); void set_library(Ref library); void set_occlusion_darkness(float darkness); void set_occlusion_enabled(bool enable); Ref build(Ref buffer_ref); protected: static void _bind_methods(); }; #endif // VOXEL_MESHER