b762146bdd54231101705295c8ef7e73b3409eb9
[scilab.git] / scilab / modules / graphics / src / c / getHandleProperty / get_z_ticks_property.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
4  * Copyright (C) 2006 - INRIA - Allan Cornet
5  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
6  * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
7  * Copyright (C) 2011 - DIGITEO - Vincent Couvert
8  *
9  * This file must be used under the terms of the CeCILL.
10  * This source file is licensed as described in the file COPYING, which
11  * you should have received as part of this distribution.  The terms
12  * are also available at
13  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
14  *
15  */
16
17 /*------------------------------------------------------------------------*/
18 /* file: get_z_ticks_property.c                                           */
19 /* desc : function to retrieve in Scilab the z_ticks field of             */
20 /*        a handle                                                        */
21 /*------------------------------------------------------------------------*/
22
23 #include "getHandleProperty.h"
24 #include "GetProperty.h"
25 #include "Scierror.h"
26 #include "localization.h"
27 #include "get_ticks_utils.h"
28 #include "MALLOC.h"
29 #include "BasicAlgos.h"
30
31 #include "getGraphicObjectProperty.h"
32 #include "graphicObjectProperties.h"
33
34 /*------------------------------------------------------------------------*/
35 int get_z_ticks_property(void* _pvCtx, char* pobjUID)
36 {
37     int iNbTicks = 0;
38     int *piNbTicks = &iNbTicks;
39     int iView = 0;
40     int* piView = &iView;
41
42     /* retrieve number of ticks */
43     getGraphicObjectProperty(pobjUID, __GO_Z_AXIS_NUMBER_TICKS__, jni_int, (void**)&piNbTicks);
44     /* retrieve view: 0 -> 2d // 1 -> 3d */
45     getGraphicObjectProperty(pobjUID, __GO_VIEW__, jni_int, (void**)&piView);
46
47
48     if (piNbTicks == NULL)
49     {
50         Scierror(999, _("'%s' property does not exist for this handle.\n"), "z_ticks");
51         return -1;
52     }
53
54     if (iNbTicks == 0 || iView == 0)
55     {
56         /* return empty matrices */
57         buildTListForTicks(NULL, NULL, 0);
58     }
59     else
60     {
61         char ** labels = NULL;
62         double* positions = NULL;
63
64         getGraphicObjectProperty(pobjUID, __GO_Z_AXIS_TICKS_LOCATIONS__, jni_double_vector, (void **) &positions);
65
66         getGraphicObjectProperty(pobjUID, __GO_Z_AXIS_TICKS_LABELS__, jni_string_vector, (void **) &labels);
67
68         if (positions == NULL || labels == NULL)
69         {
70             Scierror(999, _("'%s' property does not exist for this handle.\n"), "z_ticks");
71             return -1;
72         }
73
74         buildTListForTicks(positions, labels, iNbTicks);
75
76         /* free arrays */
77 #if 0
78         destroyStringArray(labels, iNbTicks);
79         FREE(positions);
80 #endif
81     }
82
83     return 0;
84
85 }
86 /*------------------------------------------------------------------------*/