Tidying up marching cubes wrap mode support.
This commit is contained in:
parent
ca45d49e0c
commit
2bc8e8e201
@ -83,19 +83,6 @@ namespace PolyVox
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
/// Constructor
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
/// This version of the constructor allows you to set some custom parameters
|
|
||||||
/// \param tThreshold The threshold to use.
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
/*DefaultMarchingCubesController(DensityType tThreshold)
|
|
||||||
{
|
|
||||||
m_tThreshold = tThreshold;
|
|
||||||
m_eWrapMode = WrapModes::Border;
|
|
||||||
m_tBorder = 0;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
/// Converts the underlying voxel type into a density value.
|
/// Converts the underlying voxel type into a density value.
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -118,6 +105,11 @@ namespace PolyVox
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VoxelType getBorderValue(void)
|
||||||
|
{
|
||||||
|
return m_tBorder;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
/// Returns the density value which was passed to the constructor.
|
/// Returns the density value which was passed to the constructor.
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -135,11 +127,6 @@ namespace PolyVox
|
|||||||
return m_eWrapMode;
|
return m_eWrapMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
VoxelType getBorderValue(void)
|
|
||||||
{
|
|
||||||
return m_tBorder;
|
|
||||||
}
|
|
||||||
|
|
||||||
void setThreshold(DensityType tThreshold)
|
void setThreshold(DensityType tThreshold)
|
||||||
{
|
{
|
||||||
m_tThreshold = tThreshold;
|
m_tThreshold = tThreshold;
|
||||||
@ -151,7 +138,7 @@ namespace PolyVox
|
|||||||
m_tBorder = tBorder;
|
m_tBorder = tBorder;
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
private:
|
||||||
DensityType m_tThreshold;
|
DensityType m_tThreshold;
|
||||||
WrapMode m_eWrapMode;
|
WrapMode m_eWrapMode;
|
||||||
VoxelType m_tBorder;
|
VoxelType m_tBorder;
|
||||||
|
@ -174,6 +174,11 @@ namespace PolyVox
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Density<Type> getBorderValue(void)
|
||||||
|
{
|
||||||
|
return m_tBorder;
|
||||||
|
}
|
||||||
|
|
||||||
DensityType getThreshold(void)
|
DensityType getThreshold(void)
|
||||||
{
|
{
|
||||||
return m_tThreshold;
|
return m_tThreshold;
|
||||||
@ -194,7 +199,7 @@ namespace PolyVox
|
|||||||
m_eWrapMode = eWrapMode;
|
m_eWrapMode = eWrapMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
private:
|
||||||
DensityType m_tThreshold;
|
DensityType m_tThreshold;
|
||||||
WrapMode m_eWrapMode;
|
WrapMode m_eWrapMode;
|
||||||
Density<Type> m_tBorder;
|
Density<Type> m_tBorder;
|
||||||
|
@ -36,7 +36,7 @@ namespace PolyVox
|
|||||||
m_regSizeInCells = m_regSizeInVoxels;
|
m_regSizeInCells = m_regSizeInVoxels;
|
||||||
m_regSizeInCells.setUpperCorner(m_regSizeInCells.getUpperCorner() - Vector3DInt32(1,1,1));
|
m_regSizeInCells.setUpperCorner(m_regSizeInCells.getUpperCorner() - Vector3DInt32(1,1,1));
|
||||||
|
|
||||||
m_sampVolume.setWrapMode(m_controller.getWrapMode(), m_controller.m_tBorder);
|
m_sampVolume.setWrapMode(m_controller.getWrapMode(), m_controller.getBorderValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename VolumeType, typename Controller>
|
template<typename VolumeType, typename Controller>
|
||||||
|
@ -138,6 +138,11 @@ namespace PolyVox
|
|||||||
return voxel.getMaterial();
|
return voxel.getMaterial();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MaterialDensityPair<Type, NoOfMaterialBits, NoOfDensityBits> getBorderValue(void)
|
||||||
|
{
|
||||||
|
return m_tBorder;
|
||||||
|
}
|
||||||
|
|
||||||
DensityType getThreshold(void)
|
DensityType getThreshold(void)
|
||||||
{
|
{
|
||||||
return m_tThreshold;
|
return m_tThreshold;
|
||||||
@ -158,7 +163,7 @@ namespace PolyVox
|
|||||||
m_eWrapMode = eWrapMode;
|
m_eWrapMode = eWrapMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
private:
|
||||||
DensityType m_tThreshold;
|
DensityType m_tThreshold;
|
||||||
WrapMode m_eWrapMode;
|
WrapMode m_eWrapMode;
|
||||||
MaterialDensityPair<Type, NoOfMaterialBits, NoOfDensityBits> m_tBorder;
|
MaterialDensityPair<Type, NoOfMaterialBits, NoOfDensityBits> m_tBorder;
|
||||||
|
@ -65,7 +65,10 @@ public:
|
|||||||
return WrapModes::Border;
|
return WrapModes::Border;
|
||||||
}
|
}
|
||||||
|
|
||||||
float m_tBorder;
|
float getBorderValue(void)
|
||||||
|
{
|
||||||
|
return 0.0f;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// These 'writeDensityValueToVoxel' functions provide a unified interface for writting densities to primative and class voxel types.
|
// These 'writeDensityValueToVoxel' functions provide a unified interface for writting densities to primative and class voxel types.
|
||||||
@ -153,7 +156,6 @@ void testCustomController(SurfaceMesh<PositionMaterialNormal>& result)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CustomMarchingCubesController controller;
|
CustomMarchingCubesController controller;
|
||||||
controller.m_tBorder = 0.0f; //Temporary HACK!
|
|
||||||
MarchingCubesSurfaceExtractor< SimpleVolume<float>, CustomMarchingCubesController > extractor(&volData, volData.getEnclosingRegion(), &result, controller);
|
MarchingCubesSurfaceExtractor< SimpleVolume<float>, CustomMarchingCubesController > extractor(&volData, volData.getEnclosingRegion(), &result, controller);
|
||||||
extractor.execute();
|
extractor.execute();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user