Merge pull request #702 from mp3butcher/fix36

add MeshReindexation flag
This commit is contained in:
OpenSceneGraph git repository 2019-01-26 18:21:47 +00:00 committed by GitHub
commit 1504a54cd8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 2 deletions

View File

@ -46,11 +46,16 @@ class OSGUTIL_EXPORT IndexMeshVisitor : public GeometryCollector
{
public:
IndexMeshVisitor(Optimizer* optimizer = 0)
: GeometryCollector(optimizer, Optimizer::INDEX_MESH)
: GeometryCollector(optimizer, Optimizer::INDEX_MESH), _generateNewIndicesOnAllGeometries(false)
{
}
inline void setGenerateNewIndicesOnAllGeometries(bool b) { _generateNewIndicesOnAllGeometries = b; }
inline bool getGenerateNewIndicesOnAllGeometries() const { return _generateNewIndicesOnAllGeometries; }
void makeMesh(osg::Geometry& geom);
void makeMesh();
protected:
bool _generateNewIndicesOnAllGeometries;
};
// Optimize the triangle order in a mesh for best use of the GPU's

View File

@ -262,7 +262,7 @@ void IndexMeshVisitor::makeMesh(Geometry& geom)
}
// nothing to index
if (!numSurfacePrimitives || !numNonIndexedPrimitives) return;
if (!numSurfacePrimitives || (!_generateNewIndicesOnAllGeometries && !numNonIndexedPrimitives)) return;
// duplicate shared arrays as it isn't safe to rearrange vertices when arrays are shared.
if (geom.containsSharedArrays()) geom.duplicateSharedArrays();