More work on exposing wrap modes to marching cubes.
This commit is contained in:
parent
c06bfa9c09
commit
ca45d49e0c
@ -77,10 +77,10 @@ namespace PolyVox
|
|||||||
/// if the voxel type is 'float' then the representable range is -FLT_MAX to FLT_MAX and the threshold will be set to zero.
|
/// if the voxel type is 'float' then the representable range is -FLT_MAX to FLT_MAX and the threshold will be set to zero.
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
DefaultMarchingCubesController(void)
|
DefaultMarchingCubesController(void)
|
||||||
|
:m_tThreshold(((std::numeric_limits<DensityType>::min)() + (std::numeric_limits<DensityType>::max)()) / 2)
|
||||||
|
,m_eWrapMode(WrapModes::Border)
|
||||||
|
,m_tBorder(VoxelType(0))
|
||||||
{
|
{
|
||||||
m_tThreshold = ((std::numeric_limits<DensityType>::min)() + (std::numeric_limits<DensityType>::max)()) / 2;
|
|
||||||
m_eWrapMode = WrapModes::Border;
|
|
||||||
m_tBorder = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -89,12 +89,12 @@ namespace PolyVox
|
|||||||
/// This version of the constructor allows you to set some custom parameters
|
/// This version of the constructor allows you to set some custom parameters
|
||||||
/// \param tThreshold The threshold to use.
|
/// \param tThreshold The threshold to use.
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
DefaultMarchingCubesController(DensityType tThreshold)
|
/*DefaultMarchingCubesController(DensityType tThreshold)
|
||||||
{
|
{
|
||||||
m_tThreshold = tThreshold;
|
m_tThreshold = tThreshold;
|
||||||
m_eWrapMode = WrapModes::Border;
|
m_eWrapMode = WrapModes::Border;
|
||||||
m_tBorder = 0;
|
m_tBorder = 0;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
/// Converts the underlying voxel type into a density value.
|
/// Converts the underlying voxel type into a density value.
|
||||||
@ -135,6 +135,16 @@ namespace PolyVox
|
|||||||
return m_eWrapMode;
|
return m_eWrapMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VoxelType getBorderValue(void)
|
||||||
|
{
|
||||||
|
return m_tBorder;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setThreshold(DensityType tThreshold)
|
||||||
|
{
|
||||||
|
m_tThreshold = tThreshold;
|
||||||
|
}
|
||||||
|
|
||||||
void setWrapMode(WrapMode eWrapMode, VoxelType tBorder = VoxelType(0))
|
void setWrapMode(WrapMode eWrapMode, VoxelType tBorder = VoxelType(0))
|
||||||
{
|
{
|
||||||
m_eWrapMode = eWrapMode;
|
m_eWrapMode = eWrapMode;
|
||||||
|
@ -184,6 +184,11 @@ namespace PolyVox
|
|||||||
return m_eWrapMode;
|
return m_eWrapMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setThreshold(DensityType tThreshold)
|
||||||
|
{
|
||||||
|
m_tThreshold = tThreshold;
|
||||||
|
}
|
||||||
|
|
||||||
void setWrapMode(WrapMode eWrapMode)
|
void setWrapMode(WrapMode eWrapMode)
|
||||||
{
|
{
|
||||||
m_eWrapMode = eWrapMode;
|
m_eWrapMode = eWrapMode;
|
||||||
|
@ -148,6 +148,11 @@ namespace PolyVox
|
|||||||
return m_eWrapMode;
|
return m_eWrapMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setThreshold(DensityType tThreshold)
|
||||||
|
{
|
||||||
|
m_tThreshold = tThreshold;
|
||||||
|
}
|
||||||
|
|
||||||
void setWrapMode(WrapMode eWrapMode)
|
void setWrapMode(WrapMode eWrapMode)
|
||||||
{
|
{
|
||||||
m_eWrapMode = eWrapMode;
|
m_eWrapMode = eWrapMode;
|
||||||
|
@ -127,7 +127,8 @@ void testForType(SurfaceMesh<PositionMaterialNormal>& result)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DefaultMarchingCubesController<VoxelType> controller(50);
|
DefaultMarchingCubesController<VoxelType> controller;
|
||||||
|
controller.setThreshold(50);
|
||||||
MarchingCubesSurfaceExtractor< SimpleVolume<VoxelType> > extractor(&volData, volData.getEnclosingRegion(), &result, controller);
|
MarchingCubesSurfaceExtractor< SimpleVolume<VoxelType> > extractor(&volData, volData.getEnclosingRegion(), &result, controller);
|
||||||
extractor.execute();
|
extractor.execute();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user