Work making SurfacePatchRenderable reformat the mesh as necessary...

This commit is contained in:
David Williams 2008-05-28 18:46:27 +00:00
parent de7554b9e3
commit a3b5bd72b8
3 changed files with 20 additions and 1 deletions

View File

@ -45,6 +45,8 @@ namespace PolyVox
const std::vector<SurfaceVertex>& getVertices(void) const;
std::vector<SurfaceVertex>& getVertices(void); //FIXME - non const version should be removed.
const std::vector<boost::uint32_t>& getIndices(void) const;
unsigned short getNoNonUniformTrianges(void);
public:
std::vector<boost::uint32_t> m_vecTriangleIndices;

View File

@ -199,4 +199,21 @@ namespace PolyVox
{
return m_vecTriangleIndices;
}
unsigned short IndexedSurfacePatch::getNoNonUniformTrianges(void)
{
unsigned short result = 0;
for(int i = 0; i < m_vecTriangleIndices.size() - 2; i += 3)
{
if((m_vecVertices[m_vecTriangleIndices[i]].getMaterial() == m_vecVertices[m_vecTriangleIndices[i+1]].getMaterial())
&& (m_vecVertices[m_vecTriangleIndices[i]].getMaterial() == m_vecVertices[m_vecTriangleIndices[i+2]].getMaterial()))
{
}
else
{
result++;
}
}
return result;
}
}

View File

@ -29,7 +29,7 @@ namespace PolyVox
generateRoughMeshDataForRegion(volume.getVolumeData(), *iterChangedRegions, regionGeometry.m_patchSingleMaterial, regionGeometry.m_patchMultiMaterial);
genMultiFromSingle(regionGeometry.m_patchSingleMaterial, regionGeometry.m_patchMultiMaterial);
//genMultiFromSingle(regionGeometry.m_patchSingleMaterial, regionGeometry.m_patchMultiMaterial);
regionGeometry.m_bContainsSingleMaterialPatch = regionGeometry.m_patchSingleMaterial->getVertices().size() > 0;
regionGeometry.m_bContainsMultiMaterialPatch = regionGeometry.m_patchMultiMaterial->getVertices().size() > 0;