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: public:
IndexMeshVisitor(Optimizer* optimizer = 0) 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(osg::Geometry& geom);
void makeMesh(); void makeMesh();
protected:
bool _generateNewIndicesOnAllGeometries;
}; };
// Optimize the triangle order in a mesh for best use of the GPU's // 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 // 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. // duplicate shared arrays as it isn't safe to rearrange vertices when arrays are shared.
if (geom.containsSharedArrays()) geom.duplicateSharedArrays(); if (geom.containsSharedArrays()) geom.duplicateSharedArrays();