2 #include <OpenGl_tgl_all.hxx>
4 #include <InterfaceGraphic_Labels.hxx>
5 #include <InterfaceGraphic_Graphic3d.hxx>
7 #include <OpenGl_tgl.hxx>
8 #include <OpenGl_tgl_funcs.hxx>
9 #include <OpenGl_tgl_subrs.hxx>
14 CALL_DEF_STRUCTURE * astructure,
18 #define CALL_MAX_BOUNDBOXSIZE 16
21 Tfloat liner, lineg, lineb;
25 /* for the structure */
26 Tfloat Liner, Lineg, Lineb;
30 Tfloat Xm, Ym, Zm, XM, YM, ZM;
32 CALL_DEF_LISTPOINTS alpoints;
33 CALL_DEF_POINT points[CALL_MAX_BOUNDBOXSIZE];
37 Xm = astructure->BoundBox.Pmin.x;
38 Ym = astructure->BoundBox.Pmin.y;
39 Zm = astructure->BoundBox.Pmin.z;
40 XM = astructure->BoundBox.Pmax.x;
41 YM = astructure->BoundBox.Pmax.y;
42 ZM = astructure->BoundBox.Pmax.z;
43 call_func_set_edit_mode( CALL_PHIGS_EDIT_INSERT );
44 call_func_open_struct( astructure->Id );
45 call_func_set_elem_ptr( 0 );
46 call_func_set_elem_ptr_label( Structure_LABHighlight );
48 liner = astructure->BoundBox.Color.r;
49 lineg = astructure->BoundBox.Color.g;
50 lineb = astructure->BoundBox.Color.b;
51 linetype = CALL_PHIGS_LINE_SOLID;
52 linewidth = ( float )1.0;
53 call_subr_set_line_colr( liner, lineg, lineb );
54 call_func_set_linetype( linetype );
55 call_func_set_linewidth( linewidth );
57 alpoints.NbPoints = CALL_MAX_BOUNDBOXSIZE;
58 alpoints.TypePoints = 1;
59 alpoints.UPoints.Points = points;
61 points[ 0].x = Xm; points[ 0].y = Ym; points[ 0].z = Zm;
62 points[ 1].x = Xm; points[ 1].y = Ym; points[ 1].z = ZM;
63 points[ 2].x = Xm; points[ 2].y = YM; points[ 2].z = ZM;
64 points[ 3].x = Xm; points[ 3].y = YM; points[ 3].z = Zm;
65 points[ 4].x = Xm; points[ 4].y = Ym; points[ 4].z = Zm;
66 points[ 5].x = XM; points[ 5].y = Ym; points[ 5].z = Zm;
67 points[ 6].x = XM; points[ 6].y = Ym; points[ 6].z = ZM;
68 points[ 7].x = XM; points[ 7].y = YM; points[ 7].z = ZM;
69 points[ 8].x = XM; points[ 8].y = YM; points[ 8].z = Zm;
70 points[ 9].x = XM; points[ 9].y = Ym; points[ 9].z = Zm;
71 points[10].x = XM; points[10].y = YM; points[10].z = Zm;
72 points[11].x = Xm; points[11].y = YM; points[11].z = Zm;
73 points[12].x = Xm; points[12].y = YM; points[12].z = ZM;
74 points[13].x = XM; points[13].y = YM; points[13].z = ZM;
75 points[14].x = XM; points[14].y = Ym; points[14].z = ZM;
76 points[15].x = Xm; points[15].y = Ym; points[15].z = ZM;
78 call_subr_polyline( &alpoints );
80 Liner = astructure->ContextLine.Color.r;
81 Lineg = astructure->ContextLine.Color.g;
82 Lineb = astructure->ContextLine.Color.b;
84 switch( astructure->ContextLine.LineType )
86 case 0 : /* Aspect_TOL_SOLID */
87 Linetype = CALL_PHIGS_LINE_SOLID;
89 case 1 : /* Aspect_TOL_DASH */
90 Linetype = CALL_PHIGS_LINE_DASH;
92 case 2 : /* Aspect_TOL_DOT */
93 Linetype = CALL_PHIGS_LINE_DOT;
95 case 3 : /* Aspect_TOL_DOTDASH */
96 Linetype = CALL_PHIGS_LINE_DASH_DOT;
102 Linewidth = (Tfloat)astructure->ContextLine.Width;
103 call_subr_set_line_colr( Liner, Lineg, Lineb );
104 call_func_set_linetype( Linetype );
105 call_func_set_linewidth( Linewidth );
106 call_func_close_struct();
110 call_func_set_edit_mode( CALL_PHIGS_EDIT_REPLACE );
111 call_func_open_struct( astructure->Id );
112 call_func_set_elem_ptr( 0 );
113 call_func_set_elem_ptr_label( Structure_LABHighlight );
114 call_func_offset_elem_ptr( 1 );
115 call_func_del_elem(); /* boundary box linecolor */
116 call_func_offset_elem_ptr( 1 );
117 call_func_del_elem(); /* boundary box linetype */
118 call_func_offset_elem_ptr( 1 );
119 call_func_del_elem(); /* boundary box linewidth */
120 call_func_offset_elem_ptr( 1 );
121 call_func_del_elem(); /* boundary box definition */
122 call_func_offset_elem_ptr( 1 );
123 call_func_del_elem(); /* structure linecolor */
124 call_func_offset_elem_ptr( 1 );
125 call_func_del_elem(); /* structure linetype */
126 call_func_offset_elem_ptr( 1 );
127 call_func_del_elem(); /* structure linewidth */
128 call_func_close_struct();