datoviz 0.2.0__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
datoviz/__init__.py ADDED
@@ -0,0 +1,3462 @@
1
+ """WARNING: DO NOT EDIT: automatically-generated file"""
2
+
3
+ __version__ = "0.2.0"
4
+
5
+
6
+ # ===============================================================================
7
+ # Imports
8
+ # ===============================================================================
9
+
10
+ import ctypes
11
+ from ctypes import POINTER as P_
12
+ import faulthandler
13
+ import os
14
+ import pathlib
15
+ import platform
16
+
17
+ from enum import IntEnum
18
+
19
+ try:
20
+ import numpy as np
21
+ from numpy import float32
22
+ from numpy.ctypeslib import as_ctypes_type as _ctype
23
+ from numpy.ctypeslib import ndpointer as ndpointer_
24
+ except ImportError:
25
+ float32 = object
26
+ raise ImportError("NumPy is not available")
27
+
28
+
29
+ # ===============================================================================
30
+ # Fault handler
31
+ # ===============================================================================
32
+
33
+ faulthandler.enable()
34
+
35
+
36
+ # ===============================================================================
37
+ # Global variables
38
+ # ===============================================================================
39
+
40
+ PLATFORMS = {
41
+ "Linux": "linux",
42
+ "Darwin": "macos",
43
+ "Windows": "windows",
44
+ }
45
+ PLATFORM = PLATFORMS.get(platform.system(), None)
46
+
47
+ LIB_NAMES = {
48
+ "linux": "libdatoviz.so",
49
+ "macos": "libdatoviz.dylib",
50
+ "windows": "libdatoviz.dll",
51
+ }
52
+ LIB_NAME = LIB_NAMES.get(PLATFORM, "")
53
+
54
+ FILE_DIR = pathlib.Path(__file__).parent.resolve()
55
+
56
+ # Package paths: this Python file is stored alongside the dynamic libraries.
57
+ DATOVIZ_DIR = FILE_DIR
58
+ LIB_DIR = FILE_DIR
59
+ LIB_PATH = DATOVIZ_DIR / LIB_NAME
60
+
61
+ # Development paths: the libraries are in build/ and libs/
62
+ if not LIB_PATH.exists():
63
+ DATOVIZ_DIR = (FILE_DIR / "../build/").resolve()
64
+ LIB_DIR = (FILE_DIR / f"../libs/vulkan/{PLATFORM}/").resolve()
65
+ LIB_PATH = DATOVIZ_DIR / LIB_NAME
66
+
67
+ if not LIB_PATH.exists():
68
+ raise RuntimeError(f"Unable to find `{LIB_PATH}`.")
69
+
70
+
71
+ # ===============================================================================
72
+ # Loading the dynamic library
73
+ # ===============================================================================
74
+
75
+ assert LIB_PATH.exists()
76
+ try:
77
+ dvz = ctypes.cdll.LoadLibrary(LIB_PATH)
78
+ except Exception as e:
79
+ print(f"Error loading {LIB_PATH}: {e}")
80
+ class DVZ:
81
+ def __getattr__(self, k):
82
+ return DVZ()
83
+
84
+ def __setattr__(self, k, v):
85
+ pass
86
+ dvz = DVZ()
87
+
88
+ # on macOS, we need to set the VK_DRIVER_FILES environment variable to the path to the MoltenVK ICD
89
+ if PLATFORM == "macos":
90
+ os.environ['VK_DRIVER_FILES'] = str(LIB_DIR / "MoltenVK_icd.json")
91
+
92
+
93
+ # ===============================================================================
94
+ # Util classes
95
+ # ===============================================================================
96
+
97
+ # see https://v4.chriskrycho.com/2015/ctypes-structures-and-dll-exports.html
98
+ class CtypesEnum(IntEnum):
99
+ @classmethod
100
+ def from_param(cls, obj):
101
+ return int(obj)
102
+
103
+
104
+ class WrappedValue:
105
+ def __init__(self, initial_value, ctype_type=ctypes.c_float):
106
+ self._value = ctype_type(initial_value)
107
+ self.python_value = initial_value
108
+
109
+ def __enter__(self):
110
+ return self
111
+
112
+ def __exit__(self, exc_type, exc_value, traceback):
113
+ self.python_value = self._value.value
114
+
115
+ @property
116
+ def P_(self):
117
+ return ctypes.byref(self._value)
118
+
119
+ @property
120
+ def value(self):
121
+ return self._value.value
122
+
123
+ @value.setter
124
+ def value(self, new_value):
125
+ self._value.value = new_value
126
+
127
+ def __repr__(self):
128
+ return str(self.value)
129
+
130
+
131
+ def array_pointer(x, dtype=None):
132
+ if not isinstance(x, np.ndarray):
133
+ return x
134
+ dtype = dtype or x.dtype
135
+ x = x.astype(dtype)
136
+ return x.ctypes.data_as(P_(_ctype(dtype)))
137
+
138
+
139
+ # HACK: accept None ndarrays as arguments, see https://stackoverflow.com/a/37664693/1595060
140
+ def ndpointer(*args, **kwargs):
141
+ ndim = kwargs.pop('ndim', 1)
142
+ ncol = kwargs.pop('ncol', 1)
143
+ base = ndpointer_(*args, **kwargs)
144
+
145
+ @classmethod
146
+ def from_param(cls, obj):
147
+ if obj is None:
148
+ return obj
149
+ if isinstance(obj, np.ndarray):
150
+ s = f"array <{obj.dtype}>{obj.shape}"
151
+ if obj.ndim != ndim:
152
+ raise ValueError(
153
+ f"Wrong ndim {obj.ndim} (expected {ndim}) for {s}")
154
+ if ncol > 1 and obj.shape[1] != ncol:
155
+ raise ValueError(
156
+ f"Wrong shape {obj.shape} (expected (*, {ncol})) for {s}")
157
+ out = base.from_param(obj)
158
+ else:
159
+ # NOTE: allow passing ndpointers without change
160
+ out = obj
161
+ return out
162
+ return type(base.__name__, (base,), {'from_param': from_param})
163
+
164
+
165
+ def char_pointer(s):
166
+ return str(s).encode('utf-8')
167
+
168
+
169
+ def vec2(x: float = 0, y: float = 0):
170
+ return (ctypes.c_float * 2)(x, y)
171
+
172
+
173
+ def vec3(x: float = 0, y: float = 0, z: float = 0):
174
+ return (ctypes.c_float * 3)(x, y, z)
175
+
176
+
177
+ def vec4(x: float = 0, y: float = 0, z: float = 0, w: float = 0):
178
+ return (ctypes.c_float * 4)(x, y, z, w)
179
+
180
+
181
+ def cvec4(r: int = 0, g: int = 0, b: int = 0, a: int = 0):
182
+ return (ctypes.c_uint8 * 4)(r, g, b, a)
183
+
184
+
185
+ # ===============================================================================
186
+ # Aliases
187
+ # ===============================================================================
188
+
189
+ DvzId = ctypes.c_uint64
190
+
191
+ A_ = array_pointer
192
+ S_ = char_pointer
193
+ V_ = WrappedValue
194
+
195
+
196
+ # ===============================================================================
197
+ # DEFINES
198
+ # ===============================================================================
199
+
200
+ M_PI = 3.141592653589793
201
+ M_2PI = 6.283185307179586
202
+ M_PI2 = 1.5707963267948966
203
+ M_INV_255 = 0.00392156862745098
204
+ GB = 1073741824
205
+ MB = 1048576
206
+ KB = 1024
207
+ CMAP_NAT = 144
208
+ CMAP_USR_OFS = 144
209
+ CMAP_USR = 32
210
+ CMAP_TOT = 176
211
+ CPAL256_OFS = 176
212
+ CPAL256_NAT = 32
213
+ CPAL256_USR_OFS = 208
214
+ CPAL256_USR = 32
215
+ CPAL256_TOT = 64
216
+ CPAL032_OFS = 240
217
+ CPAL032_NAT = 8
218
+ CPAL032_USR_OFS = 248
219
+ CPAL032_USR = 8
220
+ CPAL032_PER_ROW = 8
221
+ CPAL032_SIZ = 32
222
+ CPAL032_TOT = 16
223
+ CMAP_COUNT = 256
224
+ CMAP_CUSTOM_COUNT = 16
225
+ CMAP_CUSTOM = 160
226
+ CPAL256_CUSTOM = 224
227
+ DVZ_VERSION_MINOR = 2
228
+
229
+
230
+ # ===============================================================================
231
+ # ENUMERATIONS
232
+ # ===============================================================================
233
+
234
+ class DvzKeyCode(CtypesEnum):
235
+ DVZ_KEY_UNKNOWN = -1
236
+ DVZ_KEY_NONE = +0
237
+ DVZ_KEY_SPACE = 32
238
+ DVZ_KEY_APOSTROPHE = 39
239
+ DVZ_KEY_COMMA = 44
240
+ DVZ_KEY_MINUS = 45
241
+ DVZ_KEY_PERIOD = 46
242
+ DVZ_KEY_SLASH = 47
243
+ DVZ_KEY_0 = 48
244
+ DVZ_KEY_1 = 49
245
+ DVZ_KEY_2 = 50
246
+ DVZ_KEY_3 = 51
247
+ DVZ_KEY_4 = 52
248
+ DVZ_KEY_5 = 53
249
+ DVZ_KEY_6 = 54
250
+ DVZ_KEY_7 = 55
251
+ DVZ_KEY_8 = 56
252
+ DVZ_KEY_9 = 57
253
+ DVZ_KEY_SEMICOLON = 59
254
+ DVZ_KEY_EQUAL = 61
255
+ DVZ_KEY_A = 65
256
+ DVZ_KEY_B = 66
257
+ DVZ_KEY_C = 67
258
+ DVZ_KEY_D = 68
259
+ DVZ_KEY_E = 69
260
+ DVZ_KEY_F = 70
261
+ DVZ_KEY_G = 71
262
+ DVZ_KEY_H = 72
263
+ DVZ_KEY_I = 73
264
+ DVZ_KEY_J = 74
265
+ DVZ_KEY_K = 75
266
+ DVZ_KEY_L = 76
267
+ DVZ_KEY_M = 77
268
+ DVZ_KEY_N = 78
269
+ DVZ_KEY_O = 79
270
+ DVZ_KEY_P = 80
271
+ DVZ_KEY_Q = 81
272
+ DVZ_KEY_R = 82
273
+ DVZ_KEY_S = 83
274
+ DVZ_KEY_T = 84
275
+ DVZ_KEY_U = 85
276
+ DVZ_KEY_V = 86
277
+ DVZ_KEY_W = 87
278
+ DVZ_KEY_X = 88
279
+ DVZ_KEY_Y = 89
280
+ DVZ_KEY_Z = 90
281
+ DVZ_KEY_LEFT_BRACKET = 91
282
+ DVZ_KEY_BACKSLASH = 92
283
+ DVZ_KEY_RIGHT_BRACKET = 93
284
+ DVZ_KEY_GRAVE_ACCENT = 96
285
+ DVZ_KEY_WORLD_1 = 161
286
+ DVZ_KEY_WORLD_2 = 162
287
+ DVZ_KEY_ESCAPE = 256
288
+ DVZ_KEY_ENTER = 257
289
+ DVZ_KEY_TAB = 258
290
+ DVZ_KEY_BACKSPACE = 259
291
+ DVZ_KEY_INSERT = 260
292
+ DVZ_KEY_DELETE = 261
293
+ DVZ_KEY_RIGHT = 262
294
+ DVZ_KEY_LEFT = 263
295
+ DVZ_KEY_DOWN = 264
296
+ DVZ_KEY_UP = 265
297
+ DVZ_KEY_PAGE_UP = 266
298
+ DVZ_KEY_PAGE_DOWN = 267
299
+ DVZ_KEY_HOME = 268
300
+ DVZ_KEY_END = 269
301
+ DVZ_KEY_CAPS_LOCK = 280
302
+ DVZ_KEY_SCROLL_LOCK = 281
303
+ DVZ_KEY_NUM_LOCK = 282
304
+ DVZ_KEY_PRINT_SCREEN = 283
305
+ DVZ_KEY_PAUSE = 284
306
+ DVZ_KEY_F1 = 290
307
+ DVZ_KEY_F2 = 291
308
+ DVZ_KEY_F3 = 292
309
+ DVZ_KEY_F4 = 293
310
+ DVZ_KEY_F5 = 294
311
+ DVZ_KEY_F6 = 295
312
+ DVZ_KEY_F7 = 296
313
+ DVZ_KEY_F8 = 297
314
+ DVZ_KEY_F9 = 298
315
+ DVZ_KEY_F10 = 299
316
+ DVZ_KEY_F11 = 300
317
+ DVZ_KEY_F12 = 301
318
+ DVZ_KEY_F13 = 302
319
+ DVZ_KEY_F14 = 303
320
+ DVZ_KEY_F15 = 304
321
+ DVZ_KEY_F16 = 305
322
+ DVZ_KEY_F17 = 306
323
+ DVZ_KEY_F18 = 307
324
+ DVZ_KEY_F19 = 308
325
+ DVZ_KEY_F20 = 309
326
+ DVZ_KEY_F21 = 310
327
+ DVZ_KEY_F22 = 311
328
+ DVZ_KEY_F23 = 312
329
+ DVZ_KEY_F24 = 313
330
+ DVZ_KEY_F25 = 314
331
+ DVZ_KEY_KP_0 = 320
332
+ DVZ_KEY_KP_1 = 321
333
+ DVZ_KEY_KP_2 = 322
334
+ DVZ_KEY_KP_3 = 323
335
+ DVZ_KEY_KP_4 = 324
336
+ DVZ_KEY_KP_5 = 325
337
+ DVZ_KEY_KP_6 = 326
338
+ DVZ_KEY_KP_7 = 327
339
+ DVZ_KEY_KP_8 = 328
340
+ DVZ_KEY_KP_9 = 329
341
+ DVZ_KEY_KP_DECIMAL = 330
342
+ DVZ_KEY_KP_DIVIDE = 331
343
+ DVZ_KEY_KP_MULTIPLY = 332
344
+ DVZ_KEY_KP_SUBTRACT = 333
345
+ DVZ_KEY_KP_ADD = 334
346
+ DVZ_KEY_KP_ENTER = 335
347
+ DVZ_KEY_KP_EQUAL = 336
348
+ DVZ_KEY_LEFT_SHIFT = 340
349
+ DVZ_KEY_LEFT_CONTROL = 341
350
+ DVZ_KEY_LEFT_ALT = 342
351
+ DVZ_KEY_LEFT_SUPER = 343
352
+ DVZ_KEY_RIGHT_SHIFT = 344
353
+ DVZ_KEY_RIGHT_CONTROL = 345
354
+ DVZ_KEY_RIGHT_ALT = 346
355
+ DVZ_KEY_RIGHT_SUPER = 347
356
+ DVZ_KEY_MENU = 348
357
+ DVZ_KEY_LAST = 348
358
+
359
+
360
+ class DvzAppFlags(CtypesEnum):
361
+ DVZ_APP_FLAGS_NONE = 0x000000
362
+ DVZ_APP_FLAGS_OFFSCREEN = 0x000001
363
+ DVZ_APP_FLAGS_WHITE_BACKGROUND = 0x100000
364
+
365
+
366
+ class DvzCanvasFlags(CtypesEnum):
367
+ DVZ_CANVAS_FLAGS_NONE = 0x0000
368
+ DVZ_CANVAS_FLAGS_IMGUI = 0x0001
369
+ DVZ_CANVAS_FLAGS_FPS = 0x0003
370
+ DVZ_CANVAS_FLAGS_MONITOR = 0x0005
371
+ DVZ_CANVAS_FLAGS_VSYNC = 0x0010
372
+ DVZ_CANVAS_FLAGS_PICK = 0x0020
373
+
374
+
375
+ class DvzKeyboardModifiers(CtypesEnum):
376
+ DVZ_KEY_MODIFIER_NONE = 0x00000000
377
+ DVZ_KEY_MODIFIER_SHIFT = 0x00000001
378
+ DVZ_KEY_MODIFIER_CONTROL = 0x00000002
379
+ DVZ_KEY_MODIFIER_ALT = 0x00000004
380
+ DVZ_KEY_MODIFIER_SUPER = 0x00000008
381
+
382
+
383
+ class DvzKeyboardEventType(CtypesEnum):
384
+ DVZ_KEYBOARD_EVENT_NONE = 0
385
+ DVZ_KEYBOARD_EVENT_PRESS = 1
386
+ DVZ_KEYBOARD_EVENT_REPEAT = 2
387
+ DVZ_KEYBOARD_EVENT_RELEASE = 3
388
+
389
+
390
+ class DvzMouseButton(CtypesEnum):
391
+ DVZ_MOUSE_BUTTON_NONE = 0
392
+ DVZ_MOUSE_BUTTON_LEFT = 1
393
+ DVZ_MOUSE_BUTTON_MIDDLE = 2
394
+ DVZ_MOUSE_BUTTON_RIGHT = 3
395
+
396
+
397
+ class DvzMouseState(CtypesEnum):
398
+ DVZ_MOUSE_STATE_RELEASE = 0
399
+ DVZ_MOUSE_STATE_PRESS = 1
400
+ DVZ_MOUSE_STATE_CLICK = 3
401
+ DVZ_MOUSE_STATE_CLICK_PRESS = 4
402
+ DVZ_MOUSE_STATE_DOUBLE_CLICK = 5
403
+ DVZ_MOUSE_STATE_DRAGGING = 11
404
+
405
+
406
+ class DvzMouseEventType(CtypesEnum):
407
+ DVZ_MOUSE_EVENT_RELEASE = 0
408
+ DVZ_MOUSE_EVENT_PRESS = 1
409
+ DVZ_MOUSE_EVENT_MOVE = 2
410
+ DVZ_MOUSE_EVENT_CLICK = 3
411
+ DVZ_MOUSE_EVENT_DOUBLE_CLICK = 5
412
+ DVZ_MOUSE_EVENT_DRAG_START = 10
413
+ DVZ_MOUSE_EVENT_DRAG = 11
414
+ DVZ_MOUSE_EVENT_DRAG_STOP = 12
415
+ DVZ_MOUSE_EVENT_WHEEL = 20
416
+ DVZ_MOUSE_EVENT_ALL = 255
417
+
418
+
419
+ class DvzDialogFlags(CtypesEnum):
420
+ DVZ_DIALOG_FLAGS_NONE = 0x0000
421
+ DVZ_DIALOG_FLAGS_OVERLAY = 0x0001
422
+
423
+
424
+ class DvzCorner(CtypesEnum):
425
+ DVZ_DIALOG_CORNER_UPPER_LEFT = 0
426
+ DVZ_DIALOG_CORNER_UPPER_RIGHT = 1
427
+ DVZ_DIALOG_CORNER_LOWER_LEFT = 2
428
+ DVZ_DIALOG_CORNER_LOWER_RIGHT = 3
429
+
430
+
431
+ class DvzArcballFlags(CtypesEnum):
432
+ DVZ_ARCBALL_FLAGS_NONE = 0
433
+ DVZ_ARCBALL_FLAGS_CONSTRAIN = 1
434
+
435
+
436
+ class DvzPanzoomFlags(CtypesEnum):
437
+ DVZ_PANZOOM_FLAGS_NONE = 0x00
438
+ DVZ_PANZOOM_FLAGS_KEEP_ASPECT = 0x01
439
+ DVZ_PANZOOM_FLAGS_FIXED_X = 0x10
440
+ DVZ_PANZOOM_FLAGS_FIXED_Y = 0x20
441
+
442
+
443
+ class DvzVisualFlags(CtypesEnum):
444
+ DVZ_VISUAL_FLAGS_DEFAULT = 0x000000
445
+ DVZ_VISUAL_FLAGS_INDEXED = 0x010000
446
+ DVZ_VISUAL_FLAGS_INDIRECT = 0x020000
447
+ DVZ_VISUAL_FLAGS_VERTEX_MAPPABLE = 0x400000
448
+ DVZ_VISUAL_FLAGS_INDEX_MAPPABLE = 0x800000
449
+
450
+
451
+ class DvzViewFlags(CtypesEnum):
452
+ DVZ_VIEW_FLAGS_NONE = 0x0000
453
+ DVZ_VIEW_FLAGS_STATIC = 0x0001
454
+
455
+
456
+ class DvzDatFlags(CtypesEnum):
457
+ DVZ_DAT_FLAGS_NONE = 0x0000
458
+ DVZ_DAT_FLAGS_STANDALONE = 0x0100
459
+ DVZ_DAT_FLAGS_MAPPABLE = 0x0200
460
+ DVZ_DAT_FLAGS_DUP = 0x0400
461
+ DVZ_DAT_FLAGS_KEEP_ON_RESIZE = 0x1000
462
+ DVZ_DAT_FLAGS_PERSISTENT_STAGING = 0x2000
463
+
464
+
465
+ class DvzUploadFlags(CtypesEnum):
466
+ DVZ_UPLOAD_FLAGS_NOCOPY = 0x0800
467
+
468
+
469
+ class DvzTexFlags(CtypesEnum):
470
+ DVZ_TEX_FLAGS_NONE = 0x0000
471
+ DVZ_TEX_FLAGS_PERSISTENT_STAGING = 0x2000
472
+
473
+
474
+ class DvzPrimitiveTopology(CtypesEnum):
475
+ DVZ_PRIMITIVE_TOPOLOGY_POINT_LIST = 0
476
+ DVZ_PRIMITIVE_TOPOLOGY_LINE_LIST = 1
477
+ DVZ_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2
478
+ DVZ_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3
479
+ DVZ_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4
480
+ DVZ_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5
481
+
482
+
483
+ class DvzFormat(CtypesEnum):
484
+ DVZ_FORMAT_NONE = 0
485
+ DVZ_FORMAT_R8_UNORM = 9
486
+ DVZ_FORMAT_R8_SNORM = 10
487
+ DVZ_FORMAT_R8_UINT = 13
488
+ DVZ_FORMAT_R8G8B8_UNORM = 23
489
+ DVZ_FORMAT_R8G8B8A8_UNORM = 37
490
+ DVZ_FORMAT_R8G8B8A8_UINT = 41
491
+ DVZ_FORMAT_B8G8R8A8_UNORM = 44
492
+ DVZ_FORMAT_R16_UNORM = 70
493
+ DVZ_FORMAT_R16_SNORM = 71
494
+ DVZ_FORMAT_R32_UINT = 98
495
+ DVZ_FORMAT_R32_SINT = 99
496
+ DVZ_FORMAT_R32_SFLOAT = 100
497
+ DVZ_FORMAT_R32G32_SFLOAT = 103
498
+ DVZ_FORMAT_R32G32B32_SFLOAT = 106
499
+ DVZ_FORMAT_R32G32B32A32_SFLOAT = 109
500
+
501
+
502
+ class DvzFilter(CtypesEnum):
503
+ DVZ_FILTER_NEAREST = 0
504
+ DVZ_FILTER_LINEAR = 1
505
+ DVZ_FILTER_CUBIC_IMG = 1000015000
506
+
507
+
508
+ class DvzSamplerAddressMode(CtypesEnum):
509
+ DVZ_SAMPLER_ADDRESS_MODE_REPEAT = 0
510
+ DVZ_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1
511
+ DVZ_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2
512
+ DVZ_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3
513
+ DVZ_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4
514
+
515
+
516
+ class DvzMarkerShape(CtypesEnum):
517
+ DVZ_MARKER_SHAPE_DISC = 0
518
+ DVZ_MARKER_SHAPE_ASTERISK = 1
519
+ DVZ_MARKER_SHAPE_CHEVRON = 2
520
+ DVZ_MARKER_SHAPE_CLOVER = 3
521
+ DVZ_MARKER_SHAPE_CLUB = 4
522
+ DVZ_MARKER_SHAPE_CROSS = 5
523
+ DVZ_MARKER_SHAPE_DIAMOND = 6
524
+ DVZ_MARKER_SHAPE_ARROW = 7
525
+ DVZ_MARKER_SHAPE_ELLIPSE = 8
526
+ DVZ_MARKER_SHAPE_HBAR = 9
527
+ DVZ_MARKER_SHAPE_HEART = 10
528
+ DVZ_MARKER_SHAPE_INFINITY = 11
529
+ DVZ_MARKER_SHAPE_PIN = 12
530
+ DVZ_MARKER_SHAPE_RING = 13
531
+ DVZ_MARKER_SHAPE_SPADE = 14
532
+ DVZ_MARKER_SHAPE_SQUARE = 15
533
+ DVZ_MARKER_SHAPE_TAG = 16
534
+ DVZ_MARKER_SHAPE_TRIANGLE = 17
535
+ DVZ_MARKER_SHAPE_VBAR = 18
536
+ DVZ_MARKER_SHAPE_COUNT = 19
537
+
538
+
539
+ class DvzMarkerMode(CtypesEnum):
540
+ DVZ_MARKER_MODE_NONE = 0
541
+ DVZ_MARKER_MODE_CODE = 1
542
+ DVZ_MARKER_MODE_BITMAP = 2
543
+ DVZ_MARKER_MODE_SDF = 3
544
+ DVZ_MARKER_MODE_MSDF = 4
545
+ DVZ_MARKER_MODE_MTSDF = 5
546
+
547
+
548
+ class DvzMarkerAspect(CtypesEnum):
549
+ DVZ_MARKER_ASPECT_FILLED = 0
550
+ DVZ_MARKER_ASPECT_STROKE = 1
551
+ DVZ_MARKER_ASPECT_OUTLINE = 2
552
+
553
+
554
+ class DvzCapType(CtypesEnum):
555
+ DVZ_CAP_TYPE_NONE = 0
556
+ DVZ_CAP_ROUND = 1
557
+ DVZ_CAP_TRIANGLE_IN = 2
558
+ DVZ_CAP_TRIANGLE_OUT = 3
559
+ DVZ_CAP_SQUARE = 4
560
+ DVZ_CAP_BUTT = 5
561
+ DVZ_CAP_COUNT = 6
562
+
563
+
564
+ class DvzJoinType(CtypesEnum):
565
+ DVZ_JOIN_SQUARE = 0
566
+ DVZ_JOIN_ROUND = 1
567
+
568
+
569
+ class DvzPathTopology(CtypesEnum):
570
+ DVZ_PATH_OPEN = 0
571
+ DVZ_PATH_CLOSED = 1
572
+
573
+
574
+ class DvzShapeType(CtypesEnum):
575
+ DVZ_SHAPE_NONE = 0
576
+ DVZ_SHAPE_SQUARE = 1
577
+ DVZ_SHAPE_DISC = 2
578
+ DVZ_SHAPE_CUBE = 3
579
+ DVZ_SHAPE_SPHERE = 4
580
+ DVZ_SHAPE_CYLINDER = 5
581
+ DVZ_SHAPE_CONE = 6
582
+ DVZ_SHAPE_SURFACE = 7
583
+ DVZ_SHAPE_OBJ = 8
584
+ DVZ_SHAPE_OTHER = 9
585
+
586
+
587
+ class DvzMeshFlags(CtypesEnum):
588
+ DVZ_MESH_FLAGS_NONE = 0x0000
589
+ DVZ_MESH_FLAGS_TEXTURED = 0x0001
590
+ DVZ_MESH_FLAGS_LIGHTING = 0x0002
591
+
592
+
593
+ class DvzVolumeFlags(CtypesEnum):
594
+ DVZ_VOLUME_FLAGS_NONE = 0x0000
595
+ DVZ_VOLUME_FLAGS_RGBA = 0x0001
596
+ DVZ_VOLUME_FLAGS_COLORMAP = 0x0002
597
+ DVZ_VOLUME_FLAGS_BACK_FRONT = 0x0004
598
+
599
+
600
+ class DvzEasing(CtypesEnum):
601
+ DVZ_EASING_NONE = 0
602
+ DVZ_EASING_IN_SINE = 1
603
+ DVZ_EASING_OUT_SINE = 2
604
+ DVZ_EASING_IN_OUT_SINE = 3
605
+ DVZ_EASING_IN_QUAD = 4
606
+ DVZ_EASING_OUT_QUAD = 5
607
+ DVZ_EASING_IN_OUT_QUAD = 6
608
+ DVZ_EASING_IN_CUBIC = 7
609
+ DVZ_EASING_OUT_CUBIC = 8
610
+ DVZ_EASING_IN_OUT_CUBIC = 9
611
+ DVZ_EASING_IN_QUART = 10
612
+ DVZ_EASING_OUT_QUART = 11
613
+ DVZ_EASING_IN_OUT_QUART = 12
614
+ DVZ_EASING_IN_QUINT = 13
615
+ DVZ_EASING_OUT_QUINT = 14
616
+ DVZ_EASING_IN_OUT_QUINT = 15
617
+ DVZ_EASING_IN_EXPO = 16
618
+ DVZ_EASING_OUT_EXPO = 17
619
+ DVZ_EASING_IN_OUT_EXPO = 18
620
+ DVZ_EASING_IN_CIRC = 19
621
+ DVZ_EASING_OUT_CIRC = 20
622
+ DVZ_EASING_IN_OUT_CIRC = 21
623
+ DVZ_EASING_IN_BACK = 22
624
+ DVZ_EASING_OUT_BACK = 23
625
+ DVZ_EASING_IN_OUT_BACK = 24
626
+ DVZ_EASING_IN_ELASTIC = 25
627
+ DVZ_EASING_OUT_ELASTIC = 26
628
+ DVZ_EASING_IN_OUT_ELASTIC = 27
629
+ DVZ_EASING_IN_BOUNCE = 28
630
+ DVZ_EASING_OUT_BOUNCE = 29
631
+ DVZ_EASING_IN_OUT_BOUNCE = 30
632
+ DVZ_EASING_COUNT = 31
633
+
634
+
635
+ class DvzViewportClip(CtypesEnum):
636
+ DVZ_VIEWPORT_CLIP_INNER = 0x0001
637
+ DVZ_VIEWPORT_CLIP_OUTER = 0x0002
638
+ DVZ_VIEWPORT_CLIP_BOTTOM = 0x0004
639
+ DVZ_VIEWPORT_CLIP_LEFT = 0x0008
640
+
641
+
642
+ class DvzDepthTest(CtypesEnum):
643
+ DVZ_DEPTH_TEST_DISABLE = 0
644
+ DVZ_DEPTH_TEST_ENABLE = 1
645
+
646
+
647
+ class DvzColormap(CtypesEnum):
648
+ DVZ_CMAP_BINARY = 0
649
+ DVZ_CMAP_HSV = 1
650
+ DVZ_CMAP_CIVIDIS = 2
651
+ DVZ_CMAP_INFERNO = 3
652
+ DVZ_CMAP_MAGMA = 4
653
+ DVZ_CMAP_PLASMA = 5
654
+ DVZ_CMAP_VIRIDIS = 6
655
+ DVZ_CMAP_BLUES = 7
656
+ DVZ_CMAP_BUGN = 8
657
+ DVZ_CMAP_BUPU = 9
658
+ DVZ_CMAP_GNBU = 10
659
+ DVZ_CMAP_GREENS = 11
660
+ DVZ_CMAP_GREYS = 12
661
+ DVZ_CMAP_ORANGES = 13
662
+ DVZ_CMAP_ORRD = 14
663
+ DVZ_CMAP_PUBU = 15
664
+ DVZ_CMAP_PUBUGN = 16
665
+ DVZ_CMAP_PURPLES = 17
666
+ DVZ_CMAP_RDPU = 18
667
+ DVZ_CMAP_REDS = 19
668
+ DVZ_CMAP_YLGN = 20
669
+ DVZ_CMAP_YLGNBU = 21
670
+ DVZ_CMAP_YLORBR = 22
671
+ DVZ_CMAP_YLORRD = 23
672
+ DVZ_CMAP_AFMHOT = 24
673
+ DVZ_CMAP_AUTUMN = 25
674
+ DVZ_CMAP_BONE = 26
675
+ DVZ_CMAP_COOL = 27
676
+ DVZ_CMAP_COPPER = 28
677
+ DVZ_CMAP_GIST_HEAT = 29
678
+ DVZ_CMAP_GRAY = 30
679
+ DVZ_CMAP_HOT = 31
680
+ DVZ_CMAP_PINK = 32
681
+ DVZ_CMAP_SPRING = 33
682
+ DVZ_CMAP_SUMMER = 34
683
+ DVZ_CMAP_WINTER = 35
684
+ DVZ_CMAP_WISTIA = 36
685
+ DVZ_CMAP_BRBG = 37
686
+ DVZ_CMAP_BWR = 38
687
+ DVZ_CMAP_COOLWARM = 39
688
+ DVZ_CMAP_PIYG = 40
689
+ DVZ_CMAP_PRGN = 41
690
+ DVZ_CMAP_PUOR = 42
691
+ DVZ_CMAP_RDBU = 43
692
+ DVZ_CMAP_RDGY = 44
693
+ DVZ_CMAP_RDYLBU = 45
694
+ DVZ_CMAP_RDYLGN = 46
695
+ DVZ_CMAP_SEISMIC = 47
696
+ DVZ_CMAP_SPECTRAL = 48
697
+ DVZ_CMAP_TWILIGHT_SHIFTED = 49
698
+ DVZ_CMAP_TWILIGHT = 50
699
+ DVZ_CMAP_BRG = 51
700
+ DVZ_CMAP_CMRMAP = 52
701
+ DVZ_CMAP_CUBEHELIX = 53
702
+ DVZ_CMAP_FLAG = 54
703
+ DVZ_CMAP_GIST_EARTH = 55
704
+ DVZ_CMAP_GIST_NCAR = 56
705
+ DVZ_CMAP_GIST_RAINBOW = 57
706
+ DVZ_CMAP_GIST_STERN = 58
707
+ DVZ_CMAP_GNUPLOT2 = 59
708
+ DVZ_CMAP_GNUPLOT = 60
709
+ DVZ_CMAP_JET = 61
710
+ DVZ_CMAP_NIPY_SPECTRAL = 62
711
+ DVZ_CMAP_OCEAN = 63
712
+ DVZ_CMAP_PRISM = 64
713
+ DVZ_CMAP_RAINBOW = 65
714
+ DVZ_CMAP_TERRAIN = 66
715
+ DVZ_CMAP_BKR = 67
716
+ DVZ_CMAP_BKY = 68
717
+ DVZ_CMAP_CET_D10 = 69
718
+ DVZ_CMAP_CET_D11 = 70
719
+ DVZ_CMAP_CET_D8 = 71
720
+ DVZ_CMAP_CET_D13 = 72
721
+ DVZ_CMAP_CET_D3 = 73
722
+ DVZ_CMAP_CET_D1A = 74
723
+ DVZ_CMAP_BJY = 75
724
+ DVZ_CMAP_GWV = 76
725
+ DVZ_CMAP_BWY = 77
726
+ DVZ_CMAP_CET_D12 = 78
727
+ DVZ_CMAP_CET_R3 = 79
728
+ DVZ_CMAP_CET_D9 = 80
729
+ DVZ_CMAP_CWR = 81
730
+ DVZ_CMAP_CET_CBC1 = 82
731
+ DVZ_CMAP_CET_CBC2 = 83
732
+ DVZ_CMAP_CET_CBL1 = 84
733
+ DVZ_CMAP_CET_CBL2 = 85
734
+ DVZ_CMAP_CET_CBTC1 = 86
735
+ DVZ_CMAP_CET_CBTC2 = 87
736
+ DVZ_CMAP_CET_CBTL1 = 88
737
+ DVZ_CMAP_BGY = 89
738
+ DVZ_CMAP_BGYW = 90
739
+ DVZ_CMAP_BMW = 91
740
+ DVZ_CMAP_CET_C1 = 92
741
+ DVZ_CMAP_CET_C1S = 93
742
+ DVZ_CMAP_CET_C2 = 94
743
+ DVZ_CMAP_CET_C4 = 95
744
+ DVZ_CMAP_CET_C4S = 96
745
+ DVZ_CMAP_CET_C5 = 97
746
+ DVZ_CMAP_CET_I1 = 98
747
+ DVZ_CMAP_CET_I3 = 99
748
+ DVZ_CMAP_CET_L10 = 100
749
+ DVZ_CMAP_CET_L11 = 101
750
+ DVZ_CMAP_CET_L12 = 102
751
+ DVZ_CMAP_CET_L16 = 103
752
+ DVZ_CMAP_CET_L17 = 104
753
+ DVZ_CMAP_CET_L18 = 105
754
+ DVZ_CMAP_CET_L19 = 106
755
+ DVZ_CMAP_CET_L4 = 107
756
+ DVZ_CMAP_CET_L7 = 108
757
+ DVZ_CMAP_CET_L8 = 109
758
+ DVZ_CMAP_CET_L9 = 110
759
+ DVZ_CMAP_CET_R1 = 111
760
+ DVZ_CMAP_CET_R2 = 112
761
+ DVZ_CMAP_COLORWHEEL = 113
762
+ DVZ_CMAP_FIRE = 114
763
+ DVZ_CMAP_ISOLUM = 115
764
+ DVZ_CMAP_KB = 116
765
+ DVZ_CMAP_KBC = 117
766
+ DVZ_CMAP_KG = 118
767
+ DVZ_CMAP_KGY = 119
768
+ DVZ_CMAP_KR = 120
769
+ DVZ_CMAP_BLACK_BODY = 121
770
+ DVZ_CMAP_KINDLMANN = 122
771
+ DVZ_CMAP_EXTENDED_KINDLMANN = 123
772
+ DVZ_CPAL256_GLASBEY = CPAL256_OFS
773
+ DVZ_CPAL256_GLASBEY_COOL = 125
774
+ DVZ_CPAL256_GLASBEY_DARK = 126
775
+ DVZ_CPAL256_GLASBEY_HV = 127
776
+ DVZ_CPAL256_GLASBEY_LIGHT = 128
777
+ DVZ_CPAL256_GLASBEY_WARM = 129
778
+ DVZ_CPAL032_ACCENT = CPAL032_OFS
779
+ DVZ_CPAL032_DARK2 = 131
780
+ DVZ_CPAL032_PAIRED = 132
781
+ DVZ_CPAL032_PASTEL1 = 133
782
+ DVZ_CPAL032_PASTEL2 = 134
783
+ DVZ_CPAL032_SET1 = 135
784
+ DVZ_CPAL032_SET2 = 136
785
+ DVZ_CPAL032_SET3 = 137
786
+ DVZ_CPAL032_TAB10 = 138
787
+ DVZ_CPAL032_TAB20 = 139
788
+ DVZ_CPAL032_TAB20B = 140
789
+ DVZ_CPAL032_TAB20C = 141
790
+ DVZ_CPAL032_CATEGORY10_10 = 142
791
+ DVZ_CPAL032_CATEGORY20_20 = 143
792
+ DVZ_CPAL032_CATEGORY20B_20 = 144
793
+ DVZ_CPAL032_CATEGORY20C_20 = 145
794
+ DVZ_CPAL032_COLORBLIND8 = 146
795
+
796
+
797
+ # Function aliases
798
+
799
+ KEY_UNKNOWN = -1
800
+ KEY_NONE = +0
801
+ KEY_SPACE = 32
802
+ KEY_APOSTROPHE = 39
803
+ KEY_COMMA = 44
804
+ KEY_MINUS = 45
805
+ KEY_PERIOD = 46
806
+ KEY_SLASH = 47
807
+ KEY_0 = 48
808
+ KEY_1 = 49
809
+ KEY_2 = 50
810
+ KEY_3 = 51
811
+ KEY_4 = 52
812
+ KEY_5 = 53
813
+ KEY_6 = 54
814
+ KEY_7 = 55
815
+ KEY_8 = 56
816
+ KEY_9 = 57
817
+ KEY_SEMICOLON = 59
818
+ KEY_EQUAL = 61
819
+ KEY_A = 65
820
+ KEY_B = 66
821
+ KEY_C = 67
822
+ KEY_D = 68
823
+ KEY_E = 69
824
+ KEY_F = 70
825
+ KEY_G = 71
826
+ KEY_H = 72
827
+ KEY_I = 73
828
+ KEY_J = 74
829
+ KEY_K = 75
830
+ KEY_L = 76
831
+ KEY_M = 77
832
+ KEY_N = 78
833
+ KEY_O = 79
834
+ KEY_P = 80
835
+ KEY_Q = 81
836
+ KEY_R = 82
837
+ KEY_S = 83
838
+ KEY_T = 84
839
+ KEY_U = 85
840
+ KEY_V = 86
841
+ KEY_W = 87
842
+ KEY_X = 88
843
+ KEY_Y = 89
844
+ KEY_Z = 90
845
+ KEY_LEFT_BRACKET = 91
846
+ KEY_BACKSLASH = 92
847
+ KEY_RIGHT_BRACKET = 93
848
+ KEY_GRAVE_ACCENT = 96
849
+ KEY_WORLD_1 = 161
850
+ KEY_WORLD_2 = 162
851
+ KEY_ESCAPE = 256
852
+ KEY_ENTER = 257
853
+ KEY_TAB = 258
854
+ KEY_BACKSPACE = 259
855
+ KEY_INSERT = 260
856
+ KEY_DELETE = 261
857
+ KEY_RIGHT = 262
858
+ KEY_LEFT = 263
859
+ KEY_DOWN = 264
860
+ KEY_UP = 265
861
+ KEY_PAGE_UP = 266
862
+ KEY_PAGE_DOWN = 267
863
+ KEY_HOME = 268
864
+ KEY_END = 269
865
+ KEY_CAPS_LOCK = 280
866
+ KEY_SCROLL_LOCK = 281
867
+ KEY_NUM_LOCK = 282
868
+ KEY_PRINT_SCREEN = 283
869
+ KEY_PAUSE = 284
870
+ KEY_F1 = 290
871
+ KEY_F2 = 291
872
+ KEY_F3 = 292
873
+ KEY_F4 = 293
874
+ KEY_F5 = 294
875
+ KEY_F6 = 295
876
+ KEY_F7 = 296
877
+ KEY_F8 = 297
878
+ KEY_F9 = 298
879
+ KEY_F10 = 299
880
+ KEY_F11 = 300
881
+ KEY_F12 = 301
882
+ KEY_F13 = 302
883
+ KEY_F14 = 303
884
+ KEY_F15 = 304
885
+ KEY_F16 = 305
886
+ KEY_F17 = 306
887
+ KEY_F18 = 307
888
+ KEY_F19 = 308
889
+ KEY_F20 = 309
890
+ KEY_F21 = 310
891
+ KEY_F22 = 311
892
+ KEY_F23 = 312
893
+ KEY_F24 = 313
894
+ KEY_F25 = 314
895
+ KEY_KP_0 = 320
896
+ KEY_KP_1 = 321
897
+ KEY_KP_2 = 322
898
+ KEY_KP_3 = 323
899
+ KEY_KP_4 = 324
900
+ KEY_KP_5 = 325
901
+ KEY_KP_6 = 326
902
+ KEY_KP_7 = 327
903
+ KEY_KP_8 = 328
904
+ KEY_KP_9 = 329
905
+ KEY_KP_DECIMAL = 330
906
+ KEY_KP_DIVIDE = 331
907
+ KEY_KP_MULTIPLY = 332
908
+ KEY_KP_SUBTRACT = 333
909
+ KEY_KP_ADD = 334
910
+ KEY_KP_ENTER = 335
911
+ KEY_KP_EQUAL = 336
912
+ KEY_LEFT_SHIFT = 340
913
+ KEY_LEFT_CONTROL = 341
914
+ KEY_LEFT_ALT = 342
915
+ KEY_LEFT_SUPER = 343
916
+ KEY_RIGHT_SHIFT = 344
917
+ KEY_RIGHT_CONTROL = 345
918
+ KEY_RIGHT_ALT = 346
919
+ KEY_RIGHT_SUPER = 347
920
+ KEY_MENU = 348
921
+ KEY_LAST = 348
922
+ APP_FLAGS_NONE = 0x000000
923
+ APP_FLAGS_OFFSCREEN = 0x000001
924
+ APP_FLAGS_WHITE_BACKGROUND = 0x100000
925
+ CANVAS_FLAGS_NONE = 0x0000
926
+ CANVAS_FLAGS_IMGUI = 0x0001
927
+ CANVAS_FLAGS_FPS = 0x0003
928
+ CANVAS_FLAGS_MONITOR = 0x0005
929
+ CANVAS_FLAGS_VSYNC = 0x0010
930
+ CANVAS_FLAGS_PICK = 0x0020
931
+ KEY_MODIFIER_NONE = 0x00000000
932
+ KEY_MODIFIER_SHIFT = 0x00000001
933
+ KEY_MODIFIER_CONTROL = 0x00000002
934
+ KEY_MODIFIER_ALT = 0x00000004
935
+ KEY_MODIFIER_SUPER = 0x00000008
936
+ KEYBOARD_EVENT_NONE = 0
937
+ KEYBOARD_EVENT_PRESS = 1
938
+ KEYBOARD_EVENT_REPEAT = 2
939
+ KEYBOARD_EVENT_RELEASE = 3
940
+ MOUSE_BUTTON_NONE = 0
941
+ MOUSE_BUTTON_LEFT = 1
942
+ MOUSE_BUTTON_MIDDLE = 2
943
+ MOUSE_BUTTON_RIGHT = 3
944
+ MOUSE_STATE_RELEASE = 0
945
+ MOUSE_STATE_PRESS = 1
946
+ MOUSE_STATE_CLICK = 3
947
+ MOUSE_STATE_CLICK_PRESS = 4
948
+ MOUSE_STATE_DOUBLE_CLICK = 5
949
+ MOUSE_STATE_DRAGGING = 11
950
+ MOUSE_EVENT_RELEASE = 0
951
+ MOUSE_EVENT_PRESS = 1
952
+ MOUSE_EVENT_MOVE = 2
953
+ MOUSE_EVENT_CLICK = 3
954
+ MOUSE_EVENT_DOUBLE_CLICK = 5
955
+ MOUSE_EVENT_DRAG_START = 10
956
+ MOUSE_EVENT_DRAG = 11
957
+ MOUSE_EVENT_DRAG_STOP = 12
958
+ MOUSE_EVENT_WHEEL = 20
959
+ MOUSE_EVENT_ALL = 255
960
+ DIALOG_FLAGS_NONE = 0x0000
961
+ DIALOG_FLAGS_OVERLAY = 0x0001
962
+ DIALOG_CORNER_UPPER_LEFT = 0
963
+ DIALOG_CORNER_UPPER_RIGHT = 1
964
+ DIALOG_CORNER_LOWER_LEFT = 2
965
+ DIALOG_CORNER_LOWER_RIGHT = 3
966
+ ARCBALL_FLAGS_NONE = 0
967
+ ARCBALL_FLAGS_CONSTRAIN = 1
968
+ PANZOOM_FLAGS_NONE = 0x00
969
+ PANZOOM_FLAGS_KEEP_ASPECT = 0x01
970
+ PANZOOM_FLAGS_FIXED_X = 0x10
971
+ PANZOOM_FLAGS_FIXED_Y = 0x20
972
+ VISUAL_FLAGS_DEFAULT = 0x000000
973
+ VISUAL_FLAGS_INDEXED = 0x010000
974
+ VISUAL_FLAGS_INDIRECT = 0x020000
975
+ VISUAL_FLAGS_VERTEX_MAPPABLE = 0x400000
976
+ VISUAL_FLAGS_INDEX_MAPPABLE = 0x800000
977
+ VIEW_FLAGS_NONE = 0x0000
978
+ VIEW_FLAGS_STATIC = 0x0001
979
+ DAT_FLAGS_NONE = 0x0000
980
+ DAT_FLAGS_STANDALONE = 0x0100
981
+ DAT_FLAGS_MAPPABLE = 0x0200
982
+ DAT_FLAGS_DUP = 0x0400
983
+ DAT_FLAGS_KEEP_ON_RESIZE = 0x1000
984
+ DAT_FLAGS_PERSISTENT_STAGING = 0x2000
985
+ UPLOAD_FLAGS_NOCOPY = 0x0800
986
+ TEX_FLAGS_NONE = 0x0000
987
+ TEX_FLAGS_PERSISTENT_STAGING = 0x2000
988
+ PRIMITIVE_TOPOLOGY_POINT_LIST = 0
989
+ PRIMITIVE_TOPOLOGY_LINE_LIST = 1
990
+ PRIMITIVE_TOPOLOGY_LINE_STRIP = 2
991
+ PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3
992
+ PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4
993
+ PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5
994
+ FORMAT_NONE = 0
995
+ FORMAT_R8_UNORM = 9
996
+ FORMAT_R8_SNORM = 10
997
+ FORMAT_R8_UINT = 13
998
+ FORMAT_R8G8B8_UNORM = 23
999
+ FORMAT_R8G8B8A8_UNORM = 37
1000
+ FORMAT_R8G8B8A8_UINT = 41
1001
+ FORMAT_B8G8R8A8_UNORM = 44
1002
+ FORMAT_R16_UNORM = 70
1003
+ FORMAT_R16_SNORM = 71
1004
+ FORMAT_R32_UINT = 98
1005
+ FORMAT_R32_SINT = 99
1006
+ FORMAT_R32_SFLOAT = 100
1007
+ FORMAT_R32G32_SFLOAT = 103
1008
+ FORMAT_R32G32B32_SFLOAT = 106
1009
+ FORMAT_R32G32B32A32_SFLOAT = 109
1010
+ FILTER_NEAREST = 0
1011
+ FILTER_LINEAR = 1
1012
+ FILTER_CUBIC_IMG = 1000015000
1013
+ SAMPLER_ADDRESS_MODE_REPEAT = 0
1014
+ SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1
1015
+ SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2
1016
+ SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3
1017
+ SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4
1018
+ MARKER_SHAPE_DISC = 0
1019
+ MARKER_SHAPE_ASTERISK = 1
1020
+ MARKER_SHAPE_CHEVRON = 2
1021
+ MARKER_SHAPE_CLOVER = 3
1022
+ MARKER_SHAPE_CLUB = 4
1023
+ MARKER_SHAPE_CROSS = 5
1024
+ MARKER_SHAPE_DIAMOND = 6
1025
+ MARKER_SHAPE_ARROW = 7
1026
+ MARKER_SHAPE_ELLIPSE = 8
1027
+ MARKER_SHAPE_HBAR = 9
1028
+ MARKER_SHAPE_HEART = 10
1029
+ MARKER_SHAPE_INFINITY = 11
1030
+ MARKER_SHAPE_PIN = 12
1031
+ MARKER_SHAPE_RING = 13
1032
+ MARKER_SHAPE_SPADE = 14
1033
+ MARKER_SHAPE_SQUARE = 15
1034
+ MARKER_SHAPE_TAG = 16
1035
+ MARKER_SHAPE_TRIANGLE = 17
1036
+ MARKER_SHAPE_VBAR = 18
1037
+ MARKER_SHAPE_COUNT = 19
1038
+ MARKER_MODE_NONE = 0
1039
+ MARKER_MODE_CODE = 1
1040
+ MARKER_MODE_BITMAP = 2
1041
+ MARKER_MODE_SDF = 3
1042
+ MARKER_MODE_MSDF = 4
1043
+ MARKER_MODE_MTSDF = 5
1044
+ MARKER_ASPECT_FILLED = 0
1045
+ MARKER_ASPECT_STROKE = 1
1046
+ MARKER_ASPECT_OUTLINE = 2
1047
+ CAP_TYPE_NONE = 0
1048
+ CAP_ROUND = 1
1049
+ CAP_TRIANGLE_IN = 2
1050
+ CAP_TRIANGLE_OUT = 3
1051
+ CAP_SQUARE = 4
1052
+ CAP_BUTT = 5
1053
+ CAP_COUNT = 6
1054
+ JOIN_SQUARE = 0
1055
+ JOIN_ROUND = 1
1056
+ PATH_OPEN = 0
1057
+ PATH_CLOSED = 1
1058
+ SHAPE_NONE = 0
1059
+ SHAPE_SQUARE = 1
1060
+ SHAPE_DISC = 2
1061
+ SHAPE_CUBE = 3
1062
+ SHAPE_SPHERE = 4
1063
+ SHAPE_CYLINDER = 5
1064
+ SHAPE_CONE = 6
1065
+ SHAPE_SURFACE = 7
1066
+ SHAPE_OBJ = 8
1067
+ SHAPE_OTHER = 9
1068
+ MESH_FLAGS_NONE = 0x0000
1069
+ MESH_FLAGS_TEXTURED = 0x0001
1070
+ MESH_FLAGS_LIGHTING = 0x0002
1071
+ VOLUME_FLAGS_NONE = 0x0000
1072
+ VOLUME_FLAGS_RGBA = 0x0001
1073
+ VOLUME_FLAGS_COLORMAP = 0x0002
1074
+ VOLUME_FLAGS_BACK_FRONT = 0x0004
1075
+ EASING_NONE = 0
1076
+ EASING_IN_SINE = 1
1077
+ EASING_OUT_SINE = 2
1078
+ EASING_IN_OUT_SINE = 3
1079
+ EASING_IN_QUAD = 4
1080
+ EASING_OUT_QUAD = 5
1081
+ EASING_IN_OUT_QUAD = 6
1082
+ EASING_IN_CUBIC = 7
1083
+ EASING_OUT_CUBIC = 8
1084
+ EASING_IN_OUT_CUBIC = 9
1085
+ EASING_IN_QUART = 10
1086
+ EASING_OUT_QUART = 11
1087
+ EASING_IN_OUT_QUART = 12
1088
+ EASING_IN_QUINT = 13
1089
+ EASING_OUT_QUINT = 14
1090
+ EASING_IN_OUT_QUINT = 15
1091
+ EASING_IN_EXPO = 16
1092
+ EASING_OUT_EXPO = 17
1093
+ EASING_IN_OUT_EXPO = 18
1094
+ EASING_IN_CIRC = 19
1095
+ EASING_OUT_CIRC = 20
1096
+ EASING_IN_OUT_CIRC = 21
1097
+ EASING_IN_BACK = 22
1098
+ EASING_OUT_BACK = 23
1099
+ EASING_IN_OUT_BACK = 24
1100
+ EASING_IN_ELASTIC = 25
1101
+ EASING_OUT_ELASTIC = 26
1102
+ EASING_IN_OUT_ELASTIC = 27
1103
+ EASING_IN_BOUNCE = 28
1104
+ EASING_OUT_BOUNCE = 29
1105
+ EASING_IN_OUT_BOUNCE = 30
1106
+ EASING_COUNT = 31
1107
+ VIEWPORT_CLIP_INNER = 0x0001
1108
+ VIEWPORT_CLIP_OUTER = 0x0002
1109
+ VIEWPORT_CLIP_BOTTOM = 0x0004
1110
+ VIEWPORT_CLIP_LEFT = 0x0008
1111
+ DEPTH_TEST_DISABLE = 0
1112
+ DEPTH_TEST_ENABLE = 1
1113
+ CMAP_BINARY = 0
1114
+ CMAP_HSV = 1
1115
+ CMAP_CIVIDIS = 2
1116
+ CMAP_INFERNO = 3
1117
+ CMAP_MAGMA = 4
1118
+ CMAP_PLASMA = 5
1119
+ CMAP_VIRIDIS = 6
1120
+ CMAP_BLUES = 7
1121
+ CMAP_BUGN = 8
1122
+ CMAP_BUPU = 9
1123
+ CMAP_GNBU = 10
1124
+ CMAP_GREENS = 11
1125
+ CMAP_GREYS = 12
1126
+ CMAP_ORANGES = 13
1127
+ CMAP_ORRD = 14
1128
+ CMAP_PUBU = 15
1129
+ CMAP_PUBUGN = 16
1130
+ CMAP_PURPLES = 17
1131
+ CMAP_RDPU = 18
1132
+ CMAP_REDS = 19
1133
+ CMAP_YLGN = 20
1134
+ CMAP_YLGNBU = 21
1135
+ CMAP_YLORBR = 22
1136
+ CMAP_YLORRD = 23
1137
+ CMAP_AFMHOT = 24
1138
+ CMAP_AUTUMN = 25
1139
+ CMAP_BONE = 26
1140
+ CMAP_COOL = 27
1141
+ CMAP_COPPER = 28
1142
+ CMAP_GIST_HEAT = 29
1143
+ CMAP_GRAY = 30
1144
+ CMAP_HOT = 31
1145
+ CMAP_PINK = 32
1146
+ CMAP_SPRING = 33
1147
+ CMAP_SUMMER = 34
1148
+ CMAP_WINTER = 35
1149
+ CMAP_WISTIA = 36
1150
+ CMAP_BRBG = 37
1151
+ CMAP_BWR = 38
1152
+ CMAP_COOLWARM = 39
1153
+ CMAP_PIYG = 40
1154
+ CMAP_PRGN = 41
1155
+ CMAP_PUOR = 42
1156
+ CMAP_RDBU = 43
1157
+ CMAP_RDGY = 44
1158
+ CMAP_RDYLBU = 45
1159
+ CMAP_RDYLGN = 46
1160
+ CMAP_SEISMIC = 47
1161
+ CMAP_SPECTRAL = 48
1162
+ CMAP_TWILIGHT_SHIFTED = 49
1163
+ CMAP_TWILIGHT = 50
1164
+ CMAP_BRG = 51
1165
+ CMAP_CMRMAP = 52
1166
+ CMAP_CUBEHELIX = 53
1167
+ CMAP_FLAG = 54
1168
+ CMAP_GIST_EARTH = 55
1169
+ CMAP_GIST_NCAR = 56
1170
+ CMAP_GIST_RAINBOW = 57
1171
+ CMAP_GIST_STERN = 58
1172
+ CMAP_GNUPLOT2 = 59
1173
+ CMAP_GNUPLOT = 60
1174
+ CMAP_JET = 61
1175
+ CMAP_NIPY_SPECTRAL = 62
1176
+ CMAP_OCEAN = 63
1177
+ CMAP_PRISM = 64
1178
+ CMAP_RAINBOW = 65
1179
+ CMAP_TERRAIN = 66
1180
+ CMAP_BKR = 67
1181
+ CMAP_BKY = 68
1182
+ CMAP_CET_D10 = 69
1183
+ CMAP_CET_D11 = 70
1184
+ CMAP_CET_D8 = 71
1185
+ CMAP_CET_D13 = 72
1186
+ CMAP_CET_D3 = 73
1187
+ CMAP_CET_D1A = 74
1188
+ CMAP_BJY = 75
1189
+ CMAP_GWV = 76
1190
+ CMAP_BWY = 77
1191
+ CMAP_CET_D12 = 78
1192
+ CMAP_CET_R3 = 79
1193
+ CMAP_CET_D9 = 80
1194
+ CMAP_CWR = 81
1195
+ CMAP_CET_CBC1 = 82
1196
+ CMAP_CET_CBC2 = 83
1197
+ CMAP_CET_CBL1 = 84
1198
+ CMAP_CET_CBL2 = 85
1199
+ CMAP_CET_CBTC1 = 86
1200
+ CMAP_CET_CBTC2 = 87
1201
+ CMAP_CET_CBTL1 = 88
1202
+ CMAP_BGY = 89
1203
+ CMAP_BGYW = 90
1204
+ CMAP_BMW = 91
1205
+ CMAP_CET_C1 = 92
1206
+ CMAP_CET_C1S = 93
1207
+ CMAP_CET_C2 = 94
1208
+ CMAP_CET_C4 = 95
1209
+ CMAP_CET_C4S = 96
1210
+ CMAP_CET_C5 = 97
1211
+ CMAP_CET_I1 = 98
1212
+ CMAP_CET_I3 = 99
1213
+ CMAP_CET_L10 = 100
1214
+ CMAP_CET_L11 = 101
1215
+ CMAP_CET_L12 = 102
1216
+ CMAP_CET_L16 = 103
1217
+ CMAP_CET_L17 = 104
1218
+ CMAP_CET_L18 = 105
1219
+ CMAP_CET_L19 = 106
1220
+ CMAP_CET_L4 = 107
1221
+ CMAP_CET_L7 = 108
1222
+ CMAP_CET_L8 = 109
1223
+ CMAP_CET_L9 = 110
1224
+ CMAP_CET_R1 = 111
1225
+ CMAP_CET_R2 = 112
1226
+ CMAP_COLORWHEEL = 113
1227
+ CMAP_FIRE = 114
1228
+ CMAP_ISOLUM = 115
1229
+ CMAP_KB = 116
1230
+ CMAP_KBC = 117
1231
+ CMAP_KG = 118
1232
+ CMAP_KGY = 119
1233
+ CMAP_KR = 120
1234
+ CMAP_BLACK_BODY = 121
1235
+ CMAP_KINDLMANN = 122
1236
+ CMAP_EXTENDED_KINDLMANN = 123
1237
+ CPAL256_GLASBEY = CPAL256_OFS
1238
+ CPAL256_GLASBEY_COOL = 125
1239
+ CPAL256_GLASBEY_DARK = 126
1240
+ CPAL256_GLASBEY_HV = 127
1241
+ CPAL256_GLASBEY_LIGHT = 128
1242
+ CPAL256_GLASBEY_WARM = 129
1243
+ CPAL032_ACCENT = CPAL032_OFS
1244
+ CPAL032_DARK2 = 131
1245
+ CPAL032_PAIRED = 132
1246
+ CPAL032_PASTEL1 = 133
1247
+ CPAL032_PASTEL2 = 134
1248
+ CPAL032_SET1 = 135
1249
+ CPAL032_SET2 = 136
1250
+ CPAL032_SET3 = 137
1251
+ CPAL032_TAB10 = 138
1252
+ CPAL032_TAB20 = 139
1253
+ CPAL032_TAB20B = 140
1254
+ CPAL032_TAB20C = 141
1255
+ CPAL032_CATEGORY10_10 = 142
1256
+ CPAL032_CATEGORY20_20 = 143
1257
+ CPAL032_CATEGORY20B_20 = 144
1258
+ CPAL032_CATEGORY20C_20 = 145
1259
+ CPAL032_COLORBLIND8 = 146
1260
+
1261
+
1262
+ # ===============================================================================
1263
+ # FORWARD DECLARATIONS
1264
+ # ===============================================================================
1265
+
1266
+ class DvzApp(ctypes.Structure):
1267
+ pass
1268
+
1269
+
1270
+ class DvzArcball(ctypes.Structure):
1271
+ pass
1272
+
1273
+
1274
+ class DvzAtlas(ctypes.Structure):
1275
+ pass
1276
+
1277
+
1278
+ class DvzBatch(ctypes.Structure):
1279
+ pass
1280
+
1281
+
1282
+ class DvzCamera(ctypes.Structure):
1283
+ pass
1284
+
1285
+
1286
+ class DvzCapType(ctypes.Structure):
1287
+ pass
1288
+
1289
+
1290
+ class DvzFigure(ctypes.Structure):
1291
+ pass
1292
+
1293
+
1294
+ class DvzFont(ctypes.Structure):
1295
+ pass
1296
+
1297
+
1298
+ class DvzPanel(ctypes.Structure):
1299
+ pass
1300
+
1301
+
1302
+ class DvzPanzoom(ctypes.Structure):
1303
+ pass
1304
+
1305
+
1306
+ class DvzScene(ctypes.Structure):
1307
+ pass
1308
+
1309
+
1310
+ class DvzTex(ctypes.Structure):
1311
+ pass
1312
+
1313
+
1314
+ class DvzTimerItem(ctypes.Structure):
1315
+ pass
1316
+
1317
+
1318
+ class DvzTransform(ctypes.Structure):
1319
+ pass
1320
+
1321
+
1322
+ class DvzVisual(ctypes.Structure):
1323
+ pass
1324
+
1325
+
1326
+ # ===============================================================================
1327
+ # STRUCTURES
1328
+ # ===============================================================================
1329
+
1330
+ class DvzAtlasFont(ctypes.Structure):
1331
+ _pack_ = 8
1332
+ _fields_ = [
1333
+ ("ttf_size", ctypes.c_ulong),
1334
+ ("ttf_bytes", ndpointer(dtype=np.ubyte, ndim=1, ncol=1, flags="C_CONTIGUOUS")),
1335
+ ("atlas", ctypes.POINTER(DvzAtlas)),
1336
+ ("font", ctypes.POINTER(DvzFont)),
1337
+ ]
1338
+
1339
+
1340
+ class DvzMVP(ctypes.Structure):
1341
+ _pack_ = 8
1342
+ _fields_ = [
1343
+ ("model", ctypes.c_float * 16),
1344
+ ("view", ctypes.c_float * 16),
1345
+ ("proj", ctypes.c_float * 16),
1346
+ ]
1347
+
1348
+
1349
+ class DvzShape(ctypes.Structure):
1350
+ _pack_ = 8
1351
+ _fields_ = [
1352
+ ("transform", ctypes.c_float * 16),
1353
+ ("first", ctypes.c_uint32),
1354
+ ("count", ctypes.c_uint32),
1355
+ ("type", ctypes.c_int32),
1356
+ ("vertex_count", ctypes.c_uint32),
1357
+ ("index_count", ctypes.c_uint32),
1358
+ ("pos", ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS")),
1359
+ ("normal", ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS")),
1360
+ ("color", ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS")),
1361
+ ("texcoords", ndpointer(dtype=np.float32, ndim=2, ncol=4, flags="C_CONTIGUOUS")),
1362
+ ("index", ndpointer(dtype=np.uint32, ndim=1, ncol=1, flags="C_CONTIGUOUS")),
1363
+ ]
1364
+
1365
+
1366
+ class DvzKeyboardEvent(ctypes.Structure):
1367
+ _pack_ = 8
1368
+ _fields_ = [
1369
+ ("type", ctypes.c_int32),
1370
+ ("key", ctypes.c_int32),
1371
+ ("mods", ctypes.c_int),
1372
+ ("user_data", ctypes.c_void_p),
1373
+ ]
1374
+
1375
+
1376
+ class DvzMouseButtonEvent(ctypes.Structure):
1377
+ _pack_ = 8
1378
+ _fields_ = [
1379
+ ("button", ctypes.c_int32),
1380
+ ]
1381
+
1382
+
1383
+ class DvzMouseWheelEvent(ctypes.Structure):
1384
+ _pack_ = 8
1385
+ _fields_ = [
1386
+ ("dir", ctypes.c_float * 2),
1387
+ ]
1388
+
1389
+
1390
+ class DvzMouseDragEvent(ctypes.Structure):
1391
+ _pack_ = 8
1392
+ _fields_ = [
1393
+ ("button", ctypes.c_int32),
1394
+ ("press_pos", ctypes.c_float * 2),
1395
+ ("shift", ctypes.c_float * 2),
1396
+ ]
1397
+
1398
+
1399
+ class DvzMouseClickEvent(ctypes.Structure):
1400
+ _pack_ = 8
1401
+ _fields_ = [
1402
+ ("button", ctypes.c_int32),
1403
+ ]
1404
+
1405
+
1406
+ class DvzMouseEventUnion(ctypes.Union):
1407
+ _pack_ = 8
1408
+ _fields_ = [
1409
+ ("b", DvzMouseButtonEvent),
1410
+ ("w", DvzMouseWheelEvent),
1411
+ ("d", DvzMouseDragEvent),
1412
+ ("c", DvzMouseClickEvent),
1413
+ ]
1414
+
1415
+
1416
+ class DvzMouseEvent(ctypes.Structure):
1417
+ _pack_ = 8
1418
+ _fields_ = [
1419
+ ("type", ctypes.c_int32),
1420
+ ("content", DvzMouseEventUnion),
1421
+ ("pos", ctypes.c_float * 2),
1422
+ ("mods", ctypes.c_int),
1423
+ ("content_scale", ctypes.c_float),
1424
+ ("user_data", ctypes.c_void_p),
1425
+ ]
1426
+
1427
+
1428
+ class DvzWindowEvent(ctypes.Structure):
1429
+ _pack_ = 8
1430
+ _fields_ = [
1431
+ ("framebuffer_width", ctypes.c_uint32),
1432
+ ("framebuffer_height", ctypes.c_uint32),
1433
+ ("screen_width", ctypes.c_uint32),
1434
+ ("screen_height", ctypes.c_uint32),
1435
+ ("flags", ctypes.c_int),
1436
+ ("user_data", ctypes.c_void_p),
1437
+ ]
1438
+
1439
+
1440
+ class DvzFrameEvent(ctypes.Structure):
1441
+ _pack_ = 8
1442
+ _fields_ = [
1443
+ ("frame_idx", ctypes.c_uint64),
1444
+ ("time", ctypes.c_double),
1445
+ ("interval", ctypes.c_double),
1446
+ ("user_data", ctypes.c_void_p),
1447
+ ]
1448
+
1449
+
1450
+ class DvzGuiEvent(ctypes.Structure):
1451
+ _pack_ = 8
1452
+ _fields_ = [
1453
+ ("user_data", ctypes.c_void_p),
1454
+ ]
1455
+
1456
+
1457
+ class DvzTimerEvent(ctypes.Structure):
1458
+ _pack_ = 8
1459
+ _fields_ = [
1460
+ ("timer_idx", ctypes.c_uint32),
1461
+ ("timer_item", ctypes.POINTER(DvzTimerItem)),
1462
+ ("step_idx", ctypes.c_uint64),
1463
+ ("time", ctypes.c_double),
1464
+ ("user_data", ctypes.c_void_p),
1465
+ ]
1466
+
1467
+
1468
+ class DvzRequestsEvent(ctypes.Structure):
1469
+ _pack_ = 8
1470
+ _fields_ = [
1471
+ ("batch", ctypes.POINTER(DvzBatch)),
1472
+ ("user_data", ctypes.c_void_p),
1473
+ ]
1474
+
1475
+
1476
+ # Struct aliases
1477
+
1478
+ AtlasFont = DvzAtlasFont
1479
+ MVP = DvzMVP
1480
+ Shape = DvzShape
1481
+ KeyboardEvent = DvzKeyboardEvent
1482
+ MouseButtonEvent = DvzMouseButtonEvent
1483
+ MouseWheelEvent = DvzMouseWheelEvent
1484
+ MouseDragEvent = DvzMouseDragEvent
1485
+ MouseClickEvent = DvzMouseClickEvent
1486
+ MouseEventUnion = DvzMouseEventUnion
1487
+ MouseEvent = DvzMouseEvent
1488
+ WindowEvent = DvzWindowEvent
1489
+ FrameEvent = DvzFrameEvent
1490
+ GuiEvent = DvzGuiEvent
1491
+ TimerEvent = DvzTimerEvent
1492
+ RequestsEvent = DvzRequestsEvent
1493
+
1494
+
1495
+ # ===============================================================================
1496
+ # FUNCTION CALLBACK TYPES
1497
+ # ===============================================================================
1498
+
1499
+ gui = DvzAppGuiCallback = ctypes.CFUNCTYPE(None, P_(DvzApp), DvzId, DvzGuiEvent)
1500
+ mouse = DvzAppMouseCallback = ctypes.CFUNCTYPE(None, P_(DvzApp), DvzId, DvzMouseEvent)
1501
+ keyboard = DvzAppKeyboardCallback = ctypes.CFUNCTYPE(None, P_(DvzApp), DvzId, DvzKeyboardEvent)
1502
+ frame = DvzAppFrameCallback = ctypes.CFUNCTYPE(None, P_(DvzApp), DvzId, DvzFrameEvent)
1503
+ timer = DvzAppTimerCallback = ctypes.CFUNCTYPE(None, P_(DvzApp), DvzId, DvzTimerEvent)
1504
+ resize = DvzAppResizeCallback = ctypes.CFUNCTYPE(None, P_(DvzApp), DvzId, DvzWindowEvent)
1505
+
1506
+
1507
+ # ===============================================================================
1508
+ # FUNCTIONS
1509
+ # ===============================================================================
1510
+
1511
+ # Function dvz_demo()
1512
+ demo = dvz.dvz_demo
1513
+ demo.argtypes = [
1514
+ ]
1515
+
1516
+ # Function dvz_version()
1517
+ version = dvz.dvz_version
1518
+ version.argtypes = [
1519
+ ]
1520
+ version.restype = ctypes.c_char_p
1521
+
1522
+ # Function dvz_app()
1523
+ app = dvz.dvz_app
1524
+ app.argtypes = [
1525
+ ctypes.c_int, # int flags
1526
+ ]
1527
+ app.restype = ctypes.POINTER(DvzApp)
1528
+
1529
+ # Function dvz_app_batch()
1530
+ app_batch = dvz.dvz_app_batch
1531
+ app_batch.argtypes = [
1532
+ ctypes.POINTER(DvzApp), # DvzApp* app
1533
+ ]
1534
+ app_batch.restype = ctypes.POINTER(DvzBatch)
1535
+
1536
+ # Function dvz_app_frame()
1537
+ app_frame = dvz.dvz_app_frame
1538
+ app_frame.argtypes = [
1539
+ ctypes.POINTER(DvzApp), # DvzApp* app
1540
+ ]
1541
+
1542
+ # Function dvz_app_onframe()
1543
+ app_onframe = dvz.dvz_app_onframe
1544
+ app_onframe.argtypes = [
1545
+ ctypes.POINTER(DvzApp), # DvzApp* app
1546
+ DvzAppFrameCallback, # DvzAppFrameCallback callback
1547
+ ctypes.c_void_p, # void* user_data
1548
+ ]
1549
+
1550
+ # Function dvz_app_onmouse()
1551
+ app_onmouse = dvz.dvz_app_onmouse
1552
+ app_onmouse.argtypes = [
1553
+ ctypes.POINTER(DvzApp), # DvzApp* app
1554
+ DvzAppMouseCallback, # DvzAppMouseCallback callback
1555
+ ctypes.c_void_p, # void* user_data
1556
+ ]
1557
+
1558
+ # Function dvz_app_onkeyboard()
1559
+ app_onkeyboard = dvz.dvz_app_onkeyboard
1560
+ app_onkeyboard.argtypes = [
1561
+ ctypes.POINTER(DvzApp), # DvzApp* app
1562
+ DvzAppKeyboardCallback, # DvzAppKeyboardCallback callback
1563
+ ctypes.c_void_p, # void* user_data
1564
+ ]
1565
+
1566
+ # Function dvz_app_onresize()
1567
+ app_onresize = dvz.dvz_app_onresize
1568
+ app_onresize.argtypes = [
1569
+ ctypes.POINTER(DvzApp), # DvzApp* app
1570
+ DvzAppResizeCallback, # DvzAppResizeCallback callback
1571
+ ctypes.c_void_p, # void* user_data
1572
+ ]
1573
+
1574
+ # Function dvz_app_timer()
1575
+ app_timer = dvz.dvz_app_timer
1576
+ app_timer.argtypes = [
1577
+ ctypes.POINTER(DvzApp), # DvzApp* app
1578
+ ctypes.c_double, # double delay
1579
+ ctypes.c_double, # double period
1580
+ ctypes.c_uint64, # uint64_t max_count
1581
+ ]
1582
+ app_timer.restype = ctypes.POINTER(DvzTimerItem)
1583
+
1584
+ # Function dvz_app_ontimer()
1585
+ app_ontimer = dvz.dvz_app_ontimer
1586
+ app_ontimer.argtypes = [
1587
+ ctypes.POINTER(DvzApp), # DvzApp* app
1588
+ DvzAppTimerCallback, # DvzAppTimerCallback callback
1589
+ ctypes.c_void_p, # void* user_data
1590
+ ]
1591
+
1592
+ # Function dvz_app_gui()
1593
+ app_gui = dvz.dvz_app_gui
1594
+ app_gui.argtypes = [
1595
+ ctypes.POINTER(DvzApp), # DvzApp* app
1596
+ DvzId, # DvzId canvas_id
1597
+ DvzAppGuiCallback, # DvzAppGuiCallback callback
1598
+ ctypes.c_void_p, # void* user_data
1599
+ ]
1600
+
1601
+ # Function dvz_app_run()
1602
+ app_run = dvz.dvz_app_run
1603
+ app_run.argtypes = [
1604
+ ctypes.POINTER(DvzApp), # DvzApp* app
1605
+ ctypes.c_uint64, # uint64_t n_frames
1606
+ ]
1607
+
1608
+ # Function dvz_app_submit()
1609
+ app_submit = dvz.dvz_app_submit
1610
+ app_submit.argtypes = [
1611
+ ctypes.POINTER(DvzApp), # DvzApp* app
1612
+ ]
1613
+
1614
+ # Function dvz_app_screenshot()
1615
+ app_screenshot = dvz.dvz_app_screenshot
1616
+ app_screenshot.argtypes = [
1617
+ ctypes.POINTER(DvzApp), # DvzApp* app
1618
+ DvzId, # DvzId canvas_id
1619
+ ctypes.c_char_p, # char* filename
1620
+ ]
1621
+
1622
+ # Function dvz_app_destroy()
1623
+ app_destroy = dvz.dvz_app_destroy
1624
+ app_destroy.argtypes = [
1625
+ ctypes.POINTER(DvzApp), # DvzApp* app
1626
+ ]
1627
+
1628
+ # Function dvz_free()
1629
+ free = dvz.dvz_free
1630
+ free.argtypes = [
1631
+ ctypes.c_void_p, # void* pointer
1632
+ ]
1633
+
1634
+ # Function dvz_scene()
1635
+ scene = dvz.dvz_scene
1636
+ scene.argtypes = [
1637
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
1638
+ ]
1639
+ scene.restype = ctypes.POINTER(DvzScene)
1640
+
1641
+ # Function dvz_scene_run()
1642
+ scene_run = dvz.dvz_scene_run
1643
+ scene_run.argtypes = [
1644
+ ctypes.POINTER(DvzScene), # DvzScene* scene
1645
+ ctypes.POINTER(DvzApp), # DvzApp* app
1646
+ ctypes.c_uint64, # uint64_t n_frames
1647
+ ]
1648
+
1649
+ # Function dvz_scene_destroy()
1650
+ scene_destroy = dvz.dvz_scene_destroy
1651
+ scene_destroy.argtypes = [
1652
+ ctypes.POINTER(DvzScene), # DvzScene* scene
1653
+ ]
1654
+
1655
+ # Function dvz_figure()
1656
+ figure = dvz.dvz_figure
1657
+ figure.argtypes = [
1658
+ ctypes.POINTER(DvzScene), # DvzScene* scene
1659
+ ctypes.c_uint32, # uint32_t width
1660
+ ctypes.c_uint32, # uint32_t height
1661
+ ctypes.c_int, # int flags
1662
+ ]
1663
+ figure.restype = ctypes.POINTER(DvzFigure)
1664
+
1665
+ # Function dvz_figure_id()
1666
+ figure_id = dvz.dvz_figure_id
1667
+ figure_id.argtypes = [
1668
+ ctypes.POINTER(DvzFigure), # DvzFigure* figure
1669
+ ]
1670
+ figure_id.restype = DvzId
1671
+
1672
+ # Function dvz_figure_resize()
1673
+ figure_resize = dvz.dvz_figure_resize
1674
+ figure_resize.argtypes = [
1675
+ ctypes.POINTER(DvzFigure), # DvzFigure* fig
1676
+ ctypes.c_uint32, # uint32_t width
1677
+ ctypes.c_uint32, # uint32_t height
1678
+ ]
1679
+
1680
+ # Function dvz_scene_figure()
1681
+ scene_figure = dvz.dvz_scene_figure
1682
+ scene_figure.argtypes = [
1683
+ ctypes.POINTER(DvzScene), # DvzScene* scene
1684
+ DvzId, # DvzId id
1685
+ ]
1686
+ scene_figure.restype = ctypes.POINTER(DvzFigure)
1687
+
1688
+ # Function dvz_figure_update()
1689
+ figure_update = dvz.dvz_figure_update
1690
+ figure_update.argtypes = [
1691
+ ctypes.POINTER(DvzFigure), # DvzFigure* figure
1692
+ ]
1693
+
1694
+ # Function dvz_figure_destroy()
1695
+ figure_destroy = dvz.dvz_figure_destroy
1696
+ figure_destroy.argtypes = [
1697
+ ctypes.POINTER(DvzFigure), # DvzFigure* figure
1698
+ ]
1699
+
1700
+ # Function dvz_mvp()
1701
+ mvp = dvz.dvz_mvp
1702
+ mvp.argtypes = [
1703
+ ctypes.c_float * 16, # mat4 model
1704
+ ctypes.c_float * 16, # mat4 view
1705
+ ctypes.c_float * 16, # mat4 proj
1706
+ ]
1707
+ mvp.restype = DvzMVP
1708
+
1709
+ # Function dvz_panel()
1710
+ panel = dvz.dvz_panel
1711
+ panel.argtypes = [
1712
+ ctypes.POINTER(DvzFigure), # DvzFigure* fig
1713
+ ctypes.c_float, # float x
1714
+ ctypes.c_float, # float y
1715
+ ctypes.c_float, # float width
1716
+ ctypes.c_float, # float height
1717
+ ]
1718
+ panel.restype = ctypes.POINTER(DvzPanel)
1719
+
1720
+ # Function dvz_panel_default()
1721
+ panel_default = dvz.dvz_panel_default
1722
+ panel_default.argtypes = [
1723
+ ctypes.POINTER(DvzFigure), # DvzFigure* fig
1724
+ ]
1725
+ panel_default.restype = ctypes.POINTER(DvzPanel)
1726
+
1727
+ # Function dvz_panel_transform()
1728
+ panel_transform = dvz.dvz_panel_transform
1729
+ panel_transform.argtypes = [
1730
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1731
+ ctypes.POINTER(DvzTransform), # DvzTransform* tr
1732
+ ]
1733
+
1734
+ # Function dvz_panel_mvp()
1735
+ panel_mvp = dvz.dvz_panel_mvp
1736
+ panel_mvp.argtypes = [
1737
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1738
+ ctypes.POINTER(DvzMVP), # DvzMVP* mvp
1739
+ ]
1740
+
1741
+ # Function dvz_panel_mvpmat()
1742
+ panel_mvpmat = dvz.dvz_panel_mvpmat
1743
+ panel_mvpmat.argtypes = [
1744
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1745
+ ctypes.c_float * 16, # mat4 model
1746
+ ctypes.c_float * 16, # mat4 view
1747
+ ctypes.c_float * 16, # mat4 proj
1748
+ ]
1749
+
1750
+ # Function dvz_panel_resize()
1751
+ panel_resize = dvz.dvz_panel_resize
1752
+ panel_resize.argtypes = [
1753
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1754
+ ctypes.c_float, # float x
1755
+ ctypes.c_float, # float y
1756
+ ctypes.c_float, # float width
1757
+ ctypes.c_float, # float height
1758
+ ]
1759
+
1760
+ # Function dvz_panel_margins()
1761
+ panel_margins = dvz.dvz_panel_margins
1762
+ panel_margins.argtypes = [
1763
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1764
+ ctypes.c_float, # float top
1765
+ ctypes.c_float, # float right
1766
+ ctypes.c_float, # float bottom
1767
+ ctypes.c_float, # float left
1768
+ ]
1769
+
1770
+ # Function dvz_panel_contains()
1771
+ panel_contains = dvz.dvz_panel_contains
1772
+ panel_contains.argtypes = [
1773
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1774
+ ctypes.c_float * 2, # vec2 pos
1775
+ ]
1776
+ panel_contains.restype = ctypes.c_bool
1777
+
1778
+ # Function dvz_panel_at()
1779
+ panel_at = dvz.dvz_panel_at
1780
+ panel_at.argtypes = [
1781
+ ctypes.POINTER(DvzFigure), # DvzFigure* figure
1782
+ ctypes.c_float * 2, # vec2 pos
1783
+ ]
1784
+ panel_at.restype = ctypes.POINTER(DvzPanel)
1785
+
1786
+ # Function dvz_panel_camera()
1787
+ panel_camera = dvz.dvz_panel_camera
1788
+ panel_camera.argtypes = [
1789
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1790
+ ]
1791
+ panel_camera.restype = ctypes.POINTER(DvzCamera)
1792
+
1793
+ # Function dvz_panel_panzoom()
1794
+ panel_panzoom = dvz.dvz_panel_panzoom
1795
+ panel_panzoom.argtypes = [
1796
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1797
+ ]
1798
+ panel_panzoom.restype = ctypes.POINTER(DvzPanzoom)
1799
+
1800
+ # Function dvz_panel_arcball()
1801
+ panel_arcball = dvz.dvz_panel_arcball
1802
+ panel_arcball.argtypes = [
1803
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1804
+ ]
1805
+ panel_arcball.restype = ctypes.POINTER(DvzArcball)
1806
+
1807
+ # Function dvz_panel_update()
1808
+ panel_update = dvz.dvz_panel_update
1809
+ panel_update.argtypes = [
1810
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1811
+ ]
1812
+
1813
+ # Function dvz_panel_visual()
1814
+ panel_visual = dvz.dvz_panel_visual
1815
+ panel_visual.argtypes = [
1816
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1817
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
1818
+ ctypes.c_int, # int flags
1819
+ ]
1820
+
1821
+ # Function dvz_panel_destroy()
1822
+ panel_destroy = dvz.dvz_panel_destroy
1823
+ panel_destroy.argtypes = [
1824
+ ctypes.POINTER(DvzPanel), # DvzPanel* panel
1825
+ ]
1826
+
1827
+ # Function dvz_visual_update()
1828
+ visual_update = dvz.dvz_visual_update
1829
+ visual_update.argtypes = [
1830
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
1831
+ ]
1832
+
1833
+ # Function dvz_visual_fixed()
1834
+ visual_fixed = dvz.dvz_visual_fixed
1835
+ visual_fixed.argtypes = [
1836
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
1837
+ ctypes.c_bool, # bool fixed_x
1838
+ ctypes.c_bool, # bool fixed_y
1839
+ ctypes.c_bool, # bool fixed_z
1840
+ ]
1841
+
1842
+ # Function dvz_visual_clip()
1843
+ visual_clip = dvz.dvz_visual_clip
1844
+ visual_clip.argtypes = [
1845
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
1846
+ DvzViewportClip, # DvzViewportClip clip
1847
+ ]
1848
+
1849
+ # Function dvz_visual_depth()
1850
+ visual_depth = dvz.dvz_visual_depth
1851
+ visual_depth.argtypes = [
1852
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
1853
+ DvzDepthTest, # DvzDepthTest depth_test
1854
+ ]
1855
+
1856
+ # Function dvz_visual_show()
1857
+ visual_show = dvz.dvz_visual_show
1858
+ visual_show.argtypes = [
1859
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
1860
+ ctypes.c_bool, # bool is_visible
1861
+ ]
1862
+
1863
+ # Function dvz_colormap()
1864
+ colormap = dvz.dvz_colormap
1865
+ colormap.argtypes = [
1866
+ DvzColormap, # DvzColormap cmap
1867
+ ctypes.c_uint8, # uint8_t value
1868
+ ctypes.c_uint8 * 4, # cvec4 color
1869
+ ]
1870
+
1871
+ # Function dvz_colormap_scale()
1872
+ colormap_scale = dvz.dvz_colormap_scale
1873
+ colormap_scale.argtypes = [
1874
+ DvzColormap, # DvzColormap cmap
1875
+ ctypes.c_float, # float value
1876
+ ctypes.c_float, # float vmin
1877
+ ctypes.c_float, # float vmax
1878
+ ctypes.c_uint8 * 4, # cvec4 color
1879
+ ]
1880
+
1881
+ # Function dvz_colormap_array()
1882
+ colormap_array = dvz.dvz_colormap_array
1883
+ colormap_array.argtypes = [
1884
+ DvzColormap, # DvzColormap cmap
1885
+ ctypes.c_uint32, # uint32_t count
1886
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* values
1887
+ ctypes.c_float, # float vmin
1888
+ ctypes.c_float, # float vmax
1889
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* out
1890
+ ]
1891
+
1892
+ # Function dvz_shape_normals()
1893
+ shape_normals = dvz.dvz_shape_normals
1894
+ shape_normals.argtypes = [
1895
+ ctypes.POINTER(DvzShape), # DvzShape* shape
1896
+ ]
1897
+
1898
+ # Function dvz_shape_merge()
1899
+ shape_merge = dvz.dvz_shape_merge
1900
+ shape_merge.argtypes = [
1901
+ ctypes.POINTER(DvzShape), # DvzShape* merged
1902
+ ctypes.POINTER(DvzShape), # DvzShape* to_merge
1903
+ ]
1904
+
1905
+ # Function dvz_shape_print()
1906
+ shape_print = dvz.dvz_shape_print
1907
+ shape_print.argtypes = [
1908
+ ctypes.POINTER(DvzShape), # DvzShape* shape
1909
+ ]
1910
+
1911
+ # Function dvz_shape_destroy()
1912
+ shape_destroy = dvz.dvz_shape_destroy
1913
+ shape_destroy.argtypes = [
1914
+ ctypes.POINTER(DvzShape), # DvzShape* shape
1915
+ ]
1916
+
1917
+ # Function dvz_shape_begin()
1918
+ shape_begin = dvz.dvz_shape_begin
1919
+ shape_begin.argtypes = [
1920
+ ctypes.POINTER(DvzShape), # DvzShape* shape
1921
+ ctypes.c_uint32, # uint32_t first
1922
+ ctypes.c_uint32, # uint32_t count
1923
+ ]
1924
+
1925
+ # Function dvz_shape_scale()
1926
+ shape_scale = dvz.dvz_shape_scale
1927
+ shape_scale.argtypes = [
1928
+ ctypes.POINTER(DvzShape), # DvzShape* shape
1929
+ ctypes.c_float * 3, # vec3 scale
1930
+ ]
1931
+
1932
+ # Function dvz_shape_translate()
1933
+ shape_translate = dvz.dvz_shape_translate
1934
+ shape_translate.argtypes = [
1935
+ ctypes.POINTER(DvzShape), # DvzShape* shape
1936
+ ctypes.c_float * 3, # vec3 translate
1937
+ ]
1938
+
1939
+ # Function dvz_shape_rotate()
1940
+ shape_rotate = dvz.dvz_shape_rotate
1941
+ shape_rotate.argtypes = [
1942
+ ctypes.POINTER(DvzShape), # DvzShape* shape
1943
+ ctypes.c_float, # float angle
1944
+ ctypes.c_float * 3, # vec3 axis
1945
+ ]
1946
+
1947
+ # Function dvz_shape_transform()
1948
+ shape_transform = dvz.dvz_shape_transform
1949
+ shape_transform.argtypes = [
1950
+ ctypes.POINTER(DvzShape), # DvzShape* shape
1951
+ ctypes.c_float * 16, # mat4 transform
1952
+ ]
1953
+
1954
+ # Function dvz_shape_rescaling()
1955
+ shape_rescaling = dvz.dvz_shape_rescaling
1956
+ shape_rescaling.argtypes = [
1957
+ ctypes.POINTER(DvzShape), # DvzShape* shape
1958
+ ctypes.c_int, # int flags
1959
+ ctypes.c_float * 3, # vec3 out_scale
1960
+ ]
1961
+ shape_rescaling.restype = ctypes.c_float
1962
+
1963
+ # Function dvz_shape_end()
1964
+ shape_end = dvz.dvz_shape_end
1965
+ shape_end.argtypes = [
1966
+ ctypes.POINTER(DvzShape), # DvzShape* shape
1967
+ ]
1968
+
1969
+ # Function dvz_shape_square()
1970
+ shape_square = dvz.dvz_shape_square
1971
+ shape_square.argtypes = [
1972
+ ctypes.c_uint8 * 4, # cvec4 color
1973
+ ]
1974
+ shape_square.restype = DvzShape
1975
+
1976
+ # Function dvz_shape_disc()
1977
+ shape_disc = dvz.dvz_shape_disc
1978
+ shape_disc.argtypes = [
1979
+ ctypes.c_uint32, # uint32_t count
1980
+ ctypes.c_uint8 * 4, # cvec4 color
1981
+ ]
1982
+ shape_disc.restype = DvzShape
1983
+
1984
+ # Function dvz_shape_surface()
1985
+ shape_surface = dvz.dvz_shape_surface
1986
+ shape_surface.argtypes = [
1987
+ ctypes.c_uint32, # uint32_t row_count
1988
+ ctypes.c_uint32, # uint32_t col_count
1989
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* heights
1990
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* colors
1991
+ ctypes.c_float * 3, # vec3 o
1992
+ ctypes.c_float * 3, # vec3 u
1993
+ ctypes.c_float * 3, # vec3 v
1994
+ ctypes.c_int, # int flags
1995
+ ]
1996
+ shape_surface.restype = DvzShape
1997
+
1998
+ # Function dvz_shape_cube()
1999
+ shape_cube = dvz.dvz_shape_cube
2000
+ shape_cube.argtypes = [
2001
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* colors
2002
+ ]
2003
+ shape_cube.restype = DvzShape
2004
+
2005
+ # Function dvz_shape_sphere()
2006
+ shape_sphere = dvz.dvz_shape_sphere
2007
+ shape_sphere.argtypes = [
2008
+ ctypes.c_uint32, # uint32_t rows
2009
+ ctypes.c_uint32, # uint32_t cols
2010
+ ctypes.c_uint8 * 4, # cvec4 color
2011
+ ]
2012
+ shape_sphere.restype = DvzShape
2013
+
2014
+ # Function dvz_shape_cone()
2015
+ shape_cone = dvz.dvz_shape_cone
2016
+ shape_cone.argtypes = [
2017
+ ctypes.c_uint32, # uint32_t count
2018
+ ctypes.c_uint8 * 4, # cvec4 color
2019
+ ]
2020
+ shape_cone.restype = DvzShape
2021
+
2022
+ # Function dvz_shape_cylinder()
2023
+ shape_cylinder = dvz.dvz_shape_cylinder
2024
+ shape_cylinder.argtypes = [
2025
+ ctypes.c_uint32, # uint32_t count
2026
+ ctypes.c_uint8 * 4, # cvec4 color
2027
+ ]
2028
+ shape_cylinder.restype = DvzShape
2029
+
2030
+ # Function dvz_shape_normalize()
2031
+ shape_normalize = dvz.dvz_shape_normalize
2032
+ shape_normalize.argtypes = [
2033
+ ctypes.POINTER(DvzShape), # DvzShape* shape
2034
+ ]
2035
+
2036
+ # Function dvz_shape_obj()
2037
+ shape_obj = dvz.dvz_shape_obj
2038
+ shape_obj.argtypes = [
2039
+ ctypes.c_char_p, # char* file_path
2040
+ ]
2041
+ shape_obj.restype = DvzShape
2042
+
2043
+ # Function dvz_basic()
2044
+ basic = dvz.dvz_basic
2045
+ basic.argtypes = [
2046
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2047
+ DvzPrimitiveTopology, # DvzPrimitiveTopology topology
2048
+ ctypes.c_int, # int flags
2049
+ ]
2050
+ basic.restype = ctypes.POINTER(DvzVisual)
2051
+
2052
+ # Function dvz_basic_position()
2053
+ basic_position = dvz.dvz_basic_position
2054
+ basic_position.argtypes = [
2055
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2056
+ ctypes.c_uint32, # uint32_t first
2057
+ ctypes.c_uint32, # uint32_t count
2058
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* values
2059
+ ctypes.c_int, # int flags
2060
+ ]
2061
+
2062
+ # Function dvz_basic_color()
2063
+ basic_color = dvz.dvz_basic_color
2064
+ basic_color.argtypes = [
2065
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2066
+ ctypes.c_uint32, # uint32_t first
2067
+ ctypes.c_uint32, # uint32_t count
2068
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* values
2069
+ ctypes.c_int, # int flags
2070
+ ]
2071
+
2072
+ # Function dvz_basic_alloc()
2073
+ basic_alloc = dvz.dvz_basic_alloc
2074
+ basic_alloc.argtypes = [
2075
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2076
+ ctypes.c_uint32, # uint32_t item_count
2077
+ ]
2078
+
2079
+ # Function dvz_pixel()
2080
+ pixel = dvz.dvz_pixel
2081
+ pixel.argtypes = [
2082
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2083
+ ctypes.c_int, # int flags
2084
+ ]
2085
+ pixel.restype = ctypes.POINTER(DvzVisual)
2086
+
2087
+ # Function dvz_pixel_position()
2088
+ pixel_position = dvz.dvz_pixel_position
2089
+ pixel_position.argtypes = [
2090
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2091
+ ctypes.c_uint32, # uint32_t first
2092
+ ctypes.c_uint32, # uint32_t count
2093
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* values
2094
+ ctypes.c_int, # int flags
2095
+ ]
2096
+
2097
+ # Function dvz_pixel_color()
2098
+ pixel_color = dvz.dvz_pixel_color
2099
+ pixel_color.argtypes = [
2100
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2101
+ ctypes.c_uint32, # uint32_t first
2102
+ ctypes.c_uint32, # uint32_t count
2103
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* values
2104
+ ctypes.c_int, # int flags
2105
+ ]
2106
+
2107
+ # Function dvz_pixel_alloc()
2108
+ pixel_alloc = dvz.dvz_pixel_alloc
2109
+ pixel_alloc.argtypes = [
2110
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2111
+ ctypes.c_uint32, # uint32_t item_count
2112
+ ]
2113
+
2114
+ # Function dvz_point()
2115
+ point = dvz.dvz_point
2116
+ point.argtypes = [
2117
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2118
+ ctypes.c_int, # int flags
2119
+ ]
2120
+ point.restype = ctypes.POINTER(DvzVisual)
2121
+
2122
+ # Function dvz_point_position()
2123
+ point_position = dvz.dvz_point_position
2124
+ point_position.argtypes = [
2125
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2126
+ ctypes.c_uint32, # uint32_t first
2127
+ ctypes.c_uint32, # uint32_t count
2128
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* values
2129
+ ctypes.c_int, # int flags
2130
+ ]
2131
+
2132
+ # Function dvz_point_color()
2133
+ point_color = dvz.dvz_point_color
2134
+ point_color.argtypes = [
2135
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2136
+ ctypes.c_uint32, # uint32_t first
2137
+ ctypes.c_uint32, # uint32_t count
2138
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* values
2139
+ ctypes.c_int, # int flags
2140
+ ]
2141
+
2142
+ # Function dvz_point_size()
2143
+ point_size = dvz.dvz_point_size
2144
+ point_size.argtypes = [
2145
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2146
+ ctypes.c_uint32, # uint32_t first
2147
+ ctypes.c_uint32, # uint32_t count
2148
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* values
2149
+ ctypes.c_int, # int flags
2150
+ ]
2151
+
2152
+ # Function dvz_point_alloc()
2153
+ point_alloc = dvz.dvz_point_alloc
2154
+ point_alloc.argtypes = [
2155
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2156
+ ctypes.c_uint32, # uint32_t item_count
2157
+ ]
2158
+
2159
+ # Function dvz_marker()
2160
+ marker = dvz.dvz_marker
2161
+ marker.argtypes = [
2162
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2163
+ ctypes.c_int, # int flags
2164
+ ]
2165
+ marker.restype = ctypes.POINTER(DvzVisual)
2166
+
2167
+ # Function dvz_marker_mode()
2168
+ marker_mode = dvz.dvz_marker_mode
2169
+ marker_mode.argtypes = [
2170
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2171
+ DvzMarkerMode, # DvzMarkerMode mode
2172
+ ]
2173
+
2174
+ # Function dvz_marker_aspect()
2175
+ marker_aspect = dvz.dvz_marker_aspect
2176
+ marker_aspect.argtypes = [
2177
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2178
+ DvzMarkerAspect, # DvzMarkerAspect aspect
2179
+ ]
2180
+
2181
+ # Function dvz_marker_shape()
2182
+ marker_shape = dvz.dvz_marker_shape
2183
+ marker_shape.argtypes = [
2184
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2185
+ DvzMarkerShape, # DvzMarkerShape shape
2186
+ ]
2187
+
2188
+ # Function dvz_marker_position()
2189
+ marker_position = dvz.dvz_marker_position
2190
+ marker_position.argtypes = [
2191
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2192
+ ctypes.c_uint32, # uint32_t first
2193
+ ctypes.c_uint32, # uint32_t count
2194
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* values
2195
+ ctypes.c_int, # int flags
2196
+ ]
2197
+
2198
+ # Function dvz_marker_size()
2199
+ marker_size = dvz.dvz_marker_size
2200
+ marker_size.argtypes = [
2201
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2202
+ ctypes.c_uint32, # uint32_t first
2203
+ ctypes.c_uint32, # uint32_t count
2204
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* values
2205
+ ctypes.c_int, # int flags
2206
+ ]
2207
+
2208
+ # Function dvz_marker_angle()
2209
+ marker_angle = dvz.dvz_marker_angle
2210
+ marker_angle.argtypes = [
2211
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2212
+ ctypes.c_uint32, # uint32_t first
2213
+ ctypes.c_uint32, # uint32_t count
2214
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* values
2215
+ ctypes.c_int, # int flags
2216
+ ]
2217
+
2218
+ # Function dvz_marker_color()
2219
+ marker_color = dvz.dvz_marker_color
2220
+ marker_color.argtypes = [
2221
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2222
+ ctypes.c_uint32, # uint32_t first
2223
+ ctypes.c_uint32, # uint32_t count
2224
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* values
2225
+ ctypes.c_int, # int flags
2226
+ ]
2227
+
2228
+ # Function dvz_marker_edge_color()
2229
+ marker_edge_color = dvz.dvz_marker_edge_color
2230
+ marker_edge_color.argtypes = [
2231
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2232
+ ctypes.c_uint8 * 4, # cvec4 value
2233
+ ]
2234
+
2235
+ # Function dvz_marker_edge_width()
2236
+ marker_edge_width = dvz.dvz_marker_edge_width
2237
+ marker_edge_width.argtypes = [
2238
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2239
+ ctypes.c_float, # float value
2240
+ ]
2241
+
2242
+ # Function dvz_marker_tex()
2243
+ marker_tex = dvz.dvz_marker_tex
2244
+ marker_tex.argtypes = [
2245
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2246
+ DvzId, # DvzId tex
2247
+ DvzId, # DvzId sampler
2248
+ ]
2249
+
2250
+ # Function dvz_marker_tex_scale()
2251
+ marker_tex_scale = dvz.dvz_marker_tex_scale
2252
+ marker_tex_scale.argtypes = [
2253
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2254
+ ctypes.c_float, # float value
2255
+ ]
2256
+
2257
+ # Function dvz_marker_alloc()
2258
+ marker_alloc = dvz.dvz_marker_alloc
2259
+ marker_alloc.argtypes = [
2260
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2261
+ ctypes.c_uint32, # uint32_t item_count
2262
+ ]
2263
+
2264
+ # Function dvz_segment()
2265
+ segment = dvz.dvz_segment
2266
+ segment.argtypes = [
2267
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2268
+ ctypes.c_int, # int flags
2269
+ ]
2270
+ segment.restype = ctypes.POINTER(DvzVisual)
2271
+
2272
+ # Function dvz_segment_position()
2273
+ segment_position = dvz.dvz_segment_position
2274
+ segment_position.argtypes = [
2275
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2276
+ ctypes.c_uint32, # uint32_t first
2277
+ ctypes.c_uint32, # uint32_t count
2278
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* initial
2279
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* terminal
2280
+ ctypes.c_int, # int flags
2281
+ ]
2282
+
2283
+ # Function dvz_segment_shift()
2284
+ segment_shift = dvz.dvz_segment_shift
2285
+ segment_shift.argtypes = [
2286
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2287
+ ctypes.c_uint32, # uint32_t first
2288
+ ctypes.c_uint32, # uint32_t count
2289
+ ndpointer(dtype=np.float32, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # vec4* values
2290
+ ctypes.c_int, # int flags
2291
+ ]
2292
+
2293
+ # Function dvz_segment_color()
2294
+ segment_color = dvz.dvz_segment_color
2295
+ segment_color.argtypes = [
2296
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2297
+ ctypes.c_uint32, # uint32_t first
2298
+ ctypes.c_uint32, # uint32_t count
2299
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* values
2300
+ ctypes.c_int, # int flags
2301
+ ]
2302
+
2303
+ # Function dvz_segment_linewidth()
2304
+ segment_linewidth = dvz.dvz_segment_linewidth
2305
+ segment_linewidth.argtypes = [
2306
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2307
+ ctypes.c_uint32, # uint32_t first
2308
+ ctypes.c_uint32, # uint32_t count
2309
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* values
2310
+ ctypes.c_int, # int flags
2311
+ ]
2312
+
2313
+ # Function dvz_segment_cap()
2314
+ segment_cap = dvz.dvz_segment_cap
2315
+ segment_cap.argtypes = [
2316
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2317
+ ctypes.c_uint32, # uint32_t first
2318
+ ctypes.c_uint32, # uint32_t count
2319
+ ctypes.POINTER(DvzCapType), # DvzCapType* initial
2320
+ ctypes.POINTER(DvzCapType), # DvzCapType* terminal
2321
+ ctypes.c_int, # int flags
2322
+ ]
2323
+
2324
+ # Function dvz_segment_alloc()
2325
+ segment_alloc = dvz.dvz_segment_alloc
2326
+ segment_alloc.argtypes = [
2327
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2328
+ ctypes.c_uint32, # uint32_t item_count
2329
+ ]
2330
+
2331
+ # Function dvz_path()
2332
+ path = dvz.dvz_path
2333
+ path.argtypes = [
2334
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2335
+ ctypes.c_int, # int flags
2336
+ ]
2337
+ path.restype = ctypes.POINTER(DvzVisual)
2338
+
2339
+ # Function dvz_path_position()
2340
+ path_position = dvz.dvz_path_position
2341
+ path_position.argtypes = [
2342
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2343
+ ctypes.c_uint32, # uint32_t point_count
2344
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* positions
2345
+ ctypes.c_uint32, # uint32_t path_count
2346
+ ndpointer(dtype=np.uint32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # uint32_t* path_lengths
2347
+ ctypes.c_int, # int flags
2348
+ ]
2349
+
2350
+ # Function dvz_path_color()
2351
+ path_color = dvz.dvz_path_color
2352
+ path_color.argtypes = [
2353
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2354
+ ctypes.c_uint32, # uint32_t first
2355
+ ctypes.c_uint32, # uint32_t count
2356
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* values
2357
+ ctypes.c_int, # int flags
2358
+ ]
2359
+
2360
+ # Function dvz_path_linewidth()
2361
+ path_linewidth = dvz.dvz_path_linewidth
2362
+ path_linewidth.argtypes = [
2363
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2364
+ ctypes.c_float, # float value
2365
+ ]
2366
+
2367
+ # Function dvz_path_alloc()
2368
+ path_alloc = dvz.dvz_path_alloc
2369
+ path_alloc.argtypes = [
2370
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2371
+ ctypes.c_uint32, # uint32_t total_point_count
2372
+ ]
2373
+
2374
+ # Function dvz_atlas_font()
2375
+ atlas_font = dvz.dvz_atlas_font
2376
+ atlas_font.argtypes = [
2377
+ ctypes.c_double, # double font_size
2378
+ ]
2379
+ atlas_font.restype = DvzAtlasFont
2380
+
2381
+ # Function dvz_font()
2382
+ font = dvz.dvz_font
2383
+ font.argtypes = [
2384
+ ctypes.c_long, # long ttf_size
2385
+ ctypes.c_char_p, # char* ttf_bytes
2386
+ ]
2387
+ font.restype = ctypes.POINTER(DvzFont)
2388
+
2389
+ # Function dvz_font_size()
2390
+ font_size = dvz.dvz_font_size
2391
+ font_size.argtypes = [
2392
+ ctypes.POINTER(DvzFont), # DvzFont* font
2393
+ ctypes.c_double, # double size
2394
+ ]
2395
+
2396
+ # Function dvz_font_layout()
2397
+ font_layout = dvz.dvz_font_layout
2398
+ font_layout.argtypes = [
2399
+ ctypes.POINTER(DvzFont), # DvzFont* font
2400
+ ctypes.c_uint32, # uint32_t length
2401
+ ndpointer(dtype=np.uint32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # uint32_t* codepoints
2402
+ ]
2403
+ font_layout.restype = ndpointer(dtype=np.float32, ndim=2, ncol=4, flags="C_CONTIGUOUS")
2404
+
2405
+ # Function dvz_font_ascii()
2406
+ font_ascii = dvz.dvz_font_ascii
2407
+ font_ascii.argtypes = [
2408
+ ctypes.POINTER(DvzFont), # DvzFont* font
2409
+ ctypes.c_char_p, # char* string
2410
+ ]
2411
+ font_ascii.restype = ndpointer(dtype=np.float32, ndim=2, ncol=4, flags="C_CONTIGUOUS")
2412
+
2413
+ # Function dvz_font_draw()
2414
+ font_draw = dvz.dvz_font_draw
2415
+ font_draw.argtypes = [
2416
+ ctypes.POINTER(DvzFont), # DvzFont* font
2417
+ ctypes.c_uint32, # uint32_t length
2418
+ ndpointer(dtype=np.uint32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # uint32_t* codepoints
2419
+ ndpointer(dtype=np.float32, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # vec4* xywh
2420
+ ctypes.c_uint32 * 2, # uvec2 out_size
2421
+ ]
2422
+ font_draw.restype = ndpointer(dtype=np.uint8, ndim=1, ncol=1, flags="C_CONTIGUOUS")
2423
+
2424
+ # Function dvz_font_destroy()
2425
+ font_destroy = dvz.dvz_font_destroy
2426
+ font_destroy.argtypes = [
2427
+ ctypes.POINTER(DvzFont), # DvzFont* font
2428
+ ]
2429
+
2430
+ # Function dvz_glyph()
2431
+ glyph = dvz.dvz_glyph
2432
+ glyph.argtypes = [
2433
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2434
+ ctypes.c_int, # int flags
2435
+ ]
2436
+ glyph.restype = ctypes.POINTER(DvzVisual)
2437
+
2438
+ # Function dvz_glyph_alloc()
2439
+ glyph_alloc = dvz.dvz_glyph_alloc
2440
+ glyph_alloc.argtypes = [
2441
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2442
+ ctypes.c_uint32, # uint32_t item_count
2443
+ ]
2444
+
2445
+ # Function dvz_glyph_position()
2446
+ glyph_position = dvz.dvz_glyph_position
2447
+ glyph_position.argtypes = [
2448
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2449
+ ctypes.c_uint32, # uint32_t first
2450
+ ctypes.c_uint32, # uint32_t count
2451
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* values
2452
+ ctypes.c_int, # int flags
2453
+ ]
2454
+
2455
+ # Function dvz_glyph_axis()
2456
+ glyph_axis = dvz.dvz_glyph_axis
2457
+ glyph_axis.argtypes = [
2458
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2459
+ ctypes.c_uint32, # uint32_t first
2460
+ ctypes.c_uint32, # uint32_t count
2461
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* values
2462
+ ctypes.c_int, # int flags
2463
+ ]
2464
+
2465
+ # Function dvz_glyph_size()
2466
+ glyph_size = dvz.dvz_glyph_size
2467
+ glyph_size.argtypes = [
2468
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2469
+ ctypes.c_uint32, # uint32_t first
2470
+ ctypes.c_uint32, # uint32_t count
2471
+ ndpointer(dtype=np.float32, ndim=2, ncol=2, flags="C_CONTIGUOUS"), # vec2* values
2472
+ ctypes.c_int, # int flags
2473
+ ]
2474
+
2475
+ # Function dvz_glyph_anchor()
2476
+ glyph_anchor = dvz.dvz_glyph_anchor
2477
+ glyph_anchor.argtypes = [
2478
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2479
+ ctypes.c_uint32, # uint32_t first
2480
+ ctypes.c_uint32, # uint32_t count
2481
+ ndpointer(dtype=np.float32, ndim=2, ncol=2, flags="C_CONTIGUOUS"), # vec2* values
2482
+ ctypes.c_int, # int flags
2483
+ ]
2484
+
2485
+ # Function dvz_glyph_shift()
2486
+ glyph_shift = dvz.dvz_glyph_shift
2487
+ glyph_shift.argtypes = [
2488
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2489
+ ctypes.c_uint32, # uint32_t first
2490
+ ctypes.c_uint32, # uint32_t count
2491
+ ndpointer(dtype=np.float32, ndim=2, ncol=2, flags="C_CONTIGUOUS"), # vec2* values
2492
+ ctypes.c_int, # int flags
2493
+ ]
2494
+
2495
+ # Function dvz_glyph_texcoords()
2496
+ glyph_texcoords = dvz.dvz_glyph_texcoords
2497
+ glyph_texcoords.argtypes = [
2498
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2499
+ ctypes.c_uint32, # uint32_t first
2500
+ ctypes.c_uint32, # uint32_t count
2501
+ ndpointer(dtype=np.float32, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # vec4* coords
2502
+ ctypes.c_int, # int flags
2503
+ ]
2504
+
2505
+ # Function dvz_glyph_angle()
2506
+ glyph_angle = dvz.dvz_glyph_angle
2507
+ glyph_angle.argtypes = [
2508
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2509
+ ctypes.c_uint32, # uint32_t first
2510
+ ctypes.c_uint32, # uint32_t count
2511
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* values
2512
+ ctypes.c_int, # int flags
2513
+ ]
2514
+
2515
+ # Function dvz_glyph_color()
2516
+ glyph_color = dvz.dvz_glyph_color
2517
+ glyph_color.argtypes = [
2518
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2519
+ ctypes.c_uint32, # uint32_t first
2520
+ ctypes.c_uint32, # uint32_t count
2521
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* values
2522
+ ctypes.c_int, # int flags
2523
+ ]
2524
+
2525
+ # Function dvz_glyph_groupsize()
2526
+ glyph_groupsize = dvz.dvz_glyph_groupsize
2527
+ glyph_groupsize.argtypes = [
2528
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2529
+ ctypes.c_uint32, # uint32_t first
2530
+ ctypes.c_uint32, # uint32_t count
2531
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* values
2532
+ ctypes.c_int, # int flags
2533
+ ]
2534
+
2535
+ # Function dvz_glyph_bgcolor()
2536
+ glyph_bgcolor = dvz.dvz_glyph_bgcolor
2537
+ glyph_bgcolor.argtypes = [
2538
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2539
+ ctypes.c_float * 4, # vec4 bgcolor
2540
+ ]
2541
+
2542
+ # Function dvz_glyph_texture()
2543
+ glyph_texture = dvz.dvz_glyph_texture
2544
+ glyph_texture.argtypes = [
2545
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2546
+ DvzId, # DvzId tex
2547
+ ]
2548
+
2549
+ # Function dvz_glyph_atlas()
2550
+ glyph_atlas = dvz.dvz_glyph_atlas
2551
+ glyph_atlas.argtypes = [
2552
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2553
+ ctypes.POINTER(DvzAtlas), # DvzAtlas* atlas
2554
+ ]
2555
+
2556
+ # Function dvz_glyph_unicode()
2557
+ glyph_unicode = dvz.dvz_glyph_unicode
2558
+ glyph_unicode.argtypes = [
2559
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2560
+ ctypes.c_uint32, # uint32_t count
2561
+ ndpointer(dtype=np.uint32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # uint32_t* codepoints
2562
+ ]
2563
+
2564
+ # Function dvz_glyph_ascii()
2565
+ glyph_ascii = dvz.dvz_glyph_ascii
2566
+ glyph_ascii.argtypes = [
2567
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2568
+ ctypes.c_char_p, # char* string
2569
+ ]
2570
+
2571
+ # Function dvz_glyph_xywh()
2572
+ glyph_xywh = dvz.dvz_glyph_xywh
2573
+ glyph_xywh.argtypes = [
2574
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2575
+ ctypes.c_uint32, # uint32_t first
2576
+ ctypes.c_uint32, # uint32_t count
2577
+ ndpointer(dtype=np.float32, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # vec4* values
2578
+ ctypes.c_float * 2, # vec2 offset
2579
+ ctypes.c_int, # int flags
2580
+ ]
2581
+
2582
+ # Function dvz_image()
2583
+ image = dvz.dvz_image
2584
+ image.argtypes = [
2585
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2586
+ ctypes.c_int, # int flags
2587
+ ]
2588
+ image.restype = ctypes.POINTER(DvzVisual)
2589
+
2590
+ # Function dvz_image_position()
2591
+ image_position = dvz.dvz_image_position
2592
+ image_position.argtypes = [
2593
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2594
+ ctypes.c_uint32, # uint32_t first
2595
+ ctypes.c_uint32, # uint32_t count
2596
+ ndpointer(dtype=np.float32, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # vec4* ul_lr
2597
+ ctypes.c_int, # int flags
2598
+ ]
2599
+
2600
+ # Function dvz_image_texcoords()
2601
+ image_texcoords = dvz.dvz_image_texcoords
2602
+ image_texcoords.argtypes = [
2603
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2604
+ ctypes.c_uint32, # uint32_t first
2605
+ ctypes.c_uint32, # uint32_t count
2606
+ ndpointer(dtype=np.float32, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # vec4* ul_lr
2607
+ ctypes.c_int, # int flags
2608
+ ]
2609
+
2610
+ # Function dvz_image_texture()
2611
+ image_texture = dvz.dvz_image_texture
2612
+ image_texture.argtypes = [
2613
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2614
+ DvzId, # DvzId tex
2615
+ DvzFilter, # DvzFilter filter
2616
+ DvzSamplerAddressMode, # DvzSamplerAddressMode address_mode
2617
+ ]
2618
+
2619
+ # Function dvz_image_alloc()
2620
+ image_alloc = dvz.dvz_image_alloc
2621
+ image_alloc.argtypes = [
2622
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2623
+ ctypes.c_uint32, # uint32_t item_count
2624
+ ]
2625
+
2626
+ # Function dvz_tex_image()
2627
+ tex_image = dvz.dvz_tex_image
2628
+ tex_image.argtypes = [
2629
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2630
+ DvzFormat, # DvzFormat format
2631
+ ctypes.c_uint32, # uint32_t width
2632
+ ctypes.c_uint32, # uint32_t height
2633
+ ctypes.c_void_p, # void* data
2634
+ ]
2635
+ tex_image.restype = DvzId
2636
+
2637
+ # Function dvz_mesh()
2638
+ mesh = dvz.dvz_mesh
2639
+ mesh.argtypes = [
2640
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2641
+ ctypes.c_int, # int flags
2642
+ ]
2643
+ mesh.restype = ctypes.POINTER(DvzVisual)
2644
+
2645
+ # Function dvz_mesh_position()
2646
+ mesh_position = dvz.dvz_mesh_position
2647
+ mesh_position.argtypes = [
2648
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2649
+ ctypes.c_uint32, # uint32_t first
2650
+ ctypes.c_uint32, # uint32_t count
2651
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* values
2652
+ ctypes.c_int, # int flags
2653
+ ]
2654
+
2655
+ # Function dvz_mesh_color()
2656
+ mesh_color = dvz.dvz_mesh_color
2657
+ mesh_color.argtypes = [
2658
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2659
+ ctypes.c_uint32, # uint32_t first
2660
+ ctypes.c_uint32, # uint32_t count
2661
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* values
2662
+ ctypes.c_int, # int flags
2663
+ ]
2664
+
2665
+ # Function dvz_mesh_texcoords()
2666
+ mesh_texcoords = dvz.dvz_mesh_texcoords
2667
+ mesh_texcoords.argtypes = [
2668
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2669
+ ctypes.c_uint32, # uint32_t first
2670
+ ctypes.c_uint32, # uint32_t count
2671
+ ndpointer(dtype=np.float32, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # vec4* values
2672
+ ctypes.c_int, # int flags
2673
+ ]
2674
+
2675
+ # Function dvz_mesh_normal()
2676
+ mesh_normal = dvz.dvz_mesh_normal
2677
+ mesh_normal.argtypes = [
2678
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2679
+ ctypes.c_uint32, # uint32_t first
2680
+ ctypes.c_uint32, # uint32_t count
2681
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* values
2682
+ ctypes.c_int, # int flags
2683
+ ]
2684
+
2685
+ # Function dvz_mesh_texture()
2686
+ mesh_texture = dvz.dvz_mesh_texture
2687
+ mesh_texture.argtypes = [
2688
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2689
+ DvzId, # DvzId tex
2690
+ DvzFilter, # DvzFilter filter
2691
+ DvzSamplerAddressMode, # DvzSamplerAddressMode address_mode
2692
+ ]
2693
+
2694
+ # Function dvz_mesh_index()
2695
+ mesh_index = dvz.dvz_mesh_index
2696
+ mesh_index.argtypes = [
2697
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2698
+ ctypes.c_uint32, # uint32_t first
2699
+ ctypes.c_uint32, # uint32_t count
2700
+ ndpointer(dtype=np.uint32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # DvzIndex* values
2701
+ ctypes.c_int, # int flags
2702
+ ]
2703
+
2704
+ # Function dvz_mesh_alloc()
2705
+ mesh_alloc = dvz.dvz_mesh_alloc
2706
+ mesh_alloc.argtypes = [
2707
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2708
+ ctypes.c_uint32, # uint32_t vertex_count
2709
+ ctypes.c_uint32, # uint32_t index_count
2710
+ ]
2711
+
2712
+ # Function dvz_mesh_light_pos()
2713
+ mesh_light_pos = dvz.dvz_mesh_light_pos
2714
+ mesh_light_pos.argtypes = [
2715
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2716
+ ctypes.c_float * 3, # vec3 pos
2717
+ ]
2718
+
2719
+ # Function dvz_mesh_light_params()
2720
+ mesh_light_params = dvz.dvz_mesh_light_params
2721
+ mesh_light_params.argtypes = [
2722
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2723
+ ctypes.c_float * 4, # vec4 params
2724
+ ]
2725
+
2726
+ # Function dvz_mesh_shape()
2727
+ mesh_shape = dvz.dvz_mesh_shape
2728
+ mesh_shape.argtypes = [
2729
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2730
+ ctypes.POINTER(DvzShape), # DvzShape* shape
2731
+ ctypes.c_int, # int flags
2732
+ ]
2733
+ mesh_shape.restype = ctypes.POINTER(DvzVisual)
2734
+
2735
+ # Function dvz_mesh_reshape()
2736
+ mesh_reshape = dvz.dvz_mesh_reshape
2737
+ mesh_reshape.argtypes = [
2738
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2739
+ ctypes.POINTER(DvzShape), # DvzShape* shape
2740
+ ]
2741
+
2742
+ # Function dvz_sphere()
2743
+ sphere = dvz.dvz_sphere
2744
+ sphere.argtypes = [
2745
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2746
+ ctypes.c_int, # int flags
2747
+ ]
2748
+ sphere.restype = ctypes.POINTER(DvzVisual)
2749
+
2750
+ # Function dvz_sphere_position()
2751
+ sphere_position = dvz.dvz_sphere_position
2752
+ sphere_position.argtypes = [
2753
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2754
+ ctypes.c_uint32, # uint32_t first
2755
+ ctypes.c_uint32, # uint32_t count
2756
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* pos
2757
+ ctypes.c_int, # int flags
2758
+ ]
2759
+
2760
+ # Function dvz_sphere_color()
2761
+ sphere_color = dvz.dvz_sphere_color
2762
+ sphere_color.argtypes = [
2763
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2764
+ ctypes.c_uint32, # uint32_t first
2765
+ ctypes.c_uint32, # uint32_t count
2766
+ ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS"), # cvec4* color
2767
+ ctypes.c_int, # int flags
2768
+ ]
2769
+
2770
+ # Function dvz_sphere_size()
2771
+ sphere_size = dvz.dvz_sphere_size
2772
+ sphere_size.argtypes = [
2773
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2774
+ ctypes.c_uint32, # uint32_t first
2775
+ ctypes.c_uint32, # uint32_t count
2776
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* size
2777
+ ctypes.c_int, # int flags
2778
+ ]
2779
+
2780
+ # Function dvz_sphere_alloc()
2781
+ sphere_alloc = dvz.dvz_sphere_alloc
2782
+ sphere_alloc.argtypes = [
2783
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2784
+ ctypes.c_uint32, # uint32_t item_count
2785
+ ]
2786
+
2787
+ # Function dvz_sphere_light_pos()
2788
+ sphere_light_pos = dvz.dvz_sphere_light_pos
2789
+ sphere_light_pos.argtypes = [
2790
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2791
+ ctypes.c_float * 3, # vec3 pos
2792
+ ]
2793
+
2794
+ # Function dvz_sphere_light_params()
2795
+ sphere_light_params = dvz.dvz_sphere_light_params
2796
+ sphere_light_params.argtypes = [
2797
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2798
+ ctypes.c_float * 4, # vec4 params
2799
+ ]
2800
+
2801
+ # Function dvz_volume()
2802
+ volume = dvz.dvz_volume
2803
+ volume.argtypes = [
2804
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2805
+ ctypes.c_int, # int flags
2806
+ ]
2807
+ volume.restype = ctypes.POINTER(DvzVisual)
2808
+
2809
+ # Function dvz_volume_alloc()
2810
+ volume_alloc = dvz.dvz_volume_alloc
2811
+ volume_alloc.argtypes = [
2812
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2813
+ ctypes.c_uint32, # uint32_t item_count
2814
+ ]
2815
+
2816
+ # Function dvz_volume_texture()
2817
+ volume_texture = dvz.dvz_volume_texture
2818
+ volume_texture.argtypes = [
2819
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2820
+ DvzId, # DvzId tex
2821
+ DvzFilter, # DvzFilter filter
2822
+ DvzSamplerAddressMode, # DvzSamplerAddressMode address_mode
2823
+ ]
2824
+
2825
+ # Function dvz_volume_size()
2826
+ volume_size = dvz.dvz_volume_size
2827
+ volume_size.argtypes = [
2828
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2829
+ ctypes.c_float, # float w
2830
+ ctypes.c_float, # float h
2831
+ ctypes.c_float, # float d
2832
+ ]
2833
+
2834
+ # Function dvz_volume_texcoords()
2835
+ volume_texcoords = dvz.dvz_volume_texcoords
2836
+ volume_texcoords.argtypes = [
2837
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2838
+ ctypes.c_float * 3, # vec3 uvw0
2839
+ ctypes.c_float * 3, # vec3 uvw1
2840
+ ]
2841
+
2842
+ # Function dvz_volume_transfer()
2843
+ volume_transfer = dvz.dvz_volume_transfer
2844
+ volume_transfer.argtypes = [
2845
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2846
+ ctypes.c_float * 4, # vec4 transfer
2847
+ ]
2848
+
2849
+ # Function dvz_tex_volume()
2850
+ tex_volume = dvz.dvz_tex_volume
2851
+ tex_volume.argtypes = [
2852
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2853
+ DvzFormat, # DvzFormat format
2854
+ ctypes.c_uint32, # uint32_t width
2855
+ ctypes.c_uint32, # uint32_t height
2856
+ ctypes.c_uint32, # uint32_t depth
2857
+ ctypes.c_void_p, # void* data
2858
+ ]
2859
+ tex_volume.restype = DvzId
2860
+
2861
+ # Function dvz_slice()
2862
+ slice = dvz.dvz_slice
2863
+ slice.argtypes = [
2864
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2865
+ ctypes.c_int, # int flags
2866
+ ]
2867
+ slice.restype = ctypes.POINTER(DvzVisual)
2868
+
2869
+ # Function dvz_slice_position()
2870
+ slice_position = dvz.dvz_slice_position
2871
+ slice_position.argtypes = [
2872
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2873
+ ctypes.c_uint32, # uint32_t first
2874
+ ctypes.c_uint32, # uint32_t count
2875
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* p0
2876
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* p1
2877
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* p2
2878
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* p3
2879
+ ctypes.c_int, # int flags
2880
+ ]
2881
+
2882
+ # Function dvz_slice_texcoords()
2883
+ slice_texcoords = dvz.dvz_slice_texcoords
2884
+ slice_texcoords.argtypes = [
2885
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2886
+ ctypes.c_uint32, # uint32_t first
2887
+ ctypes.c_uint32, # uint32_t count
2888
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* uvw0
2889
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* uvw1
2890
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* uvw2
2891
+ ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS"), # vec3* uvw3
2892
+ ctypes.c_int, # int flags
2893
+ ]
2894
+
2895
+ # Function dvz_slice_texture()
2896
+ slice_texture = dvz.dvz_slice_texture
2897
+ slice_texture.argtypes = [
2898
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2899
+ DvzId, # DvzId tex
2900
+ DvzFilter, # DvzFilter filter
2901
+ DvzSamplerAddressMode, # DvzSamplerAddressMode address_mode
2902
+ ]
2903
+
2904
+ # Function dvz_slice_alloc()
2905
+ slice_alloc = dvz.dvz_slice_alloc
2906
+ slice_alloc.argtypes = [
2907
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2908
+ ctypes.c_uint32, # uint32_t item_count
2909
+ ]
2910
+
2911
+ # Function dvz_tex_slice()
2912
+ tex_slice = dvz.dvz_tex_slice
2913
+ tex_slice.argtypes = [
2914
+ ctypes.POINTER(DvzBatch), # DvzBatch* batch
2915
+ DvzFormat, # DvzFormat format
2916
+ ctypes.c_uint32, # uint32_t width
2917
+ ctypes.c_uint32, # uint32_t height
2918
+ ctypes.c_uint32, # uint32_t depth
2919
+ ctypes.c_void_p, # void* data
2920
+ ]
2921
+ tex_slice.restype = DvzId
2922
+
2923
+ # Function dvz_slice_alpha()
2924
+ slice_alpha = dvz.dvz_slice_alpha
2925
+ slice_alpha.argtypes = [
2926
+ ctypes.POINTER(DvzVisual), # DvzVisual* visual
2927
+ ctypes.c_float, # float alpha
2928
+ ]
2929
+
2930
+ # Function dvz_resample()
2931
+ resample = dvz.dvz_resample
2932
+ resample.argtypes = [
2933
+ ctypes.c_double, # double t0
2934
+ ctypes.c_double, # double t1
2935
+ ctypes.c_double, # double t
2936
+ ]
2937
+ resample.restype = ctypes.c_double
2938
+
2939
+ # Function dvz_easing()
2940
+ easing = dvz.dvz_easing
2941
+ easing.argtypes = [
2942
+ DvzEasing, # DvzEasing easing
2943
+ ctypes.c_double, # double t
2944
+ ]
2945
+ easing.restype = ctypes.c_double
2946
+
2947
+ # Function dvz_circular_2D()
2948
+ circular_2D = dvz.dvz_circular_2D
2949
+ circular_2D.argtypes = [
2950
+ ctypes.c_float * 2, # vec2 center
2951
+ ctypes.c_float, # float radius
2952
+ ctypes.c_float, # float angle
2953
+ ctypes.c_float, # float t
2954
+ ctypes.c_float * 2, # vec2 out
2955
+ ]
2956
+
2957
+ # Function dvz_circular_3D()
2958
+ circular_3D = dvz.dvz_circular_3D
2959
+ circular_3D.argtypes = [
2960
+ ctypes.c_float * 3, # vec3 center
2961
+ ctypes.c_float * 3, # vec3 u
2962
+ ctypes.c_float * 3, # vec3 v
2963
+ ctypes.c_float, # float radius
2964
+ ctypes.c_float, # float angle
2965
+ ctypes.c_float, # float t
2966
+ ctypes.c_float * 3, # vec3 out
2967
+ ]
2968
+
2969
+ # Function dvz_interpolate()
2970
+ interpolate = dvz.dvz_interpolate
2971
+ interpolate.argtypes = [
2972
+ ctypes.c_float, # float p0
2973
+ ctypes.c_float, # float p1
2974
+ ctypes.c_float, # float t
2975
+ ]
2976
+ interpolate.restype = ctypes.c_float
2977
+
2978
+ # Function dvz_interpolate_2D()
2979
+ interpolate_2D = dvz.dvz_interpolate_2D
2980
+ interpolate_2D.argtypes = [
2981
+ ctypes.c_float * 2, # vec2 p0
2982
+ ctypes.c_float * 2, # vec2 p1
2983
+ ctypes.c_float, # float t
2984
+ ctypes.c_float * 2, # vec2 out
2985
+ ]
2986
+
2987
+ # Function dvz_interpolate_3D()
2988
+ interpolate_3D = dvz.dvz_interpolate_3D
2989
+ interpolate_3D.argtypes = [
2990
+ ctypes.c_float * 3, # vec3 p0
2991
+ ctypes.c_float * 3, # vec3 p1
2992
+ ctypes.c_float, # float t
2993
+ ctypes.c_float * 3, # vec3 out
2994
+ ]
2995
+
2996
+ # Function dvz_arcball_initial()
2997
+ arcball_initial = dvz.dvz_arcball_initial
2998
+ arcball_initial.argtypes = [
2999
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3000
+ ctypes.c_float * 3, # vec3 angles
3001
+ ]
3002
+
3003
+ # Function dvz_arcball_reset()
3004
+ arcball_reset = dvz.dvz_arcball_reset
3005
+ arcball_reset.argtypes = [
3006
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3007
+ ]
3008
+
3009
+ # Function dvz_arcball_resize()
3010
+ arcball_resize = dvz.dvz_arcball_resize
3011
+ arcball_resize.argtypes = [
3012
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3013
+ ctypes.c_float, # float width
3014
+ ctypes.c_float, # float height
3015
+ ]
3016
+
3017
+ # Function dvz_arcball_flags()
3018
+ arcball_flags = dvz.dvz_arcball_flags
3019
+ arcball_flags.argtypes = [
3020
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3021
+ ctypes.c_int, # int flags
3022
+ ]
3023
+
3024
+ # Function dvz_arcball_constrain()
3025
+ arcball_constrain = dvz.dvz_arcball_constrain
3026
+ arcball_constrain.argtypes = [
3027
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3028
+ ctypes.c_float * 3, # vec3 constrain
3029
+ ]
3030
+
3031
+ # Function dvz_arcball_set()
3032
+ arcball_set = dvz.dvz_arcball_set
3033
+ arcball_set.argtypes = [
3034
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3035
+ ctypes.c_float * 3, # vec3 angles
3036
+ ]
3037
+
3038
+ # Function dvz_arcball_angles()
3039
+ arcball_angles = dvz.dvz_arcball_angles
3040
+ arcball_angles.argtypes = [
3041
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3042
+ ctypes.c_float * 3, # vec3 out_angles
3043
+ ]
3044
+
3045
+ # Function dvz_arcball_rotate()
3046
+ arcball_rotate = dvz.dvz_arcball_rotate
3047
+ arcball_rotate.argtypes = [
3048
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3049
+ ctypes.c_float * 2, # vec2 cur_pos
3050
+ ctypes.c_float * 2, # vec2 last_pos
3051
+ ]
3052
+
3053
+ # Function dvz_arcball_model()
3054
+ arcball_model = dvz.dvz_arcball_model
3055
+ arcball_model.argtypes = [
3056
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3057
+ ctypes.c_float * 16, # mat4 model
3058
+ ]
3059
+
3060
+ # Function dvz_arcball_end()
3061
+ arcball_end = dvz.dvz_arcball_end
3062
+ arcball_end.argtypes = [
3063
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3064
+ ]
3065
+
3066
+ # Function dvz_arcball_mvp()
3067
+ arcball_mvp = dvz.dvz_arcball_mvp
3068
+ arcball_mvp.argtypes = [
3069
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3070
+ ctypes.POINTER(DvzMVP), # DvzMVP* mvp
3071
+ ]
3072
+
3073
+ # Function dvz_arcball_print()
3074
+ arcball_print = dvz.dvz_arcball_print
3075
+ arcball_print.argtypes = [
3076
+ ctypes.POINTER(DvzArcball), # DvzArcball* arcball
3077
+ ]
3078
+
3079
+ # Function dvz_camera_initial()
3080
+ camera_initial = dvz.dvz_camera_initial
3081
+ camera_initial.argtypes = [
3082
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3083
+ ctypes.c_float * 3, # vec3 pos
3084
+ ctypes.c_float * 3, # vec3 lookat
3085
+ ctypes.c_float * 3, # vec3 up
3086
+ ]
3087
+
3088
+ # Function dvz_camera_reset()
3089
+ camera_reset = dvz.dvz_camera_reset
3090
+ camera_reset.argtypes = [
3091
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3092
+ ]
3093
+
3094
+ # Function dvz_camera_zrange()
3095
+ camera_zrange = dvz.dvz_camera_zrange
3096
+ camera_zrange.argtypes = [
3097
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3098
+ ctypes.c_float, # float near
3099
+ ctypes.c_float, # float far
3100
+ ]
3101
+
3102
+ # Function dvz_camera_ortho()
3103
+ camera_ortho = dvz.dvz_camera_ortho
3104
+ camera_ortho.argtypes = [
3105
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3106
+ ctypes.c_float, # float left
3107
+ ctypes.c_float, # float right
3108
+ ctypes.c_float, # float bottom
3109
+ ctypes.c_float, # float top
3110
+ ]
3111
+
3112
+ # Function dvz_camera_resize()
3113
+ camera_resize = dvz.dvz_camera_resize
3114
+ camera_resize.argtypes = [
3115
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3116
+ ctypes.c_float, # float width
3117
+ ctypes.c_float, # float height
3118
+ ]
3119
+
3120
+ # Function dvz_camera_position()
3121
+ camera_position = dvz.dvz_camera_position
3122
+ camera_position.argtypes = [
3123
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3124
+ ctypes.c_float * 3, # vec3 pos
3125
+ ]
3126
+
3127
+ # Function dvz_camera_lookat()
3128
+ camera_lookat = dvz.dvz_camera_lookat
3129
+ camera_lookat.argtypes = [
3130
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3131
+ ctypes.c_float * 3, # vec3 lookat
3132
+ ]
3133
+
3134
+ # Function dvz_camera_up()
3135
+ camera_up = dvz.dvz_camera_up
3136
+ camera_up.argtypes = [
3137
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3138
+ ctypes.c_float * 3, # vec3 up
3139
+ ]
3140
+
3141
+ # Function dvz_camera_perspective()
3142
+ camera_perspective = dvz.dvz_camera_perspective
3143
+ camera_perspective.argtypes = [
3144
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3145
+ ctypes.c_float, # float fov
3146
+ ]
3147
+
3148
+ # Function dvz_camera_viewproj()
3149
+ camera_viewproj = dvz.dvz_camera_viewproj
3150
+ camera_viewproj.argtypes = [
3151
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3152
+ ctypes.c_float * 16, # mat4 view
3153
+ ctypes.c_float * 16, # mat4 proj
3154
+ ]
3155
+
3156
+ # Function dvz_camera_mvp()
3157
+ camera_mvp = dvz.dvz_camera_mvp
3158
+ camera_mvp.argtypes = [
3159
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3160
+ ctypes.POINTER(DvzMVP), # DvzMVP* mvp
3161
+ ]
3162
+
3163
+ # Function dvz_camera_print()
3164
+ camera_print = dvz.dvz_camera_print
3165
+ camera_print.argtypes = [
3166
+ ctypes.POINTER(DvzCamera), # DvzCamera* camera
3167
+ ]
3168
+
3169
+ # Function dvz_panzoom_reset()
3170
+ panzoom_reset = dvz.dvz_panzoom_reset
3171
+ panzoom_reset.argtypes = [
3172
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3173
+ ]
3174
+
3175
+ # Function dvz_panzoom_resize()
3176
+ panzoom_resize = dvz.dvz_panzoom_resize
3177
+ panzoom_resize.argtypes = [
3178
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3179
+ ctypes.c_float, # float width
3180
+ ctypes.c_float, # float height
3181
+ ]
3182
+
3183
+ # Function dvz_panzoom_flags()
3184
+ panzoom_flags = dvz.dvz_panzoom_flags
3185
+ panzoom_flags.argtypes = [
3186
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3187
+ ctypes.c_int, # int flags
3188
+ ]
3189
+
3190
+ # Function dvz_panzoom_xlim()
3191
+ panzoom_xlim = dvz.dvz_panzoom_xlim
3192
+ panzoom_xlim.argtypes = [
3193
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3194
+ ctypes.c_float * 2, # vec2 xlim
3195
+ ]
3196
+
3197
+ # Function dvz_panzoom_ylim()
3198
+ panzoom_ylim = dvz.dvz_panzoom_ylim
3199
+ panzoom_ylim.argtypes = [
3200
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3201
+ ctypes.c_float * 2, # vec2 ylim
3202
+ ]
3203
+
3204
+ # Function dvz_panzoom_zlim()
3205
+ panzoom_zlim = dvz.dvz_panzoom_zlim
3206
+ panzoom_zlim.argtypes = [
3207
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3208
+ ctypes.c_float * 2, # vec2 zlim
3209
+ ]
3210
+
3211
+ # Function dvz_panzoom_pan()
3212
+ panzoom_pan = dvz.dvz_panzoom_pan
3213
+ panzoom_pan.argtypes = [
3214
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3215
+ ctypes.c_float * 2, # vec2 pan
3216
+ ]
3217
+
3218
+ # Function dvz_panzoom_zoom()
3219
+ panzoom_zoom = dvz.dvz_panzoom_zoom
3220
+ panzoom_zoom.argtypes = [
3221
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3222
+ ctypes.c_float * 2, # vec2 zoom
3223
+ ]
3224
+
3225
+ # Function dvz_panzoom_pan_shift()
3226
+ panzoom_pan_shift = dvz.dvz_panzoom_pan_shift
3227
+ panzoom_pan_shift.argtypes = [
3228
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3229
+ ctypes.c_float * 2, # vec2 shift_px
3230
+ ctypes.c_float * 2, # vec2 center_px
3231
+ ]
3232
+
3233
+ # Function dvz_panzoom_zoom_shift()
3234
+ panzoom_zoom_shift = dvz.dvz_panzoom_zoom_shift
3235
+ panzoom_zoom_shift.argtypes = [
3236
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3237
+ ctypes.c_float * 2, # vec2 shift_px
3238
+ ctypes.c_float * 2, # vec2 center_px
3239
+ ]
3240
+
3241
+ # Function dvz_panzoom_end()
3242
+ panzoom_end = dvz.dvz_panzoom_end
3243
+ panzoom_end.argtypes = [
3244
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3245
+ ]
3246
+
3247
+ # Function dvz_panzoom_zoom_wheel()
3248
+ panzoom_zoom_wheel = dvz.dvz_panzoom_zoom_wheel
3249
+ panzoom_zoom_wheel.argtypes = [
3250
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3251
+ ctypes.c_float * 2, # vec2 dir
3252
+ ctypes.c_float * 2, # vec2 center_px
3253
+ ]
3254
+
3255
+ # Function dvz_panzoom_xrange()
3256
+ panzoom_xrange = dvz.dvz_panzoom_xrange
3257
+ panzoom_xrange.argtypes = [
3258
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3259
+ ctypes.c_float * 2, # vec2 xrange
3260
+ ]
3261
+
3262
+ # Function dvz_panzoom_yrange()
3263
+ panzoom_yrange = dvz.dvz_panzoom_yrange
3264
+ panzoom_yrange.argtypes = [
3265
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3266
+ ctypes.c_float * 2, # vec2 yrange
3267
+ ]
3268
+
3269
+ # Function dvz_panzoom_mvp()
3270
+ panzoom_mvp = dvz.dvz_panzoom_mvp
3271
+ panzoom_mvp.argtypes = [
3272
+ ctypes.POINTER(DvzPanzoom), # DvzPanzoom* pz
3273
+ ctypes.POINTER(DvzMVP), # DvzMVP* mvp
3274
+ ]
3275
+
3276
+ # Function dvz_gui_pos()
3277
+ gui_pos = dvz.dvz_gui_pos
3278
+ gui_pos.argtypes = [
3279
+ ctypes.c_float * 2, # vec2 pos
3280
+ ctypes.c_float * 2, # vec2 pivot
3281
+ ]
3282
+
3283
+ # Function dvz_gui_corner()
3284
+ gui_corner = dvz.dvz_gui_corner
3285
+ gui_corner.argtypes = [
3286
+ DvzCorner, # DvzCorner corner
3287
+ ctypes.c_float * 2, # vec2 pad
3288
+ ]
3289
+
3290
+ # Function dvz_gui_size()
3291
+ gui_size = dvz.dvz_gui_size
3292
+ gui_size.argtypes = [
3293
+ ctypes.c_float * 2, # vec2 size
3294
+ ]
3295
+
3296
+ # Function dvz_gui_flags()
3297
+ gui_flags = dvz.dvz_gui_flags
3298
+ gui_flags.argtypes = [
3299
+ ctypes.c_int, # int flags
3300
+ ]
3301
+ gui_flags.restype = ctypes.c_int
3302
+
3303
+ # Function dvz_gui_alpha()
3304
+ gui_alpha = dvz.dvz_gui_alpha
3305
+ gui_alpha.argtypes = [
3306
+ ctypes.c_float, # float alpha
3307
+ ]
3308
+
3309
+ # Function dvz_gui_begin()
3310
+ gui_begin = dvz.dvz_gui_begin
3311
+ gui_begin.argtypes = [
3312
+ ctypes.c_char_p, # char* title
3313
+ ctypes.c_int, # int flags
3314
+ ]
3315
+
3316
+ # Function dvz_gui_slider()
3317
+ gui_slider = dvz.dvz_gui_slider
3318
+ gui_slider.argtypes = [
3319
+ ctypes.c_char_p, # char* name
3320
+ ctypes.c_float, # float vmin
3321
+ ctypes.c_float, # float vmax
3322
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* value
3323
+ ]
3324
+ gui_slider.restype = ctypes.c_bool
3325
+
3326
+ # Function dvz_gui_button()
3327
+ gui_button = dvz.dvz_gui_button
3328
+ gui_button.argtypes = [
3329
+ ctypes.c_char_p, # char* name
3330
+ ctypes.c_float, # float width
3331
+ ctypes.c_float, # float height
3332
+ ]
3333
+ gui_button.restype = ctypes.c_bool
3334
+
3335
+ # Function dvz_gui_checkbox()
3336
+ gui_checkbox = dvz.dvz_gui_checkbox
3337
+ gui_checkbox.argtypes = [
3338
+ ctypes.c_char_p, # char* name
3339
+ ndpointer(dtype=bool, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # bool* checked
3340
+ ]
3341
+ gui_checkbox.restype = ctypes.c_bool
3342
+
3343
+ # Function dvz_gui_image()
3344
+ gui_image = dvz.dvz_gui_image
3345
+ gui_image.argtypes = [
3346
+ ctypes.POINTER(DvzTex), # DvzTex* tex
3347
+ ctypes.c_float, # float width
3348
+ ctypes.c_float, # float height
3349
+ ]
3350
+
3351
+ # Function dvz_gui_demo()
3352
+ gui_demo = dvz.dvz_gui_demo
3353
+ gui_demo.argtypes = [
3354
+ ]
3355
+
3356
+ # Function dvz_gui_end()
3357
+ gui_end = dvz.dvz_gui_end
3358
+ gui_end.argtypes = [
3359
+ ]
3360
+
3361
+ # Function dvz_next_pow2()
3362
+ next_pow2 = dvz.dvz_next_pow2
3363
+ next_pow2.argtypes = [
3364
+ ctypes.c_uint64, # uint64_t x
3365
+ ]
3366
+ next_pow2.restype = ctypes.c_uint64
3367
+
3368
+ # Function dvz_mean()
3369
+ mean = dvz.dvz_mean
3370
+ mean.argtypes = [
3371
+ ctypes.c_uint32, # uint32_t n
3372
+ ndpointer(dtype=np.double, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # double* values
3373
+ ]
3374
+ mean.restype = ctypes.c_double
3375
+
3376
+ # Function dvz_min_max()
3377
+ min_max = dvz.dvz_min_max
3378
+ min_max.argtypes = [
3379
+ ctypes.c_uint32, # uint32_t n
3380
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* values
3381
+ ctypes.c_float * 2, # vec2 out_min_max
3382
+ ]
3383
+
3384
+ # Function dvz_normalize_bytes()
3385
+ normalize_bytes = dvz.dvz_normalize_bytes
3386
+ normalize_bytes.argtypes = [
3387
+ ctypes.c_uint32, # uint32_t count
3388
+ ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # float* values
3389
+ ]
3390
+ normalize_bytes.restype = ndpointer(dtype=np.uint8, ndim=1, ncol=1, flags="C_CONTIGUOUS")
3391
+
3392
+ # Function dvz_range()
3393
+ range = dvz.dvz_range
3394
+ range.argtypes = [
3395
+ ctypes.c_uint32, # uint32_t n
3396
+ ndpointer(dtype=np.double, ndim=1, ncol=1, flags="C_CONTIGUOUS"), # double* values
3397
+ ctypes.c_double * 2, # dvec2 min_max
3398
+ ]
3399
+
3400
+ # Function dvz_rand_byte()
3401
+ rand_byte = dvz.dvz_rand_byte
3402
+ rand_byte.argtypes = [
3403
+ ]
3404
+ rand_byte.restype = ctypes.c_uint8
3405
+
3406
+ # Function dvz_rand_int()
3407
+ rand_int = dvz.dvz_rand_int
3408
+ rand_int.argtypes = [
3409
+ ]
3410
+ rand_int.restype = ctypes.c_int
3411
+
3412
+ # Function dvz_rand_float()
3413
+ rand_float = dvz.dvz_rand_float
3414
+ rand_float.argtypes = [
3415
+ ]
3416
+ rand_float.restype = ctypes.c_float
3417
+
3418
+ # Function dvz_rand_double()
3419
+ rand_double = dvz.dvz_rand_double
3420
+ rand_double.argtypes = [
3421
+ ]
3422
+ rand_double.restype = ctypes.c_double
3423
+
3424
+ # Function dvz_rand_normal()
3425
+ rand_normal = dvz.dvz_rand_normal
3426
+ rand_normal.argtypes = [
3427
+ ]
3428
+ rand_normal.restype = ctypes.c_double
3429
+
3430
+ # Function dvz_mock_pos2D()
3431
+ mock_pos2D = dvz.dvz_mock_pos2D
3432
+ mock_pos2D.argtypes = [
3433
+ ctypes.c_uint32, # uint32_t count
3434
+ ctypes.c_float, # float std
3435
+ ]
3436
+ mock_pos2D.restype = ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS")
3437
+
3438
+ # Function dvz_mock_pos3D()
3439
+ mock_pos3D = dvz.dvz_mock_pos3D
3440
+ mock_pos3D.argtypes = [
3441
+ ctypes.c_uint32, # uint32_t count
3442
+ ctypes.c_float, # float std
3443
+ ]
3444
+ mock_pos3D.restype = ndpointer(dtype=np.float32, ndim=2, ncol=3, flags="C_CONTIGUOUS")
3445
+
3446
+ # Function dvz_mock_uniform()
3447
+ mock_uniform = dvz.dvz_mock_uniform
3448
+ mock_uniform.argtypes = [
3449
+ ctypes.c_uint32, # uint32_t count
3450
+ ctypes.c_float, # float vmin
3451
+ ctypes.c_float, # float vmax
3452
+ ]
3453
+ mock_uniform.restype = ndpointer(dtype=np.float32, ndim=1, ncol=1, flags="C_CONTIGUOUS")
3454
+
3455
+ # Function dvz_mock_color()
3456
+ mock_color = dvz.dvz_mock_color
3457
+ mock_color.argtypes = [
3458
+ ctypes.c_uint32, # uint32_t count
3459
+ ctypes.c_uint8, # uint8_t alpha
3460
+ ]
3461
+ mock_color.restype = ndpointer(dtype=np.uint8, ndim=2, ncol=4, flags="C_CONTIGUOUS")
3462
+