1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#![allow(unused_imports)]
use crate::*;
pub use crate::cppmmabi::*;
use std::os::raw::*;

#[repr(C, align(1))]
#[derive(Clone)]
pub struct Ptex__v2_4__Res_t {
    pub ulog2: c_char,
    pub vlog2: c_char,
}


impl Ptex__v2_4__FaceInfo_t {
    pub fn layout() -> std::alloc::Layout {
        unsafe {
            std::alloc::Layout::from_size_align(
                Ptex__v2_4__FaceInfo_sizeof(),
                Ptex__v2_4__FaceInfo_alignof(),
            ).unwrap()
        }
    }
}

#[repr(C)]
pub struct Ptex__v2_4__PtexMetaData_t {
    _unused: [u8; 0],
}
#[repr(C)]
pub struct Ptex__v2_4__PtexFaceData_t {
    _unused: [u8; 0],
}
#[repr(C)]
pub struct Ptex__v2_4__PtexTexture_t {
    _unused: [u8; 0],
}

impl Ptex__v2_4__PtexTexture__Info_t {
    pub fn layout() -> std::alloc::Layout {
        unsafe {
            std::alloc::Layout::from_size_align(
                Ptex__v2_4__PtexTexture__Info_sizeof(),
                Ptex__v2_4__PtexTexture__Info_alignof(),
            ).unwrap()
        }
    }
}

#[repr(C)]
pub struct Ptex__v2_4__PtexInputHandler_t {
    _unused: [u8; 0],
}
#[repr(C)]
pub struct Ptex__v2_4__PtexErrorHandler_t {
    _unused: [u8; 0],
}
#[repr(C)]
pub struct Ptex__v2_4__PtexCache_t {
    _unused: [u8; 0],
}

impl Ptex__v2_4__PtexCache__Stats_t {
    pub fn layout() -> std::alloc::Layout {
        unsafe {
            std::alloc::Layout::from_size_align(
                Ptex__v2_4__PtexCache__Stats_sizeof(),
                Ptex__v2_4__PtexCache__Stats_alignof(),
            ).unwrap()
        }
    }
}

#[repr(C)]
pub struct Ptex__v2_4__PtexWriter_t {
    _unused: [u8; 0],
}
#[repr(C)]
pub struct Ptex__v2_4__PtexFilter_t {
    _unused: [u8; 0],
}

impl Ptex__v2_4__PtexFilter__Options_t {
    pub fn layout() -> std::alloc::Layout {
        unsafe {
            std::alloc::Layout::from_size_align(
                Ptex__v2_4__PtexFilter__Options_sizeof(),
                Ptex__v2_4__PtexFilter__Options_alignof(),
            ).unwrap()
        }
    }
}


#[repr(transparent)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct Ptex__v2_4__PtexFilter__FilterType_e(pub u32);
pub const Ptex_PtexFilter_FilterType_f_point: Ptex__v2_4__PtexFilter__FilterType_e = Ptex__v2_4__PtexFilter__FilterType_e(0);
pub const Ptex_PtexFilter_FilterType_f_bilinear: Ptex__v2_4__PtexFilter__FilterType_e = Ptex__v2_4__PtexFilter__FilterType_e(1);
pub const Ptex_PtexFilter_FilterType_f_box: Ptex__v2_4__PtexFilter__FilterType_e = Ptex__v2_4__PtexFilter__FilterType_e(2);
pub const Ptex_PtexFilter_FilterType_f_gaussian: Ptex__v2_4__PtexFilter__FilterType_e = Ptex__v2_4__PtexFilter__FilterType_e(3);
pub const Ptex_PtexFilter_FilterType_f_bicubic: Ptex__v2_4__PtexFilter__FilterType_e = Ptex__v2_4__PtexFilter__FilterType_e(4);
pub const Ptex_PtexFilter_FilterType_f_bspline: Ptex__v2_4__PtexFilter__FilterType_e = Ptex__v2_4__PtexFilter__FilterType_e(5);
pub const Ptex_PtexFilter_FilterType_f_catmullrom: Ptex__v2_4__PtexFilter__FilterType_e = Ptex__v2_4__PtexFilter__FilterType_e(6);
pub const Ptex_PtexFilter_FilterType_f_mitchell: Ptex__v2_4__PtexFilter__FilterType_e = Ptex__v2_4__PtexFilter__FilterType_e(7);

#[repr(transparent)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct Ptex__v2_4__MeshType_e(pub u32);
pub const Ptex_MeshType_mt_triangle: Ptex__v2_4__MeshType_e = Ptex__v2_4__MeshType_e(0);
pub const Ptex_MeshType_mt_quad: Ptex__v2_4__MeshType_e = Ptex__v2_4__MeshType_e(1);

#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum MeshType {
    Triangle = 0,
    Quad = 1,
}

impl From<Ptex__v2_4__MeshType_e> for MeshType {
    fn from(e: Ptex__v2_4__MeshType_e) -> MeshType {
        match e {
            Ptex_MeshType_mt_triangle => MeshType::Triangle,
            Ptex_MeshType_mt_quad => MeshType::Quad,
            _ => panic!("Invalid value {:?} for MeshType in conversion", e),
        }
    }
}

impl From<MeshType> for Ptex__v2_4__MeshType_e {
    fn from(e: MeshType) -> Ptex__v2_4__MeshType_e {
        match e {
            MeshType::Triangle => Ptex_MeshType_mt_triangle,
            MeshType::Quad => Ptex_MeshType_mt_quad,
        }
    }
}

#[repr(transparent)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct Ptex__v2_4__DataType_e(pub u32);
pub const Ptex_DataType_dt_uint8: Ptex__v2_4__DataType_e = Ptex__v2_4__DataType_e(0);
pub const Ptex_DataType_dt_uint16: Ptex__v2_4__DataType_e = Ptex__v2_4__DataType_e(1);
pub const Ptex_DataType_dt_half: Ptex__v2_4__DataType_e = Ptex__v2_4__DataType_e(2);
pub const Ptex_DataType_dt_float: Ptex__v2_4__DataType_e = Ptex__v2_4__DataType_e(3);

#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum DataType {
    Uint8 = 0,
    Uint16 = 1,
    Half = 2,
    Float = 3,
}

impl From<Ptex__v2_4__DataType_e> for DataType {
    fn from(e: Ptex__v2_4__DataType_e) -> DataType {
        match e {
            Ptex_DataType_dt_uint8 => DataType::Uint8,
            Ptex_DataType_dt_uint16 => DataType::Uint16,
            Ptex_DataType_dt_half => DataType::Half,
            Ptex_DataType_dt_float => DataType::Float,
            _ => panic!("Invalid value {:?} for DataType in conversion", e),
        }
    }
}

impl From<DataType> for Ptex__v2_4__DataType_e {
    fn from(e: DataType) -> Ptex__v2_4__DataType_e {
        match e {
            DataType::Uint8 => Ptex_DataType_dt_uint8,
            DataType::Uint16 => Ptex_DataType_dt_uint16,
            DataType::Half => Ptex_DataType_dt_half,
            DataType::Float => Ptex_DataType_dt_float,
        }
    }
}

#[repr(transparent)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct Ptex__v2_4__EdgeFilterMode_e(pub u32);
pub const Ptex_EdgeFilterMode_efm_none: Ptex__v2_4__EdgeFilterMode_e = Ptex__v2_4__EdgeFilterMode_e(0);
pub const Ptex_EdgeFilterMode_efm_tanvec: Ptex__v2_4__EdgeFilterMode_e = Ptex__v2_4__EdgeFilterMode_e(1);

#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum EdgeFilterMode {
    None = 0,
    Tanvec = 1,
}

impl From<Ptex__v2_4__EdgeFilterMode_e> for EdgeFilterMode {
    fn from(e: Ptex__v2_4__EdgeFilterMode_e) -> EdgeFilterMode {
        match e {
            Ptex_EdgeFilterMode_efm_none => EdgeFilterMode::None,
            Ptex_EdgeFilterMode_efm_tanvec => EdgeFilterMode::Tanvec,
            _ => panic!("Invalid value {:?} for EdgeFilterMode in conversion", e),
        }
    }
}

impl From<EdgeFilterMode> for Ptex__v2_4__EdgeFilterMode_e {
    fn from(e: EdgeFilterMode) -> Ptex__v2_4__EdgeFilterMode_e {
        match e {
            EdgeFilterMode::None => Ptex_EdgeFilterMode_efm_none,
            EdgeFilterMode::Tanvec => Ptex_EdgeFilterMode_efm_tanvec,
        }
    }
}

#[repr(transparent)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct Ptex__v2_4__BorderMode_e(pub u32);
pub const Ptex_BorderMode_m_clamp: Ptex__v2_4__BorderMode_e = Ptex__v2_4__BorderMode_e(0);
pub const Ptex_BorderMode_m_black: Ptex__v2_4__BorderMode_e = Ptex__v2_4__BorderMode_e(1);
pub const Ptex_BorderMode_m_periodic: Ptex__v2_4__BorderMode_e = Ptex__v2_4__BorderMode_e(2);

#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum BorderMode {
    Clamp = 0,
    Black = 1,
    Periodic = 2,
}

impl From<Ptex__v2_4__BorderMode_e> for BorderMode {
    fn from(e: Ptex__v2_4__BorderMode_e) -> BorderMode {
        match e {
            Ptex_BorderMode_m_clamp => BorderMode::Clamp,
            Ptex_BorderMode_m_black => BorderMode::Black,
            Ptex_BorderMode_m_periodic => BorderMode::Periodic,
            _ => panic!("Invalid value {:?} for BorderMode in conversion", e),
        }
    }
}

impl From<BorderMode> for Ptex__v2_4__BorderMode_e {
    fn from(e: BorderMode) -> Ptex__v2_4__BorderMode_e {
        match e {
            BorderMode::Clamp => Ptex_BorderMode_m_clamp,
            BorderMode::Black => Ptex_BorderMode_m_black,
            BorderMode::Periodic => Ptex_BorderMode_m_periodic,
        }
    }
}

#[repr(transparent)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct Ptex__v2_4__EdgeId_e(pub u32);
pub const Ptex_EdgeId_e_bottom: Ptex__v2_4__EdgeId_e = Ptex__v2_4__EdgeId_e(0);
pub const Ptex_EdgeId_e_right: Ptex__v2_4__EdgeId_e = Ptex__v2_4__EdgeId_e(1);
pub const Ptex_EdgeId_e_top: Ptex__v2_4__EdgeId_e = Ptex__v2_4__EdgeId_e(2);
pub const Ptex_EdgeId_e_left: Ptex__v2_4__EdgeId_e = Ptex__v2_4__EdgeId_e(3);

#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum EdgeId {
    Bottom = 0,
    Right = 1,
    Top = 2,
    Left = 3,
}

impl From<Ptex__v2_4__EdgeId_e> for EdgeId {
    fn from(e: Ptex__v2_4__EdgeId_e) -> EdgeId {
        match e {
            Ptex_EdgeId_e_bottom => EdgeId::Bottom,
            Ptex_EdgeId_e_right => EdgeId::Right,
            Ptex_EdgeId_e_top => EdgeId::Top,
            Ptex_EdgeId_e_left => EdgeId::Left,
            _ => panic!("Invalid value {:?} for EdgeId in conversion", e),
        }
    }
}

impl From<EdgeId> for Ptex__v2_4__EdgeId_e {
    fn from(e: EdgeId) -> Ptex__v2_4__EdgeId_e {
        match e {
            EdgeId::Bottom => Ptex_EdgeId_e_bottom,
            EdgeId::Right => Ptex_EdgeId_e_right,
            EdgeId::Top => Ptex_EdgeId_e_top,
            EdgeId::Left => Ptex_EdgeId_e_left,
        }
    }
}

#[repr(transparent)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct Ptex__v2_4__MetaDataType_e(pub u32);
pub const Ptex_MetaDataType_mdt_string: Ptex__v2_4__MetaDataType_e = Ptex__v2_4__MetaDataType_e(0);
pub const Ptex_MetaDataType_mdt_int8: Ptex__v2_4__MetaDataType_e = Ptex__v2_4__MetaDataType_e(1);
pub const Ptex_MetaDataType_mdt_int16: Ptex__v2_4__MetaDataType_e = Ptex__v2_4__MetaDataType_e(2);
pub const Ptex_MetaDataType_mdt_int32: Ptex__v2_4__MetaDataType_e = Ptex__v2_4__MetaDataType_e(3);
pub const Ptex_MetaDataType_mdt_float: Ptex__v2_4__MetaDataType_e = Ptex__v2_4__MetaDataType_e(4);
pub const Ptex_MetaDataType_mdt_double: Ptex__v2_4__MetaDataType_e = Ptex__v2_4__MetaDataType_e(5);

#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum MetaDataType {
    String = 0,
    Int8 = 1,
    Int16 = 2,
    Int32 = 3,
    Float = 4,
    Double = 5,
}

impl From<Ptex__v2_4__MetaDataType_e> for MetaDataType {
    fn from(e: Ptex__v2_4__MetaDataType_e) -> MetaDataType {
        match e {
            Ptex_MetaDataType_mdt_string => MetaDataType::String,
            Ptex_MetaDataType_mdt_int8 => MetaDataType::Int8,
            Ptex_MetaDataType_mdt_int16 => MetaDataType::Int16,
            Ptex_MetaDataType_mdt_int32 => MetaDataType::Int32,
            Ptex_MetaDataType_mdt_float => MetaDataType::Float,
            Ptex_MetaDataType_mdt_double => MetaDataType::Double,
            _ => panic!("Invalid value {:?} for MetaDataType in conversion", e),
        }
    }
}

impl From<MetaDataType> for Ptex__v2_4__MetaDataType_e {
    fn from(e: MetaDataType) -> Ptex__v2_4__MetaDataType_e {
        match e {
            MetaDataType::String => Ptex_MetaDataType_mdt_string,
            MetaDataType::Int8 => Ptex_MetaDataType_mdt_int8,
            MetaDataType::Int16 => Ptex_MetaDataType_mdt_int16,
            MetaDataType::Int32 => Ptex_MetaDataType_mdt_int32,
            MetaDataType::Float => Ptex_MetaDataType_mdt_float,
            MetaDataType::Double => Ptex_MetaDataType_mdt_double,
        }
    }
}


extern "C" {

pub fn Ptex__v2_4__Res_ctor(this_: *mut Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res_from_uv_log2(this_: *mut Ptex_Res_t, ulog2_: c_char, vlog2_: c_char) -> Exception;

pub fn Ptex__v2_4__Res_from_value(this_: *mut Ptex_Res_t, value: c_ushort) -> Exception;

pub fn Ptex__v2_4__Res_u(this_: *const Ptex_Res_t, return_: *mut c_int) -> Exception;

pub fn Ptex__v2_4__Res_v(this_: *const Ptex_Res_t, return_: *mut c_int) -> Exception;

pub fn Ptex__v2_4__Res_val(this_: *const Ptex_Res_t, return_: *mut c_ushort) -> Exception;

pub fn Ptex__v2_4__Res_size(this_: *const Ptex_Res_t, return_: *mut c_int) -> Exception;

pub fn Ptex__v2_4__Res__eq(this_: *const Ptex_Res_t, return_: *mut bool, r: *const Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res__ne(this_: *const Ptex_Res_t, return_: *mut bool, r: *const Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res__op_ge(this_: *const Ptex_Res_t, return_: *mut bool, r: *const Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res_swappeduv(this_: *const Ptex_Res_t, return_: *mut Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res_swapuv(this_: *mut Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res_clamp(this_: *mut Ptex_Res_t, r: *const Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res_ntilesu(this_: *const Ptex_Res_t, return_: *mut c_int, tileres: Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res_ntilesv(this_: *const Ptex_Res_t, return_: *mut c_int, tileres: Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res_ntiles(this_: *const Ptex_Res_t, return_: *mut c_int, tileres: Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res_copy(this_: *mut Ptex_Res_t, rhs: *const Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res_dtor(this_: *mut Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__Res_assign(this_: *mut Ptex_Res_t, return_: *mut *mut Ptex_Res_t, rhs: *const Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__FaceInfo_sizeof() -> usize;

pub fn Ptex__v2_4__FaceInfo_alignof() -> usize;

pub fn Ptex__v2_4__FaceInfo_default(this_: *mut Ptex_FaceInfo_t) -> Exception;

pub fn Ptex__v2_4__FaceInfo_from_res(this_: *mut Ptex_FaceInfo_t, res_: Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__FaceInfo_from_res_and_adjacency(this_: *mut Ptex_FaceInfo_t, res_: Ptex_Res_t, adjfaces_: *mut c_int, adjedges_: *mut c_int, is_subface_: bool) -> Exception;

pub fn Ptex__v2_4__FaceInfo_adjedge(this_: *const Ptex_FaceInfo_t, return_: *mut Ptex_EdgeId, eid: c_int) -> Exception;

pub fn Ptex__v2_4__FaceInfo_adjface(this_: *const Ptex_FaceInfo_t, return_: *mut c_int, eid: c_int) -> Exception;

pub fn Ptex__v2_4__FaceInfo_isConstant(this_: *const Ptex_FaceInfo_t, return_: *mut bool) -> Exception;

pub fn Ptex__v2_4__FaceInfo_isNeighborhoodConstant(this_: *const Ptex_FaceInfo_t, return_: *mut bool) -> Exception;

pub fn Ptex__v2_4__FaceInfo_hasEdits(this_: *const Ptex_FaceInfo_t, return_: *mut bool) -> Exception;

pub fn Ptex__v2_4__FaceInfo_isSubface(this_: *const Ptex_FaceInfo_t, return_: *mut bool) -> Exception;

pub fn Ptex__v2_4__FaceInfo_setadjfaces(this_: *mut Ptex_FaceInfo_t, f0: c_int, f1: c_int, f2: c_int, f3: c_int) -> Exception;

pub fn Ptex__v2_4__FaceInfo_setadjedges(this_: *mut Ptex_FaceInfo_t, e0: c_int, e1: c_int, e2: c_int, e3: c_int) -> Exception;

pub fn Ptex__v2_4__FaceInfo_get_res(this_: *const Ptex_FaceInfo_t, return_: *mut *const Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__FaceInfo_set_res(this_: *mut Ptex_FaceInfo_t, value: *const Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_release(this_: *mut Ptex_PtexMetaData_t) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_numKeys(this_: *mut Ptex_PtexMetaData_t, return_: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getKey(this_: *mut Ptex_PtexMetaData_t, index: c_int, key: *mut *const c_char, type_: *mut Ptex_MetaDataType) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_findKey(this_: *mut Ptex_PtexMetaData_t, return_: *mut bool, key: *const c_char, index: *mut c_int, type_: *mut Ptex_MetaDataType) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromKeyChar(this_: *mut Ptex_PtexMetaData_t, key: *const c_char, value: *mut *const c_char) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromIndexChar(this_: *mut Ptex_PtexMetaData_t, index: c_int, value: *mut *const c_char) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromKeySChar(this_: *mut Ptex_PtexMetaData_t, key: *const c_char, value: *mut *const c_char, count: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromIndexSChar(this_: *mut Ptex_PtexMetaData_t, index: c_int, value: *mut *const c_char, count: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromKeyShort(this_: *mut Ptex_PtexMetaData_t, key: *const c_char, value: *mut *const c_short, count: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromIndexShort(this_: *mut Ptex_PtexMetaData_t, index: c_int, value: *mut *const c_short, count: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromKeyInt(this_: *mut Ptex_PtexMetaData_t, key: *const c_char, value: *mut *const c_int, count: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromIndexInt(this_: *mut Ptex_PtexMetaData_t, index: c_int, value: *mut *const c_int, count: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromKeyFloat(this_: *mut Ptex_PtexMetaData_t, key: *const c_char, value: *mut *const c_float, count: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromIndexFloat(this_: *mut Ptex_PtexMetaData_t, index: c_int, value: *mut *const c_float, count: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromKeyDouble(this_: *mut Ptex_PtexMetaData_t, key: *const c_char, value: *mut *const c_double, count: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexMetaData_getValueFromIndexDouble(this_: *mut Ptex_PtexMetaData_t, index: c_int, value: *mut *const c_double, count: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexMetaData__assign(this_: *mut Ptex_PtexMetaData_t, return_: *mut *mut Ptex_PtexMetaData_t, rhs: *const Ptex_PtexMetaData_t) -> Exception;

pub fn Ptex__v2_4__PtexFaceData_release(this_: *mut Ptex_PtexFaceData_t) -> Exception;

pub fn Ptex__v2_4__PtexFaceData_isConstant(this_: *mut Ptex_PtexFaceData_t, return_: *mut bool) -> Exception;

pub fn Ptex__v2_4__PtexFaceData_res(this_: *mut Ptex_PtexFaceData_t, return_: *mut Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__PtexFaceData_getPixel(this_: *mut Ptex_PtexFaceData_t, u: c_int, v: c_int, result: *mut c_void) -> Exception;

pub fn Ptex__v2_4__PtexFaceData_getData(this_: *mut Ptex_PtexFaceData_t, return_: *mut *mut c_void) -> Exception;

pub fn Ptex__v2_4__PtexFaceData_isTiled(this_: *mut Ptex_PtexFaceData_t, return_: *mut bool) -> Exception;

pub fn Ptex__v2_4__PtexFaceData_tileRes(this_: *mut Ptex_PtexFaceData_t, return_: *mut Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__PtexFaceData_getTile(this_: *mut Ptex_PtexFaceData_t, return_: *mut *mut Ptex_PtexFaceData_t, tile: c_int) -> Exception;

pub fn Ptex__v2_4__PtexFaceData__assign(this_: *mut Ptex_PtexFaceData_t, return_: *mut *mut Ptex_PtexFaceData_t, rhs: *const Ptex_PtexFaceData_t) -> Exception;

pub fn Ptex__v2_4__PtexTexture_open(return_: *mut *mut Ptex_PtexTexture_t, path: *const c_char, error: *mut std_string_t, premultiply: bool) -> Exception;

pub fn Ptex__v2_4__PtexTexture_release(this_: *mut Ptex_PtexTexture_t) -> Exception;

pub fn Ptex__v2_4__PtexTexture_path(this_: *mut Ptex_PtexTexture_t, return_: *mut *const c_char) -> Exception;

pub fn Ptex__v2_4__PtexTexture_getInfo(this_: *mut Ptex_PtexTexture_t, return_: *mut Ptex_PtexTexture_Info_t) -> Exception;

pub fn Ptex__v2_4__PtexTexture_meshType(this_: *mut Ptex_PtexTexture_t, return_: *mut Ptex_MeshType) -> Exception;

pub fn Ptex__v2_4__PtexTexture_dataType(this_: *mut Ptex_PtexTexture_t, return_: *mut Ptex_DataType) -> Exception;

pub fn Ptex__v2_4__PtexTexture_uBorderMode(this_: *mut Ptex_PtexTexture_t, return_: *mut Ptex_BorderMode) -> Exception;

pub fn Ptex__v2_4__PtexTexture_vBorderMode(this_: *mut Ptex_PtexTexture_t, return_: *mut Ptex_BorderMode) -> Exception;

pub fn Ptex__v2_4__PtexTexture_edgeFilterMode(this_: *mut Ptex_PtexTexture_t, return_: *mut Ptex_EdgeFilterMode) -> Exception;

pub fn Ptex__v2_4__PtexTexture_alphaChannel(this_: *mut Ptex_PtexTexture_t, return_: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexTexture_numChannels(this_: *mut Ptex_PtexTexture_t, return_: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexTexture_numFaces(this_: *mut Ptex_PtexTexture_t, return_: *mut c_int) -> Exception;

pub fn Ptex__v2_4__PtexTexture_hasEdits(this_: *mut Ptex_PtexTexture_t, return_: *mut bool) -> Exception;

pub fn Ptex__v2_4__PtexTexture_hasMipMaps(this_: *mut Ptex_PtexTexture_t, return_: *mut bool) -> Exception;

pub fn Ptex__v2_4__PtexTexture_getMetaData(this_: *mut Ptex_PtexTexture_t, return_: *mut *mut Ptex_PtexMetaData_t) -> Exception;

pub fn Ptex__v2_4__PtexTexture_getFaceInfo(this_: *mut Ptex_PtexTexture_t, return_: *mut *const Ptex_FaceInfo_t, faceid: c_int) -> Exception;

pub fn Ptex__v2_4__PtexTexture_getDataInto(this_: *mut Ptex_PtexTexture_t, faceid: c_int, buffer: *mut c_void, stride: c_int) -> Exception;

pub fn Ptex__v2_4__PtexTexture_getDataIntoWithRes(this_: *mut Ptex_PtexTexture_t, faceid: c_int, buffer: *mut c_void, stride: c_int, res: Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__PtexTexture_getData(this_: *mut Ptex_PtexTexture_t, return_: *mut *mut Ptex_PtexFaceData_t, faceid: c_int) -> Exception;

pub fn Ptex__v2_4__PtexTexture_getDataWithRes(this_: *mut Ptex_PtexTexture_t, return_: *mut *mut Ptex_PtexFaceData_t, faceid: c_int, res: Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__PtexTexture_getPixel(this_: *mut Ptex_PtexTexture_t, faceid: c_int, u: c_int, v: c_int, result: *mut c_float, firstchan: c_int, nchannels: c_int) -> Exception;

pub fn Ptex__v2_4__PtexTexture_getPixelWithRes(this_: *mut Ptex_PtexTexture_t, faceid: c_int, u: c_int, v: c_int, result: *mut c_float, firstchan: c_int, nchannels: c_int, res: Ptex_Res_t) -> Exception;

pub fn Ptex__v2_4__PtexTexture__assign(this_: *mut Ptex_PtexTexture_t, return_: *mut *mut Ptex_PtexTexture_t, rhs: *const Ptex_PtexTexture_t) -> Exception;

pub fn Ptex__v2_4__PtexTexture__Info_sizeof() -> usize;

pub fn Ptex__v2_4__PtexTexture__Info_alignof() -> usize;

pub fn Ptex__v2_4__PtexInputHandler_open(this_: *mut Ptex_PtexInputHandler_t, return_: *mut *mut c_void, path: *const c_char) -> Exception;

pub fn Ptex__v2_4__PtexInputHandler_seek(this_: *mut Ptex_PtexInputHandler_t, handle: *mut c_void, pos: c_longlong) -> Exception;

pub fn Ptex__v2_4__PtexInputHandler_close(this_: *mut Ptex_PtexInputHandler_t, return_: *mut bool, handle: *mut c_void) -> Exception;

pub fn Ptex__v2_4__PtexInputHandler_lastError(this_: *mut Ptex_PtexInputHandler_t, return_: *mut *const c_char) -> Exception;

pub fn Ptex__v2_4__PtexInputHandler__assign(this_: *mut Ptex_PtexInputHandler_t, return_: *mut *mut Ptex_PtexInputHandler_t, rhs: *const Ptex_PtexInputHandler_t) -> Exception;

pub fn Ptex__v2_4__PtexErrorHandler_reportError(this_: *mut Ptex_PtexErrorHandler_t, error: *const c_char) -> Exception;

pub fn Ptex__v2_4__PtexErrorHandler__assign(this_: *mut Ptex_PtexErrorHandler_t, return_: *mut *mut Ptex_PtexErrorHandler_t, rhs: *const Ptex_PtexErrorHandler_t) -> Exception;

pub fn Ptex__v2_4__PtexCache_create(return_: *mut *mut Ptex_PtexCache_t, max_files: c_int, max_mem: usize, premultiply: bool, input_handler: *mut Ptex_PtexInputHandler_t, error_handler: *mut Ptex_PtexErrorHandler_t) -> Exception;

pub fn Ptex__v2_4__PtexCache_release(this_: *mut Ptex_PtexCache_t) -> Exception;

pub fn Ptex__v2_4__PtexCache_setSearchPath(this_: *mut Ptex_PtexCache_t, path: *const c_char) -> Exception;

pub fn Ptex__v2_4__PtexCache_getSearchPath(this_: *mut Ptex_PtexCache_t, return_: *mut *const c_char) -> Exception;

pub fn Ptex__v2_4__PtexCache_get(this_: *mut Ptex_PtexCache_t, return_: *mut *mut Ptex_PtexTexture_t, path: *const c_char, error: *mut std_string_t) -> Exception;

pub fn Ptex__v2_4__PtexCache_purge(this_: *mut Ptex_PtexCache_t, texture: *mut Ptex_PtexTexture_t) -> Exception;

pub fn Ptex__v2_4__PtexCache_purgePath(this_: *mut Ptex_PtexCache_t, path: *const c_char) -> Exception;

pub fn Ptex__v2_4__PtexCache_purgeAll(this_: *mut Ptex_PtexCache_t) -> Exception;

pub fn Ptex__v2_4__PtexCache_getStats(this_: *mut Ptex_PtexCache_t, stats: *mut Ptex_PtexCache_Stats_t) -> Exception;

pub fn Ptex__v2_4__PtexCache__assign(this_: *mut Ptex_PtexCache_t, return_: *mut *mut Ptex_PtexCache_t, rhs: *const Ptex_PtexCache_t) -> Exception;

pub fn Ptex__v2_4__PtexCache__Stats_sizeof() -> usize;

pub fn Ptex__v2_4__PtexCache__Stats_alignof() -> usize;

pub fn Ptex__v2_4__PtexWriter_open(return_: *mut *mut Ptex_PtexWriter_t, path: *const c_char, mt: Ptex_MeshType, dt: Ptex_DataType, nchannels: c_int, alphachan: c_int, nfaces: c_int, error: *mut std_string_t, genmipmaps: bool) -> Exception;

pub fn Ptex__v2_4__PtexWriter_edit(return_: *mut *mut Ptex_PtexWriter_t, path: *const c_char, incremental: bool, mt: Ptex_MeshType, dt: Ptex_DataType, nchannels: c_int, alphachan: c_int, nfaces: c_int, error: *mut std_string_t, genmipmaps: bool) -> Exception;

pub fn Ptex__v2_4__PtexWriter_applyEdits(return_: *mut bool, path: *const c_char, error: *mut std_string_t) -> Exception;

pub fn Ptex__v2_4__PtexWriter_release(this_: *mut Ptex_PtexWriter_t) -> Exception;

pub fn Ptex__v2_4__PtexWriter_setBorderModes(this_: *mut Ptex_PtexWriter_t, u_border_mode: Ptex_BorderMode, v_border_mode: Ptex_BorderMode) -> Exception;

pub fn Ptex__v2_4__PtexWriter_setEdgeFilterMode(this_: *mut Ptex_PtexWriter_t, edge_filter_mode: Ptex_EdgeFilterMode) -> Exception;

pub fn Ptex__v2_4__PtexWriter_writeMetaString(this_: *mut Ptex_PtexWriter_t, key: *const c_char, string: *const c_char) -> Exception;

pub fn Ptex__v2_4__PtexWriter_writeMetaChar(this_: *mut Ptex_PtexWriter_t, key: *const c_char, value: *const c_char, count: c_int) -> Exception;

pub fn Ptex__v2_4__PtexWriter_writeMetaShort(this_: *mut Ptex_PtexWriter_t, key: *const c_char, value: *const c_short, count: c_int) -> Exception;

pub fn Ptex__v2_4__PtexWriter_writeMetaInt(this_: *mut Ptex_PtexWriter_t, key: *const c_char, value: *const c_int, count: c_int) -> Exception;

pub fn Ptex__v2_4__PtexWriter_writeMetaFloat(this_: *mut Ptex_PtexWriter_t, key: *const c_char, value: *const c_float, count: c_int) -> Exception;

pub fn Ptex__v2_4__PtexWriter_writeMetaDouble(this_: *mut Ptex_PtexWriter_t, key: *const c_char, value: *const c_double, count: c_int) -> Exception;

pub fn Ptex__v2_4__PtexWriter_writeMeta(this_: *mut Ptex_PtexWriter_t, data: *mut Ptex_PtexMetaData_t) -> Exception;

pub fn Ptex__v2_4__PtexWriter_writeFace(this_: *mut Ptex_PtexWriter_t, return_: *mut bool, faceid: c_int, info: *const Ptex_FaceInfo_t, data: *const c_void, stride: c_int) -> Exception;

pub fn Ptex__v2_4__PtexWriter_writeConstantFace(this_: *mut Ptex_PtexWriter_t, return_: *mut bool, faceid: c_int, info: *const Ptex_FaceInfo_t, data: *const c_void) -> Exception;

pub fn Ptex__v2_4__PtexWriter_close(this_: *mut Ptex_PtexWriter_t, return_: *mut bool, error: *mut std_string_t) -> Exception;

pub fn Ptex__v2_4__PtexWriter__assign(this_: *mut Ptex_PtexWriter_t, return_: *mut *mut Ptex_PtexWriter_t, rhs: *const Ptex_PtexWriter_t) -> Exception;

pub fn Ptex__v2_4__PtexFilter_getFilter(return_: *mut *mut Ptex_PtexFilter_t, tx: *mut Ptex_PtexTexture_t, opts: *const Ptex_PtexFilter_Options_t) -> Exception;

pub fn Ptex__v2_4__PtexFilter_release(this_: *mut Ptex_PtexFilter_t) -> Exception;

pub fn Ptex__v2_4__PtexFilter_eval(this_: *mut Ptex_PtexFilter_t, result: *mut c_float, firstchan: c_int, nchannels: c_int, faceid: c_int, u: c_float, v: c_float, uw1: c_float, vw1: c_float, uw2: c_float, vw2: c_float, width: c_float, blur: c_float) -> Exception;

pub fn Ptex__v2_4__PtexFilter__assign(this_: *mut Ptex_PtexFilter_t, return_: *mut *mut Ptex_PtexFilter_t, rhs: *const Ptex_PtexFilter_t) -> Exception;

pub fn Ptex__v2_4__PtexFilter__Options_sizeof() -> usize;

pub fn Ptex__v2_4__PtexFilter__Options_alignof() -> usize;

pub fn Ptex__v2_4__PtexFilter__Options_ctor(this_: *mut Ptex_PtexFilter_Options_t, filter_: Ptex_PtexFilter_FilterType, lerp_: bool, sharpness_: c_float, noedgeblend_: bool) -> Exception;

pub fn Ptex_v2_4_MeshTypeName(return_: *mut *const c_char, mt: Ptex_MeshType) -> Exception;

pub fn Ptex_v2_4_DataTypeName(return_: *mut *const c_char, dt: Ptex_DataType) -> Exception;

pub fn Ptex_v2_4_BorderModeName(return_: *mut *const c_char, m: Ptex_BorderMode) -> Exception;

pub fn Ptex_v2_4_EdgeFilterModeName(return_: *mut *const c_char, m: Ptex_EdgeFilterMode) -> Exception;

pub fn Ptex_v2_4_EdgeIdName(return_: *mut *const c_char, eid: Ptex_EdgeId) -> Exception;

pub fn Ptex_v2_4_MetaDataTypeName(return_: *mut *const c_char, mdt: Ptex_MetaDataType) -> Exception;

pub fn Ptex_v2_4_DataSize(return_: *mut c_int, dt: Ptex_DataType) -> Exception;

pub fn Ptex_v2_4_OneValue(return_: *mut c_float, dt: Ptex_DataType) -> Exception;

pub fn Ptex_v2_4_OneValueInv(return_: *mut c_float, dt: Ptex_DataType) -> Exception;

pub fn Ptex_v2_4_ConvertToFloat(dst: *mut c_float, src: *const c_void, dt: Ptex_DataType, num_channels: c_int) -> Exception;

pub fn Ptex_v2_4_ConvertFromFloat(dst: *mut c_void, src: *const c_float, dt: Ptex_DataType, num_channels: c_int) -> Exception;


} // extern "C"