godot_voxel/dmc/voxel_mesher_dmc.h

41 lines
842 B
C
Raw Normal View History

#ifndef VOXEL_MESHER_DMC_H
#define VOXEL_MESHER_DMC_H
#include "../voxel_buffer.h"
#include "mesh_builder.h"
#include "scene/resources/mesh.h"
class VoxelMesherDMC : public Reference {
GDCLASS(VoxelMesherDMC, Reference)
public:
enum Mode {
MODE_NORMAL,
MODE_WIREFRAME,
MODE_DEBUG_OCTREE,
MODE_DEBUG_DUAL_GRID
};
Ref<ArrayMesh> build_mesh(const VoxelBuffer &voxels, real_t geometric_error, Mode mode);
2019-04-23 00:03:57 +02:00
Dictionary get_stats() const;
protected:
static void _bind_methods();
Ref<ArrayMesh> _build_mesh_b(Ref<VoxelBuffer> voxels, real_t geometric_error, Mode mode);
private:
dmc::MeshBuilder _mesh_builder;
2019-04-23 00:03:57 +02:00
struct Stats {
real_t octree_build_time;
real_t dualgrid_derivation_time;
real_t meshing_time;
real_t commit_time;
};
Stats _stats;
};
VARIANT_ENUM_CAST(VoxelMesherDMC::Mode)
#endif // VOXEL_MESHER_DMC_H