Skip to content

Commit

Permalink
VOXEL: converted boolean to enum
Browse files Browse the repository at this point in the history
  • Loading branch information
mgerhardy committed Feb 3, 2024
1 parent 2120069 commit 27e8761
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
9 changes: 5 additions & 4 deletions src/modules/voxel/SurfaceExtractor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,18 @@ namespace voxel {
SurfaceExtractionContext buildCubicContext(const RawVolume *volume, const Region &region, ChunkMesh &mesh,
const glm::ivec3 &translate, bool mergeQuads, bool reuseVertices,
bool ambientOcclusion) {
return SurfaceExtractionContext(volume, getPalette(), region, mesh, translate, false, mergeQuads, reuseVertices,
ambientOcclusion);
return SurfaceExtractionContext(volume, getPalette(), region, mesh, translate, SurfaceExtractionType::Cubic,
mergeQuads, reuseVertices, ambientOcclusion);
}

SurfaceExtractionContext buildMarchingCubesContext(const RawVolume *volume, const Region &region, ChunkMesh &mesh,
const palette::Palette &palette) {
return SurfaceExtractionContext(volume, palette, region, mesh, glm::ivec3(0), true, false, false, false);
return SurfaceExtractionContext(volume, palette, region, mesh, glm::ivec3(0), SurfaceExtractionType::MarchingCubes,
false, false, false);
}

void extractSurface(SurfaceExtractionContext &ctx) {
if (ctx.marchingCubes) {
if (ctx.type == SurfaceExtractionType::MarchingCubes) {
voxel::Region extractRegion = ctx.region;
extractRegion.shrink(-1);
voxel::extractMarchingCubesMesh(ctx.volume, ctx.palette, extractRegion, &ctx.mesh);
Expand Down
13 changes: 7 additions & 6 deletions src/modules/voxel/SurfaceExtractor.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,21 @@ class RawVolume;
class Region;
struct ChunkMesh;

enum class SurfaceExtractionType { Cubic, MarchingCubes, Max };

struct SurfaceExtractionContext {
SurfaceExtractionContext(const RawVolume *_volume, const palette::Palette &_palette, const Region &_region,
ChunkMesh &_mesh, const glm::ivec3 &_translate, bool _marchingCubes, bool _mergeQuads,
bool _reuseVertices, bool _ambientOcclusion)
: volume(_volume), palette(_palette), region(_region), mesh(_mesh), translate(_translate),
marchingCubes(_marchingCubes), mergeQuads(_mergeQuads), reuseVertices(_reuseVertices),
ambientOcclusion(_ambientOcclusion) {
ChunkMesh &_mesh, const glm::ivec3 &_translate, SurfaceExtractionType _type,
bool _mergeQuads, bool _reuseVertices, bool _ambientOcclusion)
: volume(_volume), palette(_palette), region(_region), mesh(_mesh), translate(_translate), type(_type),
mergeQuads(_mergeQuads), reuseVertices(_reuseVertices), ambientOcclusion(_ambientOcclusion) {
}
const RawVolume *volume;
const palette::Palette &palette;
const Region &region;
ChunkMesh &mesh;
const glm::ivec3 translate;
const bool marchingCubes;
const SurfaceExtractionType type;
const bool mergeQuads;
const bool reuseVertices;
const bool ambientOcclusion;
Expand Down

0 comments on commit 27e8761

Please sign in to comment.