warnings fixed
[scilab.git] / scilab / modules / graphics / includes / Axes.h
1 /*======================================================================================*/
2 /* Copyrigth INRIA 2006                                                                 */
3 /* File   : Axes.h                                                                      */
4 /* Author : Jean-Baptiste Silvy INRIA                                                   */
5 /* Desc   : Various functions to manipulate SubWindow objects                           */
6 /*======================================================================================*/
7
8 #ifndef __SCI_AXES_H__
9 #define __SCI_AXES_H__
10
11 #include "ObjectStructure.h"
12
13 /*--------------------------------------------------------------------------------------*/
14 /* check if the graduation text foo is inside the old_rect */
15 /* in this case it should not been displayed */
16 BOOL CheckDisplay( double fact_h, double fact_w, char logflag, char *foo,int *posi,int *fontid,int *old_rect) ;
17
18 /* The unit is the pixel */
19 /* return 0 if the point is inside the rect */
20 /* 1 if it is actually outside the rect */
21 /* (rect[0],rect[1]) : upper left point of the bounding box  in pixel */
22 /* (rect[2],rect[3]) : width and height in pixel */
23 /* point[0] : x component */
24 /* point[1] : y component */
25 BOOL IsInsideRectangle(int * rect, int *point) ;
26
27
28 /*---------------------------------------------------------------------
29  *Trace l'enveloppe convexe de la boite contenant le dessin 
30  * et renvoit dans InsideU et InsideD les indices des points dans xbox et ybox
31  * qui sont sur les 2 tri\`edres a l'interieur de l'enveloppe convexe
32  *---------------------------------------------------------------------*/
33 void Convex3d_Box(double *xbox, double *ybox, integer *InsideU, integer *InsideD, char *legend, integer *flag, double *bbox);
34
35 /* get the bounding rectangle of a label of a ticks */
36 /* similar to stringBoundingRect but only for ticks labels */
37 void getTicksLabelBox( double   fact_h   ,
38                        double   fact_w   , 
39                        char   * label    ,
40                        int      pos[2]   ,
41                        int      fontId[2],
42                        char     logflag  ,
43                        int      bbox[4]  ,
44                        BOOL     changeFont ) ;
45
46 /* remove the concealed ticks before display on the X and Y axis */
47 BOOL checkXAxes2dTics( sciPointObj * psubwin  ,
48                        char          side     ,
49                        double        y        ,
50                        char        * cFormat  ,
51                        int           fontId[2],
52                        int           smallersize ) ;
53
54 /* remove the concealed ticks before display on the X and Y axis */
55 BOOL checkYAxes2dTics( sciPointObj * psubwin  ,
56                        char          side     ,
57                        double        x        ,
58                        char        * cFormat  ,
59                        int           fontId[2],
60                        int           smallersize ) ;
61
62
63 void updateXaxesTics( sciPointObj * psubwin  ,
64                       char          side     ,
65                       double        y        ,
66                       int           fontId[2],
67                       int           smallersize ) ;
68
69 void updateYaxesTics( sciPointObj * psubwin  ,
70                       char          side     ,
71                       double        x        ,
72                       int           fontId[2],
73                       int           smallersize ) ;
74
75 /* remove in the ticks array the indices i such as removedTicks[i] */
76 /* is true. The value nbtics is an in-out variable */
77 void removeBadTicks( double * ticks, BOOL * removedTicks, int * nbTicks ) ;
78
79 /* remove an element in the array from translating the next
80    elements on step backward */
81 void removeIndex( double * changedArray, int size, int ind ) ;
82
83 /* compute the needed formats to display the ticks of a subWin */
84 void findFormat( sciPointObj * pSubWin, char formatX[5], char formatY[5] ) ;
85
86 /*--------------------------------------------------------------------------------------*/
87
88 /*--------------------------------------------------------------------------------------*/
89
90 /* clear a subwindow from all of its children */
91 void clearSubWin( sciPointObj * pSubWin ) ;
92
93 /* reinit a subwindow (but don't change position) */
94 void reinitSubWin( sciPointObj * pSubWin ) ;
95
96 /* reinit the viewing angles of a subwindow */
97 void initSubWinAngles( sciPointObj * pSubWin ) ;
98
99 /* set the size and position of the subwindow to the default */
100 void initSubWinSize( sciPointObj * pSubWin ) ;
101
102 /* set the data_bounds of the axes to the default value */
103 void initSubWinBounds( sciPointObj * pSubWin ) ;
104
105 /* reinit the selected subwindow if the auto_clear property is set to on */
106 /* return TRUE if the window has been redrawn */
107 BOOL checkRedrawing( void ) ;
108
109 /*--------------------------------------------------------------------------------------*/
110 /**
111 * Update the current scale factors from a modified SubWindow.
112 * This is sometimes required when the redraw is disable.
113 */
114 void updateSubWinScale( sciPointObj * pSubWin ) ;
115
116 /**
117 * update the scale factors only if the SubWindow won't be automatically redrawn.
118 * Should be called before dr("xstringl") for example.
119 */
120 void updateScaleIfRequired( sciPointObj * pSubWin ) ;
121 /*--------------------------------------------------------------------------------------*/
122 #endif /*__SCI_AXES_H_*/