mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-19 13:40:49 +03:00
0032133: Modeling Data - Restriction of access to internal arrays for Poly_Triangulation, revision of API
Removed methods from Poly_Triangulation/Poly_PolygonOnTriangulation giving access to internal arrays of 2d and 3d nodes, triangles and normals.
This commit is contained in:
@@ -64,11 +64,10 @@ DrawTrSurf_Triangulation::DrawTrSurf_Triangulation
|
||||
TColStd_Array1OfInteger& Internal = myInternals->ChangeArray1();
|
||||
|
||||
Standard_Integer fr = 1, in = 1;
|
||||
const Poly_Array1OfTriangle& triangles = T->Triangles();
|
||||
Standard_Integer n[3];
|
||||
for (i = 1; i <= nbTriangles; i++) {
|
||||
pc.Triangles(i,t[0],t[1],t[2]);
|
||||
triangles(i).Get(n[0],n[1],n[2]);
|
||||
T->Triangle (i).Get (n[0],n[1],n[2]);
|
||||
for (j = 0; j < 3; j++) {
|
||||
Standard_Integer k = (j+1) % 3;
|
||||
if (t[j] == 0) {
|
||||
@@ -146,15 +145,14 @@ void DrawTrSurf_Triangulation::DrawOn(Draw_Display& dis) const
|
||||
// Display the edges
|
||||
Standard_Integer i,n;
|
||||
|
||||
const TColgp_Array1OfPnt& Nodes = myTriangulation->Nodes();
|
||||
|
||||
// free edges
|
||||
|
||||
dis.SetColor(Draw_rouge);
|
||||
const TColStd_Array1OfInteger& Free = myFree->Array1();
|
||||
n = Free.Length() / 2;
|
||||
for (i = 1; i <= n; i++) {
|
||||
dis.Draw(Nodes(Free(2*i-1)),Nodes(Free(2*i)));
|
||||
dis.Draw (myTriangulation->Node (Free[2*i-1]),
|
||||
myTriangulation->Node (Free[2*i]));
|
||||
}
|
||||
|
||||
// internal edges
|
||||
@@ -163,7 +161,8 @@ void DrawTrSurf_Triangulation::DrawOn(Draw_Display& dis) const
|
||||
const TColStd_Array1OfInteger& Internal = myInternals->Array1();
|
||||
n = Internal.Length() / 2;
|
||||
for (i = 1; i <= n; i++) {
|
||||
dis.Draw(Nodes(Internal(2*i-1)),Nodes(Internal(2*i)));
|
||||
dis.Draw (myTriangulation->Node (Internal[2*i-1]),
|
||||
myTriangulation->Node (Internal[2*i]));
|
||||
}
|
||||
|
||||
// texts
|
||||
@@ -173,7 +172,7 @@ void DrawTrSurf_Triangulation::DrawOn(Draw_Display& dis) const
|
||||
n = myTriangulation->NbNodes();
|
||||
for (i = 1; i <= n; i++) {
|
||||
Sprintf(text,"%d",i);
|
||||
dis.DrawString(Nodes(i),text);
|
||||
dis.DrawString (myTriangulation->Node (i), text);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -181,13 +180,12 @@ void DrawTrSurf_Triangulation::DrawOn(Draw_Display& dis) const
|
||||
dis.SetColor(Draw_vert);
|
||||
n = myTriangulation->NbTriangles();
|
||||
Standard_Integer t[3],j;
|
||||
const Poly_Array1OfTriangle& triangle = myTriangulation->Triangles();
|
||||
for (i = 1; i <= n; i++) {
|
||||
triangle(i).Get(t[0],t[1],t[2]);
|
||||
myTriangulation->Triangle (i).Get (t[0],t[1],t[2]);
|
||||
gp_Pnt P(0,0,0);
|
||||
gp_XYZ& bary = P.ChangeCoord();
|
||||
for (j = 0; j < 3; j++)
|
||||
bary.Add(Nodes(t[j]).Coord());
|
||||
bary.Add (myTriangulation->Node (t[j]).Coord());
|
||||
bary.Multiply(1./3.);
|
||||
|
||||
Sprintf(text,"%d",i);
|
||||
|
@@ -67,11 +67,10 @@ DrawTrSurf_Triangulation2D::DrawTrSurf_Triangulation2D
|
||||
TColStd_Array1OfInteger& Internal = myInternals->ChangeArray1();
|
||||
|
||||
Standard_Integer fr = 1, in = 1;
|
||||
const Poly_Array1OfTriangle& triangles = T->Triangles();
|
||||
Standard_Integer n[3];
|
||||
for (i = 1; i <= nbTriangles; i++) {
|
||||
pc.Triangles(i,t[0],t[1],t[2]);
|
||||
triangles(i).Get(n[0],n[1],n[2]);
|
||||
T->Triangle(i).Get (n[0],n[1],n[2]);
|
||||
for (j = 0; j < 3; j++) {
|
||||
Standard_Integer k = (j+1) % 3;
|
||||
if (t[j] == 0) {
|
||||
@@ -108,28 +107,27 @@ void DrawTrSurf_Triangulation2D::DrawOn(Draw_Display& dis) const
|
||||
{
|
||||
// Display the edges
|
||||
Standard_Integer i,n;
|
||||
if (myTriangulation->HasUVNodes()) {
|
||||
|
||||
const TColgp_Array1OfPnt2d& Nodes = myTriangulation->UVNodes();
|
||||
|
||||
if (myTriangulation->HasUVNodes())
|
||||
{
|
||||
// free edges
|
||||
|
||||
dis.SetColor(Draw_rouge);
|
||||
const TColStd_Array1OfInteger& Free = myFree->Array1();
|
||||
n = Free.Length() / 2;
|
||||
for (i = 1; i <= n; i++) {
|
||||
dis.Draw(Nodes(Free(2*i-1)),Nodes(Free(2*i)));
|
||||
for (i = 1; i <= n; i++)
|
||||
{
|
||||
dis.Draw (myTriangulation->UVNode (Free[2*i-1]),
|
||||
myTriangulation->UVNode (Free[2*i]));
|
||||
}
|
||||
|
||||
|
||||
// internal edges
|
||||
|
||||
dis.SetColor(Draw_bleu);
|
||||
const TColStd_Array1OfInteger& Internal = myInternals->Array1();
|
||||
n = Internal.Length() / 2;
|
||||
for (i = 1; i <= n; i++) {
|
||||
dis.Draw(Nodes(Internal(2*i-1)),Nodes(Internal(2*i)));
|
||||
for (i = 1; i <= n; i++)
|
||||
{
|
||||
dis.Draw (myTriangulation->UVNode (Internal[2*i-1]),
|
||||
myTriangulation->UVNode (Internal[2*i]));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user