diff --git a/src/AIS/AIS_ColorScale.cxx b/src/AIS/AIS_ColorScale.cxx index ebcad40889..4317fa08c2 100644 --- a/src/AIS/AIS_ColorScale.cxx +++ b/src/AIS/AIS_ColorScale.cxx @@ -55,12 +55,8 @@ namespace theTris->AddVertex (gp_Pnt (theXLeft + theSizeX, theYBottom, 0.0), theColorBottom); theTris->AddVertex (gp_Pnt (theXLeft, theYBottom + theSizeY, 0.0), theColorTop); theTris->AddVertex (gp_Pnt (theXLeft + theSizeX, theYBottom + theSizeY, 0.0), theColorTop); - theTris->AddEdge (aVertIndex); - theTris->AddEdge (aVertIndex + 1); - theTris->AddEdge (aVertIndex + 2); - theTris->AddEdge (aVertIndex + 1); - theTris->AddEdge (aVertIndex + 2); - theTris->AddEdge (aVertIndex + 3); + theTris->AddEdges (aVertIndex, aVertIndex + 1, aVertIndex + 2); + theTris->AddEdges (aVertIndex + 1, aVertIndex + 2, aVertIndex + 3); } //! Compute hue angle from specified value. diff --git a/src/Graphic3d/Graphic3d_ArrayOfPrimitives.hxx b/src/Graphic3d/Graphic3d_ArrayOfPrimitives.hxx index 6e63e59322..490574872a 100644 --- a/src/Graphic3d/Graphic3d_ArrayOfPrimitives.hxx +++ b/src/Graphic3d/Graphic3d_ArrayOfPrimitives.hxx @@ -631,6 +631,39 @@ public: //! @name optional array of Indices/Edges for using shared Vertex data //! @return the actual edges number Standard_EXPORT Standard_Integer AddEdge (const Standard_Integer theVertexIndex); + //! Convenience method, adds two vertex indices (a segment) in the range [1,VertexNumber()] in the array. + //! @return the actual edges number + Standard_Integer AddEdges (Standard_Integer theVertexIndex1, + Standard_Integer theVertexIndex2) + { + AddEdge (theVertexIndex1); + return AddEdge (theVertexIndex2); + } + + //! Convenience method, adds three vertex indices (a triangle) in the range [1,VertexNumber()] in the array. + //! @return the actual edges number + Standard_Integer AddEdges (Standard_Integer theVertexIndex1, + Standard_Integer theVertexIndex2, + Standard_Integer theVertexIndex3) + { + AddEdge (theVertexIndex1); + AddEdge (theVertexIndex2); + return AddEdge (theVertexIndex3); + } + + //! Convenience method, adds four vertex indices (a quad) in the range [1,VertexNumber()] in the array. + //! @return the actual edges number + Standard_Integer AddEdges (Standard_Integer theVertexIndex1, + Standard_Integer theVertexIndex2, + Standard_Integer theVertexIndex3, + Standard_Integer theVertexIndex4) + { + AddEdge (theVertexIndex1); + AddEdge (theVertexIndex2); + AddEdge (theVertexIndex3); + return AddEdge (theVertexIndex4); + } + public: //! @name optional array of Bounds/Subgroups within primitive array (e.g. restarting primitives / assigning colors) //! Returns optional bounds buffer. diff --git a/src/StdPrs/StdPrs_ShadedShape.cxx b/src/StdPrs/StdPrs_ShadedShape.cxx index 7fda37ccb1..8f2de978c8 100644 --- a/src/StdPrs/StdPrs_ShadedShape.cxx +++ b/src/StdPrs/StdPrs_ShadedShape.cxx @@ -268,9 +268,9 @@ namespace aV1.Cross (aV2); if (aV1.SquareMagnitude() > aPreci) { - anArray->AddEdge (anIndex[0] + aDecal); - anArray->AddEdge (anIndex[1] + aDecal); - anArray->AddEdge (anIndex[2] + aDecal); + anArray->AddEdges (anIndex[0] + aDecal, + anIndex[1] + aDecal, + anIndex[2] + aDecal); } } }