From 54a2d77d56a7d459315cef6de46c853eefc3def4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Tue, 5 Jul 2022 00:23:38 +0200 Subject: [PATCH] Use non-deprecated methods to access OpenCascade Triangulation elements The Triangles() and Nodes() accessors have been deprecated in favor of the Triangle(index) and Node(index) methods, available since OCC 7.2.0, i.e. for over 5 years. The Nodes() method has been removed with OCC 7.6.0, and Triangles() is also slated for removal (currently). Use the non-deprecated methods, and also fix the types of the index variables to Standard_Integer. --- .../OpenCASCADE/ReaderWriterOpenCASCADE.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/osgPlugins/OpenCASCADE/ReaderWriterOpenCASCADE.cpp b/src/osgPlugins/OpenCASCADE/ReaderWriterOpenCASCADE.cpp index 91a14220016..1b0198d9081 100644 --- a/src/osgPlugins/OpenCASCADE/ReaderWriterOpenCASCADE.cpp +++ b/src/osgPlugins/OpenCASCADE/ReaderWriterOpenCASCADE.cpp @@ -168,7 +168,6 @@ osg::ref_ptr ReaderWritterOpenCASCADE::OCCTKReader::_createGeomet // create one osg primitive set osg::ref_ptr triangleStrip = new osg::DrawElementsUInt(osg::PrimitiveSet::TRIANGLES, 0); - unsigned int noOfTriangles = 0; osg::ref_ptr geom = new osg::Geometry; @@ -204,14 +203,14 @@ osg::ref_ptr ReaderWritterOpenCASCADE::OCCTKReader::_createGeomet Handle (Poly_Triangulation) triangulation = BRep_Tool::Triangulation(face, location); if (!triangulation.IsNull()) { - int noOfNodes = triangulation->NbNodes(); + Standard_Integer noOfNodes = triangulation->NbNodes(); // Store vertices. Build vertex array here - for(int j = 1; j <= triangulation->NbNodes(); j++) + for (Standard_Integer j = 1; j <= triangulation->NbNodes(); j++) { // populate vertex list // Ref: http://www.opencascade.org/org/forum/thread_16694/?forum=3 - gp_Pnt pt = (triangulation->Nodes())(j).Transformed(transformation * location.Transformation()); + gp_Pnt pt = triangulation->Node(j).Transformed(transformation * location.Transformation()); vertexList->push_back(osg::Vec3(pt.X(), pt.Y(), pt.Z())); // populate color list @@ -221,25 +220,21 @@ osg::ref_ptr ReaderWritterOpenCASCADE::OCCTKReader::_createGeomet } } - /// now we need to get face indices for triangles - // get list of triangle first - const Poly_Array1OfTriangle& triangles = triangulation->Triangles(); - //No of triangles in this triangulation - noOfTriangles = triangulation->NbTriangles(); + Standard_Integer noOfTriangles = triangulation->NbTriangles(); Standard_Integer v1, v2, v3; - for (unsigned int j = 1; j <= noOfTriangles; j++) + for (Standard_Integer j = 1; j <= noOfTriangles; j++) { /// If face direction is reversed then we add verticews in reverse order /// order of vertices is important for normal calculation later if (face.Orientation() == TopAbs_REVERSED) { - triangles(j).Get(v1, v3, v2); + triangulation->Triangle(j).Get(v1, v3, v2); } else { - triangles(j).Get(v1, v2, v3); + triangulation->Triangle(j).Get(v1, v2, v3); } triangleStrip->push_back(index + v1 - 1); triangleStrip->push_back(index + v2 - 1);