1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-03 17:56:21 +03:00

0029958: Visualization - add method Graphic3d_ArrayOfPrimitives::AddEdges() taking up to 4 edges

This commit is contained in:
kgv 2018-07-14 13:59:22 +03:00 committed by bugmaster
parent 6f26baa0fc
commit fb60181a3a
3 changed files with 38 additions and 9 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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);
}
}
}