2 // File OpenGl_GraphicDriver_712.cxx
3 // Created Mardi 28 janvier 1997
6 //-Copyright MatraDatavision 1997
10 //-Design Declaration des variables specifiques aux Drivers
12 //-Warning Un driver encapsule les Pex et OpenGl drivers
21 #include <OpenGl_GraphicDriver.jxx>
23 #include <Aspect_DriverDefinitionError.hxx>
25 #include <OpenGl_tgl_funcs.hxx>
29 //-Global data definitions
33 void OpenGl_GraphicDriver::Bezier (const Graphic3d_CGroup& ACGroup,
34 const Graphic3d_Array1OfVertex& ListVertex,
35 const Standard_Boolean )
38 Graphic3d_CGroup MyCGroup = ACGroup;
40 Standard_Integer Lower = ListVertex.Lower ();
42 CALL_DEF_LISTPOINTS alpoints;
44 alpoints.NbPoints = int (ListVertex.Length ());
45 alpoints.TypePoints = 1;
46 alpoints.UPoints.Points = (CALL_DEF_POINT *) &ListVertex (Lower);
49 PrintFunction ("call_togl_bezier");
50 PrintCGroup (MyCGroup, 1);
52 call_togl_bezier (&MyCGroup, &alpoints);
56 void OpenGl_GraphicDriver::Bezier (const Graphic3d_CGroup& ACGroup,
57 const Graphic3d_Array1OfVertex& ListVertex,
58 const TColStd_Array1OfReal& ListWeight,
59 const Standard_Boolean )
62 Graphic3d_CGroup MyCGroup = ACGroup;
64 Standard_Integer i, j;
65 Standard_Integer Lower = ListVertex.Lower ();
66 Standard_Integer Upper = ListVertex.Upper ();
68 CALL_DEF_LISTREALS alweights;
70 CALL_DEF_LISTPOINTS alpoints;
72 j = ListWeight.Length ();
74 alpoints.NbPoints = int (ListVertex.Length ());
75 alpoints.TypePoints = 1;
76 alpoints.UPoints.Points = (CALL_DEF_POINT *) &ListVertex (Lower);
78 weights = new float [j];
79 alweights.NbReals = j;
80 alweights.Reals = weights;
82 Lower = ListWeight.Lower ();
83 Upper = ListWeight.Upper ();
86 for (j=0, i=Lower; i<=Upper; i++, j++)
87 weights[j] = float (ListWeight (i));
90 PrintFunction ("call_togl_bezier_weight");
91 PrintCGroup (MyCGroup, 1);
93 call_togl_bezier_weight (&MyCGroup, &alpoints, &alweights);
95 // Desallocation dynamique