0024252: GCC warnings on breakage of strict-aliasing rules
[occt.git] / src / Graphic3d / Graphic3d_CGraduatedTrihedron.hxx
1 // Created on: 2011-03-06
2 // Created by: Sergey ZERCHANINOV
3 // Copyright (c) 2011-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and / or modify it
8 // under the terms of the GNU Lesser General Public version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 #ifndef _Graphic3d_CGraduatedTrihedron_HeaderFile
17 #define _Graphic3d_CGraduatedTrihedron_HeaderFile
18
19 #include <Standard_Boolean.hxx>
20 #include <Standard_Integer.hxx>
21 #include <Standard_Type.hxx>
22 #include <Quantity_Color.hxx>
23 #include <TCollection_AsciiString.hxx>
24 #include <TCollection_ExtendedString.hxx>
25 #include <Font_FontAspect.hxx>
26
27 class Visual3d_View;
28
29 class Graphic3d_CGraduatedTrihedron
30 {
31 public:
32   typedef void (*minMaxValuesCallback)(Visual3d_View*);
33 public:
34     /* Default constructor. Nullifies the view pointer */
35     Graphic3d_CGraduatedTrihedron () : xdrawname ( Standard_False ),
36     ydrawname ( Standard_False ),
37     zdrawname ( Standard_False ),
38     xdrawvalues ( Standard_False ),
39     ydrawvalues ( Standard_False ),
40     zdrawvalues ( Standard_False ),
41     drawgrid ( Standard_False ),
42     drawaxes ( Standard_False ),
43     nbx ( 0 ),nby ( 0 ),nbz ( 0 ),
44     xoffset ( 0 ),yoffset ( 0 ),zoffset ( 0 ),
45     xaxisoffset ( 0 ),yaxisoffset ( 0 ),zaxisoffset ( 0 ),
46     xdrawtickmarks ( Standard_False ),
47     ydrawtickmarks ( Standard_False ),
48     zdrawtickmarks ( Standard_False ),
49     xtickmarklength ( 0 ), ytickmarklength ( 0 ), ztickmarklength ( 0 ),
50     styleOfNames ( Font_FA_Undefined ),
51     sizeOfNames ( 0 ),
52     styleOfValues ( Font_FA_Undefined ),
53     sizeOfValues ( 0 ),
54     cbCubicAxes ( NULL ),
55     ptrVisual3dView(NULL)
56         {
57                 //
58         }
59
60     /* Names of axes */
61     TCollection_ExtendedString xname, yname, zname;
62     /* Draw names */
63     Standard_Boolean xdrawname, ydrawname, zdrawname;
64     /* Draw values */
65     Standard_Boolean xdrawvalues, ydrawvalues, zdrawvalues;
66     /* Draw grid */
67     Standard_Boolean drawgrid;
68     /* Draw axes */
69     Standard_Boolean drawaxes;
70     /* Number of splits along axes */
71     Standard_Integer nbx, nby, nbz;
72     /* Offset for drawing values */
73     Standard_Integer xoffset, yoffset, zoffset;
74     /* Offset for drawing names of axes */
75     Standard_Integer xaxisoffset, yaxisoffset, zaxisoffset;
76     /* Draw tickmarks */
77     Standard_Boolean xdrawtickmarks, ydrawtickmarks, zdrawtickmarks;
78     /* Length of tickmarks */
79     Standard_Integer xtickmarklength, ytickmarklength, ztickmarklength;
80     /* Grid color */
81     Quantity_Color gridcolor;
82     /* Colors of axis names */
83     Quantity_Color xnamecolor, ynamecolor, znamecolor;
84     /* Colors of axis and values */
85     Quantity_Color xcolor, ycolor, zcolor;
86     /* Font name of names of axes: Courier, Arial, ... */
87     TCollection_AsciiString fontOfNames;
88     /* Style of names of axes: OSD_FA_Regular, OSD_FA_Bold, ... */
89     Font_FontAspect styleOfNames;
90     /* Size of names of axes: 8, 10, 12, 14, ... */
91     Standard_Integer sizeOfNames;
92     /* Font name of values: Courier, Arial, ... */
93     TCollection_AsciiString fontOfValues;
94     /* Style of values: OSD_FA_Regular, OSD_FA_Bold, ... */
95     Font_FontAspect styleOfValues;
96     /* Size of values: 8, 10, 12, 14, ... */
97     Standard_Integer sizeOfValues;
98
99     /* Callback function to define boundary box of displayed objects */
100     minMaxValuesCallback cbCubicAxes;
101     Visual3d_View* ptrVisual3dView;
102 };
103
104 const Handle(Standard_Type)& TYPE(Graphic3d_CGraduatedTrihedron);
105
106 #endif /*Graphic3d_CGraduatedTrihedron_HeaderFile*/