Updated CAPI documentation style.
[platform/core/uifw/dali-core.git] / capi / dali / public-api / common / constants.h
1 #ifndef __DALI_CONSTANTS_H__
2 #define __DALI_CONSTANTS_H__
3
4 //
5 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
6 //
7 // Licensed under the Flora License, Version 1.0 (the License);
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //     http://floralicense.org/license/
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an AS IS BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19
20 /**
21  * @addtogroup CAPI_DALI_COMMON_MODULE
22  * @{
23  */
24
25 // EXTERNAL INCLUDES
26 #include <math.h> // M_PI
27
28 // INTERNAL INCLUDES
29 #include <dali/public-api/math/vector2.h>
30 #include <dali/public-api/math/vector3.h>
31 #include <dali/public-api/math/vector4.h>
32 #include <dali/public-api/math/radian.h>
33
34 namespace Dali DALI_IMPORT_API
35 {
36
37 /**
38  * @brief ParentOrigin constants
39  *
40  * Note that for 2D layouting, the typical Z position is 0.5f (not 0.0f)
41  */
42 namespace ParentOrigin
43 {
44 extern const Vector3 DEFAULT; ///< TOP_LEFT
45
46 extern const float TOP;    ///< 0.0f
47 extern const float BOTTOM; ///< 1.0f
48 extern const float LEFT;   ///< 0.0f
49 extern const float RIGHT;  ///< 1.0f
50 extern const float MIDDLE; ///< 0.5f
51
52 extern const Vector3 BACK_TOP_LEFT;      ///< 0.0f, 0.0f, 0.0f
53 extern const Vector3 BACK_TOP_CENTER;    ///< 0.5f, 0.0f, 0.0f
54 extern const Vector3 BACK_TOP_RIGHT;     ///< 1.0f, 0.0f, 0.0f
55 extern const Vector3 BACK_CENTER_LEFT;   ///< 0.0f, 0.5f, 0.0f
56 extern const Vector3 BACK_CENTER;        ///< 0.5f, 0.5f, 0.0f
57 extern const Vector3 BACK_CENTER_RIGHT;  ///< 1.0f, 0.5f, 0.0f
58 extern const Vector3 BACK_BOTTOM_LEFT;   ///< 0.0f, 1.0f, 0.0f
59 extern const Vector3 BACK_BOTTOM_CENTER; ///< 0.5f, 1.0f, 0.0f
60 extern const Vector3 BACK_BOTTOM_RIGHT;  ///< 1.0f, 1.0f, 0.0f
61
62 extern const Vector3 TOP_LEFT;           ///< 0.0f, 0.0f, 0.5f
63 extern const Vector3 TOP_CENTER;         ///< 0.5f, 0.0f, 0.5f
64 extern const Vector3 TOP_RIGHT;          ///< 1.0f, 0.0f, 0.5f
65 extern const Vector3 CENTER_LEFT;        ///< 0.0f, 0.5f, 0.5f
66 extern const Vector3 CENTER;             ///< 0.5f, 0.5f, 0.5f
67 extern const Vector3 CENTER_RIGHT;       ///< 1.0f, 0.5f, 0.5f
68 extern const Vector3 BOTTOM_LEFT;        ///< 0.0f, 1.0f, 0.5f
69 extern const Vector3 BOTTOM_CENTER;      ///< 0.5f, 1.0f, 0.5f
70 extern const Vector3 BOTTOM_RIGHT;       ///< 1.0f, 1.0f, 0.5f
71
72 extern const Vector3 FRONT_TOP_LEFT;     ///< 0.0f, 0.0f, 1.0f
73 extern const Vector3 FRONT_TOP_CENTER;   ///< 0.5f, 0.0f, 1.0f
74 extern const Vector3 FRONT_TOP_RIGHT;    ///< 1.0f, 0.0f, 1.0f
75 extern const Vector3 FRONT_CENTER_LEFT;  ///< 0.0f, 0.5f, 1.0f
76 extern const Vector3 FRONT_CENTER;       ///< 0.5f, 0.5f, 1.0f
77 extern const Vector3 FRONT_CENTER_RIGHT; ///< 1.0f, 0.5f, 1.0f
78 extern const Vector3 FRONT_BOTTOM_LEFT;  ///< 0.0f, 1.0f, 1.0f
79 extern const Vector3 FRONT_BOTTOM_CENTER;///< 0.5f, 1.0f, 1.0f
80 extern const Vector3 FRONT_BOTTOM_RIGHT; ///< 1.0f, 1.0f, 1.0f
81
82 }
83
84 /**
85  * @brief AnchorPoint constants
86  *
87  * Note that for 2D layouting, the typical Z position is 0.5f (not 0.0f)
88  */
89 namespace AnchorPoint
90 {
91 extern const float TOP;    ///< 0.0f
92 extern const float BOTTOM; ///< 1.0f
93 extern const float LEFT;   ///< 0.0f
94 extern const float RIGHT;  ///< 1.0f
95 extern const float MIDDLE; ///< 0.5f
96
97 extern const Vector3 DEFAULT; ///< CENTER
98
99 extern const Vector3 BACK_TOP_LEFT;      ///< 0.0f, 0.0f, 0.0f
100 extern const Vector3 BACK_TOP_CENTER;    ///< 0.5f, 0.0f, 0.0f
101 extern const Vector3 BACK_TOP_RIGHT;     ///< 1.0f, 0.0f, 0.0f
102 extern const Vector3 BACK_CENTER_LEFT;   ///< 0.0f, 0.5f, 0.0f
103 extern const Vector3 BACK_CENTER;        ///< 0.5f, 0.5f, 0.0f
104 extern const Vector3 BACK_CENTER_RIGHT;  ///< 1.0f, 0.5f, 0.0f
105 extern const Vector3 BACK_BOTTOM_LEFT;   ///< 0.0f, 1.0f, 0.0f
106 extern const Vector3 BACK_BOTTOM_CENTER; ///< 0.5f, 1.0f, 0.0f
107 extern const Vector3 BACK_BOTTOM_RIGHT;  ///< 1.0f, 1.0f, 0.0f
108
109 extern const Vector3 TOP_LEFT;           ///< 0.0f, 0.0f, 0.5f
110 extern const Vector3 TOP_CENTER;         ///< 0.5f, 0.0f, 0.5f
111 extern const Vector3 TOP_RIGHT;          ///< 1.0f, 0.0f, 0.5f
112 extern const Vector3 CENTER_LEFT;        ///< 0.0f, 0.5f, 0.5f
113 extern const Vector3 CENTER;             ///< 0.5f, 0.5f, 0.5f
114 extern const Vector3 CENTER_RIGHT;       ///< 1.0f, 0.5f, 0.5f
115 extern const Vector3 BOTTOM_LEFT;        ///< 0.0f, 1.0f, 0.5f
116 extern const Vector3 BOTTOM_CENTER;      ///< 0.5f, 1.0f, 0.5f
117 extern const Vector3 BOTTOM_RIGHT;       ///< 1.0f, 1.0f, 0.5f
118
119 extern const Vector3 FRONT_TOP_LEFT;     ///< 0.0f, 0.0f, 1.0f
120 extern const Vector3 FRONT_TOP_CENTER;   ///< 0.5f, 0.0f, 1.0f
121 extern const Vector3 FRONT_TOP_RIGHT;    ///< 1.0f, 0.0f, 1.0f
122 extern const Vector3 FRONT_CENTER_LEFT;  ///< 0.0f, 0.5f, 1.0f
123 extern const Vector3 FRONT_CENTER;       ///< 0.5f, 0.5f, 1.0f
124 extern const Vector3 FRONT_CENTER_RIGHT; ///< 1.0f, 0.5f, 1.0f
125 extern const Vector3 FRONT_BOTTOM_LEFT;  ///< 0.0f, 1.0f, 1.0f
126 extern const Vector3 FRONT_BOTTOM_CENTER;///< 0.5f, 1.0f, 1.0f
127 extern const Vector3 FRONT_BOTTOM_RIGHT; ///< 1.0f, 1.0f, 1.0f
128 }
129
130
131 /**
132  * @brief Color Constants.
133  *
134  * Color is represented by the Vector4 class (see vector4.h).
135  */
136 namespace Color
137 {
138 extern const Vector4 BLACK;       ///< Pure black (0.0f, 0.0f, 0.0f, 1.0f);
139 extern const Vector4 WHITE;       ///< Pure white (1.0f, 1.0f, 1.0f, 1.0f);
140
141 extern const Vector4 RED;         ///< Pure red   (1.0f, 0.0f, 0.0f, 1.0f);
142 extern const Vector4 GREEN;       ///< Pure green (0.0f, 1.0f, 0.0f, 1.0f);
143 extern const Vector4 BLUE;        ///< Pure blue  (0.0f, 0.0f, 1.0f, 1.0f);
144
145 extern const Vector4 YELLOW;      ///< Pure yellow  (1.0f, 1.0f, 0.0f, 1.0f);
146 extern const Vector4 MAGENTA;     ///< Pure magenta (1.0f, 0.0f, 1.0f, 1.0f);
147 extern const Vector4 CYAN;        ///< Pure cyan    (0.0f, 1.0f, 1.0f, 1.0f);
148
149 extern const Vector4 TRANSPARENT; ///< Black transparent (0.0f, 0.0f, 0.0f, 0.0f);
150
151 } // namespace Color
152
153 /**
154  * @brief Math constants
155  */
156 namespace Math
157 {
158 extern const float MACHINE_EPSILON_0;      ///< Epsilon for values near zero
159 extern const float MACHINE_EPSILON_1;      ///< Epsilon for values near 1
160 extern const float MACHINE_EPSILON_10;     ///< Epsilon for values near 10
161 extern const float MACHINE_EPSILON_100;    ///< Epsilon for values near 100
162 extern const float MACHINE_EPSILON_1000;   ///< Epsilon for values near 1000
163 extern const float MACHINE_EPSILON_10000;  ///< Epsilon for values near 10000
164
165 // float is preferred to double for performance on ARM targets
166 const float PI   = static_cast<float>(M_PI);   ///< Constant representing PI
167 const float PI_2 = static_cast<float>(M_PI_2); ///< Constant representing PI/2
168 const float PI_4 = static_cast<float>(M_PI_4); ///< Constant representing PI/4
169
170 } // namespace Math
171
172 /**
173  * @brief String Constants
174  */
175 namespace String
176 {
177 extern const std::string EMPTY; ///< The empty string
178 }
179
180 } // namespace Dali
181
182 /**
183  * @}
184  */
185 #endif // __DALI_CONSTANTS_H__