Rearrange some things to keep definitions in sensible places
This commit is contained in:
parent
6294013709
commit
81ce31432c
@ -160,6 +160,8 @@ namespace PolyVox
|
|||||||
{
|
{
|
||||||
static_assert(std::is_signed<typename VolumeType::VoxelType>::value, "Voxel type must be signed");
|
static_assert(std::is_signed<typename VolumeType::VoxelType>::value, "Voxel type must be signed");
|
||||||
|
|
||||||
|
const float threshold = 0.0f;
|
||||||
|
|
||||||
//Timer timer;
|
//Timer timer;
|
||||||
Timer totalTimer;
|
Timer totalTimer;
|
||||||
|
|
||||||
@ -167,10 +169,6 @@ namespace PolyVox
|
|||||||
const auto regionYDimension = region.getDimensionsInVoxels().getY();
|
const auto regionYDimension = region.getDimensionsInVoxels().getY();
|
||||||
const auto regionZDimension = region.getDimensionsInVoxels().getZ();
|
const auto regionZDimension = region.getDimensionsInVoxels().getZ();
|
||||||
|
|
||||||
const auto cellRegionXDimension = regionXDimension+2;
|
|
||||||
const auto cellRegionYDimension = regionYDimension+2;
|
|
||||||
const auto cellRegionZDimension = regionZDimension+2;
|
|
||||||
|
|
||||||
const auto gradientRegionXDimension = regionXDimension+2;
|
const auto gradientRegionXDimension = regionXDimension+2;
|
||||||
const auto gradientRegionYDimension = regionYDimension+2;
|
const auto gradientRegionYDimension = regionYDimension+2;
|
||||||
const auto gradientRegionZDimension = regionZDimension+2;
|
const auto gradientRegionZDimension = regionZDimension+2;
|
||||||
@ -178,19 +176,10 @@ namespace PolyVox
|
|||||||
std::vector<std::pair<const typename VolumeType::VoxelType, const Vector3DFloat>> gradients;
|
std::vector<std::pair<const typename VolumeType::VoxelType, const Vector3DFloat>> gradients;
|
||||||
gradients.reserve(gradientRegionXDimension * gradientRegionYDimension * gradientRegionZDimension);
|
gradients.reserve(gradientRegionXDimension * gradientRegionYDimension * gradientRegionZDimension);
|
||||||
|
|
||||||
std::vector<CellData<typename VolumeType::VoxelType>> cells;
|
|
||||||
cells.reserve(cellRegionXDimension * cellRegionYDimension * cellRegionZDimension);
|
|
||||||
|
|
||||||
typename VolumeType::Sampler volSampler{volData};
|
typename VolumeType::Sampler volSampler{volData};
|
||||||
volSampler.setPosition(region.getLowerCorner() - Vector3DInt32{1,1,1});
|
volSampler.setPosition(region.getLowerCorner() - Vector3DInt32{1,1,1});
|
||||||
volSampler.setWrapMode(WrapMode::Border, -100.0); // -100.0 is well below the threshold
|
volSampler.setWrapMode(WrapMode::Border, -100.0); // -100.0 is well below the threshold
|
||||||
|
|
||||||
const float threshold = 0.0f;
|
|
||||||
|
|
||||||
SurfaceMesh<PositionMaterialNormal> mesh;
|
|
||||||
|
|
||||||
EdgeData<typename VolumeType::VoxelType>* edges[12]; //Create this now but it will be overwritten for each cell
|
|
||||||
|
|
||||||
const auto lowerCornerX = region.getLowerCorner().getX();
|
const auto lowerCornerX = region.getLowerCorner().getX();
|
||||||
const auto lowerCornerY = region.getLowerCorner().getZ();
|
const auto lowerCornerY = region.getLowerCorner().getZ();
|
||||||
const auto lowerCornerZ = region.getLowerCorner().getX();
|
const auto lowerCornerZ = region.getLowerCorner().getX();
|
||||||
@ -216,11 +205,8 @@ namespace PolyVox
|
|||||||
const auto& voxel1nx = volSampler.peekVoxel1nx0py0pz();
|
const auto& voxel1nx = volSampler.peekVoxel1nx0py0pz();
|
||||||
const auto& voxel1ny = volSampler.peekVoxel0px1ny0pz();
|
const auto& voxel1ny = volSampler.peekVoxel0px1ny0pz();
|
||||||
const auto& voxel1nz = volSampler.peekVoxel0px0py1nz();
|
const auto& voxel1nz = volSampler.peekVoxel0px0py1nz();
|
||||||
const Vector3DFloat g(voxel1nx - voxel1px, voxel1ny - voxel1py, voxel1nz - voxel1pz);
|
|
||||||
|
|
||||||
std::pair<const typename VolumeType::VoxelType, Vector3DFloat> data(voxel, g);
|
gradients.emplace_back(voxel, Vector3DFloat(voxel1nx - voxel1px, voxel1ny - voxel1py, voxel1nz - voxel1pz));
|
||||||
|
|
||||||
gradients.push_back(data);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -228,6 +214,13 @@ namespace PolyVox
|
|||||||
//logTrace() << "Gradients took " << timer.elapsedTimeInMilliSeconds();
|
//logTrace() << "Gradients took " << timer.elapsedTimeInMilliSeconds();
|
||||||
//timer.start();
|
//timer.start();
|
||||||
|
|
||||||
|
const auto cellRegionXDimension = regionXDimension+2;
|
||||||
|
const auto cellRegionYDimension = regionYDimension+2;
|
||||||
|
const auto cellRegionZDimension = regionZDimension+2;
|
||||||
|
|
||||||
|
std::vector<CellData<typename VolumeType::VoxelType>> cells;
|
||||||
|
cells.reserve(cellRegionXDimension * cellRegionYDimension * cellRegionZDimension);
|
||||||
|
|
||||||
for(int32_t cellZ = 0; cellZ < cellRegionZDimension; cellZ++)
|
for(int32_t cellZ = 0; cellZ < cellRegionZDimension; cellZ++)
|
||||||
{
|
{
|
||||||
for(int32_t cellY = 0; cellY < cellRegionYDimension; cellY++)
|
for(int32_t cellY = 0; cellY < cellRegionYDimension; cellY++)
|
||||||
@ -271,6 +264,10 @@ namespace PolyVox
|
|||||||
//logTrace() << "Edges took " << timer.elapsedTimeInMilliSeconds();
|
//logTrace() << "Edges took " << timer.elapsedTimeInMilliSeconds();
|
||||||
//timer.start();
|
//timer.start();
|
||||||
|
|
||||||
|
EdgeData<typename VolumeType::VoxelType>* edges[12]; //Create this now but it will be overwritten for each cell
|
||||||
|
|
||||||
|
SurfaceMesh<PositionMaterialNormal> mesh;
|
||||||
|
|
||||||
for(int32_t cellZ = 0; cellZ < cellRegionZDimension; cellZ++)
|
for(int32_t cellZ = 0; cellZ < cellRegionZDimension; cellZ++)
|
||||||
{
|
{
|
||||||
for(int32_t cellY = 0; cellY < cellRegionYDimension; cellY++)
|
for(int32_t cellY = 0; cellY < cellRegionYDimension; cellY++)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user