1 /***********************************************************************
5 file OpenGl_togl_vieworientation.c :
12 HISTORIQUE DES MODIFICATIONS :
13 --------------------------------
14 xx-xx-xx : CAL ; Creation.
15 10-07-96 : FMN ; Suppression #define sur calcul matrice
17 ************************************************************************/
19 /*----------------------------------------------------------------------*/
24 #include <OpenGl_tgl_all.hxx>
25 #include <InterfaceGraphic_Graphic3d.hxx>
26 #include <InterfaceGraphic_Visual3d.hxx>
27 #include <OpenGl_tgl_vis.hxx>
28 #include <OpenGl_tgl_funcs.hxx>
30 /*----------------------------------------------------------------------*/
33 call_togl_vieworientation
35 CALL_DEF_VIEW * aview,
41 Tint err_ind; /* OUT error indicator */
46 Tfloat ScaleFactors[3];
50 Vrp[0] = aview->Orientation.ViewReferencePoint.x;
51 Vrp[1] = aview->Orientation.ViewReferencePoint.y;
52 Vrp[2] = aview->Orientation.ViewReferencePoint.z;
54 Vpn[0] = aview->Orientation.ViewReferencePlane.x;
55 Vpn[1] = aview->Orientation.ViewReferencePlane.y;
56 Vpn[2] = aview->Orientation.ViewReferencePlane.z;
58 Vup[0] = aview->Orientation.ViewReferenceUp.x;
59 Vup[1] = aview->Orientation.ViewReferenceUp.y;
60 Vup[2] = aview->Orientation.ViewReferenceUp.z;
62 ScaleFactors[0] = aview->Orientation.ViewScaleX;
63 ScaleFactors[1] = aview->Orientation.ViewScaleY;
64 ScaleFactors[2] = aview->Orientation.ViewScaleZ;
66 /* use user-defined matrix */
67 if ( aview->Orientation.IsCustomMatrix ) {
68 for( i = 0; i < 4; i++ )
69 for( j = 0; j < 4; j++ )
70 call_viewrep.orientation_matrix[i][j] = aview->Orientation.ModelViewMatrix[i][j];
73 TelEvalViewOrientationMatrix( Vrp, Vpn, Vup, ScaleFactors, &err_ind, call_viewrep.orientation_matrix);
75 if( !err_ind && aview->WsId != -1 )
77 call_viewrep.extra.vrp[0] = Vrp[0],
78 call_viewrep.extra.vrp[1] = Vrp[1],
79 call_viewrep.extra.vrp[2] = Vrp[2];
81 call_viewrep.extra.vpn[0] = Vpn[0],
82 call_viewrep.extra.vpn[1] = Vpn[1],
83 call_viewrep.extra.vpn[2] = Vpn[2];
85 call_viewrep.extra.vup[0] = Vup[0],
86 call_viewrep.extra.vup[1] = Vup[1],
87 call_viewrep.extra.vup[2] = Vup[2];
89 call_viewrep.extra.scaleFactors[0] = ScaleFactors[0],
90 call_viewrep.extra.scaleFactors[1] = ScaleFactors[1],
91 call_viewrep.extra.scaleFactors[2] = ScaleFactors[2];
96 call_togl_viewmapping( aview, waitwait );
97 call_togl_cliplimit( aview, waitwait );
98 TelSetViewRepresentation( aview->WsId, aview->ViewId, &call_viewrep );
103 /*----------------------------------------------------------------------*/