1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 25 module graphene.c.types; 26 27 public import gobject.c.types; 28 29 30 /** 31 * Specify the order of the rotations on each axis. 32 * 33 * The %GRAPHENE_EULER_ORDER_DEFAULT value is special, and is used 34 * as an alias for one of the other orders. 35 * 36 * Since: 1.2 37 */ 38 public enum graphene_euler_order_t 39 { 40 /** 41 * Rotate in the default order; the 42 * default order is one of the following enumeration values 43 */ 44 DEFAULT = -1, 45 /** 46 * Rotate in the X, Y, and Z order. Deprecated in 47 * Graphene 1.10, it's an alias for %GRAPHENE_EULER_ORDER_SXYZ 48 */ 49 XYZ = 0, 50 /** 51 * Rotate in the Y, Z, and X order. Deprecated in 52 * Graphene 1.10, it's an alias for %GRAPHENE_EULER_ORDER_SYZX 53 */ 54 YZX = 1, 55 /** 56 * Rotate in the Z, X, and Y order. Deprecated in 57 * Graphene 1.10, it's an alias for %GRAPHENE_EULER_ORDER_SZXY 58 */ 59 ZXY = 2, 60 /** 61 * Rotate in the X, Z, and Y order. Deprecated in 62 * Graphene 1.10, it's an alias for %GRAPHENE_EULER_ORDER_SXZY 63 */ 64 XZY = 3, 65 /** 66 * Rotate in the Y, X, and Z order. Deprecated in 67 * Graphene 1.10, it's an alias for %GRAPHENE_EULER_ORDER_SYXZ 68 */ 69 YXZ = 4, 70 /** 71 * Rotate in the Z, Y, and X order. Deprecated in 72 * Graphene 1.10, it's an alias for %GRAPHENE_EULER_ORDER_SZYX 73 */ 74 ZYX = 5, 75 /** 76 * Defines a static rotation along the X, Y, and Z axes (Since: 1.10) 77 */ 78 SXYZ = 6, 79 /** 80 * Defines a static rotation along the X, Y, and X axes (Since: 1.10) 81 */ 82 SXYX = 7, 83 /** 84 * Defines a static rotation along the X, Z, and Y axes (Since: 1.10) 85 */ 86 SXZY = 8, 87 /** 88 * Defines a static rotation along the X, Z, and X axes (Since: 1.10) 89 */ 90 SXZX = 9, 91 /** 92 * Defines a static rotation along the Y, Z, and X axes (Since: 1.10) 93 */ 94 SYZX = 10, 95 /** 96 * Defines a static rotation along the Y, Z, and Y axes (Since: 1.10) 97 */ 98 SYZY = 11, 99 /** 100 * Defines a static rotation along the Y, X, and Z axes (Since: 1.10) 101 */ 102 SYXZ = 12, 103 /** 104 * Defines a static rotation along the Y, X, and Y axes (Since: 1.10) 105 */ 106 SYXY = 13, 107 /** 108 * Defines a static rotation along the Z, X, and Y axes (Since: 1.10) 109 */ 110 SZXY = 14, 111 /** 112 * Defines a static rotation along the Z, X, and Z axes (Since: 1.10) 113 */ 114 SZXZ = 15, 115 /** 116 * Defines a static rotation along the Z, Y, and X axes (Since: 1.10) 117 */ 118 SZYX = 16, 119 /** 120 * Defines a static rotation along the Z, Y, and Z axes (Since: 1.10) 121 */ 122 SZYZ = 17, 123 /** 124 * Defines a relative rotation along the Z, Y, and X axes (Since: 1.10) 125 */ 126 RZYX = 18, 127 /** 128 * Defines a relative rotation along the X, Y, and X axes (Since: 1.10) 129 */ 130 RXYX = 19, 131 /** 132 * Defines a relative rotation along the Y, Z, and X axes (Since: 1.10) 133 */ 134 RYZX = 20, 135 /** 136 * Defines a relative rotation along the X, Z, and X axes (Since: 1.10) 137 */ 138 RXZX = 21, 139 /** 140 * Defines a relative rotation along the X, Z, and Y axes (Since: 1.10) 141 */ 142 RXZY = 22, 143 /** 144 * Defines a relative rotation along the Y, Z, and Y axes (Since: 1.10) 145 */ 146 RYZY = 23, 147 /** 148 * Defines a relative rotation along the Z, X, and Y axes (Since: 1.10) 149 */ 150 RZXY = 24, 151 /** 152 * Defines a relative rotation along the Y, X, and Y axes (Since: 1.10) 153 */ 154 RYXY = 25, 155 /** 156 * Defines a relative rotation along the Y, X, and Z axes (Since: 1.10) 157 */ 158 RYXZ = 26, 159 /** 160 * Defines a relative rotation along the Z, X, and Z axes (Since: 1.10) 161 */ 162 RZXZ = 27, 163 /** 164 * Defines a relative rotation along the X, Y, and Z axes (Since: 1.10) 165 */ 166 RXYZ = 28, 167 /** 168 * Defines a relative rotation along the Z, Y, and Z axes (Since: 1.10) 169 */ 170 RZYZ = 29, 171 } 172 alias graphene_euler_order_t EulerOrder; 173 174 /** 175 * The type of intersection. 176 * 177 * Since: 1.10 178 */ 179 public enum graphene_ray_intersection_kind_t 180 { 181 /** 182 * No intersection 183 */ 184 NONE = 0, 185 /** 186 * The ray is entering the intersected 187 * object 188 */ 189 ENTER = 1, 190 /** 191 * The ray is leaving the intersected 192 * object 193 */ 194 LEAVE = 2, 195 } 196 alias graphene_ray_intersection_kind_t RayIntersectionKind; 197 198 struct graphene_box_t 199 { 200 graphene_vec3_t min; 201 graphene_vec3_t max; 202 } 203 204 struct graphene_euler_t 205 { 206 graphene_vec3_t angles; 207 graphene_euler_order_t order; 208 } 209 210 struct graphene_frustum_t 211 { 212 graphene_plane_t[6] planes; 213 } 214 215 struct graphene_matrix_t 216 { 217 graphene_simd4x4f_t value; 218 } 219 220 struct graphene_plane_t 221 { 222 graphene_vec3_t normal; 223 float constant; 224 } 225 226 struct graphene_point_t 227 { 228 /** 229 * the X coordinate of the point 230 */ 231 float x; 232 /** 233 * the Y coordinate of the point 234 */ 235 float y; 236 } 237 238 struct graphene_point3d_t 239 { 240 /** 241 * the X coordinate 242 */ 243 float x; 244 /** 245 * the Y coordinate 246 */ 247 float y; 248 /** 249 * the Z coordinate 250 */ 251 float z; 252 } 253 254 struct graphene_quad_t 255 { 256 graphene_point_t[4] points; 257 } 258 259 struct graphene_quaternion_t 260 { 261 float x; 262 float y; 263 float z; 264 float w; 265 } 266 267 struct graphene_ray_t 268 { 269 graphene_vec3_t origin; 270 graphene_vec3_t direction; 271 } 272 273 struct graphene_rect_t 274 { 275 /** 276 * the coordinates of the origin of the rectangle 277 */ 278 graphene_point_t origin; 279 /** 280 * the size of the rectangle 281 */ 282 graphene_size_t size; 283 } 284 285 struct graphene_simd4f_t 286 { 287 float x; 288 float y; 289 float z; 290 float w; 291 } 292 293 struct graphene_simd4x4f_t 294 { 295 graphene_simd4f_t x; 296 graphene_simd4f_t y; 297 graphene_simd4f_t z; 298 graphene_simd4f_t w; 299 } 300 301 struct graphene_size_t 302 { 303 /** 304 * the width 305 */ 306 float width; 307 /** 308 * the height 309 */ 310 float height; 311 } 312 313 struct graphene_sphere_t 314 { 315 graphene_vec3_t center; 316 float radius; 317 } 318 319 struct graphene_triangle_t 320 { 321 graphene_vec3_t a; 322 graphene_vec3_t b; 323 graphene_vec3_t c; 324 } 325 326 struct graphene_vec2_t 327 { 328 graphene_simd4f_t value; 329 } 330 331 struct graphene_vec3_t 332 { 333 graphene_simd4f_t value; 334 } 335 336 struct graphene_vec4_t 337 { 338 graphene_simd4f_t value; 339 } 340 341 enum PI = 3.141593; 342 alias GRAPHENE_PI = PI; 343 344 enum PI_2 = 1.570796; 345 alias GRAPHENE_PI_2 = PI_2; 346 347 /** 348 * Evaluates to the number of components of a #graphene_vec2_t. 349 * 350 * This symbol is useful when declaring a C array of floating 351 * point values to be used with graphene_vec2_init_from_float() and 352 * graphene_vec2_to_float(), e.g. 353 * 354 * |[ 355 * float v[GRAPHENE_VEC2_LEN]; 356 * 357 * // vec is defined elsewhere 358 * graphene_vec2_to_float (&vec, v); 359 * 360 * for (int i = 0; i < GRAPHENE_VEC2_LEN; i++) 361 * fprintf (stdout, "component %d: %g\n", i, v[i]); 362 * ]| 363 */ 364 enum VEC2_LEN = 2; 365 alias GRAPHENE_VEC2_LEN = VEC2_LEN; 366 367 /** 368 * Evaluates to the number of components of a #graphene_vec3_t. 369 * 370 * This symbol is useful when declaring a C array of floating 371 * point values to be used with graphene_vec3_init_from_float() and 372 * graphene_vec3_to_float(), e.g. 373 * 374 * |[ 375 * float v[GRAPHENE_VEC3_LEN]; 376 * 377 * // vec is defined elsewhere 378 * graphene_vec3_to_float (&vec, v); 379 * 380 * for (int i = 0; i < GRAPHENE_VEC2_LEN; i++) 381 * fprintf (stdout, "component %d: %g\n", i, v[i]); 382 * ]| 383 */ 384 enum VEC3_LEN = 3; 385 alias GRAPHENE_VEC3_LEN = VEC3_LEN; 386 387 /** 388 * Evaluates to the number of components of a #graphene_vec4_t. 389 * 390 * This symbol is useful when declaring a C array of floating 391 * point values to be used with graphene_vec4_init_from_float() and 392 * graphene_vec4_to_float(), e.g. 393 * 394 * |[ 395 * float v[GRAPHENE_VEC4_LEN]; 396 * 397 * // vec is defined elsewhere 398 * graphene_vec4_to_float (&vec, v); 399 * 400 * for (int i = 0; i < GRAPHENE_VEC4_LEN; i++) 401 * fprintf (stdout, "component %d: %g\n", i, v[i]); 402 * ]| 403 */ 404 enum VEC4_LEN = 4; 405 alias GRAPHENE_VEC4_LEN = VEC4_LEN;