1 #ifndef __DALI_CONSTANTS_H__
2 #define __DALI_CONSTANTS_H__
5 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.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
11 * http://www.apache.org/licenses/LICENSE-2.0
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.
22 #include <math.h> // M_PI
25 #include <dali/public-api/math/vector3.h>
26 #include <dali/public-api/math/vector4.h>
27 #include <dali/public-api/math/radian.h>
29 namespace Dali DALI_IMPORT_API
33 * @brief ParentOrigin constants
35 * Note that for 2D layouting, the typical Z position is 0.5f (not 0.0f)
37 namespace ParentOrigin
39 extern const Vector3 DEFAULT; ///< TOP_LEFT
41 extern const float TOP; ///< 0.0f
42 extern const float BOTTOM; ///< 1.0f
43 extern const float LEFT; ///< 0.0f
44 extern const float RIGHT; ///< 1.0f
45 extern const float MIDDLE; ///< 0.5f
47 extern const Vector3 BACK_TOP_LEFT; ///< 0.0f, 0.0f, 0.0f
48 extern const Vector3 BACK_TOP_CENTER; ///< 0.5f, 0.0f, 0.0f
49 extern const Vector3 BACK_TOP_RIGHT; ///< 1.0f, 0.0f, 0.0f
50 extern const Vector3 BACK_CENTER_LEFT; ///< 0.0f, 0.5f, 0.0f
51 extern const Vector3 BACK_CENTER; ///< 0.5f, 0.5f, 0.0f
52 extern const Vector3 BACK_CENTER_RIGHT; ///< 1.0f, 0.5f, 0.0f
53 extern const Vector3 BACK_BOTTOM_LEFT; ///< 0.0f, 1.0f, 0.0f
54 extern const Vector3 BACK_BOTTOM_CENTER; ///< 0.5f, 1.0f, 0.0f
55 extern const Vector3 BACK_BOTTOM_RIGHT; ///< 1.0f, 1.0f, 0.0f
57 extern const Vector3 TOP_LEFT; ///< 0.0f, 0.0f, 0.5f
58 extern const Vector3 TOP_CENTER; ///< 0.5f, 0.0f, 0.5f
59 extern const Vector3 TOP_RIGHT; ///< 1.0f, 0.0f, 0.5f
60 extern const Vector3 CENTER_LEFT; ///< 0.0f, 0.5f, 0.5f
61 extern const Vector3 CENTER; ///< 0.5f, 0.5f, 0.5f
62 extern const Vector3 CENTER_RIGHT; ///< 1.0f, 0.5f, 0.5f
63 extern const Vector3 BOTTOM_LEFT; ///< 0.0f, 1.0f, 0.5f
64 extern const Vector3 BOTTOM_CENTER; ///< 0.5f, 1.0f, 0.5f
65 extern const Vector3 BOTTOM_RIGHT; ///< 1.0f, 1.0f, 0.5f
67 extern const Vector3 FRONT_TOP_LEFT; ///< 0.0f, 0.0f, 1.0f
68 extern const Vector3 FRONT_TOP_CENTER; ///< 0.5f, 0.0f, 1.0f
69 extern const Vector3 FRONT_TOP_RIGHT; ///< 1.0f, 0.0f, 1.0f
70 extern const Vector3 FRONT_CENTER_LEFT; ///< 0.0f, 0.5f, 1.0f
71 extern const Vector3 FRONT_CENTER; ///< 0.5f, 0.5f, 1.0f
72 extern const Vector3 FRONT_CENTER_RIGHT; ///< 1.0f, 0.5f, 1.0f
73 extern const Vector3 FRONT_BOTTOM_LEFT; ///< 0.0f, 1.0f, 1.0f
74 extern const Vector3 FRONT_BOTTOM_CENTER;///< 0.5f, 1.0f, 1.0f
75 extern const Vector3 FRONT_BOTTOM_RIGHT; ///< 1.0f, 1.0f, 1.0f
80 * @brief AnchorPoint constants
82 * Note that for 2D layouting, the typical Z position is 0.5f (not 0.0f)
86 extern const float TOP; ///< 0.0f
87 extern const float BOTTOM; ///< 1.0f
88 extern const float LEFT; ///< 0.0f
89 extern const float RIGHT; ///< 1.0f
90 extern const float MIDDLE; ///< 0.5f
92 extern const Vector3 DEFAULT; ///< CENTER
94 extern const Vector3 BACK_TOP_LEFT; ///< 0.0f, 0.0f, 0.0f
95 extern const Vector3 BACK_TOP_CENTER; ///< 0.5f, 0.0f, 0.0f
96 extern const Vector3 BACK_TOP_RIGHT; ///< 1.0f, 0.0f, 0.0f
97 extern const Vector3 BACK_CENTER_LEFT; ///< 0.0f, 0.5f, 0.0f
98 extern const Vector3 BACK_CENTER; ///< 0.5f, 0.5f, 0.0f
99 extern const Vector3 BACK_CENTER_RIGHT; ///< 1.0f, 0.5f, 0.0f
100 extern const Vector3 BACK_BOTTOM_LEFT; ///< 0.0f, 1.0f, 0.0f
101 extern const Vector3 BACK_BOTTOM_CENTER; ///< 0.5f, 1.0f, 0.0f
102 extern const Vector3 BACK_BOTTOM_RIGHT; ///< 1.0f, 1.0f, 0.0f
104 extern const Vector3 TOP_LEFT; ///< 0.0f, 0.0f, 0.5f
105 extern const Vector3 TOP_CENTER; ///< 0.5f, 0.0f, 0.5f
106 extern const Vector3 TOP_RIGHT; ///< 1.0f, 0.0f, 0.5f
107 extern const Vector3 CENTER_LEFT; ///< 0.0f, 0.5f, 0.5f
108 extern const Vector3 CENTER; ///< 0.5f, 0.5f, 0.5f
109 extern const Vector3 CENTER_RIGHT; ///< 1.0f, 0.5f, 0.5f
110 extern const Vector3 BOTTOM_LEFT; ///< 0.0f, 1.0f, 0.5f
111 extern const Vector3 BOTTOM_CENTER; ///< 0.5f, 1.0f, 0.5f
112 extern const Vector3 BOTTOM_RIGHT; ///< 1.0f, 1.0f, 0.5f
114 extern const Vector3 FRONT_TOP_LEFT; ///< 0.0f, 0.0f, 1.0f
115 extern const Vector3 FRONT_TOP_CENTER; ///< 0.5f, 0.0f, 1.0f
116 extern const Vector3 FRONT_TOP_RIGHT; ///< 1.0f, 0.0f, 1.0f
117 extern const Vector3 FRONT_CENTER_LEFT; ///< 0.0f, 0.5f, 1.0f
118 extern const Vector3 FRONT_CENTER; ///< 0.5f, 0.5f, 1.0f
119 extern const Vector3 FRONT_CENTER_RIGHT; ///< 1.0f, 0.5f, 1.0f
120 extern const Vector3 FRONT_BOTTOM_LEFT; ///< 0.0f, 1.0f, 1.0f
121 extern const Vector3 FRONT_BOTTOM_CENTER;///< 0.5f, 1.0f, 1.0f
122 extern const Vector3 FRONT_BOTTOM_RIGHT; ///< 1.0f, 1.0f, 1.0f
127 * @brief Color Constants.
129 * Color is represented by the Vector4 class (see vector4.h).
133 extern const Vector4 BLACK; ///< Pure black (0.0f, 0.0f, 0.0f, 1.0f);
134 extern const Vector4 WHITE; ///< Pure white (1.0f, 1.0f, 1.0f, 1.0f);
136 extern const Vector4 RED; ///< Pure red (1.0f, 0.0f, 0.0f, 1.0f);
137 extern const Vector4 GREEN; ///< Pure green (0.0f, 1.0f, 0.0f, 1.0f);
138 extern const Vector4 BLUE; ///< Pure blue (0.0f, 0.0f, 1.0f, 1.0f);
140 extern const Vector4 YELLOW; ///< Pure yellow (1.0f, 1.0f, 0.0f, 1.0f);
141 extern const Vector4 MAGENTA; ///< Pure magenta (1.0f, 0.0f, 1.0f, 1.0f);
142 extern const Vector4 CYAN; ///< Pure cyan (0.0f, 1.0f, 1.0f, 1.0f);
144 extern const Vector4 TRANSPARENT; ///< Black transparent (0.0f, 0.0f, 0.0f, 0.0f);
149 * @brief Math constants
153 extern const float MACHINE_EPSILON_0; ///< Epsilon for values near zero
154 extern const float MACHINE_EPSILON_1; ///< Epsilon for values near 1
155 extern const float MACHINE_EPSILON_10; ///< Epsilon for values near 10
156 extern const float MACHINE_EPSILON_100; ///< Epsilon for values near 100
157 extern const float MACHINE_EPSILON_1000; ///< Epsilon for values near 1000
158 extern const float MACHINE_EPSILON_10000; ///< Epsilon for values near 10000
160 // float is preferred to double for performance on ARM targets
161 const float PI = static_cast<float>(M_PI); ///< Constant representing PI
162 const float PI_2 = static_cast<float>(M_PI_2); ///< Constant representing PI/2
163 const float PI_4 = static_cast<float>(M_PI_4); ///< Constant representing PI/4
168 * @brief String Constants
172 extern const std::string EMPTY; ///< The empty string
177 #endif // __DALI_CONSTANTS_H__