Work making SurfacePatchRenderable reformat the mesh as necessary...
This commit is contained in:
parent
de7554b9e3
commit
a3b5bd72b8
@ -45,6 +45,8 @@ namespace PolyVox
|
|||||||
const std::vector<SurfaceVertex>& getVertices(void) const;
|
const std::vector<SurfaceVertex>& getVertices(void) const;
|
||||||
std::vector<SurfaceVertex>& getVertices(void); //FIXME - non const version should be removed.
|
std::vector<SurfaceVertex>& getVertices(void); //FIXME - non const version should be removed.
|
||||||
const std::vector<boost::uint32_t>& getIndices(void) const;
|
const std::vector<boost::uint32_t>& getIndices(void) const;
|
||||||
|
|
||||||
|
unsigned short getNoNonUniformTrianges(void);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::vector<boost::uint32_t> m_vecTriangleIndices;
|
std::vector<boost::uint32_t> m_vecTriangleIndices;
|
||||||
|
@ -199,4 +199,21 @@ namespace PolyVox
|
|||||||
{
|
{
|
||||||
return m_vecTriangleIndices;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ namespace PolyVox
|
|||||||
|
|
||||||
generateRoughMeshDataForRegion(volume.getVolumeData(), *iterChangedRegions, regionGeometry.m_patchSingleMaterial, regionGeometry.m_patchMultiMaterial);
|
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_bContainsSingleMaterialPatch = regionGeometry.m_patchSingleMaterial->getVertices().size() > 0;
|
||||||
regionGeometry.m_bContainsMultiMaterialPatch = regionGeometry.m_patchMultiMaterial->getVertices().size() > 0;
|
regionGeometry.m_bContainsMultiMaterialPatch = regionGeometry.m_patchMultiMaterial->getVertices().size() > 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user