0022819: Redesign of OpenGl driver
[occt.git] / src / OpenGl / OpenGl_togl_setvisualisation.cxx
1 /***********************************************************************
2
3 FONCTION :
4 ----------
5 File OpenGl_togl_setvisualisation :
6
7 TEST :
8 ------
9
10 Le main TestOfDesktop.c permet de tester cette classe.
11
12
13 REMARQUES:
14 ---------- 
15
16
17 HISTORIQUE DES MODIFICATIONS   :
18 --------------------------------
19 xx-xx-xx : xxx ; Creation.
20 17-07-96 : FMN ; Simplification du code
21 05-02-97 : FMN ; Suppression de OpenGl_tgl_vis.h
22 24-12-97 : FMN ; Suppression de call_func_set_back_int_shad_meth()
23
24 ************************************************************************/
25
26 /*----------------------------------------------------------------------*/
27 /*
28 * Includes
29 */
30
31
32 #include <OpenGl_tgl_all.hxx>
33
34 #include <InterfaceGraphic_Labels.hxx>
35 #include <InterfaceGraphic_Graphic3d.hxx>
36 #include <InterfaceGraphic_Visual3d.hxx>
37
38 #include <OpenGl_tgl_funcs.hxx>
39 #include <OpenGl_tgl_subrvis.hxx>
40
41 /*----------------------------------------------------------------------*/
42
43 void EXPORT
44 call_togl_setvisualisation
45 (
46  CALL_DEF_VIEW * aview
47  )
48 {
49   /* activation */
50   call_func_set_edit_mode( CALL_PHIGS_EDIT_REPLACE );
51   call_func_open_struct( aview->ViewId );
52   call_func_set_elem_ptr( 0 );
53   call_func_set_elem_ptr_label( View_LABViewContext );
54   call_func_offset_elem_ptr( 1 );
55
56   switch( aview->Context.Visualization )
57   {
58   case 0 : /* VISUAL3D_TOV_WIREFRAME */
59     call_func_appl_data( 0 );
60
61     call_func_set_elem_ptr( 0 );
62     call_func_set_elem_ptr_label( View_LABHlhsr );
63     call_func_offset_elem_ptr( 1 );
64     call_util_setvisualization (
65       aview, 
66       aview->Context.ZBufferActivity,
67       CALL_DEF_DISABLE_ZBUFFER);
68     break;
69
70   case 1 : /* VISUAL3D_TOV_SHADING */
71     switch( aview->Context.Model )
72     {
73     case 0 : /* VISUAL3D_TOM_NONE */
74       call_func_set_int_shad_meth( CALL_PHIGS_SD_NONE );
75
76       break;
77
78     case 1 : /* VISUAL3D_TOM_INTERP_COLOR */
79       call_func_set_int_shad_meth( CALL_PHIGS_SD_COLOUR );
80       break;
81
82     case 2 : /* VISUAL3D_TOM_FACET */
83       call_func_set_int_shad_meth( CALL_PHIGS_SD_NORMAL );
84       break;
85
86     case 3 : /* VISUAL3D_TOM_VERTEX */
87       call_func_set_int_shad_meth( CALL_PHIGS_SD_COLOUR );
88       break;
89
90     case 4 : /* VISUAL3D_TOM_HIDDENLINE */
91       call_func_set_int_shad_meth( CALL_PHIGS_SD_NONE );
92       break;
93     }
94     call_func_set_elem_ptr( 0 );
95     call_func_set_elem_ptr_label( View_LABHlhsr );
96     call_func_offset_elem_ptr( 1 );
97     call_util_setvisualization (
98       aview, 
99       aview->Context.ZBufferActivity,
100       CALL_DEF_ENABLE_ZBUFFER);
101     break;
102   }
103
104   call_func_close_struct();
105
106   return;
107 }
108
109 /*----------------------------------------------------------------------*/
110
111 void call_util_setvisualization
112 (
113  CALL_DEF_VIEW * aView, 
114  int ZBuffer,
115  int Mode
116  )
117 {
118   switch (ZBuffer) {
119     case -1 : /* non force */
120       call_subr_hlhsr (aView, Mode);
121       break;
122     case 0 : /* force a "disable" */
123       call_subr_hlhsr (aView, CALL_DEF_DISABLE_ZBUFFER);
124       break;
125     case 1 : /* force a "enable" */
126       call_subr_hlhsr (aView, CALL_DEF_ENABLE_ZBUFFER);
127       break;
128   }
129 }
130
131 /*----------------------------------------------------------------------*/