Interface margins and axes bounds properties.
[scilab.git] / scilab / modules / graphics / src / c / getHandleProperty / get_data_bounds_property.c
1 /*------------------------------------------------------------------------*/
2 /* file: get_data_bounds_property.c                                       */
3 /* Copyright INRIA 2006                                                   */
4 /* Authors : Fabrice Leray, Allan Cornet, Jean-Baptiste Silvy             */
5 /* desc : function to retrieve in Scilab the data_bounds field of         */
6 /*        a handle                                                        */
7 /*------------------------------------------------------------------------*/
8
9 #include "getHandleProperty.h"
10 #include "GetProperty.h"
11 #include "returnProperty.h"
12 #include "sciprint.h"
13
14 /*------------------------------------------------------------------------*/
15 int get_data_bounds_property( sciPointObj * pobj )
16 {
17
18   double bounds[6] ;
19   sciGetDataBounds(pobj, bounds) ;
20
21   if ( sciGetEntityType(pobj) == SCI_SUBWIN )
22   {
23     /**DJ.Abdemouche 2003**/
24     if ( sciGetIs3d( pobj ) )
25     {
26       return sciReturnMatrix( bounds, 2, 3 ) ;
27     }
28     else
29     {
30       return sciReturnMatrix( bounds, 2, 2 ) ;
31     }
32   }
33   else if ( sciGetEntityType (pobj) == SCI_SURFACE )
34   {
35     /* used for what ? F.Leray 20.04.05 */
36     return sciReturnMatrix( bounds, 3, 2 ) ;
37   }
38   else
39   {
40     sciprint("data_bounds property does not exist for this handle.\n");
41     return -1;
42   }
43
44 }
45 /*------------------------------------------------------------------------*/