0023097: MFC Samples do not compile after redesigning the TKOpenGl driver
authorPawel <pawel-kowalski@wp.pl>
Wed, 11 Apr 2012 10:53:28 +0000 (12:53 +0200)
committerbugmaster <bugmaster@opencascade.com>
Wed, 18 Apr 2012 14:49:45 +0000 (18:49 +0400)
Replaced the obsolete 'TriangleSet' rendering primitive with 'Graphic3d_ArrayOfTriangles'

samples/mfc/standard/Common/User_Cylinder.cxx

index 5c53eb0..859a84e 100755 (executable)
@@ -9,6 +9,7 @@ IMPLEMENT_STANDARD_RTTIEXT(User_Cylinder,AIS_InteractiveObject)
 
 #include "ColoredMeshDlg.h"
 
 
 #include "ColoredMeshDlg.h"
 
+#include <Graphic3d_ArrayOfTriangles.hxx>
 #include <Graphic3d_StructureManager.hxx>
 #include <PrsMgr_PresentationManager3d.hxx>
 #include <BRepMesh.hxx>
 #include <Graphic3d_StructureManager.hxx>
 #include <PrsMgr_PresentationManager3d.hxx>
 #include <BRepMesh.hxx>
@@ -313,6 +314,8 @@ void User_Cylinder::Compute(const Handle_PrsMgr_PresentationManager3d& aPresenta
                                }
                        }       
 
                                }
                        }       
 
+                       Handle(Graphic3d_ArrayOfTriangles) aOP = new Graphic3d_ArrayOfTriangles(3 * nnn, 0, Standard_True, Standard_True);
+
                        for (nt = 1; nt <= nnn; nt++)                                   
                        {
 #ifdef DEBUG
                        for (nt = 1; nt <= nnn; nt++)                                   
                        {
 #ifdef DEBUG
@@ -325,50 +328,27 @@ void User_Cylinder::Compute(const Handle_PrsMgr_PresentationManager3d& aPresenta
 
                                if (TriangleIsValid (Nodes(n1),Nodes(n2),Nodes(n3)) )
                                {       // Associates a vertexNT to each node
 
                                if (TriangleIsValid (Nodes(n1),Nodes(n2),Nodes(n3)) )
                                {       // Associates a vertexNT to each node
-                                       Graphic3d_Array1OfVertexNC Points(1,3);
-                                       Aspect_Array1OfEdge aretes(1,3);
-
-               
-                                       mygroup->BeginPrimitives();
-                                       {
-                                               gp_Pnt p = Nodes(n1).Transformed(myLocation.Transformation());
-                                               gp_Pnt q = Nodes(n2).Transformed(myLocation.Transformation());
-                                               gp_Pnt r = Nodes(n3).Transformed(myLocation.Transformation());
-
-                                               Points(1).SetCoord(p.X(), p.Y(), p.Z());
-                                               Points(2).SetCoord(q.X(), q.Y(), q.Z());
-                                               Points(3).SetCoord(r.X(), r.Y(), r.Z());
+                                       
+                                       TColgp_Array1OfPnt Points(1,3);
 
 
-                               
-                                               Points(1).SetNormal(myNormal(n1).X(), myNormal(n1).Y(), myNormal(n1).Z());
-                                               Points(2).SetNormal(myNormal(n2).X(), myNormal(n2).Y(), myNormal(n2).Z());
-                                               Points(3).SetNormal(myNormal(n3).X(), myNormal(n3).Y(), myNormal(n3).Z());
-//ICI!!!
-/*                                             
-                                               Points(1).SetColor(Color(p,abs(int(B.Z())),abs(int(H.Z())),Dlg.Colorization));
-                                               Points(2).SetColor(Color(q,abs(int(B.Z())),abs(int(H.Z())),Dlg.Colorization));
-                                               Points(3).SetColor(Color(r,abs(int(B.Z())),abs(int(H.Z())),Dlg.Colorization));
-*/
-                                               Points(1).SetColor(Color(p,B.Z(),H.Z(),Dlg.Colorization));
-                                               Points(2).SetColor(Color(q,B.Z(),H.Z(),Dlg.Colorization));
-                                               Points(3).SetColor(Color(r,B.Z(),H.Z(),Dlg.Colorization));
-
-                               
-                       /*      Points(1).SetColor(Altitude(p,abs(B.Z()),abs(H.Z())));
-                               Points(2).SetColor(Altitude(q,abs(B.Z()),abs(H.Z())));
-                               Points(3).SetColor(Altitude(r,abs(B.Z()),abs(H.Z())));*/
-
-
-                                               aretes(1).SetValues(1, 2, Aspect_TOE_INVISIBLE);
-                                               aretes(2).SetValues(2, 3, Aspect_TOE_INVISIBLE);
-                                               aretes(3).SetValues(3, 1, Aspect_TOE_INVISIBLE);
-                                       }
-                                       mygroup->EndPrimitives();
-                                       mygroup->TriangleSet(Points, aretes, Standard_True);
+                                       gp_Pnt p = Nodes(n1).Transformed(myLocation.Transformation());
+                                       gp_Pnt q = Nodes(n2).Transformed(myLocation.Transformation());
+                                       gp_Pnt r = Nodes(n3).Transformed(myLocation.Transformation());
 
 
+                                       Points(1).SetCoord(p.X(), p.Y(), p.Z());
+                                       Points(2).SetCoord(q.X(), q.Y(), q.Z());
+                                       Points(3).SetCoord(r.X(), r.Y(), r.Z());
 
 
+                                       aOP->AddVertex(Points(1), myNormal(n1), Color(p,B.Z(),H.Z(),Dlg.Colorization));
+                                       aOP->AddVertex(Points(2), myNormal(n2), Color(q,B.Z(),H.Z(),Dlg.Colorization));
+                                       aOP->AddVertex(Points(3), myNormal(n3), Color(r,B.Z(),H.Z(),Dlg.Colorization));
                                } // end of "if the triangle is valid
                        } // end of the "parcours" of the triangles
                                } // end of "if the triangle is valid
                        } // end of the "parcours" of the triangles
+
+                       mygroup->BeginPrimitives();
+                       mygroup->AddPrimitiveArray(aOP);
+                       mygroup->EndPrimitives();
+
                        mygroup->SetGroupPrimitivesAspect(myAspect);
                }// end of the exploration of the shape in faces
 
                        mygroup->SetGroupPrimitivesAspect(myAspect);
                }// end of the exploration of the shape in faces