vtk_rs/
vtkCommonCore.rs

1/// affine implicit array of char.
2///
3///
4/// vtkAffineCharArray is an affine implicit array of values of type char.
5/// see vtkAffineArray, vtkAffineImplicitBackend
6///
7/// This file is generated by vtkImplicitArrays.cmake
8#[allow(non_camel_case_types)]
9pub struct vtkAffineCharArray(*mut core::ffi::c_void);
10impl vtkAffineCharArray {
11    /// Creates a new [vtkAffineCharArray] wrapped inside `vtkNew`
12    #[doc(alias = "vtkAffineCharArray")]
13    pub fn new() -> Self {
14        unsafe extern "C" {
15            fn vtkAffineCharArray_new() -> *mut core::ffi::c_void;
16        }
17        Self(unsafe { &mut *vtkAffineCharArray_new() })
18    }
19    #[cfg(test)]
20    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
21        unsafe extern "C" {
22            fn vtkAffineCharArray_get_ptr(
23                sself: *mut core::ffi::c_void,
24            ) -> *mut core::ffi::c_void;
25        }
26        unsafe { vtkAffineCharArray_get_ptr(self.0) }
27    }
28}
29impl std::default::Default for vtkAffineCharArray {
30    fn default() -> Self {
31        Self::new()
32    }
33}
34impl Drop for vtkAffineCharArray {
35    fn drop(&mut self) {
36        unsafe extern "C" {
37            fn vtkAffineCharArray_destructor(sself: *mut core::ffi::c_void);
38        }
39        unsafe { vtkAffineCharArray_destructor(self.0) }
40        self.0 = core::ptr::null_mut();
41    }
42}
43#[test]
44fn test_vtkAffineCharArray_create_drop() {
45    let obj = vtkAffineCharArray::new();
46    let ptr = obj.0;
47    assert!(!ptr.is_null());
48    assert!(unsafe { !obj._get_ptr().is_null() });
49    drop(obj);
50    let new_obj = vtkAffineCharArray(ptr);
51    assert!(unsafe { new_obj._get_ptr().is_null() });
52}
53/// affine implicit array of double.
54///
55///
56/// vtkAffineDoubleArray is an affine implicit array of values of type double.
57/// see vtkAffineArray, vtkAffineImplicitBackend
58///
59/// This file is generated by vtkImplicitArrays.cmake
60#[allow(non_camel_case_types)]
61pub struct vtkAffineDoubleArray(*mut core::ffi::c_void);
62impl vtkAffineDoubleArray {
63    /// Creates a new [vtkAffineDoubleArray] wrapped inside `vtkNew`
64    #[doc(alias = "vtkAffineDoubleArray")]
65    pub fn new() -> Self {
66        unsafe extern "C" {
67            fn vtkAffineDoubleArray_new() -> *mut core::ffi::c_void;
68        }
69        Self(unsafe { &mut *vtkAffineDoubleArray_new() })
70    }
71    #[cfg(test)]
72    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
73        unsafe extern "C" {
74            fn vtkAffineDoubleArray_get_ptr(
75                sself: *mut core::ffi::c_void,
76            ) -> *mut core::ffi::c_void;
77        }
78        unsafe { vtkAffineDoubleArray_get_ptr(self.0) }
79    }
80}
81impl std::default::Default for vtkAffineDoubleArray {
82    fn default() -> Self {
83        Self::new()
84    }
85}
86impl Drop for vtkAffineDoubleArray {
87    fn drop(&mut self) {
88        unsafe extern "C" {
89            fn vtkAffineDoubleArray_destructor(sself: *mut core::ffi::c_void);
90        }
91        unsafe { vtkAffineDoubleArray_destructor(self.0) }
92        self.0 = core::ptr::null_mut();
93    }
94}
95#[test]
96fn test_vtkAffineDoubleArray_create_drop() {
97    let obj = vtkAffineDoubleArray::new();
98    let ptr = obj.0;
99    assert!(!ptr.is_null());
100    assert!(unsafe { !obj._get_ptr().is_null() });
101    drop(obj);
102    let new_obj = vtkAffineDoubleArray(ptr);
103    assert!(unsafe { new_obj._get_ptr().is_null() });
104}
105/// affine implicit array of float.
106///
107///
108/// vtkAffineFloatArray is an affine implicit array of values of type float.
109/// see vtkAffineArray, vtkAffineImplicitBackend
110///
111/// This file is generated by vtkImplicitArrays.cmake
112#[allow(non_camel_case_types)]
113pub struct vtkAffineFloatArray(*mut core::ffi::c_void);
114impl vtkAffineFloatArray {
115    /// Creates a new [vtkAffineFloatArray] wrapped inside `vtkNew`
116    #[doc(alias = "vtkAffineFloatArray")]
117    pub fn new() -> Self {
118        unsafe extern "C" {
119            fn vtkAffineFloatArray_new() -> *mut core::ffi::c_void;
120        }
121        Self(unsafe { &mut *vtkAffineFloatArray_new() })
122    }
123    #[cfg(test)]
124    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
125        unsafe extern "C" {
126            fn vtkAffineFloatArray_get_ptr(
127                sself: *mut core::ffi::c_void,
128            ) -> *mut core::ffi::c_void;
129        }
130        unsafe { vtkAffineFloatArray_get_ptr(self.0) }
131    }
132}
133impl std::default::Default for vtkAffineFloatArray {
134    fn default() -> Self {
135        Self::new()
136    }
137}
138impl Drop for vtkAffineFloatArray {
139    fn drop(&mut self) {
140        unsafe extern "C" {
141            fn vtkAffineFloatArray_destructor(sself: *mut core::ffi::c_void);
142        }
143        unsafe { vtkAffineFloatArray_destructor(self.0) }
144        self.0 = core::ptr::null_mut();
145    }
146}
147#[test]
148fn test_vtkAffineFloatArray_create_drop() {
149    let obj = vtkAffineFloatArray::new();
150    let ptr = obj.0;
151    assert!(!ptr.is_null());
152    assert!(unsafe { !obj._get_ptr().is_null() });
153    drop(obj);
154    let new_obj = vtkAffineFloatArray(ptr);
155    assert!(unsafe { new_obj._get_ptr().is_null() });
156}
157/// affine implicit array of vtkIdType.
158///
159///
160/// vtkAffineIdTypeArray is an affine implicit array of values of type vtkIdType.
161/// see vtkAffineArray, vtkAffineImplicitBackend
162///
163/// This file is generated by vtkImplicitArrays.cmake
164#[allow(non_camel_case_types)]
165pub struct vtkAffineIdTypeArray(*mut core::ffi::c_void);
166impl vtkAffineIdTypeArray {
167    /// Creates a new [vtkAffineIdTypeArray] wrapped inside `vtkNew`
168    #[doc(alias = "vtkAffineIdTypeArray")]
169    pub fn new() -> Self {
170        unsafe extern "C" {
171            fn vtkAffineIdTypeArray_new() -> *mut core::ffi::c_void;
172        }
173        Self(unsafe { &mut *vtkAffineIdTypeArray_new() })
174    }
175    #[cfg(test)]
176    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
177        unsafe extern "C" {
178            fn vtkAffineIdTypeArray_get_ptr(
179                sself: *mut core::ffi::c_void,
180            ) -> *mut core::ffi::c_void;
181        }
182        unsafe { vtkAffineIdTypeArray_get_ptr(self.0) }
183    }
184}
185impl std::default::Default for vtkAffineIdTypeArray {
186    fn default() -> Self {
187        Self::new()
188    }
189}
190impl Drop for vtkAffineIdTypeArray {
191    fn drop(&mut self) {
192        unsafe extern "C" {
193            fn vtkAffineIdTypeArray_destructor(sself: *mut core::ffi::c_void);
194        }
195        unsafe { vtkAffineIdTypeArray_destructor(self.0) }
196        self.0 = core::ptr::null_mut();
197    }
198}
199#[test]
200fn test_vtkAffineIdTypeArray_create_drop() {
201    let obj = vtkAffineIdTypeArray::new();
202    let ptr = obj.0;
203    assert!(!ptr.is_null());
204    assert!(unsafe { !obj._get_ptr().is_null() });
205    drop(obj);
206    let new_obj = vtkAffineIdTypeArray(ptr);
207    assert!(unsafe { new_obj._get_ptr().is_null() });
208}
209/// affine implicit array of int.
210///
211///
212/// vtkAffineIntArray is an affine implicit array of values of type int.
213/// see vtkAffineArray, vtkAffineImplicitBackend
214///
215/// This file is generated by vtkImplicitArrays.cmake
216#[allow(non_camel_case_types)]
217pub struct vtkAffineIntArray(*mut core::ffi::c_void);
218impl vtkAffineIntArray {
219    /// Creates a new [vtkAffineIntArray] wrapped inside `vtkNew`
220    #[doc(alias = "vtkAffineIntArray")]
221    pub fn new() -> Self {
222        unsafe extern "C" {
223            fn vtkAffineIntArray_new() -> *mut core::ffi::c_void;
224        }
225        Self(unsafe { &mut *vtkAffineIntArray_new() })
226    }
227    #[cfg(test)]
228    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
229        unsafe extern "C" {
230            fn vtkAffineIntArray_get_ptr(
231                sself: *mut core::ffi::c_void,
232            ) -> *mut core::ffi::c_void;
233        }
234        unsafe { vtkAffineIntArray_get_ptr(self.0) }
235    }
236}
237impl std::default::Default for vtkAffineIntArray {
238    fn default() -> Self {
239        Self::new()
240    }
241}
242impl Drop for vtkAffineIntArray {
243    fn drop(&mut self) {
244        unsafe extern "C" {
245            fn vtkAffineIntArray_destructor(sself: *mut core::ffi::c_void);
246        }
247        unsafe { vtkAffineIntArray_destructor(self.0) }
248        self.0 = core::ptr::null_mut();
249    }
250}
251#[test]
252fn test_vtkAffineIntArray_create_drop() {
253    let obj = vtkAffineIntArray::new();
254    let ptr = obj.0;
255    assert!(!ptr.is_null());
256    assert!(unsafe { !obj._get_ptr().is_null() });
257    drop(obj);
258    let new_obj = vtkAffineIntArray(ptr);
259    assert!(unsafe { new_obj._get_ptr().is_null() });
260}
261/// affine implicit array of long.
262///
263///
264/// vtkAffineLongArray is an affine implicit array of values of type long.
265/// see vtkAffineArray, vtkAffineImplicitBackend
266///
267/// This file is generated by vtkImplicitArrays.cmake
268#[allow(non_camel_case_types)]
269pub struct vtkAffineLongArray(*mut core::ffi::c_void);
270impl vtkAffineLongArray {
271    /// Creates a new [vtkAffineLongArray] wrapped inside `vtkNew`
272    #[doc(alias = "vtkAffineLongArray")]
273    pub fn new() -> Self {
274        unsafe extern "C" {
275            fn vtkAffineLongArray_new() -> *mut core::ffi::c_void;
276        }
277        Self(unsafe { &mut *vtkAffineLongArray_new() })
278    }
279    #[cfg(test)]
280    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
281        unsafe extern "C" {
282            fn vtkAffineLongArray_get_ptr(
283                sself: *mut core::ffi::c_void,
284            ) -> *mut core::ffi::c_void;
285        }
286        unsafe { vtkAffineLongArray_get_ptr(self.0) }
287    }
288}
289impl std::default::Default for vtkAffineLongArray {
290    fn default() -> Self {
291        Self::new()
292    }
293}
294impl Drop for vtkAffineLongArray {
295    fn drop(&mut self) {
296        unsafe extern "C" {
297            fn vtkAffineLongArray_destructor(sself: *mut core::ffi::c_void);
298        }
299        unsafe { vtkAffineLongArray_destructor(self.0) }
300        self.0 = core::ptr::null_mut();
301    }
302}
303#[test]
304fn test_vtkAffineLongArray_create_drop() {
305    let obj = vtkAffineLongArray::new();
306    let ptr = obj.0;
307    assert!(!ptr.is_null());
308    assert!(unsafe { !obj._get_ptr().is_null() });
309    drop(obj);
310    let new_obj = vtkAffineLongArray(ptr);
311    assert!(unsafe { new_obj._get_ptr().is_null() });
312}
313/// affine implicit array of long long.
314///
315///
316/// vtkAffineLongLongArray is an affine implicit array of values of type long long.
317/// see vtkAffineArray, vtkAffineImplicitBackend
318///
319/// This file is generated by vtkImplicitArrays.cmake
320#[allow(non_camel_case_types)]
321pub struct vtkAffineLongLongArray(*mut core::ffi::c_void);
322impl vtkAffineLongLongArray {
323    /// Creates a new [vtkAffineLongLongArray] wrapped inside `vtkNew`
324    #[doc(alias = "vtkAffineLongLongArray")]
325    pub fn new() -> Self {
326        unsafe extern "C" {
327            fn vtkAffineLongLongArray_new() -> *mut core::ffi::c_void;
328        }
329        Self(unsafe { &mut *vtkAffineLongLongArray_new() })
330    }
331    #[cfg(test)]
332    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
333        unsafe extern "C" {
334            fn vtkAffineLongLongArray_get_ptr(
335                sself: *mut core::ffi::c_void,
336            ) -> *mut core::ffi::c_void;
337        }
338        unsafe { vtkAffineLongLongArray_get_ptr(self.0) }
339    }
340}
341impl std::default::Default for vtkAffineLongLongArray {
342    fn default() -> Self {
343        Self::new()
344    }
345}
346impl Drop for vtkAffineLongLongArray {
347    fn drop(&mut self) {
348        unsafe extern "C" {
349            fn vtkAffineLongLongArray_destructor(sself: *mut core::ffi::c_void);
350        }
351        unsafe { vtkAffineLongLongArray_destructor(self.0) }
352        self.0 = core::ptr::null_mut();
353    }
354}
355#[test]
356fn test_vtkAffineLongLongArray_create_drop() {
357    let obj = vtkAffineLongLongArray::new();
358    let ptr = obj.0;
359    assert!(!ptr.is_null());
360    assert!(unsafe { !obj._get_ptr().is_null() });
361    drop(obj);
362    let new_obj = vtkAffineLongLongArray(ptr);
363    assert!(unsafe { new_obj._get_ptr().is_null() });
364}
365/// affine implicit array of short.
366///
367///
368/// vtkAffineShortArray is an affine implicit array of values of type short.
369/// see vtkAffineArray, vtkAffineImplicitBackend
370///
371/// This file is generated by vtkImplicitArrays.cmake
372#[allow(non_camel_case_types)]
373pub struct vtkAffineShortArray(*mut core::ffi::c_void);
374impl vtkAffineShortArray {
375    /// Creates a new [vtkAffineShortArray] wrapped inside `vtkNew`
376    #[doc(alias = "vtkAffineShortArray")]
377    pub fn new() -> Self {
378        unsafe extern "C" {
379            fn vtkAffineShortArray_new() -> *mut core::ffi::c_void;
380        }
381        Self(unsafe { &mut *vtkAffineShortArray_new() })
382    }
383    #[cfg(test)]
384    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
385        unsafe extern "C" {
386            fn vtkAffineShortArray_get_ptr(
387                sself: *mut core::ffi::c_void,
388            ) -> *mut core::ffi::c_void;
389        }
390        unsafe { vtkAffineShortArray_get_ptr(self.0) }
391    }
392}
393impl std::default::Default for vtkAffineShortArray {
394    fn default() -> Self {
395        Self::new()
396    }
397}
398impl Drop for vtkAffineShortArray {
399    fn drop(&mut self) {
400        unsafe extern "C" {
401            fn vtkAffineShortArray_destructor(sself: *mut core::ffi::c_void);
402        }
403        unsafe { vtkAffineShortArray_destructor(self.0) }
404        self.0 = core::ptr::null_mut();
405    }
406}
407#[test]
408fn test_vtkAffineShortArray_create_drop() {
409    let obj = vtkAffineShortArray::new();
410    let ptr = obj.0;
411    assert!(!ptr.is_null());
412    assert!(unsafe { !obj._get_ptr().is_null() });
413    drop(obj);
414    let new_obj = vtkAffineShortArray(ptr);
415    assert!(unsafe { new_obj._get_ptr().is_null() });
416}
417/// affine implicit array of signed char.
418///
419///
420/// vtkAffineSignedCharArray is an affine implicit array of values of type signed char.
421/// see vtkAffineArray, vtkAffineImplicitBackend
422///
423/// This file is generated by vtkImplicitArrays.cmake
424#[allow(non_camel_case_types)]
425pub struct vtkAffineSignedCharArray(*mut core::ffi::c_void);
426impl vtkAffineSignedCharArray {
427    /// Creates a new [vtkAffineSignedCharArray] wrapped inside `vtkNew`
428    #[doc(alias = "vtkAffineSignedCharArray")]
429    pub fn new() -> Self {
430        unsafe extern "C" {
431            fn vtkAffineSignedCharArray_new() -> *mut core::ffi::c_void;
432        }
433        Self(unsafe { &mut *vtkAffineSignedCharArray_new() })
434    }
435    #[cfg(test)]
436    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
437        unsafe extern "C" {
438            fn vtkAffineSignedCharArray_get_ptr(
439                sself: *mut core::ffi::c_void,
440            ) -> *mut core::ffi::c_void;
441        }
442        unsafe { vtkAffineSignedCharArray_get_ptr(self.0) }
443    }
444}
445impl std::default::Default for vtkAffineSignedCharArray {
446    fn default() -> Self {
447        Self::new()
448    }
449}
450impl Drop for vtkAffineSignedCharArray {
451    fn drop(&mut self) {
452        unsafe extern "C" {
453            fn vtkAffineSignedCharArray_destructor(sself: *mut core::ffi::c_void);
454        }
455        unsafe { vtkAffineSignedCharArray_destructor(self.0) }
456        self.0 = core::ptr::null_mut();
457    }
458}
459#[test]
460fn test_vtkAffineSignedCharArray_create_drop() {
461    let obj = vtkAffineSignedCharArray::new();
462    let ptr = obj.0;
463    assert!(!ptr.is_null());
464    assert!(unsafe { !obj._get_ptr().is_null() });
465    drop(obj);
466    let new_obj = vtkAffineSignedCharArray(ptr);
467    assert!(unsafe { new_obj._get_ptr().is_null() });
468}
469/// affine implicit array of unsigned char.
470///
471///
472/// vtkAffineUnsignedCharArray is an affine implicit array of values of type unsigned char.
473/// see vtkAffineArray, vtkAffineImplicitBackend
474///
475/// This file is generated by vtkImplicitArrays.cmake
476#[allow(non_camel_case_types)]
477pub struct vtkAffineUnsignedCharArray(*mut core::ffi::c_void);
478impl vtkAffineUnsignedCharArray {
479    /// Creates a new [vtkAffineUnsignedCharArray] wrapped inside `vtkNew`
480    #[doc(alias = "vtkAffineUnsignedCharArray")]
481    pub fn new() -> Self {
482        unsafe extern "C" {
483            fn vtkAffineUnsignedCharArray_new() -> *mut core::ffi::c_void;
484        }
485        Self(unsafe { &mut *vtkAffineUnsignedCharArray_new() })
486    }
487    #[cfg(test)]
488    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
489        unsafe extern "C" {
490            fn vtkAffineUnsignedCharArray_get_ptr(
491                sself: *mut core::ffi::c_void,
492            ) -> *mut core::ffi::c_void;
493        }
494        unsafe { vtkAffineUnsignedCharArray_get_ptr(self.0) }
495    }
496}
497impl std::default::Default for vtkAffineUnsignedCharArray {
498    fn default() -> Self {
499        Self::new()
500    }
501}
502impl Drop for vtkAffineUnsignedCharArray {
503    fn drop(&mut self) {
504        unsafe extern "C" {
505            fn vtkAffineUnsignedCharArray_destructor(sself: *mut core::ffi::c_void);
506        }
507        unsafe { vtkAffineUnsignedCharArray_destructor(self.0) }
508        self.0 = core::ptr::null_mut();
509    }
510}
511#[test]
512fn test_vtkAffineUnsignedCharArray_create_drop() {
513    let obj = vtkAffineUnsignedCharArray::new();
514    let ptr = obj.0;
515    assert!(!ptr.is_null());
516    assert!(unsafe { !obj._get_ptr().is_null() });
517    drop(obj);
518    let new_obj = vtkAffineUnsignedCharArray(ptr);
519    assert!(unsafe { new_obj._get_ptr().is_null() });
520}
521/// affine implicit array of unsigned int.
522///
523///
524/// vtkAffineUnsignedIntArray is an affine implicit array of values of type unsigned int.
525/// see vtkAffineArray, vtkAffineImplicitBackend
526///
527/// This file is generated by vtkImplicitArrays.cmake
528#[allow(non_camel_case_types)]
529pub struct vtkAffineUnsignedIntArray(*mut core::ffi::c_void);
530impl vtkAffineUnsignedIntArray {
531    /// Creates a new [vtkAffineUnsignedIntArray] wrapped inside `vtkNew`
532    #[doc(alias = "vtkAffineUnsignedIntArray")]
533    pub fn new() -> Self {
534        unsafe extern "C" {
535            fn vtkAffineUnsignedIntArray_new() -> *mut core::ffi::c_void;
536        }
537        Self(unsafe { &mut *vtkAffineUnsignedIntArray_new() })
538    }
539    #[cfg(test)]
540    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
541        unsafe extern "C" {
542            fn vtkAffineUnsignedIntArray_get_ptr(
543                sself: *mut core::ffi::c_void,
544            ) -> *mut core::ffi::c_void;
545        }
546        unsafe { vtkAffineUnsignedIntArray_get_ptr(self.0) }
547    }
548}
549impl std::default::Default for vtkAffineUnsignedIntArray {
550    fn default() -> Self {
551        Self::new()
552    }
553}
554impl Drop for vtkAffineUnsignedIntArray {
555    fn drop(&mut self) {
556        unsafe extern "C" {
557            fn vtkAffineUnsignedIntArray_destructor(sself: *mut core::ffi::c_void);
558        }
559        unsafe { vtkAffineUnsignedIntArray_destructor(self.0) }
560        self.0 = core::ptr::null_mut();
561    }
562}
563#[test]
564fn test_vtkAffineUnsignedIntArray_create_drop() {
565    let obj = vtkAffineUnsignedIntArray::new();
566    let ptr = obj.0;
567    assert!(!ptr.is_null());
568    assert!(unsafe { !obj._get_ptr().is_null() });
569    drop(obj);
570    let new_obj = vtkAffineUnsignedIntArray(ptr);
571    assert!(unsafe { new_obj._get_ptr().is_null() });
572}
573/// affine implicit array of unsigned long.
574///
575///
576/// vtkAffineUnsignedLongArray is an affine implicit array of values of type unsigned long.
577/// see vtkAffineArray, vtkAffineImplicitBackend
578///
579/// This file is generated by vtkImplicitArrays.cmake
580#[allow(non_camel_case_types)]
581pub struct vtkAffineUnsignedLongArray(*mut core::ffi::c_void);
582impl vtkAffineUnsignedLongArray {
583    /// Creates a new [vtkAffineUnsignedLongArray] wrapped inside `vtkNew`
584    #[doc(alias = "vtkAffineUnsignedLongArray")]
585    pub fn new() -> Self {
586        unsafe extern "C" {
587            fn vtkAffineUnsignedLongArray_new() -> *mut core::ffi::c_void;
588        }
589        Self(unsafe { &mut *vtkAffineUnsignedLongArray_new() })
590    }
591    #[cfg(test)]
592    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
593        unsafe extern "C" {
594            fn vtkAffineUnsignedLongArray_get_ptr(
595                sself: *mut core::ffi::c_void,
596            ) -> *mut core::ffi::c_void;
597        }
598        unsafe { vtkAffineUnsignedLongArray_get_ptr(self.0) }
599    }
600}
601impl std::default::Default for vtkAffineUnsignedLongArray {
602    fn default() -> Self {
603        Self::new()
604    }
605}
606impl Drop for vtkAffineUnsignedLongArray {
607    fn drop(&mut self) {
608        unsafe extern "C" {
609            fn vtkAffineUnsignedLongArray_destructor(sself: *mut core::ffi::c_void);
610        }
611        unsafe { vtkAffineUnsignedLongArray_destructor(self.0) }
612        self.0 = core::ptr::null_mut();
613    }
614}
615#[test]
616fn test_vtkAffineUnsignedLongArray_create_drop() {
617    let obj = vtkAffineUnsignedLongArray::new();
618    let ptr = obj.0;
619    assert!(!ptr.is_null());
620    assert!(unsafe { !obj._get_ptr().is_null() });
621    drop(obj);
622    let new_obj = vtkAffineUnsignedLongArray(ptr);
623    assert!(unsafe { new_obj._get_ptr().is_null() });
624}
625/// affine implicit array of unsigned long long.
626///
627///
628/// vtkAffineUnsignedLongLongArray is an affine implicit array of values of type unsigned long long.
629/// see vtkAffineArray, vtkAffineImplicitBackend
630///
631/// This file is generated by vtkImplicitArrays.cmake
632#[allow(non_camel_case_types)]
633pub struct vtkAffineUnsignedLongLongArray(*mut core::ffi::c_void);
634impl vtkAffineUnsignedLongLongArray {
635    /// Creates a new [vtkAffineUnsignedLongLongArray] wrapped inside `vtkNew`
636    #[doc(alias = "vtkAffineUnsignedLongLongArray")]
637    pub fn new() -> Self {
638        unsafe extern "C" {
639            fn vtkAffineUnsignedLongLongArray_new() -> *mut core::ffi::c_void;
640        }
641        Self(unsafe { &mut *vtkAffineUnsignedLongLongArray_new() })
642    }
643    #[cfg(test)]
644    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
645        unsafe extern "C" {
646            fn vtkAffineUnsignedLongLongArray_get_ptr(
647                sself: *mut core::ffi::c_void,
648            ) -> *mut core::ffi::c_void;
649        }
650        unsafe { vtkAffineUnsignedLongLongArray_get_ptr(self.0) }
651    }
652}
653impl std::default::Default for vtkAffineUnsignedLongLongArray {
654    fn default() -> Self {
655        Self::new()
656    }
657}
658impl Drop for vtkAffineUnsignedLongLongArray {
659    fn drop(&mut self) {
660        unsafe extern "C" {
661            fn vtkAffineUnsignedLongLongArray_destructor(sself: *mut core::ffi::c_void);
662        }
663        unsafe { vtkAffineUnsignedLongLongArray_destructor(self.0) }
664        self.0 = core::ptr::null_mut();
665    }
666}
667#[test]
668fn test_vtkAffineUnsignedLongLongArray_create_drop() {
669    let obj = vtkAffineUnsignedLongLongArray::new();
670    let ptr = obj.0;
671    assert!(!ptr.is_null());
672    assert!(unsafe { !obj._get_ptr().is_null() });
673    drop(obj);
674    let new_obj = vtkAffineUnsignedLongLongArray(ptr);
675    assert!(unsafe { new_obj._get_ptr().is_null() });
676}
677/// affine implicit array of unsigned short.
678///
679///
680/// vtkAffineUnsignedShortArray is an affine implicit array of values of type unsigned short.
681/// see vtkAffineArray, vtkAffineImplicitBackend
682///
683/// This file is generated by vtkImplicitArrays.cmake
684#[allow(non_camel_case_types)]
685pub struct vtkAffineUnsignedShortArray(*mut core::ffi::c_void);
686impl vtkAffineUnsignedShortArray {
687    /// Creates a new [vtkAffineUnsignedShortArray] wrapped inside `vtkNew`
688    #[doc(alias = "vtkAffineUnsignedShortArray")]
689    pub fn new() -> Self {
690        unsafe extern "C" {
691            fn vtkAffineUnsignedShortArray_new() -> *mut core::ffi::c_void;
692        }
693        Self(unsafe { &mut *vtkAffineUnsignedShortArray_new() })
694    }
695    #[cfg(test)]
696    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
697        unsafe extern "C" {
698            fn vtkAffineUnsignedShortArray_get_ptr(
699                sself: *mut core::ffi::c_void,
700            ) -> *mut core::ffi::c_void;
701        }
702        unsafe { vtkAffineUnsignedShortArray_get_ptr(self.0) }
703    }
704}
705impl std::default::Default for vtkAffineUnsignedShortArray {
706    fn default() -> Self {
707        Self::new()
708    }
709}
710impl Drop for vtkAffineUnsignedShortArray {
711    fn drop(&mut self) {
712        unsafe extern "C" {
713            fn vtkAffineUnsignedShortArray_destructor(sself: *mut core::ffi::c_void);
714        }
715        unsafe { vtkAffineUnsignedShortArray_destructor(self.0) }
716        self.0 = core::ptr::null_mut();
717    }
718}
719#[test]
720fn test_vtkAffineUnsignedShortArray_create_drop() {
721    let obj = vtkAffineUnsignedShortArray::new();
722    let ptr = obj.0;
723    assert!(!ptr.is_null());
724    assert!(unsafe { !obj._get_ptr().is_null() });
725    drop(obj);
726    let new_obj = vtkAffineUnsignedShortArray(ptr);
727    assert!(unsafe { new_obj._get_ptr().is_null() });
728}
729/// a seqin an animation.
730///
731///
732/// vtkAnimationCue and vtkAnimationScene provide the framework to support
733/// animations in VTK. vtkAnimationCue represents an entity that changes/
734/// animates with time, while vtkAnimationScene represents scene or setup
735/// for the animation, which consists on individual cues or other scenes.
736///
737/// A cue has three states: UNINITIALIZED, ACTIVE and INACTIVE.
738/// UNINITIALIZED represents an point in time before the start time of the cue.
739/// The cue is in ACTIVE state at a point in time between start time and end time
740/// for the cue. While, beyond the end time, it is in INACTIVE state.
741/// When the cue enters the ACTIVE state, StartAnimationCueEvent is fired. This
742/// event may be handled to initialize the entity to be animated.
743/// When the cue leaves the ACTIVE state, EndAnimationCueEvent is fired, which
744/// can be handled to cleanup after having run the animation.
745/// For every request to render during the ACTIVE state, AnimationCueTickEvent is
746/// fired, which must be handled to perform the actual animation.
747/// @sa
748/// vtkAnimationScene
749#[allow(non_camel_case_types)]
750pub struct vtkAnimationCue(*mut core::ffi::c_void);
751impl vtkAnimationCue {
752    /// Creates a new [vtkAnimationCue] wrapped inside `vtkNew`
753    #[doc(alias = "vtkAnimationCue")]
754    pub fn new() -> Self {
755        unsafe extern "C" {
756            fn vtkAnimationCue_new() -> *mut core::ffi::c_void;
757        }
758        Self(unsafe { &mut *vtkAnimationCue_new() })
759    }
760    #[cfg(test)]
761    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
762        unsafe extern "C" {
763            fn vtkAnimationCue_get_ptr(
764                sself: *mut core::ffi::c_void,
765            ) -> *mut core::ffi::c_void;
766        }
767        unsafe { vtkAnimationCue_get_ptr(self.0) }
768    }
769}
770impl std::default::Default for vtkAnimationCue {
771    fn default() -> Self {
772        Self::new()
773    }
774}
775impl Drop for vtkAnimationCue {
776    fn drop(&mut self) {
777        unsafe extern "C" {
778            fn vtkAnimationCue_destructor(sself: *mut core::ffi::c_void);
779        }
780        unsafe { vtkAnimationCue_destructor(self.0) }
781        self.0 = core::ptr::null_mut();
782    }
783}
784#[test]
785fn test_vtkAnimationCue_create_drop() {
786    let obj = vtkAnimationCue::new();
787    let ptr = obj.0;
788    assert!(!ptr.is_null());
789    assert!(unsafe { !obj._get_ptr().is_null() });
790    drop(obj);
791    let new_obj = vtkAnimationCue(ptr);
792    assert!(unsafe { new_obj._get_ptr().is_null() });
793}
794/// Writes an archive
795///
796///
797/// vtkArchiver is a base class for constructing an archive. The default
798/// implementation constructs a directory at the location of the ArchiveName
799/// and populates it with files and directories as requested by Insert().
800/// Classes that derive from vtkArchiver can customize the output using such
801/// features as compression, in-memory serialization and third-party archival
802/// tools.
803#[allow(non_camel_case_types)]
804pub struct vtkArchiver(*mut core::ffi::c_void);
805impl vtkArchiver {
806    /// Creates a new [vtkArchiver] wrapped inside `vtkNew`
807    #[doc(alias = "vtkArchiver")]
808    pub fn new() -> Self {
809        unsafe extern "C" {
810            fn vtkArchiver_new() -> *mut core::ffi::c_void;
811        }
812        Self(unsafe { &mut *vtkArchiver_new() })
813    }
814    #[cfg(test)]
815    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
816        unsafe extern "C" {
817            fn vtkArchiver_get_ptr(
818                sself: *mut core::ffi::c_void,
819            ) -> *mut core::ffi::c_void;
820        }
821        unsafe { vtkArchiver_get_ptr(self.0) }
822    }
823}
824impl std::default::Default for vtkArchiver {
825    fn default() -> Self {
826        Self::new()
827    }
828}
829impl Drop for vtkArchiver {
830    fn drop(&mut self) {
831        unsafe extern "C" {
832            fn vtkArchiver_destructor(sself: *mut core::ffi::c_void);
833        }
834        unsafe { vtkArchiver_destructor(self.0) }
835        self.0 = core::ptr::null_mut();
836    }
837}
838#[test]
839fn test_vtkArchiver_create_drop() {
840    let obj = vtkArchiver::new();
841    let ptr = obj.0;
842    assert!(!ptr.is_null());
843    assert!(unsafe { !obj._get_ptr().is_null() });
844    drop(obj);
845    let new_obj = vtkArchiver(ptr);
846    assert!(unsafe { new_obj._get_ptr().is_null() });
847}
848/// dynamic, self-adjusting array of bits
849///
850///
851/// vtkBitArray is an array of bits (0/1 data value). The array is packed
852/// so that each byte stores eight bits. vtkBitArray provides methods
853/// for insertion and retrieval of bits, and will automatically resize
854/// itself to hold new data.
855///
856/// > WARNING
857/// > This class is not thread-safe during write access
858#[allow(non_camel_case_types)]
859pub struct vtkBitArray(*mut core::ffi::c_void);
860impl vtkBitArray {
861    /// Creates a new [vtkBitArray] wrapped inside `vtkNew`
862    #[doc(alias = "vtkBitArray")]
863    pub fn new() -> Self {
864        unsafe extern "C" {
865            fn vtkBitArray_new() -> *mut core::ffi::c_void;
866        }
867        Self(unsafe { &mut *vtkBitArray_new() })
868    }
869    #[cfg(test)]
870    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
871        unsafe extern "C" {
872            fn vtkBitArray_get_ptr(
873                sself: *mut core::ffi::c_void,
874            ) -> *mut core::ffi::c_void;
875        }
876        unsafe { vtkBitArray_get_ptr(self.0) }
877    }
878}
879impl std::default::Default for vtkBitArray {
880    fn default() -> Self {
881        Self::new()
882    }
883}
884impl Drop for vtkBitArray {
885    fn drop(&mut self) {
886        unsafe extern "C" {
887            fn vtkBitArray_destructor(sself: *mut core::ffi::c_void);
888        }
889        unsafe { vtkBitArray_destructor(self.0) }
890        self.0 = core::ptr::null_mut();
891    }
892}
893#[test]
894fn test_vtkBitArray_create_drop() {
895    let obj = vtkBitArray::new();
896    let ptr = obj.0;
897    assert!(!ptr.is_null());
898    assert!(unsafe { !obj._get_ptr().is_null() });
899    drop(obj);
900    let new_obj = vtkBitArray(ptr);
901    assert!(unsafe { new_obj._get_ptr().is_null() });
902}
903/// Iterator for vtkBitArray.
904///
905/// This iterator iterates over a vtkBitArray. It uses the double interface
906/// to get/set bit values.
907#[allow(non_camel_case_types)]
908pub struct vtkBitArrayIterator(*mut core::ffi::c_void);
909impl vtkBitArrayIterator {
910    /// Creates a new [vtkBitArrayIterator] wrapped inside `vtkNew`
911    #[doc(alias = "vtkBitArrayIterator")]
912    pub fn new() -> Self {
913        unsafe extern "C" {
914            fn vtkBitArrayIterator_new() -> *mut core::ffi::c_void;
915        }
916        Self(unsafe { &mut *vtkBitArrayIterator_new() })
917    }
918    #[cfg(test)]
919    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
920        unsafe extern "C" {
921            fn vtkBitArrayIterator_get_ptr(
922                sself: *mut core::ffi::c_void,
923            ) -> *mut core::ffi::c_void;
924        }
925        unsafe { vtkBitArrayIterator_get_ptr(self.0) }
926    }
927}
928impl std::default::Default for vtkBitArrayIterator {
929    fn default() -> Self {
930        Self::new()
931    }
932}
933impl Drop for vtkBitArrayIterator {
934    fn drop(&mut self) {
935        unsafe extern "C" {
936            fn vtkBitArrayIterator_destructor(sself: *mut core::ffi::c_void);
937        }
938        unsafe { vtkBitArrayIterator_destructor(self.0) }
939        self.0 = core::ptr::null_mut();
940    }
941}
942#[test]
943fn test_vtkBitArrayIterator_create_drop() {
944    let obj = vtkBitArrayIterator::new();
945    let ptr = obj.0;
946    assert!(!ptr.is_null());
947    assert!(unsafe { !obj._get_ptr().is_null() });
948    drop(obj);
949    let new_obj = vtkBitArrayIterator(ptr);
950    assert!(unsafe { new_obj._get_ptr().is_null() });
951}
952/// Gaussian sequence of pseudo random numbers implemented with the Box-Mueller transform
953///
954///
955/// vtkGaussianRandomSequence is a sequence of pseudo random numbers
956/// distributed according to the Gaussian/normal distribution (mean=0 and
957/// standard deviation=1).
958///
959/// It based is calculation from a uniformly distributed pseudo random sequence.
960/// The initial sequence is a vtkMinimalStandardRandomSequence.
961#[allow(non_camel_case_types)]
962pub struct vtkBoxMuellerRandomSequence(*mut core::ffi::c_void);
963impl vtkBoxMuellerRandomSequence {
964    /// Creates a new [vtkBoxMuellerRandomSequence] wrapped inside `vtkNew`
965    #[doc(alias = "vtkBoxMuellerRandomSequence")]
966    pub fn new() -> Self {
967        unsafe extern "C" {
968            fn vtkBoxMuellerRandomSequence_new() -> *mut core::ffi::c_void;
969        }
970        Self(unsafe { &mut *vtkBoxMuellerRandomSequence_new() })
971    }
972    #[cfg(test)]
973    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
974        unsafe extern "C" {
975            fn vtkBoxMuellerRandomSequence_get_ptr(
976                sself: *mut core::ffi::c_void,
977            ) -> *mut core::ffi::c_void;
978        }
979        unsafe { vtkBoxMuellerRandomSequence_get_ptr(self.0) }
980    }
981}
982impl std::default::Default for vtkBoxMuellerRandomSequence {
983    fn default() -> Self {
984        Self::new()
985    }
986}
987impl Drop for vtkBoxMuellerRandomSequence {
988    fn drop(&mut self) {
989        unsafe extern "C" {
990            fn vtkBoxMuellerRandomSequence_destructor(sself: *mut core::ffi::c_void);
991        }
992        unsafe { vtkBoxMuellerRandomSequence_destructor(self.0) }
993        self.0 = core::ptr::null_mut();
994    }
995}
996#[test]
997fn test_vtkBoxMuellerRandomSequence_create_drop() {
998    let obj = vtkBoxMuellerRandomSequence::new();
999    let ptr = obj.0;
1000    assert!(!ptr.is_null());
1001    assert!(unsafe { !obj._get_ptr().is_null() });
1002    drop(obj);
1003    let new_obj = vtkBoxMuellerRandomSequence(ptr);
1004    assert!(unsafe { new_obj._get_ptr().is_null() });
1005}
1006/// perform machine dependent byte swapping
1007///
1008///
1009/// vtkByteSwap is used by other classes to perform machine dependent byte
1010/// swapping. Byte swapping is often used when reading or writing binary
1011/// files.
1012#[allow(non_camel_case_types)]
1013pub struct vtkByteSwap(*mut core::ffi::c_void);
1014impl vtkByteSwap {
1015    /// Creates a new [vtkByteSwap] wrapped inside `vtkNew`
1016    #[doc(alias = "vtkByteSwap")]
1017    pub fn new() -> Self {
1018        unsafe extern "C" {
1019            fn vtkByteSwap_new() -> *mut core::ffi::c_void;
1020        }
1021        Self(unsafe { &mut *vtkByteSwap_new() })
1022    }
1023    #[cfg(test)]
1024    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1025        unsafe extern "C" {
1026            fn vtkByteSwap_get_ptr(
1027                sself: *mut core::ffi::c_void,
1028            ) -> *mut core::ffi::c_void;
1029        }
1030        unsafe { vtkByteSwap_get_ptr(self.0) }
1031    }
1032}
1033impl std::default::Default for vtkByteSwap {
1034    fn default() -> Self {
1035        Self::new()
1036    }
1037}
1038impl Drop for vtkByteSwap {
1039    fn drop(&mut self) {
1040        unsafe extern "C" {
1041            fn vtkByteSwap_destructor(sself: *mut core::ffi::c_void);
1042        }
1043        unsafe { vtkByteSwap_destructor(self.0) }
1044        self.0 = core::ptr::null_mut();
1045    }
1046}
1047#[test]
1048fn test_vtkByteSwap_create_drop() {
1049    let obj = vtkByteSwap::new();
1050    let ptr = obj.0;
1051    assert!(!ptr.is_null());
1052    assert!(unsafe { !obj._get_ptr().is_null() });
1053    drop(obj);
1054    let new_obj = vtkByteSwap(ptr);
1055    assert!(unsafe { new_obj._get_ptr().is_null() });
1056}
1057/// supports function callbacks
1058///
1059///
1060/// Use vtkCallbackCommand for generic function callbacks. That is, this class
1061/// can be used when you wish to execute a function (of the signature
1062/// described below) using the Command/Observer design pattern in VTK.
1063/// The callback function should have the form
1064/// <pre>
1065/// void func(vtkObject*, unsigned long eid, void* clientdata, void *calldata)
1066/// </pre>
1067/// where the parameter vtkObject* is the object invoking the event; eid is
1068/// the event id (see vtkCommand.h); clientdata is special data that should
1069/// is associated with this instance of vtkCallbackCommand; and calldata is
1070/// data that the vtkObject::InvokeEvent() may send with the callback. For
1071/// example, the invocation of the ProgressEvent sends along the progress
1072/// value as calldata.
1073///
1074///
1075/// @sa
1076/// vtkCommand vtkOldStyleCallbackCommand
1077#[allow(non_camel_case_types)]
1078pub struct vtkCallbackCommand(*mut core::ffi::c_void);
1079impl vtkCallbackCommand {
1080    /// Creates a new [vtkCallbackCommand] wrapped inside `vtkNew`
1081    #[doc(alias = "vtkCallbackCommand")]
1082    pub fn new() -> Self {
1083        unsafe extern "C" {
1084            fn vtkCallbackCommand_new() -> *mut core::ffi::c_void;
1085        }
1086        Self(unsafe { &mut *vtkCallbackCommand_new() })
1087    }
1088    #[cfg(test)]
1089    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1090        unsafe extern "C" {
1091            fn vtkCallbackCommand_get_ptr(
1092                sself: *mut core::ffi::c_void,
1093            ) -> *mut core::ffi::c_void;
1094        }
1095        unsafe { vtkCallbackCommand_get_ptr(self.0) }
1096    }
1097}
1098impl std::default::Default for vtkCallbackCommand {
1099    fn default() -> Self {
1100        Self::new()
1101    }
1102}
1103impl Drop for vtkCallbackCommand {
1104    fn drop(&mut self) {
1105        unsafe extern "C" {
1106            fn vtkCallbackCommand_destructor(sself: *mut core::ffi::c_void);
1107        }
1108        unsafe { vtkCallbackCommand_destructor(self.0) }
1109        self.0 = core::ptr::null_mut();
1110    }
1111}
1112#[test]
1113fn test_vtkCallbackCommand_create_drop() {
1114    let obj = vtkCallbackCommand::new();
1115    let ptr = obj.0;
1116    assert!(!ptr.is_null());
1117    assert!(unsafe { !obj._get_ptr().is_null() });
1118    drop(obj);
1119    let new_obj = vtkCallbackCommand(ptr);
1120    assert!(unsafe { new_obj._get_ptr().is_null() });
1121}
1122/// dynamic, self-adjusting array of char
1123///
1124///
1125/// vtkCharArray is an array of values of type char.  It provides
1126/// methods for insertion and retrieval of values and will
1127/// automatically resize itself to hold new data.
1128///
1129/// @warning
1130/// This class should be avoided in favor of either
1131/// vtkSignedCharArray or vtkUnsignedCharArray. On some systems
1132/// the underlying data will be stored as unsigned chars and others
1133/// it will be stored as signed chars. Additionally, saving this
1134/// array out and then reading it back in it could be transformed to
1135/// a vtkSignedCharArray or vtkUnsignedCharArray and if that happens
1136/// the result of a vtkCharArray::SafeDownCast() of that pointer will be
1137/// a null pointer.
1138///
1139/// @sa
1140/// vtkSignedCharArray vtkUnsignedCharArray
1141#[allow(non_camel_case_types)]
1142pub struct vtkCharArray(*mut core::ffi::c_void);
1143impl vtkCharArray {
1144    /// Creates a new [vtkCharArray] wrapped inside `vtkNew`
1145    #[doc(alias = "vtkCharArray")]
1146    pub fn new() -> Self {
1147        unsafe extern "C" {
1148            fn vtkCharArray_new() -> *mut core::ffi::c_void;
1149        }
1150        Self(unsafe { &mut *vtkCharArray_new() })
1151    }
1152    #[cfg(test)]
1153    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1154        unsafe extern "C" {
1155            fn vtkCharArray_get_ptr(
1156                sself: *mut core::ffi::c_void,
1157            ) -> *mut core::ffi::c_void;
1158        }
1159        unsafe { vtkCharArray_get_ptr(self.0) }
1160    }
1161}
1162impl std::default::Default for vtkCharArray {
1163    fn default() -> Self {
1164        Self::new()
1165    }
1166}
1167impl Drop for vtkCharArray {
1168    fn drop(&mut self) {
1169        unsafe extern "C" {
1170            fn vtkCharArray_destructor(sself: *mut core::ffi::c_void);
1171        }
1172        unsafe { vtkCharArray_destructor(self.0) }
1173        self.0 = core::ptr::null_mut();
1174    }
1175}
1176#[test]
1177fn test_vtkCharArray_create_drop() {
1178    let obj = vtkCharArray::new();
1179    let ptr = obj.0;
1180    assert!(!ptr.is_null());
1181    assert!(unsafe { !obj._get_ptr().is_null() });
1182    drop(obj);
1183    let new_obj = vtkCharArray(ptr);
1184    assert!(unsafe { new_obj._get_ptr().is_null() });
1185}
1186/// create and manipulate ordered lists of objects
1187///
1188///
1189/// vtkCollection is a general object for creating and manipulating lists
1190/// of objects. The lists are ordered and allow duplicate entries.
1191/// vtkCollection also serves as a base class for lists of specific types
1192/// of objects.
1193///
1194/// @sa
1195/// vtkActorCollection vtkAssemblyPaths vtkDataSetCollection
1196/// vtkImplicitFunctionCollection vtkLightCollection vtkPolyDataCollection
1197/// vtkRenderWindowCollection vtkRendererCollection
1198/// vtkStructuredPointsCollection vtkTransformCollection vtkVolumeCollection
1199#[allow(non_camel_case_types)]
1200pub struct vtkCollection(*mut core::ffi::c_void);
1201impl vtkCollection {
1202    /// Creates a new [vtkCollection] wrapped inside `vtkNew`
1203    #[doc(alias = "vtkCollection")]
1204    pub fn new() -> Self {
1205        unsafe extern "C" {
1206            fn vtkCollection_new() -> *mut core::ffi::c_void;
1207        }
1208        Self(unsafe { &mut *vtkCollection_new() })
1209    }
1210    #[cfg(test)]
1211    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1212        unsafe extern "C" {
1213            fn vtkCollection_get_ptr(
1214                sself: *mut core::ffi::c_void,
1215            ) -> *mut core::ffi::c_void;
1216        }
1217        unsafe { vtkCollection_get_ptr(self.0) }
1218    }
1219}
1220impl std::default::Default for vtkCollection {
1221    fn default() -> Self {
1222        Self::new()
1223    }
1224}
1225impl Drop for vtkCollection {
1226    fn drop(&mut self) {
1227        unsafe extern "C" {
1228            fn vtkCollection_destructor(sself: *mut core::ffi::c_void);
1229        }
1230        unsafe { vtkCollection_destructor(self.0) }
1231        self.0 = core::ptr::null_mut();
1232    }
1233}
1234#[test]
1235fn test_vtkCollection_create_drop() {
1236    let obj = vtkCollection::new();
1237    let ptr = obj.0;
1238    assert!(!ptr.is_null());
1239    assert!(unsafe { !obj._get_ptr().is_null() });
1240    drop(obj);
1241    let new_obj = vtkCollection(ptr);
1242    assert!(unsafe { new_obj._get_ptr().is_null() });
1243}
1244/// iterator through a vtkCollection.
1245///
1246///
1247/// vtkCollectionIterator provides an alternative way to traverse
1248/// through the objects in a vtkCollection.  Unlike the collection's
1249/// built in interface, this allows multiple iterators to
1250/// simultaneously traverse the collection.  If items are removed from
1251/// the collection, only the iterators currently pointing to those
1252/// items are invalidated.  Other iterators will still continue to
1253/// function normally.
1254#[allow(non_camel_case_types)]
1255pub struct vtkCollectionIterator(*mut core::ffi::c_void);
1256impl vtkCollectionIterator {
1257    /// Creates a new [vtkCollectionIterator] wrapped inside `vtkNew`
1258    #[doc(alias = "vtkCollectionIterator")]
1259    pub fn new() -> Self {
1260        unsafe extern "C" {
1261            fn vtkCollectionIterator_new() -> *mut core::ffi::c_void;
1262        }
1263        Self(unsafe { &mut *vtkCollectionIterator_new() })
1264    }
1265    #[cfg(test)]
1266    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1267        unsafe extern "C" {
1268            fn vtkCollectionIterator_get_ptr(
1269                sself: *mut core::ffi::c_void,
1270            ) -> *mut core::ffi::c_void;
1271        }
1272        unsafe { vtkCollectionIterator_get_ptr(self.0) }
1273    }
1274}
1275impl std::default::Default for vtkCollectionIterator {
1276    fn default() -> Self {
1277        Self::new()
1278    }
1279}
1280impl Drop for vtkCollectionIterator {
1281    fn drop(&mut self) {
1282        unsafe extern "C" {
1283            fn vtkCollectionIterator_destructor(sself: *mut core::ffi::c_void);
1284        }
1285        unsafe { vtkCollectionIterator_destructor(self.0) }
1286        self.0 = core::ptr::null_mut();
1287    }
1288}
1289#[test]
1290fn test_vtkCollectionIterator_create_drop() {
1291    let obj = vtkCollectionIterator::new();
1292    let ptr = obj.0;
1293    assert!(!ptr.is_null());
1294    assert!(unsafe { !obj._get_ptr().is_null() });
1295    drop(obj);
1296    let new_obj = vtkCollectionIterator(ptr);
1297    assert!(unsafe { new_obj._get_ptr().is_null() });
1298}
1299/// composite implicit array of char.
1300///
1301///
1302/// vtkCompositeCharArray is a composite implicit array of values of type char.
1303/// see vtkCompositeArray, vtkCompositeImplicitBackend
1304///
1305/// This file is generated by vtkImplicitArrays.cmake
1306#[allow(non_camel_case_types)]
1307pub struct vtkCompositeCharArray(*mut core::ffi::c_void);
1308impl vtkCompositeCharArray {
1309    /// Creates a new [vtkCompositeCharArray] wrapped inside `vtkNew`
1310    #[doc(alias = "vtkCompositeCharArray")]
1311    pub fn new() -> Self {
1312        unsafe extern "C" {
1313            fn vtkCompositeCharArray_new() -> *mut core::ffi::c_void;
1314        }
1315        Self(unsafe { &mut *vtkCompositeCharArray_new() })
1316    }
1317    #[cfg(test)]
1318    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1319        unsafe extern "C" {
1320            fn vtkCompositeCharArray_get_ptr(
1321                sself: *mut core::ffi::c_void,
1322            ) -> *mut core::ffi::c_void;
1323        }
1324        unsafe { vtkCompositeCharArray_get_ptr(self.0) }
1325    }
1326}
1327impl std::default::Default for vtkCompositeCharArray {
1328    fn default() -> Self {
1329        Self::new()
1330    }
1331}
1332impl Drop for vtkCompositeCharArray {
1333    fn drop(&mut self) {
1334        unsafe extern "C" {
1335            fn vtkCompositeCharArray_destructor(sself: *mut core::ffi::c_void);
1336        }
1337        unsafe { vtkCompositeCharArray_destructor(self.0) }
1338        self.0 = core::ptr::null_mut();
1339    }
1340}
1341#[test]
1342fn test_vtkCompositeCharArray_create_drop() {
1343    let obj = vtkCompositeCharArray::new();
1344    let ptr = obj.0;
1345    assert!(!ptr.is_null());
1346    assert!(unsafe { !obj._get_ptr().is_null() });
1347    drop(obj);
1348    let new_obj = vtkCompositeCharArray(ptr);
1349    assert!(unsafe { new_obj._get_ptr().is_null() });
1350}
1351/// composite implicit array of double.
1352///
1353///
1354/// vtkCompositeDoubleArray is a composite implicit array of values of type double.
1355/// see vtkCompositeArray, vtkCompositeImplicitBackend
1356///
1357/// This file is generated by vtkImplicitArrays.cmake
1358#[allow(non_camel_case_types)]
1359pub struct vtkCompositeDoubleArray(*mut core::ffi::c_void);
1360impl vtkCompositeDoubleArray {
1361    /// Creates a new [vtkCompositeDoubleArray] wrapped inside `vtkNew`
1362    #[doc(alias = "vtkCompositeDoubleArray")]
1363    pub fn new() -> Self {
1364        unsafe extern "C" {
1365            fn vtkCompositeDoubleArray_new() -> *mut core::ffi::c_void;
1366        }
1367        Self(unsafe { &mut *vtkCompositeDoubleArray_new() })
1368    }
1369    #[cfg(test)]
1370    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1371        unsafe extern "C" {
1372            fn vtkCompositeDoubleArray_get_ptr(
1373                sself: *mut core::ffi::c_void,
1374            ) -> *mut core::ffi::c_void;
1375        }
1376        unsafe { vtkCompositeDoubleArray_get_ptr(self.0) }
1377    }
1378}
1379impl std::default::Default for vtkCompositeDoubleArray {
1380    fn default() -> Self {
1381        Self::new()
1382    }
1383}
1384impl Drop for vtkCompositeDoubleArray {
1385    fn drop(&mut self) {
1386        unsafe extern "C" {
1387            fn vtkCompositeDoubleArray_destructor(sself: *mut core::ffi::c_void);
1388        }
1389        unsafe { vtkCompositeDoubleArray_destructor(self.0) }
1390        self.0 = core::ptr::null_mut();
1391    }
1392}
1393#[test]
1394fn test_vtkCompositeDoubleArray_create_drop() {
1395    let obj = vtkCompositeDoubleArray::new();
1396    let ptr = obj.0;
1397    assert!(!ptr.is_null());
1398    assert!(unsafe { !obj._get_ptr().is_null() });
1399    drop(obj);
1400    let new_obj = vtkCompositeDoubleArray(ptr);
1401    assert!(unsafe { new_obj._get_ptr().is_null() });
1402}
1403/// composite implicit array of float.
1404///
1405///
1406/// vtkCompositeFloatArray is a composite implicit array of values of type float.
1407/// see vtkCompositeArray, vtkCompositeImplicitBackend
1408///
1409/// This file is generated by vtkImplicitArrays.cmake
1410#[allow(non_camel_case_types)]
1411pub struct vtkCompositeFloatArray(*mut core::ffi::c_void);
1412impl vtkCompositeFloatArray {
1413    /// Creates a new [vtkCompositeFloatArray] wrapped inside `vtkNew`
1414    #[doc(alias = "vtkCompositeFloatArray")]
1415    pub fn new() -> Self {
1416        unsafe extern "C" {
1417            fn vtkCompositeFloatArray_new() -> *mut core::ffi::c_void;
1418        }
1419        Self(unsafe { &mut *vtkCompositeFloatArray_new() })
1420    }
1421    #[cfg(test)]
1422    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1423        unsafe extern "C" {
1424            fn vtkCompositeFloatArray_get_ptr(
1425                sself: *mut core::ffi::c_void,
1426            ) -> *mut core::ffi::c_void;
1427        }
1428        unsafe { vtkCompositeFloatArray_get_ptr(self.0) }
1429    }
1430}
1431impl std::default::Default for vtkCompositeFloatArray {
1432    fn default() -> Self {
1433        Self::new()
1434    }
1435}
1436impl Drop for vtkCompositeFloatArray {
1437    fn drop(&mut self) {
1438        unsafe extern "C" {
1439            fn vtkCompositeFloatArray_destructor(sself: *mut core::ffi::c_void);
1440        }
1441        unsafe { vtkCompositeFloatArray_destructor(self.0) }
1442        self.0 = core::ptr::null_mut();
1443    }
1444}
1445#[test]
1446fn test_vtkCompositeFloatArray_create_drop() {
1447    let obj = vtkCompositeFloatArray::new();
1448    let ptr = obj.0;
1449    assert!(!ptr.is_null());
1450    assert!(unsafe { !obj._get_ptr().is_null() });
1451    drop(obj);
1452    let new_obj = vtkCompositeFloatArray(ptr);
1453    assert!(unsafe { new_obj._get_ptr().is_null() });
1454}
1455/// composite implicit array of vtkIdType.
1456///
1457///
1458/// vtkCompositeIdTypeArray is a composite implicit array of values of type vtkIdType.
1459/// see vtkCompositeArray, vtkCompositeImplicitBackend
1460///
1461/// This file is generated by vtkImplicitArrays.cmake
1462#[allow(non_camel_case_types)]
1463pub struct vtkCompositeIdTypeArray(*mut core::ffi::c_void);
1464impl vtkCompositeIdTypeArray {
1465    /// Creates a new [vtkCompositeIdTypeArray] wrapped inside `vtkNew`
1466    #[doc(alias = "vtkCompositeIdTypeArray")]
1467    pub fn new() -> Self {
1468        unsafe extern "C" {
1469            fn vtkCompositeIdTypeArray_new() -> *mut core::ffi::c_void;
1470        }
1471        Self(unsafe { &mut *vtkCompositeIdTypeArray_new() })
1472    }
1473    #[cfg(test)]
1474    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1475        unsafe extern "C" {
1476            fn vtkCompositeIdTypeArray_get_ptr(
1477                sself: *mut core::ffi::c_void,
1478            ) -> *mut core::ffi::c_void;
1479        }
1480        unsafe { vtkCompositeIdTypeArray_get_ptr(self.0) }
1481    }
1482}
1483impl std::default::Default for vtkCompositeIdTypeArray {
1484    fn default() -> Self {
1485        Self::new()
1486    }
1487}
1488impl Drop for vtkCompositeIdTypeArray {
1489    fn drop(&mut self) {
1490        unsafe extern "C" {
1491            fn vtkCompositeIdTypeArray_destructor(sself: *mut core::ffi::c_void);
1492        }
1493        unsafe { vtkCompositeIdTypeArray_destructor(self.0) }
1494        self.0 = core::ptr::null_mut();
1495    }
1496}
1497#[test]
1498fn test_vtkCompositeIdTypeArray_create_drop() {
1499    let obj = vtkCompositeIdTypeArray::new();
1500    let ptr = obj.0;
1501    assert!(!ptr.is_null());
1502    assert!(unsafe { !obj._get_ptr().is_null() });
1503    drop(obj);
1504    let new_obj = vtkCompositeIdTypeArray(ptr);
1505    assert!(unsafe { new_obj._get_ptr().is_null() });
1506}
1507/// composite implicit array of int.
1508///
1509///
1510/// vtkCompositeIntArray is a composite implicit array of values of type int.
1511/// see vtkCompositeArray, vtkCompositeImplicitBackend
1512///
1513/// This file is generated by vtkImplicitArrays.cmake
1514#[allow(non_camel_case_types)]
1515pub struct vtkCompositeIntArray(*mut core::ffi::c_void);
1516impl vtkCompositeIntArray {
1517    /// Creates a new [vtkCompositeIntArray] wrapped inside `vtkNew`
1518    #[doc(alias = "vtkCompositeIntArray")]
1519    pub fn new() -> Self {
1520        unsafe extern "C" {
1521            fn vtkCompositeIntArray_new() -> *mut core::ffi::c_void;
1522        }
1523        Self(unsafe { &mut *vtkCompositeIntArray_new() })
1524    }
1525    #[cfg(test)]
1526    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1527        unsafe extern "C" {
1528            fn vtkCompositeIntArray_get_ptr(
1529                sself: *mut core::ffi::c_void,
1530            ) -> *mut core::ffi::c_void;
1531        }
1532        unsafe { vtkCompositeIntArray_get_ptr(self.0) }
1533    }
1534}
1535impl std::default::Default for vtkCompositeIntArray {
1536    fn default() -> Self {
1537        Self::new()
1538    }
1539}
1540impl Drop for vtkCompositeIntArray {
1541    fn drop(&mut self) {
1542        unsafe extern "C" {
1543            fn vtkCompositeIntArray_destructor(sself: *mut core::ffi::c_void);
1544        }
1545        unsafe { vtkCompositeIntArray_destructor(self.0) }
1546        self.0 = core::ptr::null_mut();
1547    }
1548}
1549#[test]
1550fn test_vtkCompositeIntArray_create_drop() {
1551    let obj = vtkCompositeIntArray::new();
1552    let ptr = obj.0;
1553    assert!(!ptr.is_null());
1554    assert!(unsafe { !obj._get_ptr().is_null() });
1555    drop(obj);
1556    let new_obj = vtkCompositeIntArray(ptr);
1557    assert!(unsafe { new_obj._get_ptr().is_null() });
1558}
1559/// composite implicit array of long.
1560///
1561///
1562/// vtkCompositeLongArray is a composite implicit array of values of type long.
1563/// see vtkCompositeArray, vtkCompositeImplicitBackend
1564///
1565/// This file is generated by vtkImplicitArrays.cmake
1566#[allow(non_camel_case_types)]
1567pub struct vtkCompositeLongArray(*mut core::ffi::c_void);
1568impl vtkCompositeLongArray {
1569    /// Creates a new [vtkCompositeLongArray] wrapped inside `vtkNew`
1570    #[doc(alias = "vtkCompositeLongArray")]
1571    pub fn new() -> Self {
1572        unsafe extern "C" {
1573            fn vtkCompositeLongArray_new() -> *mut core::ffi::c_void;
1574        }
1575        Self(unsafe { &mut *vtkCompositeLongArray_new() })
1576    }
1577    #[cfg(test)]
1578    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1579        unsafe extern "C" {
1580            fn vtkCompositeLongArray_get_ptr(
1581                sself: *mut core::ffi::c_void,
1582            ) -> *mut core::ffi::c_void;
1583        }
1584        unsafe { vtkCompositeLongArray_get_ptr(self.0) }
1585    }
1586}
1587impl std::default::Default for vtkCompositeLongArray {
1588    fn default() -> Self {
1589        Self::new()
1590    }
1591}
1592impl Drop for vtkCompositeLongArray {
1593    fn drop(&mut self) {
1594        unsafe extern "C" {
1595            fn vtkCompositeLongArray_destructor(sself: *mut core::ffi::c_void);
1596        }
1597        unsafe { vtkCompositeLongArray_destructor(self.0) }
1598        self.0 = core::ptr::null_mut();
1599    }
1600}
1601#[test]
1602fn test_vtkCompositeLongArray_create_drop() {
1603    let obj = vtkCompositeLongArray::new();
1604    let ptr = obj.0;
1605    assert!(!ptr.is_null());
1606    assert!(unsafe { !obj._get_ptr().is_null() });
1607    drop(obj);
1608    let new_obj = vtkCompositeLongArray(ptr);
1609    assert!(unsafe { new_obj._get_ptr().is_null() });
1610}
1611/// composite implicit array of long long.
1612///
1613///
1614/// vtkCompositeLongLongArray is a composite implicit array of values of type long long.
1615/// see vtkCompositeArray, vtkCompositeImplicitBackend
1616///
1617/// This file is generated by vtkImplicitArrays.cmake
1618#[allow(non_camel_case_types)]
1619pub struct vtkCompositeLongLongArray(*mut core::ffi::c_void);
1620impl vtkCompositeLongLongArray {
1621    /// Creates a new [vtkCompositeLongLongArray] wrapped inside `vtkNew`
1622    #[doc(alias = "vtkCompositeLongLongArray")]
1623    pub fn new() -> Self {
1624        unsafe extern "C" {
1625            fn vtkCompositeLongLongArray_new() -> *mut core::ffi::c_void;
1626        }
1627        Self(unsafe { &mut *vtkCompositeLongLongArray_new() })
1628    }
1629    #[cfg(test)]
1630    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1631        unsafe extern "C" {
1632            fn vtkCompositeLongLongArray_get_ptr(
1633                sself: *mut core::ffi::c_void,
1634            ) -> *mut core::ffi::c_void;
1635        }
1636        unsafe { vtkCompositeLongLongArray_get_ptr(self.0) }
1637    }
1638}
1639impl std::default::Default for vtkCompositeLongLongArray {
1640    fn default() -> Self {
1641        Self::new()
1642    }
1643}
1644impl Drop for vtkCompositeLongLongArray {
1645    fn drop(&mut self) {
1646        unsafe extern "C" {
1647            fn vtkCompositeLongLongArray_destructor(sself: *mut core::ffi::c_void);
1648        }
1649        unsafe { vtkCompositeLongLongArray_destructor(self.0) }
1650        self.0 = core::ptr::null_mut();
1651    }
1652}
1653#[test]
1654fn test_vtkCompositeLongLongArray_create_drop() {
1655    let obj = vtkCompositeLongLongArray::new();
1656    let ptr = obj.0;
1657    assert!(!ptr.is_null());
1658    assert!(unsafe { !obj._get_ptr().is_null() });
1659    drop(obj);
1660    let new_obj = vtkCompositeLongLongArray(ptr);
1661    assert!(unsafe { new_obj._get_ptr().is_null() });
1662}
1663/// composite implicit array of short.
1664///
1665///
1666/// vtkCompositeShortArray is a composite implicit array of values of type short.
1667/// see vtkCompositeArray, vtkCompositeImplicitBackend
1668///
1669/// This file is generated by vtkImplicitArrays.cmake
1670#[allow(non_camel_case_types)]
1671pub struct vtkCompositeShortArray(*mut core::ffi::c_void);
1672impl vtkCompositeShortArray {
1673    /// Creates a new [vtkCompositeShortArray] wrapped inside `vtkNew`
1674    #[doc(alias = "vtkCompositeShortArray")]
1675    pub fn new() -> Self {
1676        unsafe extern "C" {
1677            fn vtkCompositeShortArray_new() -> *mut core::ffi::c_void;
1678        }
1679        Self(unsafe { &mut *vtkCompositeShortArray_new() })
1680    }
1681    #[cfg(test)]
1682    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1683        unsafe extern "C" {
1684            fn vtkCompositeShortArray_get_ptr(
1685                sself: *mut core::ffi::c_void,
1686            ) -> *mut core::ffi::c_void;
1687        }
1688        unsafe { vtkCompositeShortArray_get_ptr(self.0) }
1689    }
1690}
1691impl std::default::Default for vtkCompositeShortArray {
1692    fn default() -> Self {
1693        Self::new()
1694    }
1695}
1696impl Drop for vtkCompositeShortArray {
1697    fn drop(&mut self) {
1698        unsafe extern "C" {
1699            fn vtkCompositeShortArray_destructor(sself: *mut core::ffi::c_void);
1700        }
1701        unsafe { vtkCompositeShortArray_destructor(self.0) }
1702        self.0 = core::ptr::null_mut();
1703    }
1704}
1705#[test]
1706fn test_vtkCompositeShortArray_create_drop() {
1707    let obj = vtkCompositeShortArray::new();
1708    let ptr = obj.0;
1709    assert!(!ptr.is_null());
1710    assert!(unsafe { !obj._get_ptr().is_null() });
1711    drop(obj);
1712    let new_obj = vtkCompositeShortArray(ptr);
1713    assert!(unsafe { new_obj._get_ptr().is_null() });
1714}
1715/// composite implicit array of signed char.
1716///
1717///
1718/// vtkCompositeSignedCharArray is a composite implicit array of values of type signed char.
1719/// see vtkCompositeArray, vtkCompositeImplicitBackend
1720///
1721/// This file is generated by vtkImplicitArrays.cmake
1722#[allow(non_camel_case_types)]
1723pub struct vtkCompositeSignedCharArray(*mut core::ffi::c_void);
1724impl vtkCompositeSignedCharArray {
1725    /// Creates a new [vtkCompositeSignedCharArray] wrapped inside `vtkNew`
1726    #[doc(alias = "vtkCompositeSignedCharArray")]
1727    pub fn new() -> Self {
1728        unsafe extern "C" {
1729            fn vtkCompositeSignedCharArray_new() -> *mut core::ffi::c_void;
1730        }
1731        Self(unsafe { &mut *vtkCompositeSignedCharArray_new() })
1732    }
1733    #[cfg(test)]
1734    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1735        unsafe extern "C" {
1736            fn vtkCompositeSignedCharArray_get_ptr(
1737                sself: *mut core::ffi::c_void,
1738            ) -> *mut core::ffi::c_void;
1739        }
1740        unsafe { vtkCompositeSignedCharArray_get_ptr(self.0) }
1741    }
1742}
1743impl std::default::Default for vtkCompositeSignedCharArray {
1744    fn default() -> Self {
1745        Self::new()
1746    }
1747}
1748impl Drop for vtkCompositeSignedCharArray {
1749    fn drop(&mut self) {
1750        unsafe extern "C" {
1751            fn vtkCompositeSignedCharArray_destructor(sself: *mut core::ffi::c_void);
1752        }
1753        unsafe { vtkCompositeSignedCharArray_destructor(self.0) }
1754        self.0 = core::ptr::null_mut();
1755    }
1756}
1757#[test]
1758fn test_vtkCompositeSignedCharArray_create_drop() {
1759    let obj = vtkCompositeSignedCharArray::new();
1760    let ptr = obj.0;
1761    assert!(!ptr.is_null());
1762    assert!(unsafe { !obj._get_ptr().is_null() });
1763    drop(obj);
1764    let new_obj = vtkCompositeSignedCharArray(ptr);
1765    assert!(unsafe { new_obj._get_ptr().is_null() });
1766}
1767/// composite implicit array of unsigned char.
1768///
1769///
1770/// vtkCompositeUnsignedCharArray is a composite implicit array of values of type unsigned char.
1771/// see vtkCompositeArray, vtkCompositeImplicitBackend
1772///
1773/// This file is generated by vtkImplicitArrays.cmake
1774#[allow(non_camel_case_types)]
1775pub struct vtkCompositeUnsignedCharArray(*mut core::ffi::c_void);
1776impl vtkCompositeUnsignedCharArray {
1777    /// Creates a new [vtkCompositeUnsignedCharArray] wrapped inside `vtkNew`
1778    #[doc(alias = "vtkCompositeUnsignedCharArray")]
1779    pub fn new() -> Self {
1780        unsafe extern "C" {
1781            fn vtkCompositeUnsignedCharArray_new() -> *mut core::ffi::c_void;
1782        }
1783        Self(unsafe { &mut *vtkCompositeUnsignedCharArray_new() })
1784    }
1785    #[cfg(test)]
1786    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1787        unsafe extern "C" {
1788            fn vtkCompositeUnsignedCharArray_get_ptr(
1789                sself: *mut core::ffi::c_void,
1790            ) -> *mut core::ffi::c_void;
1791        }
1792        unsafe { vtkCompositeUnsignedCharArray_get_ptr(self.0) }
1793    }
1794}
1795impl std::default::Default for vtkCompositeUnsignedCharArray {
1796    fn default() -> Self {
1797        Self::new()
1798    }
1799}
1800impl Drop for vtkCompositeUnsignedCharArray {
1801    fn drop(&mut self) {
1802        unsafe extern "C" {
1803            fn vtkCompositeUnsignedCharArray_destructor(sself: *mut core::ffi::c_void);
1804        }
1805        unsafe { vtkCompositeUnsignedCharArray_destructor(self.0) }
1806        self.0 = core::ptr::null_mut();
1807    }
1808}
1809#[test]
1810fn test_vtkCompositeUnsignedCharArray_create_drop() {
1811    let obj = vtkCompositeUnsignedCharArray::new();
1812    let ptr = obj.0;
1813    assert!(!ptr.is_null());
1814    assert!(unsafe { !obj._get_ptr().is_null() });
1815    drop(obj);
1816    let new_obj = vtkCompositeUnsignedCharArray(ptr);
1817    assert!(unsafe { new_obj._get_ptr().is_null() });
1818}
1819/// composite implicit array of unsigned int.
1820///
1821///
1822/// vtkCompositeUnsignedIntArray is a composite implicit array of values of type unsigned int.
1823/// see vtkCompositeArray, vtkCompositeImplicitBackend
1824///
1825/// This file is generated by vtkImplicitArrays.cmake
1826#[allow(non_camel_case_types)]
1827pub struct vtkCompositeUnsignedIntArray(*mut core::ffi::c_void);
1828impl vtkCompositeUnsignedIntArray {
1829    /// Creates a new [vtkCompositeUnsignedIntArray] wrapped inside `vtkNew`
1830    #[doc(alias = "vtkCompositeUnsignedIntArray")]
1831    pub fn new() -> Self {
1832        unsafe extern "C" {
1833            fn vtkCompositeUnsignedIntArray_new() -> *mut core::ffi::c_void;
1834        }
1835        Self(unsafe { &mut *vtkCompositeUnsignedIntArray_new() })
1836    }
1837    #[cfg(test)]
1838    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1839        unsafe extern "C" {
1840            fn vtkCompositeUnsignedIntArray_get_ptr(
1841                sself: *mut core::ffi::c_void,
1842            ) -> *mut core::ffi::c_void;
1843        }
1844        unsafe { vtkCompositeUnsignedIntArray_get_ptr(self.0) }
1845    }
1846}
1847impl std::default::Default for vtkCompositeUnsignedIntArray {
1848    fn default() -> Self {
1849        Self::new()
1850    }
1851}
1852impl Drop for vtkCompositeUnsignedIntArray {
1853    fn drop(&mut self) {
1854        unsafe extern "C" {
1855            fn vtkCompositeUnsignedIntArray_destructor(sself: *mut core::ffi::c_void);
1856        }
1857        unsafe { vtkCompositeUnsignedIntArray_destructor(self.0) }
1858        self.0 = core::ptr::null_mut();
1859    }
1860}
1861#[test]
1862fn test_vtkCompositeUnsignedIntArray_create_drop() {
1863    let obj = vtkCompositeUnsignedIntArray::new();
1864    let ptr = obj.0;
1865    assert!(!ptr.is_null());
1866    assert!(unsafe { !obj._get_ptr().is_null() });
1867    drop(obj);
1868    let new_obj = vtkCompositeUnsignedIntArray(ptr);
1869    assert!(unsafe { new_obj._get_ptr().is_null() });
1870}
1871/// composite implicit array of unsigned long.
1872///
1873///
1874/// vtkCompositeUnsignedLongArray is a composite implicit array of values of type unsigned long.
1875/// see vtkCompositeArray, vtkCompositeImplicitBackend
1876///
1877/// This file is generated by vtkImplicitArrays.cmake
1878#[allow(non_camel_case_types)]
1879pub struct vtkCompositeUnsignedLongArray(*mut core::ffi::c_void);
1880impl vtkCompositeUnsignedLongArray {
1881    /// Creates a new [vtkCompositeUnsignedLongArray] wrapped inside `vtkNew`
1882    #[doc(alias = "vtkCompositeUnsignedLongArray")]
1883    pub fn new() -> Self {
1884        unsafe extern "C" {
1885            fn vtkCompositeUnsignedLongArray_new() -> *mut core::ffi::c_void;
1886        }
1887        Self(unsafe { &mut *vtkCompositeUnsignedLongArray_new() })
1888    }
1889    #[cfg(test)]
1890    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1891        unsafe extern "C" {
1892            fn vtkCompositeUnsignedLongArray_get_ptr(
1893                sself: *mut core::ffi::c_void,
1894            ) -> *mut core::ffi::c_void;
1895        }
1896        unsafe { vtkCompositeUnsignedLongArray_get_ptr(self.0) }
1897    }
1898}
1899impl std::default::Default for vtkCompositeUnsignedLongArray {
1900    fn default() -> Self {
1901        Self::new()
1902    }
1903}
1904impl Drop for vtkCompositeUnsignedLongArray {
1905    fn drop(&mut self) {
1906        unsafe extern "C" {
1907            fn vtkCompositeUnsignedLongArray_destructor(sself: *mut core::ffi::c_void);
1908        }
1909        unsafe { vtkCompositeUnsignedLongArray_destructor(self.0) }
1910        self.0 = core::ptr::null_mut();
1911    }
1912}
1913#[test]
1914fn test_vtkCompositeUnsignedLongArray_create_drop() {
1915    let obj = vtkCompositeUnsignedLongArray::new();
1916    let ptr = obj.0;
1917    assert!(!ptr.is_null());
1918    assert!(unsafe { !obj._get_ptr().is_null() });
1919    drop(obj);
1920    let new_obj = vtkCompositeUnsignedLongArray(ptr);
1921    assert!(unsafe { new_obj._get_ptr().is_null() });
1922}
1923/// composite implicit array of unsigned long long.
1924///
1925///
1926/// vtkCompositeUnsignedLongLongArray is a composite implicit array of values of type unsigned long long.
1927/// see vtkCompositeArray, vtkCompositeImplicitBackend
1928///
1929/// This file is generated by vtkImplicitArrays.cmake
1930#[allow(non_camel_case_types)]
1931pub struct vtkCompositeUnsignedLongLongArray(*mut core::ffi::c_void);
1932impl vtkCompositeUnsignedLongLongArray {
1933    /// Creates a new [vtkCompositeUnsignedLongLongArray] wrapped inside `vtkNew`
1934    #[doc(alias = "vtkCompositeUnsignedLongLongArray")]
1935    pub fn new() -> Self {
1936        unsafe extern "C" {
1937            fn vtkCompositeUnsignedLongLongArray_new() -> *mut core::ffi::c_void;
1938        }
1939        Self(unsafe { &mut *vtkCompositeUnsignedLongLongArray_new() })
1940    }
1941    #[cfg(test)]
1942    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1943        unsafe extern "C" {
1944            fn vtkCompositeUnsignedLongLongArray_get_ptr(
1945                sself: *mut core::ffi::c_void,
1946            ) -> *mut core::ffi::c_void;
1947        }
1948        unsafe { vtkCompositeUnsignedLongLongArray_get_ptr(self.0) }
1949    }
1950}
1951impl std::default::Default for vtkCompositeUnsignedLongLongArray {
1952    fn default() -> Self {
1953        Self::new()
1954    }
1955}
1956impl Drop for vtkCompositeUnsignedLongLongArray {
1957    fn drop(&mut self) {
1958        unsafe extern "C" {
1959            fn vtkCompositeUnsignedLongLongArray_destructor(
1960                sself: *mut core::ffi::c_void,
1961            );
1962        }
1963        unsafe { vtkCompositeUnsignedLongLongArray_destructor(self.0) }
1964        self.0 = core::ptr::null_mut();
1965    }
1966}
1967#[test]
1968fn test_vtkCompositeUnsignedLongLongArray_create_drop() {
1969    let obj = vtkCompositeUnsignedLongLongArray::new();
1970    let ptr = obj.0;
1971    assert!(!ptr.is_null());
1972    assert!(unsafe { !obj._get_ptr().is_null() });
1973    drop(obj);
1974    let new_obj = vtkCompositeUnsignedLongLongArray(ptr);
1975    assert!(unsafe { new_obj._get_ptr().is_null() });
1976}
1977/// composite implicit array of unsigned short.
1978///
1979///
1980/// vtkCompositeUnsignedShortArray is a composite implicit array of values of type unsigned short.
1981/// see vtkCompositeArray, vtkCompositeImplicitBackend
1982///
1983/// This file is generated by vtkImplicitArrays.cmake
1984#[allow(non_camel_case_types)]
1985pub struct vtkCompositeUnsignedShortArray(*mut core::ffi::c_void);
1986impl vtkCompositeUnsignedShortArray {
1987    /// Creates a new [vtkCompositeUnsignedShortArray] wrapped inside `vtkNew`
1988    #[doc(alias = "vtkCompositeUnsignedShortArray")]
1989    pub fn new() -> Self {
1990        unsafe extern "C" {
1991            fn vtkCompositeUnsignedShortArray_new() -> *mut core::ffi::c_void;
1992        }
1993        Self(unsafe { &mut *vtkCompositeUnsignedShortArray_new() })
1994    }
1995    #[cfg(test)]
1996    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
1997        unsafe extern "C" {
1998            fn vtkCompositeUnsignedShortArray_get_ptr(
1999                sself: *mut core::ffi::c_void,
2000            ) -> *mut core::ffi::c_void;
2001        }
2002        unsafe { vtkCompositeUnsignedShortArray_get_ptr(self.0) }
2003    }
2004}
2005impl std::default::Default for vtkCompositeUnsignedShortArray {
2006    fn default() -> Self {
2007        Self::new()
2008    }
2009}
2010impl Drop for vtkCompositeUnsignedShortArray {
2011    fn drop(&mut self) {
2012        unsafe extern "C" {
2013            fn vtkCompositeUnsignedShortArray_destructor(sself: *mut core::ffi::c_void);
2014        }
2015        unsafe { vtkCompositeUnsignedShortArray_destructor(self.0) }
2016        self.0 = core::ptr::null_mut();
2017    }
2018}
2019#[test]
2020fn test_vtkCompositeUnsignedShortArray_create_drop() {
2021    let obj = vtkCompositeUnsignedShortArray::new();
2022    let ptr = obj.0;
2023    assert!(!ptr.is_null());
2024    assert!(unsafe { !obj._get_ptr().is_null() });
2025    drop(obj);
2026    let new_obj = vtkCompositeUnsignedShortArray(ptr);
2027    assert!(unsafe { new_obj._get_ptr().is_null() });
2028}
2029/// constant implicit array of char.
2030///
2031///
2032/// vtkConstantCharArray is a constant implicit array of values of type char.
2033/// see vtkConstantArray, vtkConstantImplicitBackend
2034///
2035/// This file is generated by vtkImplicitArrays.cmake
2036#[allow(non_camel_case_types)]
2037pub struct vtkConstantCharArray(*mut core::ffi::c_void);
2038impl vtkConstantCharArray {
2039    /// Creates a new [vtkConstantCharArray] wrapped inside `vtkNew`
2040    #[doc(alias = "vtkConstantCharArray")]
2041    pub fn new() -> Self {
2042        unsafe extern "C" {
2043            fn vtkConstantCharArray_new() -> *mut core::ffi::c_void;
2044        }
2045        Self(unsafe { &mut *vtkConstantCharArray_new() })
2046    }
2047    #[cfg(test)]
2048    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2049        unsafe extern "C" {
2050            fn vtkConstantCharArray_get_ptr(
2051                sself: *mut core::ffi::c_void,
2052            ) -> *mut core::ffi::c_void;
2053        }
2054        unsafe { vtkConstantCharArray_get_ptr(self.0) }
2055    }
2056}
2057impl std::default::Default for vtkConstantCharArray {
2058    fn default() -> Self {
2059        Self::new()
2060    }
2061}
2062impl Drop for vtkConstantCharArray {
2063    fn drop(&mut self) {
2064        unsafe extern "C" {
2065            fn vtkConstantCharArray_destructor(sself: *mut core::ffi::c_void);
2066        }
2067        unsafe { vtkConstantCharArray_destructor(self.0) }
2068        self.0 = core::ptr::null_mut();
2069    }
2070}
2071#[test]
2072fn test_vtkConstantCharArray_create_drop() {
2073    let obj = vtkConstantCharArray::new();
2074    let ptr = obj.0;
2075    assert!(!ptr.is_null());
2076    assert!(unsafe { !obj._get_ptr().is_null() });
2077    drop(obj);
2078    let new_obj = vtkConstantCharArray(ptr);
2079    assert!(unsafe { new_obj._get_ptr().is_null() });
2080}
2081/// constant implicit array of double.
2082///
2083///
2084/// vtkConstantDoubleArray is a constant implicit array of values of type double.
2085/// see vtkConstantArray, vtkConstantImplicitBackend
2086///
2087/// This file is generated by vtkImplicitArrays.cmake
2088#[allow(non_camel_case_types)]
2089pub struct vtkConstantDoubleArray(*mut core::ffi::c_void);
2090impl vtkConstantDoubleArray {
2091    /// Creates a new [vtkConstantDoubleArray] wrapped inside `vtkNew`
2092    #[doc(alias = "vtkConstantDoubleArray")]
2093    pub fn new() -> Self {
2094        unsafe extern "C" {
2095            fn vtkConstantDoubleArray_new() -> *mut core::ffi::c_void;
2096        }
2097        Self(unsafe { &mut *vtkConstantDoubleArray_new() })
2098    }
2099    #[cfg(test)]
2100    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2101        unsafe extern "C" {
2102            fn vtkConstantDoubleArray_get_ptr(
2103                sself: *mut core::ffi::c_void,
2104            ) -> *mut core::ffi::c_void;
2105        }
2106        unsafe { vtkConstantDoubleArray_get_ptr(self.0) }
2107    }
2108}
2109impl std::default::Default for vtkConstantDoubleArray {
2110    fn default() -> Self {
2111        Self::new()
2112    }
2113}
2114impl Drop for vtkConstantDoubleArray {
2115    fn drop(&mut self) {
2116        unsafe extern "C" {
2117            fn vtkConstantDoubleArray_destructor(sself: *mut core::ffi::c_void);
2118        }
2119        unsafe { vtkConstantDoubleArray_destructor(self.0) }
2120        self.0 = core::ptr::null_mut();
2121    }
2122}
2123#[test]
2124fn test_vtkConstantDoubleArray_create_drop() {
2125    let obj = vtkConstantDoubleArray::new();
2126    let ptr = obj.0;
2127    assert!(!ptr.is_null());
2128    assert!(unsafe { !obj._get_ptr().is_null() });
2129    drop(obj);
2130    let new_obj = vtkConstantDoubleArray(ptr);
2131    assert!(unsafe { new_obj._get_ptr().is_null() });
2132}
2133/// constant implicit array of float.
2134///
2135///
2136/// vtkConstantFloatArray is a constant implicit array of values of type float.
2137/// see vtkConstantArray, vtkConstantImplicitBackend
2138///
2139/// This file is generated by vtkImplicitArrays.cmake
2140#[allow(non_camel_case_types)]
2141pub struct vtkConstantFloatArray(*mut core::ffi::c_void);
2142impl vtkConstantFloatArray {
2143    /// Creates a new [vtkConstantFloatArray] wrapped inside `vtkNew`
2144    #[doc(alias = "vtkConstantFloatArray")]
2145    pub fn new() -> Self {
2146        unsafe extern "C" {
2147            fn vtkConstantFloatArray_new() -> *mut core::ffi::c_void;
2148        }
2149        Self(unsafe { &mut *vtkConstantFloatArray_new() })
2150    }
2151    #[cfg(test)]
2152    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2153        unsafe extern "C" {
2154            fn vtkConstantFloatArray_get_ptr(
2155                sself: *mut core::ffi::c_void,
2156            ) -> *mut core::ffi::c_void;
2157        }
2158        unsafe { vtkConstantFloatArray_get_ptr(self.0) }
2159    }
2160}
2161impl std::default::Default for vtkConstantFloatArray {
2162    fn default() -> Self {
2163        Self::new()
2164    }
2165}
2166impl Drop for vtkConstantFloatArray {
2167    fn drop(&mut self) {
2168        unsafe extern "C" {
2169            fn vtkConstantFloatArray_destructor(sself: *mut core::ffi::c_void);
2170        }
2171        unsafe { vtkConstantFloatArray_destructor(self.0) }
2172        self.0 = core::ptr::null_mut();
2173    }
2174}
2175#[test]
2176fn test_vtkConstantFloatArray_create_drop() {
2177    let obj = vtkConstantFloatArray::new();
2178    let ptr = obj.0;
2179    assert!(!ptr.is_null());
2180    assert!(unsafe { !obj._get_ptr().is_null() });
2181    drop(obj);
2182    let new_obj = vtkConstantFloatArray(ptr);
2183    assert!(unsafe { new_obj._get_ptr().is_null() });
2184}
2185/// constant implicit array of vtkIdType.
2186///
2187///
2188/// vtkConstantIdTypeArray is a constant implicit array of values of type vtkIdType.
2189/// see vtkConstantArray, vtkConstantImplicitBackend
2190///
2191/// This file is generated by vtkImplicitArrays.cmake
2192#[allow(non_camel_case_types)]
2193pub struct vtkConstantIdTypeArray(*mut core::ffi::c_void);
2194impl vtkConstantIdTypeArray {
2195    /// Creates a new [vtkConstantIdTypeArray] wrapped inside `vtkNew`
2196    #[doc(alias = "vtkConstantIdTypeArray")]
2197    pub fn new() -> Self {
2198        unsafe extern "C" {
2199            fn vtkConstantIdTypeArray_new() -> *mut core::ffi::c_void;
2200        }
2201        Self(unsafe { &mut *vtkConstantIdTypeArray_new() })
2202    }
2203    #[cfg(test)]
2204    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2205        unsafe extern "C" {
2206            fn vtkConstantIdTypeArray_get_ptr(
2207                sself: *mut core::ffi::c_void,
2208            ) -> *mut core::ffi::c_void;
2209        }
2210        unsafe { vtkConstantIdTypeArray_get_ptr(self.0) }
2211    }
2212}
2213impl std::default::Default for vtkConstantIdTypeArray {
2214    fn default() -> Self {
2215        Self::new()
2216    }
2217}
2218impl Drop for vtkConstantIdTypeArray {
2219    fn drop(&mut self) {
2220        unsafe extern "C" {
2221            fn vtkConstantIdTypeArray_destructor(sself: *mut core::ffi::c_void);
2222        }
2223        unsafe { vtkConstantIdTypeArray_destructor(self.0) }
2224        self.0 = core::ptr::null_mut();
2225    }
2226}
2227#[test]
2228fn test_vtkConstantIdTypeArray_create_drop() {
2229    let obj = vtkConstantIdTypeArray::new();
2230    let ptr = obj.0;
2231    assert!(!ptr.is_null());
2232    assert!(unsafe { !obj._get_ptr().is_null() });
2233    drop(obj);
2234    let new_obj = vtkConstantIdTypeArray(ptr);
2235    assert!(unsafe { new_obj._get_ptr().is_null() });
2236}
2237/// constant implicit array of int.
2238///
2239///
2240/// vtkConstantIntArray is a constant implicit array of values of type int.
2241/// see vtkConstantArray, vtkConstantImplicitBackend
2242///
2243/// This file is generated by vtkImplicitArrays.cmake
2244#[allow(non_camel_case_types)]
2245pub struct vtkConstantIntArray(*mut core::ffi::c_void);
2246impl vtkConstantIntArray {
2247    /// Creates a new [vtkConstantIntArray] wrapped inside `vtkNew`
2248    #[doc(alias = "vtkConstantIntArray")]
2249    pub fn new() -> Self {
2250        unsafe extern "C" {
2251            fn vtkConstantIntArray_new() -> *mut core::ffi::c_void;
2252        }
2253        Self(unsafe { &mut *vtkConstantIntArray_new() })
2254    }
2255    #[cfg(test)]
2256    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2257        unsafe extern "C" {
2258            fn vtkConstantIntArray_get_ptr(
2259                sself: *mut core::ffi::c_void,
2260            ) -> *mut core::ffi::c_void;
2261        }
2262        unsafe { vtkConstantIntArray_get_ptr(self.0) }
2263    }
2264}
2265impl std::default::Default for vtkConstantIntArray {
2266    fn default() -> Self {
2267        Self::new()
2268    }
2269}
2270impl Drop for vtkConstantIntArray {
2271    fn drop(&mut self) {
2272        unsafe extern "C" {
2273            fn vtkConstantIntArray_destructor(sself: *mut core::ffi::c_void);
2274        }
2275        unsafe { vtkConstantIntArray_destructor(self.0) }
2276        self.0 = core::ptr::null_mut();
2277    }
2278}
2279#[test]
2280fn test_vtkConstantIntArray_create_drop() {
2281    let obj = vtkConstantIntArray::new();
2282    let ptr = obj.0;
2283    assert!(!ptr.is_null());
2284    assert!(unsafe { !obj._get_ptr().is_null() });
2285    drop(obj);
2286    let new_obj = vtkConstantIntArray(ptr);
2287    assert!(unsafe { new_obj._get_ptr().is_null() });
2288}
2289/// constant implicit array of long.
2290///
2291///
2292/// vtkConstantLongArray is a constant implicit array of values of type long.
2293/// see vtkConstantArray, vtkConstantImplicitBackend
2294///
2295/// This file is generated by vtkImplicitArrays.cmake
2296#[allow(non_camel_case_types)]
2297pub struct vtkConstantLongArray(*mut core::ffi::c_void);
2298impl vtkConstantLongArray {
2299    /// Creates a new [vtkConstantLongArray] wrapped inside `vtkNew`
2300    #[doc(alias = "vtkConstantLongArray")]
2301    pub fn new() -> Self {
2302        unsafe extern "C" {
2303            fn vtkConstantLongArray_new() -> *mut core::ffi::c_void;
2304        }
2305        Self(unsafe { &mut *vtkConstantLongArray_new() })
2306    }
2307    #[cfg(test)]
2308    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2309        unsafe extern "C" {
2310            fn vtkConstantLongArray_get_ptr(
2311                sself: *mut core::ffi::c_void,
2312            ) -> *mut core::ffi::c_void;
2313        }
2314        unsafe { vtkConstantLongArray_get_ptr(self.0) }
2315    }
2316}
2317impl std::default::Default for vtkConstantLongArray {
2318    fn default() -> Self {
2319        Self::new()
2320    }
2321}
2322impl Drop for vtkConstantLongArray {
2323    fn drop(&mut self) {
2324        unsafe extern "C" {
2325            fn vtkConstantLongArray_destructor(sself: *mut core::ffi::c_void);
2326        }
2327        unsafe { vtkConstantLongArray_destructor(self.0) }
2328        self.0 = core::ptr::null_mut();
2329    }
2330}
2331#[test]
2332fn test_vtkConstantLongArray_create_drop() {
2333    let obj = vtkConstantLongArray::new();
2334    let ptr = obj.0;
2335    assert!(!ptr.is_null());
2336    assert!(unsafe { !obj._get_ptr().is_null() });
2337    drop(obj);
2338    let new_obj = vtkConstantLongArray(ptr);
2339    assert!(unsafe { new_obj._get_ptr().is_null() });
2340}
2341/// constant implicit array of long long.
2342///
2343///
2344/// vtkConstantLongLongArray is a constant implicit array of values of type long long.
2345/// see vtkConstantArray, vtkConstantImplicitBackend
2346///
2347/// This file is generated by vtkImplicitArrays.cmake
2348#[allow(non_camel_case_types)]
2349pub struct vtkConstantLongLongArray(*mut core::ffi::c_void);
2350impl vtkConstantLongLongArray {
2351    /// Creates a new [vtkConstantLongLongArray] wrapped inside `vtkNew`
2352    #[doc(alias = "vtkConstantLongLongArray")]
2353    pub fn new() -> Self {
2354        unsafe extern "C" {
2355            fn vtkConstantLongLongArray_new() -> *mut core::ffi::c_void;
2356        }
2357        Self(unsafe { &mut *vtkConstantLongLongArray_new() })
2358    }
2359    #[cfg(test)]
2360    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2361        unsafe extern "C" {
2362            fn vtkConstantLongLongArray_get_ptr(
2363                sself: *mut core::ffi::c_void,
2364            ) -> *mut core::ffi::c_void;
2365        }
2366        unsafe { vtkConstantLongLongArray_get_ptr(self.0) }
2367    }
2368}
2369impl std::default::Default for vtkConstantLongLongArray {
2370    fn default() -> Self {
2371        Self::new()
2372    }
2373}
2374impl Drop for vtkConstantLongLongArray {
2375    fn drop(&mut self) {
2376        unsafe extern "C" {
2377            fn vtkConstantLongLongArray_destructor(sself: *mut core::ffi::c_void);
2378        }
2379        unsafe { vtkConstantLongLongArray_destructor(self.0) }
2380        self.0 = core::ptr::null_mut();
2381    }
2382}
2383#[test]
2384fn test_vtkConstantLongLongArray_create_drop() {
2385    let obj = vtkConstantLongLongArray::new();
2386    let ptr = obj.0;
2387    assert!(!ptr.is_null());
2388    assert!(unsafe { !obj._get_ptr().is_null() });
2389    drop(obj);
2390    let new_obj = vtkConstantLongLongArray(ptr);
2391    assert!(unsafe { new_obj._get_ptr().is_null() });
2392}
2393/// constant implicit array of short.
2394///
2395///
2396/// vtkConstantShortArray is a constant implicit array of values of type short.
2397/// see vtkConstantArray, vtkConstantImplicitBackend
2398///
2399/// This file is generated by vtkImplicitArrays.cmake
2400#[allow(non_camel_case_types)]
2401pub struct vtkConstantShortArray(*mut core::ffi::c_void);
2402impl vtkConstantShortArray {
2403    /// Creates a new [vtkConstantShortArray] wrapped inside `vtkNew`
2404    #[doc(alias = "vtkConstantShortArray")]
2405    pub fn new() -> Self {
2406        unsafe extern "C" {
2407            fn vtkConstantShortArray_new() -> *mut core::ffi::c_void;
2408        }
2409        Self(unsafe { &mut *vtkConstantShortArray_new() })
2410    }
2411    #[cfg(test)]
2412    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2413        unsafe extern "C" {
2414            fn vtkConstantShortArray_get_ptr(
2415                sself: *mut core::ffi::c_void,
2416            ) -> *mut core::ffi::c_void;
2417        }
2418        unsafe { vtkConstantShortArray_get_ptr(self.0) }
2419    }
2420}
2421impl std::default::Default for vtkConstantShortArray {
2422    fn default() -> Self {
2423        Self::new()
2424    }
2425}
2426impl Drop for vtkConstantShortArray {
2427    fn drop(&mut self) {
2428        unsafe extern "C" {
2429            fn vtkConstantShortArray_destructor(sself: *mut core::ffi::c_void);
2430        }
2431        unsafe { vtkConstantShortArray_destructor(self.0) }
2432        self.0 = core::ptr::null_mut();
2433    }
2434}
2435#[test]
2436fn test_vtkConstantShortArray_create_drop() {
2437    let obj = vtkConstantShortArray::new();
2438    let ptr = obj.0;
2439    assert!(!ptr.is_null());
2440    assert!(unsafe { !obj._get_ptr().is_null() });
2441    drop(obj);
2442    let new_obj = vtkConstantShortArray(ptr);
2443    assert!(unsafe { new_obj._get_ptr().is_null() });
2444}
2445/// constant implicit array of signed char.
2446///
2447///
2448/// vtkConstantSignedCharArray is a constant implicit array of values of type signed char.
2449/// see vtkConstantArray, vtkConstantImplicitBackend
2450///
2451/// This file is generated by vtkImplicitArrays.cmake
2452#[allow(non_camel_case_types)]
2453pub struct vtkConstantSignedCharArray(*mut core::ffi::c_void);
2454impl vtkConstantSignedCharArray {
2455    /// Creates a new [vtkConstantSignedCharArray] wrapped inside `vtkNew`
2456    #[doc(alias = "vtkConstantSignedCharArray")]
2457    pub fn new() -> Self {
2458        unsafe extern "C" {
2459            fn vtkConstantSignedCharArray_new() -> *mut core::ffi::c_void;
2460        }
2461        Self(unsafe { &mut *vtkConstantSignedCharArray_new() })
2462    }
2463    #[cfg(test)]
2464    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2465        unsafe extern "C" {
2466            fn vtkConstantSignedCharArray_get_ptr(
2467                sself: *mut core::ffi::c_void,
2468            ) -> *mut core::ffi::c_void;
2469        }
2470        unsafe { vtkConstantSignedCharArray_get_ptr(self.0) }
2471    }
2472}
2473impl std::default::Default for vtkConstantSignedCharArray {
2474    fn default() -> Self {
2475        Self::new()
2476    }
2477}
2478impl Drop for vtkConstantSignedCharArray {
2479    fn drop(&mut self) {
2480        unsafe extern "C" {
2481            fn vtkConstantSignedCharArray_destructor(sself: *mut core::ffi::c_void);
2482        }
2483        unsafe { vtkConstantSignedCharArray_destructor(self.0) }
2484        self.0 = core::ptr::null_mut();
2485    }
2486}
2487#[test]
2488fn test_vtkConstantSignedCharArray_create_drop() {
2489    let obj = vtkConstantSignedCharArray::new();
2490    let ptr = obj.0;
2491    assert!(!ptr.is_null());
2492    assert!(unsafe { !obj._get_ptr().is_null() });
2493    drop(obj);
2494    let new_obj = vtkConstantSignedCharArray(ptr);
2495    assert!(unsafe { new_obj._get_ptr().is_null() });
2496}
2497/// constant implicit array of unsigned char.
2498///
2499///
2500/// vtkConstantUnsignedCharArray is a constant implicit array of values of type unsigned char.
2501/// see vtkConstantArray, vtkConstantImplicitBackend
2502///
2503/// This file is generated by vtkImplicitArrays.cmake
2504#[allow(non_camel_case_types)]
2505pub struct vtkConstantUnsignedCharArray(*mut core::ffi::c_void);
2506impl vtkConstantUnsignedCharArray {
2507    /// Creates a new [vtkConstantUnsignedCharArray] wrapped inside `vtkNew`
2508    #[doc(alias = "vtkConstantUnsignedCharArray")]
2509    pub fn new() -> Self {
2510        unsafe extern "C" {
2511            fn vtkConstantUnsignedCharArray_new() -> *mut core::ffi::c_void;
2512        }
2513        Self(unsafe { &mut *vtkConstantUnsignedCharArray_new() })
2514    }
2515    #[cfg(test)]
2516    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2517        unsafe extern "C" {
2518            fn vtkConstantUnsignedCharArray_get_ptr(
2519                sself: *mut core::ffi::c_void,
2520            ) -> *mut core::ffi::c_void;
2521        }
2522        unsafe { vtkConstantUnsignedCharArray_get_ptr(self.0) }
2523    }
2524}
2525impl std::default::Default for vtkConstantUnsignedCharArray {
2526    fn default() -> Self {
2527        Self::new()
2528    }
2529}
2530impl Drop for vtkConstantUnsignedCharArray {
2531    fn drop(&mut self) {
2532        unsafe extern "C" {
2533            fn vtkConstantUnsignedCharArray_destructor(sself: *mut core::ffi::c_void);
2534        }
2535        unsafe { vtkConstantUnsignedCharArray_destructor(self.0) }
2536        self.0 = core::ptr::null_mut();
2537    }
2538}
2539#[test]
2540fn test_vtkConstantUnsignedCharArray_create_drop() {
2541    let obj = vtkConstantUnsignedCharArray::new();
2542    let ptr = obj.0;
2543    assert!(!ptr.is_null());
2544    assert!(unsafe { !obj._get_ptr().is_null() });
2545    drop(obj);
2546    let new_obj = vtkConstantUnsignedCharArray(ptr);
2547    assert!(unsafe { new_obj._get_ptr().is_null() });
2548}
2549/// constant implicit array of unsigned int.
2550///
2551///
2552/// vtkConstantUnsignedIntArray is a constant implicit array of values of type unsigned int.
2553/// see vtkConstantArray, vtkConstantImplicitBackend
2554///
2555/// This file is generated by vtkImplicitArrays.cmake
2556#[allow(non_camel_case_types)]
2557pub struct vtkConstantUnsignedIntArray(*mut core::ffi::c_void);
2558impl vtkConstantUnsignedIntArray {
2559    /// Creates a new [vtkConstantUnsignedIntArray] wrapped inside `vtkNew`
2560    #[doc(alias = "vtkConstantUnsignedIntArray")]
2561    pub fn new() -> Self {
2562        unsafe extern "C" {
2563            fn vtkConstantUnsignedIntArray_new() -> *mut core::ffi::c_void;
2564        }
2565        Self(unsafe { &mut *vtkConstantUnsignedIntArray_new() })
2566    }
2567    #[cfg(test)]
2568    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2569        unsafe extern "C" {
2570            fn vtkConstantUnsignedIntArray_get_ptr(
2571                sself: *mut core::ffi::c_void,
2572            ) -> *mut core::ffi::c_void;
2573        }
2574        unsafe { vtkConstantUnsignedIntArray_get_ptr(self.0) }
2575    }
2576}
2577impl std::default::Default for vtkConstantUnsignedIntArray {
2578    fn default() -> Self {
2579        Self::new()
2580    }
2581}
2582impl Drop for vtkConstantUnsignedIntArray {
2583    fn drop(&mut self) {
2584        unsafe extern "C" {
2585            fn vtkConstantUnsignedIntArray_destructor(sself: *mut core::ffi::c_void);
2586        }
2587        unsafe { vtkConstantUnsignedIntArray_destructor(self.0) }
2588        self.0 = core::ptr::null_mut();
2589    }
2590}
2591#[test]
2592fn test_vtkConstantUnsignedIntArray_create_drop() {
2593    let obj = vtkConstantUnsignedIntArray::new();
2594    let ptr = obj.0;
2595    assert!(!ptr.is_null());
2596    assert!(unsafe { !obj._get_ptr().is_null() });
2597    drop(obj);
2598    let new_obj = vtkConstantUnsignedIntArray(ptr);
2599    assert!(unsafe { new_obj._get_ptr().is_null() });
2600}
2601/// constant implicit array of unsigned long.
2602///
2603///
2604/// vtkConstantUnsignedLongArray is a constant implicit array of values of type unsigned long.
2605/// see vtkConstantArray, vtkConstantImplicitBackend
2606///
2607/// This file is generated by vtkImplicitArrays.cmake
2608#[allow(non_camel_case_types)]
2609pub struct vtkConstantUnsignedLongArray(*mut core::ffi::c_void);
2610impl vtkConstantUnsignedLongArray {
2611    /// Creates a new [vtkConstantUnsignedLongArray] wrapped inside `vtkNew`
2612    #[doc(alias = "vtkConstantUnsignedLongArray")]
2613    pub fn new() -> Self {
2614        unsafe extern "C" {
2615            fn vtkConstantUnsignedLongArray_new() -> *mut core::ffi::c_void;
2616        }
2617        Self(unsafe { &mut *vtkConstantUnsignedLongArray_new() })
2618    }
2619    #[cfg(test)]
2620    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2621        unsafe extern "C" {
2622            fn vtkConstantUnsignedLongArray_get_ptr(
2623                sself: *mut core::ffi::c_void,
2624            ) -> *mut core::ffi::c_void;
2625        }
2626        unsafe { vtkConstantUnsignedLongArray_get_ptr(self.0) }
2627    }
2628}
2629impl std::default::Default for vtkConstantUnsignedLongArray {
2630    fn default() -> Self {
2631        Self::new()
2632    }
2633}
2634impl Drop for vtkConstantUnsignedLongArray {
2635    fn drop(&mut self) {
2636        unsafe extern "C" {
2637            fn vtkConstantUnsignedLongArray_destructor(sself: *mut core::ffi::c_void);
2638        }
2639        unsafe { vtkConstantUnsignedLongArray_destructor(self.0) }
2640        self.0 = core::ptr::null_mut();
2641    }
2642}
2643#[test]
2644fn test_vtkConstantUnsignedLongArray_create_drop() {
2645    let obj = vtkConstantUnsignedLongArray::new();
2646    let ptr = obj.0;
2647    assert!(!ptr.is_null());
2648    assert!(unsafe { !obj._get_ptr().is_null() });
2649    drop(obj);
2650    let new_obj = vtkConstantUnsignedLongArray(ptr);
2651    assert!(unsafe { new_obj._get_ptr().is_null() });
2652}
2653/// constant implicit array of unsigned long long.
2654///
2655///
2656/// vtkConstantUnsignedLongLongArray is a constant implicit array of values of type unsigned long long.
2657/// see vtkConstantArray, vtkConstantImplicitBackend
2658///
2659/// This file is generated by vtkImplicitArrays.cmake
2660#[allow(non_camel_case_types)]
2661pub struct vtkConstantUnsignedLongLongArray(*mut core::ffi::c_void);
2662impl vtkConstantUnsignedLongLongArray {
2663    /// Creates a new [vtkConstantUnsignedLongLongArray] wrapped inside `vtkNew`
2664    #[doc(alias = "vtkConstantUnsignedLongLongArray")]
2665    pub fn new() -> Self {
2666        unsafe extern "C" {
2667            fn vtkConstantUnsignedLongLongArray_new() -> *mut core::ffi::c_void;
2668        }
2669        Self(unsafe { &mut *vtkConstantUnsignedLongLongArray_new() })
2670    }
2671    #[cfg(test)]
2672    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2673        unsafe extern "C" {
2674            fn vtkConstantUnsignedLongLongArray_get_ptr(
2675                sself: *mut core::ffi::c_void,
2676            ) -> *mut core::ffi::c_void;
2677        }
2678        unsafe { vtkConstantUnsignedLongLongArray_get_ptr(self.0) }
2679    }
2680}
2681impl std::default::Default for vtkConstantUnsignedLongLongArray {
2682    fn default() -> Self {
2683        Self::new()
2684    }
2685}
2686impl Drop for vtkConstantUnsignedLongLongArray {
2687    fn drop(&mut self) {
2688        unsafe extern "C" {
2689            fn vtkConstantUnsignedLongLongArray_destructor(
2690                sself: *mut core::ffi::c_void,
2691            );
2692        }
2693        unsafe { vtkConstantUnsignedLongLongArray_destructor(self.0) }
2694        self.0 = core::ptr::null_mut();
2695    }
2696}
2697#[test]
2698fn test_vtkConstantUnsignedLongLongArray_create_drop() {
2699    let obj = vtkConstantUnsignedLongLongArray::new();
2700    let ptr = obj.0;
2701    assert!(!ptr.is_null());
2702    assert!(unsafe { !obj._get_ptr().is_null() });
2703    drop(obj);
2704    let new_obj = vtkConstantUnsignedLongLongArray(ptr);
2705    assert!(unsafe { new_obj._get_ptr().is_null() });
2706}
2707/// constant implicit array of unsigned short.
2708///
2709///
2710/// vtkConstantUnsignedShortArray is a constant implicit array of values of type unsigned short.
2711/// see vtkConstantArray, vtkConstantImplicitBackend
2712///
2713/// This file is generated by vtkImplicitArrays.cmake
2714#[allow(non_camel_case_types)]
2715pub struct vtkConstantUnsignedShortArray(*mut core::ffi::c_void);
2716impl vtkConstantUnsignedShortArray {
2717    /// Creates a new [vtkConstantUnsignedShortArray] wrapped inside `vtkNew`
2718    #[doc(alias = "vtkConstantUnsignedShortArray")]
2719    pub fn new() -> Self {
2720        unsafe extern "C" {
2721            fn vtkConstantUnsignedShortArray_new() -> *mut core::ffi::c_void;
2722        }
2723        Self(unsafe { &mut *vtkConstantUnsignedShortArray_new() })
2724    }
2725    #[cfg(test)]
2726    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2727        unsafe extern "C" {
2728            fn vtkConstantUnsignedShortArray_get_ptr(
2729                sself: *mut core::ffi::c_void,
2730            ) -> *mut core::ffi::c_void;
2731        }
2732        unsafe { vtkConstantUnsignedShortArray_get_ptr(self.0) }
2733    }
2734}
2735impl std::default::Default for vtkConstantUnsignedShortArray {
2736    fn default() -> Self {
2737        Self::new()
2738    }
2739}
2740impl Drop for vtkConstantUnsignedShortArray {
2741    fn drop(&mut self) {
2742        unsafe extern "C" {
2743            fn vtkConstantUnsignedShortArray_destructor(sself: *mut core::ffi::c_void);
2744        }
2745        unsafe { vtkConstantUnsignedShortArray_destructor(self.0) }
2746        self.0 = core::ptr::null_mut();
2747    }
2748}
2749#[test]
2750fn test_vtkConstantUnsignedShortArray_create_drop() {
2751    let obj = vtkConstantUnsignedShortArray::new();
2752    let ptr = obj.0;
2753    assert!(!ptr.is_null());
2754    assert!(unsafe { !obj._get_ptr().is_null() });
2755    drop(obj);
2756    let new_obj = vtkConstantUnsignedShortArray(ptr);
2757    assert!(unsafe { new_obj._get_ptr().is_null() });
2758}
2759/// maintain an ordered list of dataarray objects
2760///
2761///
2762/// vtkDataArrayCollection is an object that creates and manipulates lists of
2763/// datasets. See also vtkCollection and subclasses.
2764#[allow(non_camel_case_types)]
2765pub struct vtkDataArrayCollection(*mut core::ffi::c_void);
2766impl vtkDataArrayCollection {
2767    /// Creates a new [vtkDataArrayCollection] wrapped inside `vtkNew`
2768    #[doc(alias = "vtkDataArrayCollection")]
2769    pub fn new() -> Self {
2770        unsafe extern "C" {
2771            fn vtkDataArrayCollection_new() -> *mut core::ffi::c_void;
2772        }
2773        Self(unsafe { &mut *vtkDataArrayCollection_new() })
2774    }
2775    #[cfg(test)]
2776    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2777        unsafe extern "C" {
2778            fn vtkDataArrayCollection_get_ptr(
2779                sself: *mut core::ffi::c_void,
2780            ) -> *mut core::ffi::c_void;
2781        }
2782        unsafe { vtkDataArrayCollection_get_ptr(self.0) }
2783    }
2784}
2785impl std::default::Default for vtkDataArrayCollection {
2786    fn default() -> Self {
2787        Self::new()
2788    }
2789}
2790impl Drop for vtkDataArrayCollection {
2791    fn drop(&mut self) {
2792        unsafe extern "C" {
2793            fn vtkDataArrayCollection_destructor(sself: *mut core::ffi::c_void);
2794        }
2795        unsafe { vtkDataArrayCollection_destructor(self.0) }
2796        self.0 = core::ptr::null_mut();
2797    }
2798}
2799#[test]
2800fn test_vtkDataArrayCollection_create_drop() {
2801    let obj = vtkDataArrayCollection::new();
2802    let ptr = obj.0;
2803    assert!(!ptr.is_null());
2804    assert!(unsafe { !obj._get_ptr().is_null() });
2805    drop(obj);
2806    let new_obj = vtkDataArrayCollection(ptr);
2807    assert!(unsafe { new_obj._get_ptr().is_null() });
2808}
2809/// iterator through a vtkDataArrayCollection.
2810///
2811///
2812/// vtkDataArrayCollectionIterator provides an implementation of
2813/// vtkCollectionIterator which allows the items to be retrieved with
2814/// the proper subclass pointer type for vtkDataArrayCollection.
2815#[allow(non_camel_case_types)]
2816pub struct vtkDataArrayCollectionIterator(*mut core::ffi::c_void);
2817impl vtkDataArrayCollectionIterator {
2818    /// Creates a new [vtkDataArrayCollectionIterator] wrapped inside `vtkNew`
2819    #[doc(alias = "vtkDataArrayCollectionIterator")]
2820    pub fn new() -> Self {
2821        unsafe extern "C" {
2822            fn vtkDataArrayCollectionIterator_new() -> *mut core::ffi::c_void;
2823        }
2824        Self(unsafe { &mut *vtkDataArrayCollectionIterator_new() })
2825    }
2826    #[cfg(test)]
2827    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2828        unsafe extern "C" {
2829            fn vtkDataArrayCollectionIterator_get_ptr(
2830                sself: *mut core::ffi::c_void,
2831            ) -> *mut core::ffi::c_void;
2832        }
2833        unsafe { vtkDataArrayCollectionIterator_get_ptr(self.0) }
2834    }
2835}
2836impl std::default::Default for vtkDataArrayCollectionIterator {
2837    fn default() -> Self {
2838        Self::new()
2839    }
2840}
2841impl Drop for vtkDataArrayCollectionIterator {
2842    fn drop(&mut self) {
2843        unsafe extern "C" {
2844            fn vtkDataArrayCollectionIterator_destructor(sself: *mut core::ffi::c_void);
2845        }
2846        unsafe { vtkDataArrayCollectionIterator_destructor(self.0) }
2847        self.0 = core::ptr::null_mut();
2848    }
2849}
2850#[test]
2851fn test_vtkDataArrayCollectionIterator_create_drop() {
2852    let obj = vtkDataArrayCollectionIterator::new();
2853    let ptr = obj.0;
2854    assert!(!ptr.is_null());
2855    assert!(unsafe { !obj._get_ptr().is_null() });
2856    drop(obj);
2857    let new_obj = vtkDataArrayCollectionIterator(ptr);
2858    assert!(unsafe { new_obj._get_ptr().is_null() });
2859}
2860/// Store on/off settings for data arrays, etc.
2861///
2862///
2863/// vtkDataArraySelection is intended to be used by algorithms that want to
2864/// expose a API that allow the user to enable/disable a collection of entities,
2865/// such as arrays. Readers, for example, can use vtkDataArraySelection to let
2866/// the user choose which array to read from the file.
2867///
2868/// Originally intended for selecting data arrays (hence the name), this class
2869/// can be used for letting users choose other items too, for example,
2870/// vtkIOSSReader uses vtkDataArraySelection to let users choose
2871/// which blocks to read.
2872///
2873/// Unlike most other vtkObject subclasses, vtkDataArraySelection has public API
2874/// that need not modify the MTime for the object. These M-Time non-modifying
2875/// methods are typically intended for use within the algorithm or reader to
2876/// populate the vtkDataArraySelection instance with available array names and
2877/// their default values.
2878#[allow(non_camel_case_types)]
2879pub struct vtkDataArraySelection(*mut core::ffi::c_void);
2880impl vtkDataArraySelection {
2881    /// Creates a new [vtkDataArraySelection] wrapped inside `vtkNew`
2882    #[doc(alias = "vtkDataArraySelection")]
2883    pub fn new() -> Self {
2884        unsafe extern "C" {
2885            fn vtkDataArraySelection_new() -> *mut core::ffi::c_void;
2886        }
2887        Self(unsafe { &mut *vtkDataArraySelection_new() })
2888    }
2889    #[cfg(test)]
2890    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2891        unsafe extern "C" {
2892            fn vtkDataArraySelection_get_ptr(
2893                sself: *mut core::ffi::c_void,
2894            ) -> *mut core::ffi::c_void;
2895        }
2896        unsafe { vtkDataArraySelection_get_ptr(self.0) }
2897    }
2898}
2899impl std::default::Default for vtkDataArraySelection {
2900    fn default() -> Self {
2901        Self::new()
2902    }
2903}
2904impl Drop for vtkDataArraySelection {
2905    fn drop(&mut self) {
2906        unsafe extern "C" {
2907            fn vtkDataArraySelection_destructor(sself: *mut core::ffi::c_void);
2908        }
2909        unsafe { vtkDataArraySelection_destructor(self.0) }
2910        self.0 = core::ptr::null_mut();
2911    }
2912}
2913#[test]
2914fn test_vtkDataArraySelection_create_drop() {
2915    let obj = vtkDataArraySelection::new();
2916    let ptr = obj.0;
2917    assert!(!ptr.is_null());
2918    assert!(unsafe { !obj._get_ptr().is_null() });
2919    drop(obj);
2920    let new_obj = vtkDataArraySelection(ptr);
2921    assert!(unsafe { new_obj._get_ptr().is_null() });
2922}
2923/// identify memory leaks at program termination
2924///
2925/// vtkDebugLeaks is used to report memory leaks at the exit of the program. It
2926/// uses vtkObjectBase::InitializeObjectBase() (called via vtkObjectFactory
2927/// macros) to intercept the construction of all VTK objects. It uses the
2928/// UnRegisterInternal method of vtkObjectBase to intercept the destruction of
2929/// all objects.
2930///
2931/// If not using the vtkObjectFactory macros to implement New(), be sure to call
2932/// vtkObjectBase::InitializeObjectBase() explicitly on the constructed
2933/// instance. The rule of thumb is that wherever "new [some vtkObjectBase
2934/// subclass]" is called, vtkObjectBase::InitializeObjectBase() must be called
2935/// as well.
2936///
2937/// There are exceptions to this:
2938///
2939/// - vtkCommand subclasses traditionally do not fully participate in
2940/// vtkDebugLeaks registration, likely because they typically do not use
2941/// vtkTypeMacro to configure GetClassName. InitializeObjectBase should not be
2942/// called on vtkCommand subclasses, and all such classes will be automatically
2943/// registered with vtkDebugLeaks as "vtkCommand or subclass".
2944///
2945/// - vtkInformationKey subclasses are not reference counted. They are allocated
2946/// statically and registered automatically with a singleton "manager" instance.
2947/// The manager ensures that all keys are cleaned up before exiting, and
2948/// registration/deregistration with vtkDebugLeaks is bypassed.
2949///
2950/// A table of object name to number of instances is kept. At the exit of the
2951/// program if there are still VTK objects around it will print them out. To
2952/// enable this class add the flag -DVTK_DEBUG_LEAKS to the compile line, and
2953/// rebuild vtkObject and vtkObjectFactory.
2954#[allow(non_camel_case_types)]
2955pub struct vtkDebugLeaks(*mut core::ffi::c_void);
2956impl vtkDebugLeaks {
2957    /// Creates a new [vtkDebugLeaks] wrapped inside `vtkNew`
2958    #[doc(alias = "vtkDebugLeaks")]
2959    pub fn new() -> Self {
2960        unsafe extern "C" {
2961            fn vtkDebugLeaks_new() -> *mut core::ffi::c_void;
2962        }
2963        Self(unsafe { &mut *vtkDebugLeaks_new() })
2964    }
2965    #[cfg(test)]
2966    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
2967        unsafe extern "C" {
2968            fn vtkDebugLeaks_get_ptr(
2969                sself: *mut core::ffi::c_void,
2970            ) -> *mut core::ffi::c_void;
2971        }
2972        unsafe { vtkDebugLeaks_get_ptr(self.0) }
2973    }
2974}
2975impl std::default::Default for vtkDebugLeaks {
2976    fn default() -> Self {
2977        Self::new()
2978    }
2979}
2980impl Drop for vtkDebugLeaks {
2981    fn drop(&mut self) {
2982        unsafe extern "C" {
2983            fn vtkDebugLeaks_destructor(sself: *mut core::ffi::c_void);
2984        }
2985        unsafe { vtkDebugLeaks_destructor(self.0) }
2986        self.0 = core::ptr::null_mut();
2987    }
2988}
2989#[test]
2990fn test_vtkDebugLeaks_create_drop() {
2991    let obj = vtkDebugLeaks::new();
2992    let ptr = obj.0;
2993    assert!(!ptr.is_null());
2994    assert!(unsafe { !obj._get_ptr().is_null() });
2995    drop(obj);
2996    let new_obj = vtkDebugLeaks(ptr);
2997    assert!(unsafe { new_obj._get_ptr().is_null() });
2998}
2999/// Deserialize VTK objects from JSON.
3000///
3001#[allow(non_camel_case_types)]
3002pub struct vtkDeserializer(*mut core::ffi::c_void);
3003impl vtkDeserializer {
3004    /// Creates a new [vtkDeserializer] wrapped inside `vtkNew`
3005    #[doc(alias = "vtkDeserializer")]
3006    pub fn new() -> Self {
3007        unsafe extern "C" {
3008            fn vtkDeserializer_new() -> *mut core::ffi::c_void;
3009        }
3010        Self(unsafe { &mut *vtkDeserializer_new() })
3011    }
3012    #[cfg(test)]
3013    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3014        unsafe extern "C" {
3015            fn vtkDeserializer_get_ptr(
3016                sself: *mut core::ffi::c_void,
3017            ) -> *mut core::ffi::c_void;
3018        }
3019        unsafe { vtkDeserializer_get_ptr(self.0) }
3020    }
3021}
3022impl std::default::Default for vtkDeserializer {
3023    fn default() -> Self {
3024        Self::new()
3025    }
3026}
3027impl Drop for vtkDeserializer {
3028    fn drop(&mut self) {
3029        unsafe extern "C" {
3030            fn vtkDeserializer_destructor(sself: *mut core::ffi::c_void);
3031        }
3032        unsafe { vtkDeserializer_destructor(self.0) }
3033        self.0 = core::ptr::null_mut();
3034    }
3035}
3036#[test]
3037fn test_vtkDeserializer_create_drop() {
3038    let obj = vtkDeserializer::new();
3039    let ptr = obj.0;
3040    assert!(!ptr.is_null());
3041    assert!(unsafe { !obj._get_ptr().is_null() });
3042    drop(obj);
3043    let new_obj = vtkDeserializer(ptr);
3044    assert!(unsafe { new_obj._get_ptr().is_null() });
3045}
3046/// dynamic, self-adjusting array of double
3047///
3048///
3049/// vtkDoubleArray is an array of values of type double.  It provides
3050/// methods for insertion and retrieval of values and will
3051/// automatically resize itself to hold new data.
3052#[allow(non_camel_case_types)]
3053pub struct vtkDoubleArray(*mut core::ffi::c_void);
3054impl vtkDoubleArray {
3055    /// Creates a new [vtkDoubleArray] wrapped inside `vtkNew`
3056    #[doc(alias = "vtkDoubleArray")]
3057    pub fn new() -> Self {
3058        unsafe extern "C" {
3059            fn vtkDoubleArray_new() -> *mut core::ffi::c_void;
3060        }
3061        Self(unsafe { &mut *vtkDoubleArray_new() })
3062    }
3063    #[cfg(test)]
3064    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3065        unsafe extern "C" {
3066            fn vtkDoubleArray_get_ptr(
3067                sself: *mut core::ffi::c_void,
3068            ) -> *mut core::ffi::c_void;
3069        }
3070        unsafe { vtkDoubleArray_get_ptr(self.0) }
3071    }
3072}
3073impl std::default::Default for vtkDoubleArray {
3074    fn default() -> Self {
3075        Self::new()
3076    }
3077}
3078impl Drop for vtkDoubleArray {
3079    fn drop(&mut self) {
3080        unsafe extern "C" {
3081            fn vtkDoubleArray_destructor(sself: *mut core::ffi::c_void);
3082        }
3083        unsafe { vtkDoubleArray_destructor(self.0) }
3084        self.0 = core::ptr::null_mut();
3085    }
3086}
3087#[test]
3088fn test_vtkDoubleArray_create_drop() {
3089    let obj = vtkDoubleArray::new();
3090    let ptr = obj.0;
3091    assert!(!ptr.is_null());
3092    assert!(unsafe { !obj._get_ptr().is_null() });
3093    drop(obj);
3094    let new_obj = vtkDoubleArray(ptr);
3095    assert!(unsafe { new_obj._get_ptr().is_null() });
3096}
3097/// class interface to system dynamic libraries
3098///
3099///
3100/// vtkDynamicLoader provides a portable interface to loading dynamic
3101/// libraries into a process.
3102/// @sa
3103/// A more portable and lightweight solution is kwsys::DynamicLoader
3104#[allow(non_camel_case_types)]
3105pub struct vtkDynamicLoader(*mut core::ffi::c_void);
3106impl vtkDynamicLoader {
3107    /// Creates a new [vtkDynamicLoader] wrapped inside `vtkNew`
3108    #[doc(alias = "vtkDynamicLoader")]
3109    pub fn new() -> Self {
3110        unsafe extern "C" {
3111            fn vtkDynamicLoader_new() -> *mut core::ffi::c_void;
3112        }
3113        Self(unsafe { &mut *vtkDynamicLoader_new() })
3114    }
3115    #[cfg(test)]
3116    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3117        unsafe extern "C" {
3118            fn vtkDynamicLoader_get_ptr(
3119                sself: *mut core::ffi::c_void,
3120            ) -> *mut core::ffi::c_void;
3121        }
3122        unsafe { vtkDynamicLoader_get_ptr(self.0) }
3123    }
3124}
3125impl std::default::Default for vtkDynamicLoader {
3126    fn default() -> Self {
3127        Self::new()
3128    }
3129}
3130impl Drop for vtkDynamicLoader {
3131    fn drop(&mut self) {
3132        unsafe extern "C" {
3133            fn vtkDynamicLoader_destructor(sself: *mut core::ffi::c_void);
3134        }
3135        unsafe { vtkDynamicLoader_destructor(self.0) }
3136        self.0 = core::ptr::null_mut();
3137    }
3138}
3139#[test]
3140fn test_vtkDynamicLoader_create_drop() {
3141    let obj = vtkDynamicLoader::new();
3142    let ptr = obj.0;
3143    assert!(!ptr.is_null());
3144    assert!(unsafe { !obj._get_ptr().is_null() });
3145    drop(obj);
3146    let new_obj = vtkDynamicLoader(ptr);
3147    assert!(unsafe { new_obj._get_ptr().is_null() });
3148}
3149///
3150#[allow(non_camel_case_types)]
3151pub struct vtkEventDataDevice3D(*mut core::ffi::c_void);
3152impl vtkEventDataDevice3D {
3153    /// Creates a new [vtkEventDataDevice3D] wrapped inside `vtkNew`
3154    #[doc(alias = "vtkEventDataDevice3D")]
3155    pub fn new() -> Self {
3156        unsafe extern "C" {
3157            fn vtkEventDataDevice3D_new() -> *mut core::ffi::c_void;
3158        }
3159        Self(unsafe { &mut *vtkEventDataDevice3D_new() })
3160    }
3161    #[cfg(test)]
3162    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3163        unsafe extern "C" {
3164            fn vtkEventDataDevice3D_get_ptr(
3165                sself: *mut core::ffi::c_void,
3166            ) -> *mut core::ffi::c_void;
3167        }
3168        unsafe { vtkEventDataDevice3D_get_ptr(self.0) }
3169    }
3170}
3171impl std::default::Default for vtkEventDataDevice3D {
3172    fn default() -> Self {
3173        Self::new()
3174    }
3175}
3176impl Drop for vtkEventDataDevice3D {
3177    fn drop(&mut self) {
3178        unsafe extern "C" {
3179            fn vtkEventDataDevice3D_destructor(sself: *mut core::ffi::c_void);
3180        }
3181        unsafe { vtkEventDataDevice3D_destructor(self.0) }
3182        self.0 = core::ptr::null_mut();
3183    }
3184}
3185#[test]
3186fn test_vtkEventDataDevice3D_create_drop() {
3187    let obj = vtkEventDataDevice3D::new();
3188    let ptr = obj.0;
3189    assert!(!ptr.is_null());
3190    assert!(unsafe { !obj._get_ptr().is_null() });
3191    drop(obj);
3192    let new_obj = vtkEventDataDevice3D(ptr);
3193    assert!(unsafe { new_obj._get_ptr().is_null() });
3194}
3195///
3196#[allow(non_camel_case_types)]
3197pub struct vtkEventDataForDevice(*mut core::ffi::c_void);
3198impl vtkEventDataForDevice {
3199    /// Creates a new [vtkEventDataForDevice] wrapped inside `vtkNew`
3200    #[doc(alias = "vtkEventDataForDevice")]
3201    pub fn new() -> Self {
3202        unsafe extern "C" {
3203            fn vtkEventDataForDevice_new() -> *mut core::ffi::c_void;
3204        }
3205        Self(unsafe { &mut *vtkEventDataForDevice_new() })
3206    }
3207    #[cfg(test)]
3208    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3209        unsafe extern "C" {
3210            fn vtkEventDataForDevice_get_ptr(
3211                sself: *mut core::ffi::c_void,
3212            ) -> *mut core::ffi::c_void;
3213        }
3214        unsafe { vtkEventDataForDevice_get_ptr(self.0) }
3215    }
3216}
3217impl std::default::Default for vtkEventDataForDevice {
3218    fn default() -> Self {
3219        Self::new()
3220    }
3221}
3222impl Drop for vtkEventDataForDevice {
3223    fn drop(&mut self) {
3224        unsafe extern "C" {
3225            fn vtkEventDataForDevice_destructor(sself: *mut core::ffi::c_void);
3226        }
3227        unsafe { vtkEventDataForDevice_destructor(self.0) }
3228        self.0 = core::ptr::null_mut();
3229    }
3230}
3231#[test]
3232fn test_vtkEventDataForDevice_create_drop() {
3233    let obj = vtkEventDataForDevice::new();
3234    let ptr = obj.0;
3235    assert!(!ptr.is_null());
3236    assert!(unsafe { !obj._get_ptr().is_null() });
3237    drop(obj);
3238    let new_obj = vtkEventDataForDevice(ptr);
3239    assert!(unsafe { new_obj._get_ptr().is_null() });
3240}
3241/// a simple event forwarder command
3242///
3243///
3244/// Use vtkEventForwarderCommand to forward an event to a new object.
3245/// This command will intercept the event, and use InvokeEvent
3246/// on a 'target' as if that object was the one that invoked the event instead
3247/// of the object this command was attached to using AddObserver.
3248///
3249/// @sa
3250/// vtkCommand
3251#[allow(non_camel_case_types)]
3252pub struct vtkEventForwarderCommand(*mut core::ffi::c_void);
3253impl vtkEventForwarderCommand {
3254    /// Creates a new [vtkEventForwarderCommand] wrapped inside `vtkNew`
3255    #[doc(alias = "vtkEventForwarderCommand")]
3256    pub fn new() -> Self {
3257        unsafe extern "C" {
3258            fn vtkEventForwarderCommand_new() -> *mut core::ffi::c_void;
3259        }
3260        Self(unsafe { &mut *vtkEventForwarderCommand_new() })
3261    }
3262    #[cfg(test)]
3263    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3264        unsafe extern "C" {
3265            fn vtkEventForwarderCommand_get_ptr(
3266                sself: *mut core::ffi::c_void,
3267            ) -> *mut core::ffi::c_void;
3268        }
3269        unsafe { vtkEventForwarderCommand_get_ptr(self.0) }
3270    }
3271}
3272impl std::default::Default for vtkEventForwarderCommand {
3273    fn default() -> Self {
3274        Self::new()
3275    }
3276}
3277impl Drop for vtkEventForwarderCommand {
3278    fn drop(&mut self) {
3279        unsafe extern "C" {
3280            fn vtkEventForwarderCommand_destructor(sself: *mut core::ffi::c_void);
3281        }
3282        unsafe { vtkEventForwarderCommand_destructor(self.0) }
3283        self.0 = core::ptr::null_mut();
3284    }
3285}
3286#[test]
3287fn test_vtkEventForwarderCommand_create_drop() {
3288    let obj = vtkEventForwarderCommand::new();
3289    let ptr = obj.0;
3290    assert!(!ptr.is_null());
3291    assert!(unsafe { !obj._get_ptr().is_null() });
3292    drop(obj);
3293    let new_obj = vtkEventForwarderCommand(ptr);
3294    assert!(unsafe { new_obj._get_ptr().is_null() });
3295}
3296/// File Specific output window class
3297///
3298///
3299/// Writes debug/warning/error output to a log file instead of the console.
3300/// To use this class, instantiate it and then call SetInstance(this).
3301#[allow(non_camel_case_types)]
3302pub struct vtkFileOutputWindow(*mut core::ffi::c_void);
3303impl vtkFileOutputWindow {
3304    /// Creates a new [vtkFileOutputWindow] wrapped inside `vtkNew`
3305    #[doc(alias = "vtkFileOutputWindow")]
3306    pub fn new() -> Self {
3307        unsafe extern "C" {
3308            fn vtkFileOutputWindow_new() -> *mut core::ffi::c_void;
3309        }
3310        Self(unsafe { &mut *vtkFileOutputWindow_new() })
3311    }
3312    #[cfg(test)]
3313    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3314        unsafe extern "C" {
3315            fn vtkFileOutputWindow_get_ptr(
3316                sself: *mut core::ffi::c_void,
3317            ) -> *mut core::ffi::c_void;
3318        }
3319        unsafe { vtkFileOutputWindow_get_ptr(self.0) }
3320    }
3321}
3322impl std::default::Default for vtkFileOutputWindow {
3323    fn default() -> Self {
3324        Self::new()
3325    }
3326}
3327impl Drop for vtkFileOutputWindow {
3328    fn drop(&mut self) {
3329        unsafe extern "C" {
3330            fn vtkFileOutputWindow_destructor(sself: *mut core::ffi::c_void);
3331        }
3332        unsafe { vtkFileOutputWindow_destructor(self.0) }
3333        self.0 = core::ptr::null_mut();
3334    }
3335}
3336#[test]
3337fn test_vtkFileOutputWindow_create_drop() {
3338    let obj = vtkFileOutputWindow::new();
3339    let ptr = obj.0;
3340    assert!(!ptr.is_null());
3341    assert!(unsafe { !obj._get_ptr().is_null() });
3342    drop(obj);
3343    let new_obj = vtkFileOutputWindow(ptr);
3344    assert!(unsafe { new_obj._get_ptr().is_null() });
3345}
3346/// dynamic, self-adjusting array of float
3347///
3348///
3349/// vtkFloatArray is an array of values of type float.  It provides
3350/// methods for insertion and retrieval of values and will
3351/// automatically resize itself to hold new data.
3352#[allow(non_camel_case_types)]
3353pub struct vtkFloatArray(*mut core::ffi::c_void);
3354impl vtkFloatArray {
3355    /// Creates a new [vtkFloatArray] wrapped inside `vtkNew`
3356    #[doc(alias = "vtkFloatArray")]
3357    pub fn new() -> Self {
3358        unsafe extern "C" {
3359            fn vtkFloatArray_new() -> *mut core::ffi::c_void;
3360        }
3361        Self(unsafe { &mut *vtkFloatArray_new() })
3362    }
3363    #[cfg(test)]
3364    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3365        unsafe extern "C" {
3366            fn vtkFloatArray_get_ptr(
3367                sself: *mut core::ffi::c_void,
3368            ) -> *mut core::ffi::c_void;
3369        }
3370        unsafe { vtkFloatArray_get_ptr(self.0) }
3371    }
3372}
3373impl std::default::Default for vtkFloatArray {
3374    fn default() -> Self {
3375        Self::new()
3376    }
3377}
3378impl Drop for vtkFloatArray {
3379    fn drop(&mut self) {
3380        unsafe extern "C" {
3381            fn vtkFloatArray_destructor(sself: *mut core::ffi::c_void);
3382        }
3383        unsafe { vtkFloatArray_destructor(self.0) }
3384        self.0 = core::ptr::null_mut();
3385    }
3386}
3387#[test]
3388fn test_vtkFloatArray_create_drop() {
3389    let obj = vtkFloatArray::new();
3390    let ptr = obj.0;
3391    assert!(!ptr.is_null());
3392    assert!(unsafe { !obj._get_ptr().is_null() });
3393    drop(obj);
3394    let new_obj = vtkFloatArray(ptr);
3395    assert!(unsafe { new_obj._get_ptr().is_null() });
3396}
3397/// Detect and break reference loops
3398///
3399///
3400/// vtkGarbageCollector is used by VTK classes that may be involved in
3401/// reference counting loops (such as Algorithm <-> Executive).  It
3402/// detects strongly connected components of the reference graph that
3403/// have been leaked deletes them.  The garbage collector uses the
3404/// ReportReferences method to search the reference graph and construct
3405/// a net reference count for each connected component.  If the net
3406/// reference count is zero the entire set of objects is deleted.
3407/// Deleting each component may leak other components, which are then
3408/// collected recursively.
3409///
3410/// To enable garbage collection for a class, add these members:
3411///
3412/// \code
3413///
3414/// public:
3415/// bool UsesGarbageCollector() const override { return true; }
3416///
3417/// protected:
3418///
3419/// void ReportReferences(vtkGarbageCollector* collector) override
3420/// {
3421/// // Report references held by this object that may be in a loop.
3422/// this->Superclass::ReportReferences(collector);
3423/// vtkGarbageCollectorReport(collector, this->OtherObject, "Other Object");
3424/// }
3425/// \endcode
3426///
3427/// The implementations should be in the .cxx file in practice.
3428/// It is important that the reference be reported using the real
3429/// pointer or smart pointer instance that holds the reference.  When
3430/// collecting the garbage collector will actually set this pointer to
3431/// nullptr.  The destructor of the class should be written to deal with
3432/// this.  It is also expected that an invariant is maintained for any
3433/// reference that is reported.  The variable holding the reference
3434/// must always either be nullptr or refer to a fully constructed valid
3435/// object.  Therefore code like "this->Object->UnRegister(this)" must
3436/// be avoided if "this->Object" is a reported reference because it
3437/// is possible that the object is deleted before UnRegister returns
3438/// but then "this->Object" will be left as a dangling pointer.  Instead
3439/// use code like
3440///
3441/// \code
3442/// vtkObjectBase* obj = this->Object;
3443/// this->Object = 0;
3444/// obj->UnRegister(this);
3445/// \endcode
3446///
3447/// so that the reported reference maintains the invariant.
3448///
3449/// If subclassing from a class that already supports garbage
3450/// collection, one need only provide the ReportReferences method.
3451#[allow(non_camel_case_types)]
3452pub struct vtkGarbageCollector(*mut core::ffi::c_void);
3453impl vtkGarbageCollector {
3454    /// Creates a new [vtkGarbageCollector] wrapped inside `vtkNew`
3455    #[doc(alias = "vtkGarbageCollector")]
3456    pub fn new() -> Self {
3457        unsafe extern "C" {
3458            fn vtkGarbageCollector_new() -> *mut core::ffi::c_void;
3459        }
3460        Self(unsafe { &mut *vtkGarbageCollector_new() })
3461    }
3462    #[cfg(test)]
3463    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3464        unsafe extern "C" {
3465            fn vtkGarbageCollector_get_ptr(
3466                sself: *mut core::ffi::c_void,
3467            ) -> *mut core::ffi::c_void;
3468        }
3469        unsafe { vtkGarbageCollector_get_ptr(self.0) }
3470    }
3471}
3472impl std::default::Default for vtkGarbageCollector {
3473    fn default() -> Self {
3474        Self::new()
3475    }
3476}
3477impl Drop for vtkGarbageCollector {
3478    fn drop(&mut self) {
3479        unsafe extern "C" {
3480            fn vtkGarbageCollector_destructor(sself: *mut core::ffi::c_void);
3481        }
3482        unsafe { vtkGarbageCollector_destructor(self.0) }
3483        self.0 = core::ptr::null_mut();
3484    }
3485}
3486#[test]
3487fn test_vtkGarbageCollector_create_drop() {
3488    let obj = vtkGarbageCollector::new();
3489    let ptr = obj.0;
3490    assert!(!ptr.is_null());
3491    assert!(unsafe { !obj._get_ptr().is_null() });
3492    drop(obj);
3493    let new_obj = vtkGarbageCollector(ptr);
3494    assert!(unsafe { new_obj._get_ptr().is_null() });
3495}
3496/// list of point or cell ids
3497///
3498///
3499/// vtkIdList is used to represent and pass data id's between
3500/// objects. vtkIdList may represent any type of integer id, but
3501/// usually represents point and cell ids.
3502#[allow(non_camel_case_types)]
3503pub struct vtkIdList(*mut core::ffi::c_void);
3504impl vtkIdList {
3505    /// Creates a new [vtkIdList] wrapped inside `vtkNew`
3506    #[doc(alias = "vtkIdList")]
3507    pub fn new() -> Self {
3508        unsafe extern "C" {
3509            fn vtkIdList_new() -> *mut core::ffi::c_void;
3510        }
3511        Self(unsafe { &mut *vtkIdList_new() })
3512    }
3513    #[cfg(test)]
3514    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3515        unsafe extern "C" {
3516            fn vtkIdList_get_ptr(
3517                sself: *mut core::ffi::c_void,
3518            ) -> *mut core::ffi::c_void;
3519        }
3520        unsafe { vtkIdList_get_ptr(self.0) }
3521    }
3522}
3523impl std::default::Default for vtkIdList {
3524    fn default() -> Self {
3525        Self::new()
3526    }
3527}
3528impl Drop for vtkIdList {
3529    fn drop(&mut self) {
3530        unsafe extern "C" {
3531            fn vtkIdList_destructor(sself: *mut core::ffi::c_void);
3532        }
3533        unsafe { vtkIdList_destructor(self.0) }
3534        self.0 = core::ptr::null_mut();
3535    }
3536}
3537#[test]
3538fn test_vtkIdList_create_drop() {
3539    let obj = vtkIdList::new();
3540    let ptr = obj.0;
3541    assert!(!ptr.is_null());
3542    assert!(unsafe { !obj._get_ptr().is_null() });
3543    drop(obj);
3544    let new_obj = vtkIdList(ptr);
3545    assert!(unsafe { new_obj._get_ptr().is_null() });
3546}
3547/// maintain an ordered list of IdList objects
3548///
3549///
3550/// vtkIdListCollection is an object that creates and manipulates lists of
3551/// IdLists. See also vtkCollection and subclasses.
3552#[allow(non_camel_case_types)]
3553pub struct vtkIdListCollection(*mut core::ffi::c_void);
3554impl vtkIdListCollection {
3555    /// Creates a new [vtkIdListCollection] wrapped inside `vtkNew`
3556    #[doc(alias = "vtkIdListCollection")]
3557    pub fn new() -> Self {
3558        unsafe extern "C" {
3559            fn vtkIdListCollection_new() -> *mut core::ffi::c_void;
3560        }
3561        Self(unsafe { &mut *vtkIdListCollection_new() })
3562    }
3563    #[cfg(test)]
3564    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3565        unsafe extern "C" {
3566            fn vtkIdListCollection_get_ptr(
3567                sself: *mut core::ffi::c_void,
3568            ) -> *mut core::ffi::c_void;
3569        }
3570        unsafe { vtkIdListCollection_get_ptr(self.0) }
3571    }
3572}
3573impl std::default::Default for vtkIdListCollection {
3574    fn default() -> Self {
3575        Self::new()
3576    }
3577}
3578impl Drop for vtkIdListCollection {
3579    fn drop(&mut self) {
3580        unsafe extern "C" {
3581            fn vtkIdListCollection_destructor(sself: *mut core::ffi::c_void);
3582        }
3583        unsafe { vtkIdListCollection_destructor(self.0) }
3584        self.0 = core::ptr::null_mut();
3585    }
3586}
3587#[test]
3588fn test_vtkIdListCollection_create_drop() {
3589    let obj = vtkIdListCollection::new();
3590    let ptr = obj.0;
3591    assert!(!ptr.is_null());
3592    assert!(unsafe { !obj._get_ptr().is_null() });
3593    drop(obj);
3594    let new_obj = vtkIdListCollection(ptr);
3595    assert!(unsafe { new_obj._get_ptr().is_null() });
3596}
3597/// dynamic, self-adjusting array of vtkIdType
3598///
3599///
3600/// vtkIdTypeArray is an array of values of type vtkIdType.
3601/// It provides methods for insertion and retrieval of values and will
3602/// automatically resize itself to hold new data.
3603#[allow(non_camel_case_types)]
3604pub struct vtkIdTypeArray(*mut core::ffi::c_void);
3605impl vtkIdTypeArray {
3606    /// Creates a new [vtkIdTypeArray] wrapped inside `vtkNew`
3607    #[doc(alias = "vtkIdTypeArray")]
3608    pub fn new() -> Self {
3609        unsafe extern "C" {
3610            fn vtkIdTypeArray_new() -> *mut core::ffi::c_void;
3611        }
3612        Self(unsafe { &mut *vtkIdTypeArray_new() })
3613    }
3614    #[cfg(test)]
3615    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3616        unsafe extern "C" {
3617            fn vtkIdTypeArray_get_ptr(
3618                sself: *mut core::ffi::c_void,
3619            ) -> *mut core::ffi::c_void;
3620        }
3621        unsafe { vtkIdTypeArray_get_ptr(self.0) }
3622    }
3623}
3624impl std::default::Default for vtkIdTypeArray {
3625    fn default() -> Self {
3626        Self::new()
3627    }
3628}
3629impl Drop for vtkIdTypeArray {
3630    fn drop(&mut self) {
3631        unsafe extern "C" {
3632            fn vtkIdTypeArray_destructor(sself: *mut core::ffi::c_void);
3633        }
3634        unsafe { vtkIdTypeArray_destructor(self.0) }
3635        self.0 = core::ptr::null_mut();
3636    }
3637}
3638#[test]
3639fn test_vtkIdTypeArray_create_drop() {
3640    let obj = vtkIdTypeArray::new();
3641    let ptr = obj.0;
3642    assert!(!ptr.is_null());
3643    assert!(unsafe { !obj._get_ptr().is_null() });
3644    drop(obj);
3645    let new_obj = vtkIdTypeArray(ptr);
3646    assert!(unsafe { new_obj._get_ptr().is_null() });
3647}
3648/// indexed implicit array of char.
3649///
3650///
3651/// vtkIndexedCharArray is an indexed implicit array of values of type char.
3652/// see vtkIndexedArray, vtkIndexedImplicitBackend
3653///
3654/// This file is generated by vtkImplicitArrays.cmake
3655#[allow(non_camel_case_types)]
3656pub struct vtkIndexedCharArray(*mut core::ffi::c_void);
3657impl vtkIndexedCharArray {
3658    /// Creates a new [vtkIndexedCharArray] wrapped inside `vtkNew`
3659    #[doc(alias = "vtkIndexedCharArray")]
3660    pub fn new() -> Self {
3661        unsafe extern "C" {
3662            fn vtkIndexedCharArray_new() -> *mut core::ffi::c_void;
3663        }
3664        Self(unsafe { &mut *vtkIndexedCharArray_new() })
3665    }
3666    #[cfg(test)]
3667    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3668        unsafe extern "C" {
3669            fn vtkIndexedCharArray_get_ptr(
3670                sself: *mut core::ffi::c_void,
3671            ) -> *mut core::ffi::c_void;
3672        }
3673        unsafe { vtkIndexedCharArray_get_ptr(self.0) }
3674    }
3675}
3676impl std::default::Default for vtkIndexedCharArray {
3677    fn default() -> Self {
3678        Self::new()
3679    }
3680}
3681impl Drop for vtkIndexedCharArray {
3682    fn drop(&mut self) {
3683        unsafe extern "C" {
3684            fn vtkIndexedCharArray_destructor(sself: *mut core::ffi::c_void);
3685        }
3686        unsafe { vtkIndexedCharArray_destructor(self.0) }
3687        self.0 = core::ptr::null_mut();
3688    }
3689}
3690#[test]
3691fn test_vtkIndexedCharArray_create_drop() {
3692    let obj = vtkIndexedCharArray::new();
3693    let ptr = obj.0;
3694    assert!(!ptr.is_null());
3695    assert!(unsafe { !obj._get_ptr().is_null() });
3696    drop(obj);
3697    let new_obj = vtkIndexedCharArray(ptr);
3698    assert!(unsafe { new_obj._get_ptr().is_null() });
3699}
3700/// indexed implicit array of double.
3701///
3702///
3703/// vtkIndexedDoubleArray is an indexed implicit array of values of type double.
3704/// see vtkIndexedArray, vtkIndexedImplicitBackend
3705///
3706/// This file is generated by vtkImplicitArrays.cmake
3707#[allow(non_camel_case_types)]
3708pub struct vtkIndexedDoubleArray(*mut core::ffi::c_void);
3709impl vtkIndexedDoubleArray {
3710    /// Creates a new [vtkIndexedDoubleArray] wrapped inside `vtkNew`
3711    #[doc(alias = "vtkIndexedDoubleArray")]
3712    pub fn new() -> Self {
3713        unsafe extern "C" {
3714            fn vtkIndexedDoubleArray_new() -> *mut core::ffi::c_void;
3715        }
3716        Self(unsafe { &mut *vtkIndexedDoubleArray_new() })
3717    }
3718    #[cfg(test)]
3719    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3720        unsafe extern "C" {
3721            fn vtkIndexedDoubleArray_get_ptr(
3722                sself: *mut core::ffi::c_void,
3723            ) -> *mut core::ffi::c_void;
3724        }
3725        unsafe { vtkIndexedDoubleArray_get_ptr(self.0) }
3726    }
3727}
3728impl std::default::Default for vtkIndexedDoubleArray {
3729    fn default() -> Self {
3730        Self::new()
3731    }
3732}
3733impl Drop for vtkIndexedDoubleArray {
3734    fn drop(&mut self) {
3735        unsafe extern "C" {
3736            fn vtkIndexedDoubleArray_destructor(sself: *mut core::ffi::c_void);
3737        }
3738        unsafe { vtkIndexedDoubleArray_destructor(self.0) }
3739        self.0 = core::ptr::null_mut();
3740    }
3741}
3742#[test]
3743fn test_vtkIndexedDoubleArray_create_drop() {
3744    let obj = vtkIndexedDoubleArray::new();
3745    let ptr = obj.0;
3746    assert!(!ptr.is_null());
3747    assert!(unsafe { !obj._get_ptr().is_null() });
3748    drop(obj);
3749    let new_obj = vtkIndexedDoubleArray(ptr);
3750    assert!(unsafe { new_obj._get_ptr().is_null() });
3751}
3752/// indexed implicit array of float.
3753///
3754///
3755/// vtkIndexedFloatArray is an indexed implicit array of values of type float.
3756/// see vtkIndexedArray, vtkIndexedImplicitBackend
3757///
3758/// This file is generated by vtkImplicitArrays.cmake
3759#[allow(non_camel_case_types)]
3760pub struct vtkIndexedFloatArray(*mut core::ffi::c_void);
3761impl vtkIndexedFloatArray {
3762    /// Creates a new [vtkIndexedFloatArray] wrapped inside `vtkNew`
3763    #[doc(alias = "vtkIndexedFloatArray")]
3764    pub fn new() -> Self {
3765        unsafe extern "C" {
3766            fn vtkIndexedFloatArray_new() -> *mut core::ffi::c_void;
3767        }
3768        Self(unsafe { &mut *vtkIndexedFloatArray_new() })
3769    }
3770    #[cfg(test)]
3771    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3772        unsafe extern "C" {
3773            fn vtkIndexedFloatArray_get_ptr(
3774                sself: *mut core::ffi::c_void,
3775            ) -> *mut core::ffi::c_void;
3776        }
3777        unsafe { vtkIndexedFloatArray_get_ptr(self.0) }
3778    }
3779}
3780impl std::default::Default for vtkIndexedFloatArray {
3781    fn default() -> Self {
3782        Self::new()
3783    }
3784}
3785impl Drop for vtkIndexedFloatArray {
3786    fn drop(&mut self) {
3787        unsafe extern "C" {
3788            fn vtkIndexedFloatArray_destructor(sself: *mut core::ffi::c_void);
3789        }
3790        unsafe { vtkIndexedFloatArray_destructor(self.0) }
3791        self.0 = core::ptr::null_mut();
3792    }
3793}
3794#[test]
3795fn test_vtkIndexedFloatArray_create_drop() {
3796    let obj = vtkIndexedFloatArray::new();
3797    let ptr = obj.0;
3798    assert!(!ptr.is_null());
3799    assert!(unsafe { !obj._get_ptr().is_null() });
3800    drop(obj);
3801    let new_obj = vtkIndexedFloatArray(ptr);
3802    assert!(unsafe { new_obj._get_ptr().is_null() });
3803}
3804/// indexed implicit array of vtkIdType.
3805///
3806///
3807/// vtkIndexedIdTypeArray is an indexed implicit array of values of type vtkIdType.
3808/// see vtkIndexedArray, vtkIndexedImplicitBackend
3809///
3810/// This file is generated by vtkImplicitArrays.cmake
3811#[allow(non_camel_case_types)]
3812pub struct vtkIndexedIdTypeArray(*mut core::ffi::c_void);
3813impl vtkIndexedIdTypeArray {
3814    /// Creates a new [vtkIndexedIdTypeArray] wrapped inside `vtkNew`
3815    #[doc(alias = "vtkIndexedIdTypeArray")]
3816    pub fn new() -> Self {
3817        unsafe extern "C" {
3818            fn vtkIndexedIdTypeArray_new() -> *mut core::ffi::c_void;
3819        }
3820        Self(unsafe { &mut *vtkIndexedIdTypeArray_new() })
3821    }
3822    #[cfg(test)]
3823    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3824        unsafe extern "C" {
3825            fn vtkIndexedIdTypeArray_get_ptr(
3826                sself: *mut core::ffi::c_void,
3827            ) -> *mut core::ffi::c_void;
3828        }
3829        unsafe { vtkIndexedIdTypeArray_get_ptr(self.0) }
3830    }
3831}
3832impl std::default::Default for vtkIndexedIdTypeArray {
3833    fn default() -> Self {
3834        Self::new()
3835    }
3836}
3837impl Drop for vtkIndexedIdTypeArray {
3838    fn drop(&mut self) {
3839        unsafe extern "C" {
3840            fn vtkIndexedIdTypeArray_destructor(sself: *mut core::ffi::c_void);
3841        }
3842        unsafe { vtkIndexedIdTypeArray_destructor(self.0) }
3843        self.0 = core::ptr::null_mut();
3844    }
3845}
3846#[test]
3847fn test_vtkIndexedIdTypeArray_create_drop() {
3848    let obj = vtkIndexedIdTypeArray::new();
3849    let ptr = obj.0;
3850    assert!(!ptr.is_null());
3851    assert!(unsafe { !obj._get_ptr().is_null() });
3852    drop(obj);
3853    let new_obj = vtkIndexedIdTypeArray(ptr);
3854    assert!(unsafe { new_obj._get_ptr().is_null() });
3855}
3856/// indexed implicit array of int.
3857///
3858///
3859/// vtkIndexedIntArray is an indexed implicit array of values of type int.
3860/// see vtkIndexedArray, vtkIndexedImplicitBackend
3861///
3862/// This file is generated by vtkImplicitArrays.cmake
3863#[allow(non_camel_case_types)]
3864pub struct vtkIndexedIntArray(*mut core::ffi::c_void);
3865impl vtkIndexedIntArray {
3866    /// Creates a new [vtkIndexedIntArray] wrapped inside `vtkNew`
3867    #[doc(alias = "vtkIndexedIntArray")]
3868    pub fn new() -> Self {
3869        unsafe extern "C" {
3870            fn vtkIndexedIntArray_new() -> *mut core::ffi::c_void;
3871        }
3872        Self(unsafe { &mut *vtkIndexedIntArray_new() })
3873    }
3874    #[cfg(test)]
3875    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3876        unsafe extern "C" {
3877            fn vtkIndexedIntArray_get_ptr(
3878                sself: *mut core::ffi::c_void,
3879            ) -> *mut core::ffi::c_void;
3880        }
3881        unsafe { vtkIndexedIntArray_get_ptr(self.0) }
3882    }
3883}
3884impl std::default::Default for vtkIndexedIntArray {
3885    fn default() -> Self {
3886        Self::new()
3887    }
3888}
3889impl Drop for vtkIndexedIntArray {
3890    fn drop(&mut self) {
3891        unsafe extern "C" {
3892            fn vtkIndexedIntArray_destructor(sself: *mut core::ffi::c_void);
3893        }
3894        unsafe { vtkIndexedIntArray_destructor(self.0) }
3895        self.0 = core::ptr::null_mut();
3896    }
3897}
3898#[test]
3899fn test_vtkIndexedIntArray_create_drop() {
3900    let obj = vtkIndexedIntArray::new();
3901    let ptr = obj.0;
3902    assert!(!ptr.is_null());
3903    assert!(unsafe { !obj._get_ptr().is_null() });
3904    drop(obj);
3905    let new_obj = vtkIndexedIntArray(ptr);
3906    assert!(unsafe { new_obj._get_ptr().is_null() });
3907}
3908/// indexed implicit array of long.
3909///
3910///
3911/// vtkIndexedLongArray is an indexed implicit array of values of type long.
3912/// see vtkIndexedArray, vtkIndexedImplicitBackend
3913///
3914/// This file is generated by vtkImplicitArrays.cmake
3915#[allow(non_camel_case_types)]
3916pub struct vtkIndexedLongArray(*mut core::ffi::c_void);
3917impl vtkIndexedLongArray {
3918    /// Creates a new [vtkIndexedLongArray] wrapped inside `vtkNew`
3919    #[doc(alias = "vtkIndexedLongArray")]
3920    pub fn new() -> Self {
3921        unsafe extern "C" {
3922            fn vtkIndexedLongArray_new() -> *mut core::ffi::c_void;
3923        }
3924        Self(unsafe { &mut *vtkIndexedLongArray_new() })
3925    }
3926    #[cfg(test)]
3927    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3928        unsafe extern "C" {
3929            fn vtkIndexedLongArray_get_ptr(
3930                sself: *mut core::ffi::c_void,
3931            ) -> *mut core::ffi::c_void;
3932        }
3933        unsafe { vtkIndexedLongArray_get_ptr(self.0) }
3934    }
3935}
3936impl std::default::Default for vtkIndexedLongArray {
3937    fn default() -> Self {
3938        Self::new()
3939    }
3940}
3941impl Drop for vtkIndexedLongArray {
3942    fn drop(&mut self) {
3943        unsafe extern "C" {
3944            fn vtkIndexedLongArray_destructor(sself: *mut core::ffi::c_void);
3945        }
3946        unsafe { vtkIndexedLongArray_destructor(self.0) }
3947        self.0 = core::ptr::null_mut();
3948    }
3949}
3950#[test]
3951fn test_vtkIndexedLongArray_create_drop() {
3952    let obj = vtkIndexedLongArray::new();
3953    let ptr = obj.0;
3954    assert!(!ptr.is_null());
3955    assert!(unsafe { !obj._get_ptr().is_null() });
3956    drop(obj);
3957    let new_obj = vtkIndexedLongArray(ptr);
3958    assert!(unsafe { new_obj._get_ptr().is_null() });
3959}
3960/// indexed implicit array of long long.
3961///
3962///
3963/// vtkIndexedLongLongArray is an indexed implicit array of values of type long long.
3964/// see vtkIndexedArray, vtkIndexedImplicitBackend
3965///
3966/// This file is generated by vtkImplicitArrays.cmake
3967#[allow(non_camel_case_types)]
3968pub struct vtkIndexedLongLongArray(*mut core::ffi::c_void);
3969impl vtkIndexedLongLongArray {
3970    /// Creates a new [vtkIndexedLongLongArray] wrapped inside `vtkNew`
3971    #[doc(alias = "vtkIndexedLongLongArray")]
3972    pub fn new() -> Self {
3973        unsafe extern "C" {
3974            fn vtkIndexedLongLongArray_new() -> *mut core::ffi::c_void;
3975        }
3976        Self(unsafe { &mut *vtkIndexedLongLongArray_new() })
3977    }
3978    #[cfg(test)]
3979    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
3980        unsafe extern "C" {
3981            fn vtkIndexedLongLongArray_get_ptr(
3982                sself: *mut core::ffi::c_void,
3983            ) -> *mut core::ffi::c_void;
3984        }
3985        unsafe { vtkIndexedLongLongArray_get_ptr(self.0) }
3986    }
3987}
3988impl std::default::Default for vtkIndexedLongLongArray {
3989    fn default() -> Self {
3990        Self::new()
3991    }
3992}
3993impl Drop for vtkIndexedLongLongArray {
3994    fn drop(&mut self) {
3995        unsafe extern "C" {
3996            fn vtkIndexedLongLongArray_destructor(sself: *mut core::ffi::c_void);
3997        }
3998        unsafe { vtkIndexedLongLongArray_destructor(self.0) }
3999        self.0 = core::ptr::null_mut();
4000    }
4001}
4002#[test]
4003fn test_vtkIndexedLongLongArray_create_drop() {
4004    let obj = vtkIndexedLongLongArray::new();
4005    let ptr = obj.0;
4006    assert!(!ptr.is_null());
4007    assert!(unsafe { !obj._get_ptr().is_null() });
4008    drop(obj);
4009    let new_obj = vtkIndexedLongLongArray(ptr);
4010    assert!(unsafe { new_obj._get_ptr().is_null() });
4011}
4012/// indexed implicit array of short.
4013///
4014///
4015/// vtkIndexedShortArray is an indexed implicit array of values of type short.
4016/// see vtkIndexedArray, vtkIndexedImplicitBackend
4017///
4018/// This file is generated by vtkImplicitArrays.cmake
4019#[allow(non_camel_case_types)]
4020pub struct vtkIndexedShortArray(*mut core::ffi::c_void);
4021impl vtkIndexedShortArray {
4022    /// Creates a new [vtkIndexedShortArray] wrapped inside `vtkNew`
4023    #[doc(alias = "vtkIndexedShortArray")]
4024    pub fn new() -> Self {
4025        unsafe extern "C" {
4026            fn vtkIndexedShortArray_new() -> *mut core::ffi::c_void;
4027        }
4028        Self(unsafe { &mut *vtkIndexedShortArray_new() })
4029    }
4030    #[cfg(test)]
4031    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4032        unsafe extern "C" {
4033            fn vtkIndexedShortArray_get_ptr(
4034                sself: *mut core::ffi::c_void,
4035            ) -> *mut core::ffi::c_void;
4036        }
4037        unsafe { vtkIndexedShortArray_get_ptr(self.0) }
4038    }
4039}
4040impl std::default::Default for vtkIndexedShortArray {
4041    fn default() -> Self {
4042        Self::new()
4043    }
4044}
4045impl Drop for vtkIndexedShortArray {
4046    fn drop(&mut self) {
4047        unsafe extern "C" {
4048            fn vtkIndexedShortArray_destructor(sself: *mut core::ffi::c_void);
4049        }
4050        unsafe { vtkIndexedShortArray_destructor(self.0) }
4051        self.0 = core::ptr::null_mut();
4052    }
4053}
4054#[test]
4055fn test_vtkIndexedShortArray_create_drop() {
4056    let obj = vtkIndexedShortArray::new();
4057    let ptr = obj.0;
4058    assert!(!ptr.is_null());
4059    assert!(unsafe { !obj._get_ptr().is_null() });
4060    drop(obj);
4061    let new_obj = vtkIndexedShortArray(ptr);
4062    assert!(unsafe { new_obj._get_ptr().is_null() });
4063}
4064/// indexed implicit array of signed char.
4065///
4066///
4067/// vtkIndexedSignedCharArray is an indexed implicit array of values of type signed char.
4068/// see vtkIndexedArray, vtkIndexedImplicitBackend
4069///
4070/// This file is generated by vtkImplicitArrays.cmake
4071#[allow(non_camel_case_types)]
4072pub struct vtkIndexedSignedCharArray(*mut core::ffi::c_void);
4073impl vtkIndexedSignedCharArray {
4074    /// Creates a new [vtkIndexedSignedCharArray] wrapped inside `vtkNew`
4075    #[doc(alias = "vtkIndexedSignedCharArray")]
4076    pub fn new() -> Self {
4077        unsafe extern "C" {
4078            fn vtkIndexedSignedCharArray_new() -> *mut core::ffi::c_void;
4079        }
4080        Self(unsafe { &mut *vtkIndexedSignedCharArray_new() })
4081    }
4082    #[cfg(test)]
4083    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4084        unsafe extern "C" {
4085            fn vtkIndexedSignedCharArray_get_ptr(
4086                sself: *mut core::ffi::c_void,
4087            ) -> *mut core::ffi::c_void;
4088        }
4089        unsafe { vtkIndexedSignedCharArray_get_ptr(self.0) }
4090    }
4091}
4092impl std::default::Default for vtkIndexedSignedCharArray {
4093    fn default() -> Self {
4094        Self::new()
4095    }
4096}
4097impl Drop for vtkIndexedSignedCharArray {
4098    fn drop(&mut self) {
4099        unsafe extern "C" {
4100            fn vtkIndexedSignedCharArray_destructor(sself: *mut core::ffi::c_void);
4101        }
4102        unsafe { vtkIndexedSignedCharArray_destructor(self.0) }
4103        self.0 = core::ptr::null_mut();
4104    }
4105}
4106#[test]
4107fn test_vtkIndexedSignedCharArray_create_drop() {
4108    let obj = vtkIndexedSignedCharArray::new();
4109    let ptr = obj.0;
4110    assert!(!ptr.is_null());
4111    assert!(unsafe { !obj._get_ptr().is_null() });
4112    drop(obj);
4113    let new_obj = vtkIndexedSignedCharArray(ptr);
4114    assert!(unsafe { new_obj._get_ptr().is_null() });
4115}
4116/// indexed implicit array of unsigned char.
4117///
4118///
4119/// vtkIndexedUnsignedCharArray is an indexed implicit array of values of type unsigned char.
4120/// see vtkIndexedArray, vtkIndexedImplicitBackend
4121///
4122/// This file is generated by vtkImplicitArrays.cmake
4123#[allow(non_camel_case_types)]
4124pub struct vtkIndexedUnsignedCharArray(*mut core::ffi::c_void);
4125impl vtkIndexedUnsignedCharArray {
4126    /// Creates a new [vtkIndexedUnsignedCharArray] wrapped inside `vtkNew`
4127    #[doc(alias = "vtkIndexedUnsignedCharArray")]
4128    pub fn new() -> Self {
4129        unsafe extern "C" {
4130            fn vtkIndexedUnsignedCharArray_new() -> *mut core::ffi::c_void;
4131        }
4132        Self(unsafe { &mut *vtkIndexedUnsignedCharArray_new() })
4133    }
4134    #[cfg(test)]
4135    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4136        unsafe extern "C" {
4137            fn vtkIndexedUnsignedCharArray_get_ptr(
4138                sself: *mut core::ffi::c_void,
4139            ) -> *mut core::ffi::c_void;
4140        }
4141        unsafe { vtkIndexedUnsignedCharArray_get_ptr(self.0) }
4142    }
4143}
4144impl std::default::Default for vtkIndexedUnsignedCharArray {
4145    fn default() -> Self {
4146        Self::new()
4147    }
4148}
4149impl Drop for vtkIndexedUnsignedCharArray {
4150    fn drop(&mut self) {
4151        unsafe extern "C" {
4152            fn vtkIndexedUnsignedCharArray_destructor(sself: *mut core::ffi::c_void);
4153        }
4154        unsafe { vtkIndexedUnsignedCharArray_destructor(self.0) }
4155        self.0 = core::ptr::null_mut();
4156    }
4157}
4158#[test]
4159fn test_vtkIndexedUnsignedCharArray_create_drop() {
4160    let obj = vtkIndexedUnsignedCharArray::new();
4161    let ptr = obj.0;
4162    assert!(!ptr.is_null());
4163    assert!(unsafe { !obj._get_ptr().is_null() });
4164    drop(obj);
4165    let new_obj = vtkIndexedUnsignedCharArray(ptr);
4166    assert!(unsafe { new_obj._get_ptr().is_null() });
4167}
4168/// indexed implicit array of unsigned int.
4169///
4170///
4171/// vtkIndexedUnsignedIntArray is an indexed implicit array of values of type unsigned int.
4172/// see vtkIndexedArray, vtkIndexedImplicitBackend
4173///
4174/// This file is generated by vtkImplicitArrays.cmake
4175#[allow(non_camel_case_types)]
4176pub struct vtkIndexedUnsignedIntArray(*mut core::ffi::c_void);
4177impl vtkIndexedUnsignedIntArray {
4178    /// Creates a new [vtkIndexedUnsignedIntArray] wrapped inside `vtkNew`
4179    #[doc(alias = "vtkIndexedUnsignedIntArray")]
4180    pub fn new() -> Self {
4181        unsafe extern "C" {
4182            fn vtkIndexedUnsignedIntArray_new() -> *mut core::ffi::c_void;
4183        }
4184        Self(unsafe { &mut *vtkIndexedUnsignedIntArray_new() })
4185    }
4186    #[cfg(test)]
4187    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4188        unsafe extern "C" {
4189            fn vtkIndexedUnsignedIntArray_get_ptr(
4190                sself: *mut core::ffi::c_void,
4191            ) -> *mut core::ffi::c_void;
4192        }
4193        unsafe { vtkIndexedUnsignedIntArray_get_ptr(self.0) }
4194    }
4195}
4196impl std::default::Default for vtkIndexedUnsignedIntArray {
4197    fn default() -> Self {
4198        Self::new()
4199    }
4200}
4201impl Drop for vtkIndexedUnsignedIntArray {
4202    fn drop(&mut self) {
4203        unsafe extern "C" {
4204            fn vtkIndexedUnsignedIntArray_destructor(sself: *mut core::ffi::c_void);
4205        }
4206        unsafe { vtkIndexedUnsignedIntArray_destructor(self.0) }
4207        self.0 = core::ptr::null_mut();
4208    }
4209}
4210#[test]
4211fn test_vtkIndexedUnsignedIntArray_create_drop() {
4212    let obj = vtkIndexedUnsignedIntArray::new();
4213    let ptr = obj.0;
4214    assert!(!ptr.is_null());
4215    assert!(unsafe { !obj._get_ptr().is_null() });
4216    drop(obj);
4217    let new_obj = vtkIndexedUnsignedIntArray(ptr);
4218    assert!(unsafe { new_obj._get_ptr().is_null() });
4219}
4220/// indexed implicit array of unsigned long.
4221///
4222///
4223/// vtkIndexedUnsignedLongArray is an indexed implicit array of values of type unsigned long.
4224/// see vtkIndexedArray, vtkIndexedImplicitBackend
4225///
4226/// This file is generated by vtkImplicitArrays.cmake
4227#[allow(non_camel_case_types)]
4228pub struct vtkIndexedUnsignedLongArray(*mut core::ffi::c_void);
4229impl vtkIndexedUnsignedLongArray {
4230    /// Creates a new [vtkIndexedUnsignedLongArray] wrapped inside `vtkNew`
4231    #[doc(alias = "vtkIndexedUnsignedLongArray")]
4232    pub fn new() -> Self {
4233        unsafe extern "C" {
4234            fn vtkIndexedUnsignedLongArray_new() -> *mut core::ffi::c_void;
4235        }
4236        Self(unsafe { &mut *vtkIndexedUnsignedLongArray_new() })
4237    }
4238    #[cfg(test)]
4239    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4240        unsafe extern "C" {
4241            fn vtkIndexedUnsignedLongArray_get_ptr(
4242                sself: *mut core::ffi::c_void,
4243            ) -> *mut core::ffi::c_void;
4244        }
4245        unsafe { vtkIndexedUnsignedLongArray_get_ptr(self.0) }
4246    }
4247}
4248impl std::default::Default for vtkIndexedUnsignedLongArray {
4249    fn default() -> Self {
4250        Self::new()
4251    }
4252}
4253impl Drop for vtkIndexedUnsignedLongArray {
4254    fn drop(&mut self) {
4255        unsafe extern "C" {
4256            fn vtkIndexedUnsignedLongArray_destructor(sself: *mut core::ffi::c_void);
4257        }
4258        unsafe { vtkIndexedUnsignedLongArray_destructor(self.0) }
4259        self.0 = core::ptr::null_mut();
4260    }
4261}
4262#[test]
4263fn test_vtkIndexedUnsignedLongArray_create_drop() {
4264    let obj = vtkIndexedUnsignedLongArray::new();
4265    let ptr = obj.0;
4266    assert!(!ptr.is_null());
4267    assert!(unsafe { !obj._get_ptr().is_null() });
4268    drop(obj);
4269    let new_obj = vtkIndexedUnsignedLongArray(ptr);
4270    assert!(unsafe { new_obj._get_ptr().is_null() });
4271}
4272/// indexed implicit array of unsigned long long.
4273///
4274///
4275/// vtkIndexedUnsignedLongLongArray is an indexed implicit array of values of type unsigned long long.
4276/// see vtkIndexedArray, vtkIndexedImplicitBackend
4277///
4278/// This file is generated by vtkImplicitArrays.cmake
4279#[allow(non_camel_case_types)]
4280pub struct vtkIndexedUnsignedLongLongArray(*mut core::ffi::c_void);
4281impl vtkIndexedUnsignedLongLongArray {
4282    /// Creates a new [vtkIndexedUnsignedLongLongArray] wrapped inside `vtkNew`
4283    #[doc(alias = "vtkIndexedUnsignedLongLongArray")]
4284    pub fn new() -> Self {
4285        unsafe extern "C" {
4286            fn vtkIndexedUnsignedLongLongArray_new() -> *mut core::ffi::c_void;
4287        }
4288        Self(unsafe { &mut *vtkIndexedUnsignedLongLongArray_new() })
4289    }
4290    #[cfg(test)]
4291    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4292        unsafe extern "C" {
4293            fn vtkIndexedUnsignedLongLongArray_get_ptr(
4294                sself: *mut core::ffi::c_void,
4295            ) -> *mut core::ffi::c_void;
4296        }
4297        unsafe { vtkIndexedUnsignedLongLongArray_get_ptr(self.0) }
4298    }
4299}
4300impl std::default::Default for vtkIndexedUnsignedLongLongArray {
4301    fn default() -> Self {
4302        Self::new()
4303    }
4304}
4305impl Drop for vtkIndexedUnsignedLongLongArray {
4306    fn drop(&mut self) {
4307        unsafe extern "C" {
4308            fn vtkIndexedUnsignedLongLongArray_destructor(sself: *mut core::ffi::c_void);
4309        }
4310        unsafe { vtkIndexedUnsignedLongLongArray_destructor(self.0) }
4311        self.0 = core::ptr::null_mut();
4312    }
4313}
4314#[test]
4315fn test_vtkIndexedUnsignedLongLongArray_create_drop() {
4316    let obj = vtkIndexedUnsignedLongLongArray::new();
4317    let ptr = obj.0;
4318    assert!(!ptr.is_null());
4319    assert!(unsafe { !obj._get_ptr().is_null() });
4320    drop(obj);
4321    let new_obj = vtkIndexedUnsignedLongLongArray(ptr);
4322    assert!(unsafe { new_obj._get_ptr().is_null() });
4323}
4324/// indexed implicit array of unsigned short.
4325///
4326///
4327/// vtkIndexedUnsignedShortArray is an indexed implicit array of values of type unsigned short.
4328/// see vtkIndexedArray, vtkIndexedImplicitBackend
4329///
4330/// This file is generated by vtkImplicitArrays.cmake
4331#[allow(non_camel_case_types)]
4332pub struct vtkIndexedUnsignedShortArray(*mut core::ffi::c_void);
4333impl vtkIndexedUnsignedShortArray {
4334    /// Creates a new [vtkIndexedUnsignedShortArray] wrapped inside `vtkNew`
4335    #[doc(alias = "vtkIndexedUnsignedShortArray")]
4336    pub fn new() -> Self {
4337        unsafe extern "C" {
4338            fn vtkIndexedUnsignedShortArray_new() -> *mut core::ffi::c_void;
4339        }
4340        Self(unsafe { &mut *vtkIndexedUnsignedShortArray_new() })
4341    }
4342    #[cfg(test)]
4343    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4344        unsafe extern "C" {
4345            fn vtkIndexedUnsignedShortArray_get_ptr(
4346                sself: *mut core::ffi::c_void,
4347            ) -> *mut core::ffi::c_void;
4348        }
4349        unsafe { vtkIndexedUnsignedShortArray_get_ptr(self.0) }
4350    }
4351}
4352impl std::default::Default for vtkIndexedUnsignedShortArray {
4353    fn default() -> Self {
4354        Self::new()
4355    }
4356}
4357impl Drop for vtkIndexedUnsignedShortArray {
4358    fn drop(&mut self) {
4359        unsafe extern "C" {
4360            fn vtkIndexedUnsignedShortArray_destructor(sself: *mut core::ffi::c_void);
4361        }
4362        unsafe { vtkIndexedUnsignedShortArray_destructor(self.0) }
4363        self.0 = core::ptr::null_mut();
4364    }
4365}
4366#[test]
4367fn test_vtkIndexedUnsignedShortArray_create_drop() {
4368    let obj = vtkIndexedUnsignedShortArray::new();
4369    let ptr = obj.0;
4370    assert!(!ptr.is_null());
4371    assert!(unsafe { !obj._get_ptr().is_null() });
4372    drop(obj);
4373    let new_obj = vtkIndexedUnsignedShortArray(ptr);
4374    assert!(unsafe { new_obj._get_ptr().is_null() });
4375}
4376/// Store vtkAlgorithm input/output information.
4377///
4378///
4379/// vtkInformation represents information and/or data for one input or
4380/// one output of a vtkAlgorithm.  It maps from keys to values of
4381/// several data types.  Instances of this class are collected in
4382/// vtkInformationVector instances and passed to
4383/// vtkAlgorithm::ProcessRequest calls.  The information and
4384/// data referenced by the instance on a particular input or output
4385/// define the request made to the vtkAlgorithm instance.
4386#[allow(non_camel_case_types)]
4387pub struct vtkInformation(*mut core::ffi::c_void);
4388impl vtkInformation {
4389    /// Creates a new [vtkInformation] wrapped inside `vtkNew`
4390    #[doc(alias = "vtkInformation")]
4391    pub fn new() -> Self {
4392        unsafe extern "C" {
4393            fn vtkInformation_new() -> *mut core::ffi::c_void;
4394        }
4395        Self(unsafe { &mut *vtkInformation_new() })
4396    }
4397    #[cfg(test)]
4398    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4399        unsafe extern "C" {
4400            fn vtkInformation_get_ptr(
4401                sself: *mut core::ffi::c_void,
4402            ) -> *mut core::ffi::c_void;
4403        }
4404        unsafe { vtkInformation_get_ptr(self.0) }
4405    }
4406}
4407impl std::default::Default for vtkInformation {
4408    fn default() -> Self {
4409        Self::new()
4410    }
4411}
4412impl Drop for vtkInformation {
4413    fn drop(&mut self) {
4414        unsafe extern "C" {
4415            fn vtkInformation_destructor(sself: *mut core::ffi::c_void);
4416        }
4417        unsafe { vtkInformation_destructor(self.0) }
4418        self.0 = core::ptr::null_mut();
4419    }
4420}
4421#[test]
4422fn test_vtkInformation_create_drop() {
4423    let obj = vtkInformation::new();
4424    let ptr = obj.0;
4425    assert!(!ptr.is_null());
4426    assert!(unsafe { !obj._get_ptr().is_null() });
4427    drop(obj);
4428    let new_obj = vtkInformation(ptr);
4429    assert!(unsafe { new_obj._get_ptr().is_null() });
4430}
4431/// Iterates over keys of an information object
4432///
4433///
4434/// vtkInformationIterator can be used to iterate over the keys of an
4435/// information object. The corresponding values can then be directly
4436/// obtained from the information object using the keys.
4437///
4438/// @sa
4439/// vtkInformation vtkInformationKey
4440#[allow(non_camel_case_types)]
4441pub struct vtkInformationIterator(*mut core::ffi::c_void);
4442impl vtkInformationIterator {
4443    /// Creates a new [vtkInformationIterator] wrapped inside `vtkNew`
4444    #[doc(alias = "vtkInformationIterator")]
4445    pub fn new() -> Self {
4446        unsafe extern "C" {
4447            fn vtkInformationIterator_new() -> *mut core::ffi::c_void;
4448        }
4449        Self(unsafe { &mut *vtkInformationIterator_new() })
4450    }
4451    #[cfg(test)]
4452    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4453        unsafe extern "C" {
4454            fn vtkInformationIterator_get_ptr(
4455                sself: *mut core::ffi::c_void,
4456            ) -> *mut core::ffi::c_void;
4457        }
4458        unsafe { vtkInformationIterator_get_ptr(self.0) }
4459    }
4460}
4461impl std::default::Default for vtkInformationIterator {
4462    fn default() -> Self {
4463        Self::new()
4464    }
4465}
4466impl Drop for vtkInformationIterator {
4467    fn drop(&mut self) {
4468        unsafe extern "C" {
4469            fn vtkInformationIterator_destructor(sself: *mut core::ffi::c_void);
4470        }
4471        unsafe { vtkInformationIterator_destructor(self.0) }
4472        self.0 = core::ptr::null_mut();
4473    }
4474}
4475#[test]
4476fn test_vtkInformationIterator_create_drop() {
4477    let obj = vtkInformationIterator::new();
4478    let ptr = obj.0;
4479    assert!(!ptr.is_null());
4480    assert!(unsafe { !obj._get_ptr().is_null() });
4481    drop(obj);
4482    let new_obj = vtkInformationIterator(ptr);
4483    assert!(unsafe { new_obj._get_ptr().is_null() });
4484}
4485/// Find vtkInformationKeys from name and
4486///
4487/// location strings.
4488#[allow(non_camel_case_types)]
4489pub struct vtkInformationKeyLookup(*mut core::ffi::c_void);
4490impl vtkInformationKeyLookup {
4491    /// Creates a new [vtkInformationKeyLookup] wrapped inside `vtkNew`
4492    #[doc(alias = "vtkInformationKeyLookup")]
4493    pub fn new() -> Self {
4494        unsafe extern "C" {
4495            fn vtkInformationKeyLookup_new() -> *mut core::ffi::c_void;
4496        }
4497        Self(unsafe { &mut *vtkInformationKeyLookup_new() })
4498    }
4499    #[cfg(test)]
4500    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4501        unsafe extern "C" {
4502            fn vtkInformationKeyLookup_get_ptr(
4503                sself: *mut core::ffi::c_void,
4504            ) -> *mut core::ffi::c_void;
4505        }
4506        unsafe { vtkInformationKeyLookup_get_ptr(self.0) }
4507    }
4508}
4509impl std::default::Default for vtkInformationKeyLookup {
4510    fn default() -> Self {
4511        Self::new()
4512    }
4513}
4514impl Drop for vtkInformationKeyLookup {
4515    fn drop(&mut self) {
4516        unsafe extern "C" {
4517            fn vtkInformationKeyLookup_destructor(sself: *mut core::ffi::c_void);
4518        }
4519        unsafe { vtkInformationKeyLookup_destructor(self.0) }
4520        self.0 = core::ptr::null_mut();
4521    }
4522}
4523#[test]
4524fn test_vtkInformationKeyLookup_create_drop() {
4525    let obj = vtkInformationKeyLookup::new();
4526    let ptr = obj.0;
4527    assert!(!ptr.is_null());
4528    assert!(unsafe { !obj._get_ptr().is_null() });
4529    drop(obj);
4530    let new_obj = vtkInformationKeyLookup(ptr);
4531    assert!(unsafe { new_obj._get_ptr().is_null() });
4532}
4533/// Store zero or more vtkInformation instances.
4534///
4535///
4536///
4537/// vtkInformationVector stores a vector of zero or more vtkInformation
4538/// objects corresponding to the input or output information for a
4539/// vtkAlgorithm.  An instance of this class is passed to
4540/// vtkAlgorithm::ProcessRequest calls.
4541#[allow(non_camel_case_types)]
4542pub struct vtkInformationVector(*mut core::ffi::c_void);
4543impl vtkInformationVector {
4544    /// Creates a new [vtkInformationVector] wrapped inside `vtkNew`
4545    #[doc(alias = "vtkInformationVector")]
4546    pub fn new() -> Self {
4547        unsafe extern "C" {
4548            fn vtkInformationVector_new() -> *mut core::ffi::c_void;
4549        }
4550        Self(unsafe { &mut *vtkInformationVector_new() })
4551    }
4552    #[cfg(test)]
4553    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4554        unsafe extern "C" {
4555            fn vtkInformationVector_get_ptr(
4556                sself: *mut core::ffi::c_void,
4557            ) -> *mut core::ffi::c_void;
4558        }
4559        unsafe { vtkInformationVector_get_ptr(self.0) }
4560    }
4561}
4562impl std::default::Default for vtkInformationVector {
4563    fn default() -> Self {
4564        Self::new()
4565    }
4566}
4567impl Drop for vtkInformationVector {
4568    fn drop(&mut self) {
4569        unsafe extern "C" {
4570            fn vtkInformationVector_destructor(sself: *mut core::ffi::c_void);
4571        }
4572        unsafe { vtkInformationVector_destructor(self.0) }
4573        self.0 = core::ptr::null_mut();
4574    }
4575}
4576#[test]
4577fn test_vtkInformationVector_create_drop() {
4578    let obj = vtkInformationVector::new();
4579    let ptr = obj.0;
4580    assert!(!ptr.is_null());
4581    assert!(unsafe { !obj._get_ptr().is_null() });
4582    drop(obj);
4583    let new_obj = vtkInformationVector(ptr);
4584    assert!(unsafe { new_obj._get_ptr().is_null() });
4585}
4586/// dynamic, self-adjusting array of int
4587///
4588///
4589/// vtkIntArray is an array of values of type int.  It provides
4590/// methods for insertion and retrieval of values and will
4591/// automatically resize itself to hold new data.
4592///
4593/// The C++ standard does not define the exact size of the int type, so use
4594/// of this type directly is discouraged.  If an array of 32 bit integers is
4595/// needed, prefer vtkTypeInt32Array to this class.
4596#[allow(non_camel_case_types)]
4597pub struct vtkIntArray(*mut core::ffi::c_void);
4598impl vtkIntArray {
4599    /// Creates a new [vtkIntArray] wrapped inside `vtkNew`
4600    #[doc(alias = "vtkIntArray")]
4601    pub fn new() -> Self {
4602        unsafe extern "C" {
4603            fn vtkIntArray_new() -> *mut core::ffi::c_void;
4604        }
4605        Self(unsafe { &mut *vtkIntArray_new() })
4606    }
4607    #[cfg(test)]
4608    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4609        unsafe extern "C" {
4610            fn vtkIntArray_get_ptr(
4611                sself: *mut core::ffi::c_void,
4612            ) -> *mut core::ffi::c_void;
4613        }
4614        unsafe { vtkIntArray_get_ptr(self.0) }
4615    }
4616}
4617impl std::default::Default for vtkIntArray {
4618    fn default() -> Self {
4619        Self::new()
4620    }
4621}
4622impl Drop for vtkIntArray {
4623    fn drop(&mut self) {
4624        unsafe extern "C" {
4625            fn vtkIntArray_destructor(sself: *mut core::ffi::c_void);
4626        }
4627        unsafe { vtkIntArray_destructor(self.0) }
4628        self.0 = core::ptr::null_mut();
4629    }
4630}
4631#[test]
4632fn test_vtkIntArray_create_drop() {
4633    let obj = vtkIntArray::new();
4634    let ptr = obj.0;
4635    assert!(!ptr.is_null());
4636    assert!(unsafe { !obj._get_ptr().is_null() });
4637    drop(obj);
4638    let new_obj = vtkIntArray(ptr);
4639    assert!(unsafe { new_obj._get_ptr().is_null() });
4640}
4641/// dynamic, self-adjusting array of long
4642///
4643///
4644/// vtkLongArray is an array of values of type long.  It provides
4645/// methods for insertion and retrieval of values and will
4646/// automatically resize itself to hold new data.
4647///
4648/// The C++ standard does not define the exact size of the long type, so use
4649/// of this type directly is discouraged.  If an array of 32 bit integers is
4650/// needed, prefer vtkTypeInt32Array to this class.  If an array of 64 bit
4651/// integers is needed, prefer vtkTypeInt64Array to this class.
4652#[allow(non_camel_case_types)]
4653pub struct vtkLongArray(*mut core::ffi::c_void);
4654impl vtkLongArray {
4655    /// Creates a new [vtkLongArray] wrapped inside `vtkNew`
4656    #[doc(alias = "vtkLongArray")]
4657    pub fn new() -> Self {
4658        unsafe extern "C" {
4659            fn vtkLongArray_new() -> *mut core::ffi::c_void;
4660        }
4661        Self(unsafe { &mut *vtkLongArray_new() })
4662    }
4663    #[cfg(test)]
4664    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4665        unsafe extern "C" {
4666            fn vtkLongArray_get_ptr(
4667                sself: *mut core::ffi::c_void,
4668            ) -> *mut core::ffi::c_void;
4669        }
4670        unsafe { vtkLongArray_get_ptr(self.0) }
4671    }
4672}
4673impl std::default::Default for vtkLongArray {
4674    fn default() -> Self {
4675        Self::new()
4676    }
4677}
4678impl Drop for vtkLongArray {
4679    fn drop(&mut self) {
4680        unsafe extern "C" {
4681            fn vtkLongArray_destructor(sself: *mut core::ffi::c_void);
4682        }
4683        unsafe { vtkLongArray_destructor(self.0) }
4684        self.0 = core::ptr::null_mut();
4685    }
4686}
4687#[test]
4688fn test_vtkLongArray_create_drop() {
4689    let obj = vtkLongArray::new();
4690    let ptr = obj.0;
4691    assert!(!ptr.is_null());
4692    assert!(unsafe { !obj._get_ptr().is_null() });
4693    drop(obj);
4694    let new_obj = vtkLongArray(ptr);
4695    assert!(unsafe { new_obj._get_ptr().is_null() });
4696}
4697/// dynamic, self-adjusting array of long long
4698///
4699///
4700/// vtkLongLongArray is an array of values of type long long.
4701/// It provides methods for insertion and retrieval of values and will
4702/// automatically resize itself to hold new data.
4703///
4704/// This class should not be used directly, as it only exists on systems
4705/// where the long long type is defined.  If you need a 64 bit integer
4706/// data array, use vtkTypeInt64Array instead.
4707#[allow(non_camel_case_types)]
4708pub struct vtkLongLongArray(*mut core::ffi::c_void);
4709impl vtkLongLongArray {
4710    /// Creates a new [vtkLongLongArray] wrapped inside `vtkNew`
4711    #[doc(alias = "vtkLongLongArray")]
4712    pub fn new() -> Self {
4713        unsafe extern "C" {
4714            fn vtkLongLongArray_new() -> *mut core::ffi::c_void;
4715        }
4716        Self(unsafe { &mut *vtkLongLongArray_new() })
4717    }
4718    #[cfg(test)]
4719    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4720        unsafe extern "C" {
4721            fn vtkLongLongArray_get_ptr(
4722                sself: *mut core::ffi::c_void,
4723            ) -> *mut core::ffi::c_void;
4724        }
4725        unsafe { vtkLongLongArray_get_ptr(self.0) }
4726    }
4727}
4728impl std::default::Default for vtkLongLongArray {
4729    fn default() -> Self {
4730        Self::new()
4731    }
4732}
4733impl Drop for vtkLongLongArray {
4734    fn drop(&mut self) {
4735        unsafe extern "C" {
4736            fn vtkLongLongArray_destructor(sself: *mut core::ffi::c_void);
4737        }
4738        unsafe { vtkLongLongArray_destructor(self.0) }
4739        self.0 = core::ptr::null_mut();
4740    }
4741}
4742#[test]
4743fn test_vtkLongLongArray_create_drop() {
4744    let obj = vtkLongLongArray::new();
4745    let ptr = obj.0;
4746    assert!(!ptr.is_null());
4747    assert!(unsafe { !obj._get_ptr().is_null() });
4748    drop(obj);
4749    let new_obj = vtkLongLongArray(ptr);
4750    assert!(unsafe { new_obj._get_ptr().is_null() });
4751}
4752/// map scalar values into colors via a lookup table
4753///
4754///
4755/// vtkLookupTable is an object that is used by mapper objects to map scalar
4756/// values into RGBA (red-green-blue-alpha) color specification,
4757/// or RGBA into scalar values. The color table can be created by direct
4758/// insertion of color values, or by specifying a hue, saturation, value, and
4759/// alpha range and generating a table.
4760///
4761/// A special color for NaN values in the data can be specified via
4762/// SetNanColor(). In addition, a color for data values below the
4763/// lookup table range minimum can be specified with
4764/// SetBelowRangeColor(), and that color will be used for values below
4765/// the range minimum when UseBelowRangeColor is on.  Likewise, a color
4766/// for data values above the lookup table range maximum can be
4767/// specified with SetAboveRangeColor(), and it is used when
4768/// UseAboveRangeColor is on.
4769///
4770/// This class behaves differently depending on how \a IndexedLookup is set.
4771/// When true, vtkLookupTable enters a mode for representing categorical color maps.
4772/// By setting \a IndexedLookup to true, you indicate that the annotated
4773/// values are the only valid values for which entries in the color table
4774/// should be returned. The colors in the lookup \a Table are assigned
4775/// to annotated values by taking the modulus of their index in the list
4776/// of annotations. \a IndexedLookup changes the behavior of \a GetIndex,
4777/// which in turn changes the way \a MapScalarsThroughTable2 behaves;
4778/// when \a IndexedLookup is true, \a MapScalarsThroughTable2 will search for
4779/// scalar values in \a AnnotatedValues and use the resulting index to
4780/// determine the color. If a scalar value is not present in \a AnnotatedValues,
4781/// then \a NanColor will be used.
4782///
4783/// @warning
4784/// You need to explicitly call Build() when constructing the LUT by hand.
4785///
4786/// @sa
4787/// vtkLogLookupTable vtkWindowLevelLookupTable
4788#[allow(non_camel_case_types)]
4789pub struct vtkLookupTable(*mut core::ffi::c_void);
4790impl vtkLookupTable {
4791    /// Creates a new [vtkLookupTable] wrapped inside `vtkNew`
4792    #[doc(alias = "vtkLookupTable")]
4793    pub fn new() -> Self {
4794        unsafe extern "C" {
4795            fn vtkLookupTable_new() -> *mut core::ffi::c_void;
4796        }
4797        Self(unsafe { &mut *vtkLookupTable_new() })
4798    }
4799    #[cfg(test)]
4800    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4801        unsafe extern "C" {
4802            fn vtkLookupTable_get_ptr(
4803                sself: *mut core::ffi::c_void,
4804            ) -> *mut core::ffi::c_void;
4805        }
4806        unsafe { vtkLookupTable_get_ptr(self.0) }
4807    }
4808}
4809impl std::default::Default for vtkLookupTable {
4810    fn default() -> Self {
4811        Self::new()
4812    }
4813}
4814impl Drop for vtkLookupTable {
4815    fn drop(&mut self) {
4816        unsafe extern "C" {
4817            fn vtkLookupTable_destructor(sself: *mut core::ffi::c_void);
4818        }
4819        unsafe { vtkLookupTable_destructor(self.0) }
4820        self.0 = core::ptr::null_mut();
4821    }
4822}
4823#[test]
4824fn test_vtkLookupTable_create_drop() {
4825    let obj = vtkLookupTable::new();
4826    let ptr = obj.0;
4827    assert!(!ptr.is_null());
4828    assert!(unsafe { !obj._get_ptr().is_null() });
4829    drop(obj);
4830    let new_obj = vtkLookupTable(ptr);
4831    assert!(unsafe { new_obj._get_ptr().is_null() });
4832}
4833/// Shared context used by `vtkSerializer` and `vtkDeserializer`
4834///
4835///
4836/// This class is capable of tracking dependencies among VTK objects, their states
4837/// and preventing recursion when the VTK serialization classes are used.
4838///
4839/// It also provides centralized storage and tracking of objects in a weak object map,
4840/// recording ownership of objects using a strong object map, hashing the contents of
4841/// blobs to minimize data redundancies in the state and finally an API to coordinate
4842/// the registration and removal of states, objects and blobs.
4843#[allow(non_camel_case_types)]
4844pub struct vtkMarshalContext(*mut core::ffi::c_void);
4845impl vtkMarshalContext {
4846    /// Creates a new [vtkMarshalContext] wrapped inside `vtkNew`
4847    #[doc(alias = "vtkMarshalContext")]
4848    pub fn new() -> Self {
4849        unsafe extern "C" {
4850            fn vtkMarshalContext_new() -> *mut core::ffi::c_void;
4851        }
4852        Self(unsafe { &mut *vtkMarshalContext_new() })
4853    }
4854    #[cfg(test)]
4855    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4856        unsafe extern "C" {
4857            fn vtkMarshalContext_get_ptr(
4858                sself: *mut core::ffi::c_void,
4859            ) -> *mut core::ffi::c_void;
4860        }
4861        unsafe { vtkMarshalContext_get_ptr(self.0) }
4862    }
4863}
4864impl std::default::Default for vtkMarshalContext {
4865    fn default() -> Self {
4866        Self::new()
4867    }
4868}
4869impl Drop for vtkMarshalContext {
4870    fn drop(&mut self) {
4871        unsafe extern "C" {
4872            fn vtkMarshalContext_destructor(sself: *mut core::ffi::c_void);
4873        }
4874        unsafe { vtkMarshalContext_destructor(self.0) }
4875        self.0 = core::ptr::null_mut();
4876    }
4877}
4878#[test]
4879fn test_vtkMarshalContext_create_drop() {
4880    let obj = vtkMarshalContext::new();
4881    let ptr = obj.0;
4882    assert!(!ptr.is_null());
4883    assert!(unsafe { !obj._get_ptr().is_null() });
4884    drop(obj);
4885    let new_obj = vtkMarshalContext(ptr);
4886    assert!(unsafe { new_obj._get_ptr().is_null() });
4887}
4888/// performs common math operations
4889///
4890///
4891/// vtkMath provides methods to perform common math operations. These
4892/// include providing constants such as Pi; conversion from degrees to
4893/// radians; vector operations such as dot and cross products and vector
4894/// norm; matrix determinant for 2x2 and 3x3 matrices; univariate polynomial
4895/// solvers; and for random number generation (for backward compatibility only).
4896/// @sa
4897/// vtkMinimalStandardRandomSequence, vtkBoxMuellerRandomSequence,
4898/// vtkQuaternion
4899#[allow(non_camel_case_types)]
4900pub struct vtkMath(*mut core::ffi::c_void);
4901impl vtkMath {
4902    /// Creates a new [vtkMath] wrapped inside `vtkNew`
4903    #[doc(alias = "vtkMath")]
4904    pub fn new() -> Self {
4905        unsafe extern "C" {
4906            fn vtkMath_new() -> *mut core::ffi::c_void;
4907        }
4908        Self(unsafe { &mut *vtkMath_new() })
4909    }
4910    #[cfg(test)]
4911    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4912        unsafe extern "C" {
4913            fn vtkMath_get_ptr(sself: *mut core::ffi::c_void) -> *mut core::ffi::c_void;
4914        }
4915        unsafe { vtkMath_get_ptr(self.0) }
4916    }
4917}
4918impl std::default::Default for vtkMath {
4919    fn default() -> Self {
4920        Self::new()
4921    }
4922}
4923impl Drop for vtkMath {
4924    fn drop(&mut self) {
4925        unsafe extern "C" {
4926            fn vtkMath_destructor(sself: *mut core::ffi::c_void);
4927        }
4928        unsafe { vtkMath_destructor(self.0) }
4929        self.0 = core::ptr::null_mut();
4930    }
4931}
4932#[test]
4933fn test_vtkMath_create_drop() {
4934    let obj = vtkMath::new();
4935    let ptr = obj.0;
4936    assert!(!ptr.is_null());
4937    assert!(unsafe { !obj._get_ptr().is_null() });
4938    drop(obj);
4939    let new_obj = vtkMath(ptr);
4940    assert!(unsafe { new_obj._get_ptr().is_null() });
4941}
4942/// Generator for Mersenne Twister pseudorandom numbers
4943///
4944///
4945/// vtkMersenneTwister is an implementation of the Mersenne Twister pseudorandom
4946/// number generator. The VTK class is simply a wrapper around an implementation
4947/// written by M. Matsumoto, T. Nishimura and M. Saito, whose source code can be
4948/// found at http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/DC/dc.html.
4949///
4950/// This implementation of the Mersenne Twister facilitates the generation and
4951/// query from multiple independent pseudorandom sequences. Independent sequences
4952/// are identified by a unique vtkMersenneTwister::SequenceId, which is either
4953/// generated upon request or passed into the initialization method. This id is
4954/// factored into the initialization of the Mersenne Twister's initial state, so
4955/// two sequences with the same seed and different sequence ids will produce
4956/// different results. Once a sequence is initialized with an associated sequence
4957/// id, this id is used to obtain values from the sequence.
4958///
4959/// This class, besides generating random sequences in sequential order, can
4960/// also populate a double array of specified size with a random sequence. It
4961/// will do so using one or more threads depending on the number of values
4962/// requested to generate.
4963#[allow(non_camel_case_types)]
4964pub struct vtkMersenneTwister(*mut core::ffi::c_void);
4965impl vtkMersenneTwister {
4966    /// Creates a new [vtkMersenneTwister] wrapped inside `vtkNew`
4967    #[doc(alias = "vtkMersenneTwister")]
4968    pub fn new() -> Self {
4969        unsafe extern "C" {
4970            fn vtkMersenneTwister_new() -> *mut core::ffi::c_void;
4971        }
4972        Self(unsafe { &mut *vtkMersenneTwister_new() })
4973    }
4974    #[cfg(test)]
4975    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
4976        unsafe extern "C" {
4977            fn vtkMersenneTwister_get_ptr(
4978                sself: *mut core::ffi::c_void,
4979            ) -> *mut core::ffi::c_void;
4980        }
4981        unsafe { vtkMersenneTwister_get_ptr(self.0) }
4982    }
4983}
4984impl std::default::Default for vtkMersenneTwister {
4985    fn default() -> Self {
4986        Self::new()
4987    }
4988}
4989impl Drop for vtkMersenneTwister {
4990    fn drop(&mut self) {
4991        unsafe extern "C" {
4992            fn vtkMersenneTwister_destructor(sself: *mut core::ffi::c_void);
4993        }
4994        unsafe { vtkMersenneTwister_destructor(self.0) }
4995        self.0 = core::ptr::null_mut();
4996    }
4997}
4998#[test]
4999fn test_vtkMersenneTwister_create_drop() {
5000    let obj = vtkMersenneTwister::new();
5001    let ptr = obj.0;
5002    assert!(!ptr.is_null());
5003    assert!(unsafe { !obj._get_ptr().is_null() });
5004    drop(obj);
5005    let new_obj = vtkMersenneTwister(ptr);
5006    assert!(unsafe { new_obj._get_ptr().is_null() });
5007}
5008/// Park and Miller Sequence of pseudo random numbers
5009///
5010///
5011/// vtkMinimalStandardRandomSequence is a sequence of statistically independent
5012/// pseudo random numbers uniformly distributed between 0.0 and 1.0.
5013///
5014/// The sequence is generated by a prime modulus multiplicative linear
5015/// congruential generator (PMMLCG) or "Lehmer generator" with multiplier 16807
5016/// and prime modulus 2^(31)-1. The authors calls it
5017/// "minimal standard random number generator"
5018///
5019/// ref: "Random Number Generators: Good Ones are Hard to Find,"
5020/// by Stephen K. Park and Keith W. Miller in Communications of the ACM,
5021/// 31, 10 (Oct. 1988) pp. 1192-1201.
5022/// Code is at page 1195, "Integer version 2"
5023///
5024/// Correctness test is described in first column, page 1195:
5025/// A seed of 1 at step 1 should give a seed of 1043618065 at step 10001.
5026#[allow(non_camel_case_types)]
5027pub struct vtkMinimalStandardRandomSequence(*mut core::ffi::c_void);
5028impl vtkMinimalStandardRandomSequence {
5029    /// Creates a new [vtkMinimalStandardRandomSequence] wrapped inside `vtkNew`
5030    #[doc(alias = "vtkMinimalStandardRandomSequence")]
5031    pub fn new() -> Self {
5032        unsafe extern "C" {
5033            fn vtkMinimalStandardRandomSequence_new() -> *mut core::ffi::c_void;
5034        }
5035        Self(unsafe { &mut *vtkMinimalStandardRandomSequence_new() })
5036    }
5037    #[cfg(test)]
5038    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5039        unsafe extern "C" {
5040            fn vtkMinimalStandardRandomSequence_get_ptr(
5041                sself: *mut core::ffi::c_void,
5042            ) -> *mut core::ffi::c_void;
5043        }
5044        unsafe { vtkMinimalStandardRandomSequence_get_ptr(self.0) }
5045    }
5046}
5047impl std::default::Default for vtkMinimalStandardRandomSequence {
5048    fn default() -> Self {
5049        Self::new()
5050    }
5051}
5052impl Drop for vtkMinimalStandardRandomSequence {
5053    fn drop(&mut self) {
5054        unsafe extern "C" {
5055            fn vtkMinimalStandardRandomSequence_destructor(
5056                sself: *mut core::ffi::c_void,
5057            );
5058        }
5059        unsafe { vtkMinimalStandardRandomSequence_destructor(self.0) }
5060        self.0 = core::ptr::null_mut();
5061    }
5062}
5063#[test]
5064fn test_vtkMinimalStandardRandomSequence_create_drop() {
5065    let obj = vtkMinimalStandardRandomSequence::new();
5066    let ptr = obj.0;
5067    assert!(!ptr.is_null());
5068    assert!(unsafe { !obj._get_ptr().is_null() });
5069    drop(obj);
5070    let new_obj = vtkMinimalStandardRandomSequence(ptr);
5071    assert!(unsafe { new_obj._get_ptr().is_null() });
5072}
5073/// A class for performing multithreaded execution
5074///
5075///
5076/// vtkMultithreader is a class that provides support for multithreaded
5077/// execution using pthreads on POSIX systems, or Win32 threads on
5078/// Windows.  This class can be used to execute a single
5079/// method on multiple threads, or to specify a method per thread.
5080#[allow(non_camel_case_types)]
5081pub struct vtkMultiThreader(*mut core::ffi::c_void);
5082impl vtkMultiThreader {
5083    /// Creates a new [vtkMultiThreader] wrapped inside `vtkNew`
5084    #[doc(alias = "vtkMultiThreader")]
5085    pub fn new() -> Self {
5086        unsafe extern "C" {
5087            fn vtkMultiThreader_new() -> *mut core::ffi::c_void;
5088        }
5089        Self(unsafe { &mut *vtkMultiThreader_new() })
5090    }
5091    #[cfg(test)]
5092    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5093        unsafe extern "C" {
5094            fn vtkMultiThreader_get_ptr(
5095                sself: *mut core::ffi::c_void,
5096            ) -> *mut core::ffi::c_void;
5097        }
5098        unsafe { vtkMultiThreader_get_ptr(self.0) }
5099    }
5100}
5101impl std::default::Default for vtkMultiThreader {
5102    fn default() -> Self {
5103        Self::new()
5104    }
5105}
5106impl Drop for vtkMultiThreader {
5107    fn drop(&mut self) {
5108        unsafe extern "C" {
5109            fn vtkMultiThreader_destructor(sself: *mut core::ffi::c_void);
5110        }
5111        unsafe { vtkMultiThreader_destructor(self.0) }
5112        self.0 = core::ptr::null_mut();
5113    }
5114}
5115#[test]
5116fn test_vtkMultiThreader_create_drop() {
5117    let obj = vtkMultiThreader::new();
5118    let ptr = obj.0;
5119    assert!(!ptr.is_null());
5120    assert!(unsafe { !obj._get_ptr().is_null() });
5121    drop(obj);
5122    let new_obj = vtkMultiThreader(ptr);
5123    assert!(unsafe { new_obj._get_ptr().is_null() });
5124}
5125/// abstract base class for most VTK objects
5126///
5127///
5128/// vtkObject is the base class for most objects in the visualization
5129/// toolkit. vtkObject provides methods for tracking modification time,
5130/// debugging, printing, and event callbacks. Most objects created
5131/// within the VTK framework should be a subclass of vtkObject or one
5132/// of its children.  The few exceptions tend to be very small helper
5133/// classes that usually never get instantiated or situations where
5134/// multiple inheritance gets in the way.  vtkObject also performs
5135/// reference counting: objects that are reference counted exist as
5136/// long as another object uses them. Once the last reference to a
5137/// reference counted object is removed, the object will spontaneously
5138/// destruct.
5139///
5140/// @warning
5141/// Note: in VTK objects should always be created with the New() method
5142/// and deleted with the Delete() method. VTK objects cannot be
5143/// allocated off the stack (i.e., automatic objects) because the
5144/// constructor is a protected method.
5145///
5146/// @sa
5147/// vtkCommand vtkTimeStamp
5148#[allow(non_camel_case_types)]
5149pub struct vtkObject(*mut core::ffi::c_void);
5150impl vtkObject {
5151    /// Creates a new [vtkObject] wrapped inside `vtkNew`
5152    #[doc(alias = "vtkObject")]
5153    pub fn new() -> Self {
5154        unsafe extern "C" {
5155            fn vtkObject_new() -> *mut core::ffi::c_void;
5156        }
5157        Self(unsafe { &mut *vtkObject_new() })
5158    }
5159    #[cfg(test)]
5160    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5161        unsafe extern "C" {
5162            fn vtkObject_get_ptr(
5163                sself: *mut core::ffi::c_void,
5164            ) -> *mut core::ffi::c_void;
5165        }
5166        unsafe { vtkObject_get_ptr(self.0) }
5167    }
5168}
5169impl std::default::Default for vtkObject {
5170    fn default() -> Self {
5171        Self::new()
5172    }
5173}
5174impl Drop for vtkObject {
5175    fn drop(&mut self) {
5176        unsafe extern "C" {
5177            fn vtkObject_destructor(sself: *mut core::ffi::c_void);
5178        }
5179        unsafe { vtkObject_destructor(self.0) }
5180        self.0 = core::ptr::null_mut();
5181    }
5182}
5183#[test]
5184fn test_vtkObject_create_drop() {
5185    let obj = vtkObject::new();
5186    let ptr = obj.0;
5187    assert!(!ptr.is_null());
5188    assert!(unsafe { !obj._get_ptr().is_null() });
5189    drop(obj);
5190    let new_obj = vtkObject(ptr);
5191    assert!(unsafe { new_obj._get_ptr().is_null() });
5192}
5193/// maintain a list of object factories
5194///
5195///
5196/// vtkObjectFactoryCollection is an object that creates and manipulates
5197/// ordered lists of objects of type vtkObjectFactory.
5198///
5199/// @sa
5200/// vtkCollection vtkObjectFactory
5201#[allow(non_camel_case_types)]
5202pub struct vtkObjectFactoryCollection(*mut core::ffi::c_void);
5203impl vtkObjectFactoryCollection {
5204    /// Creates a new [vtkObjectFactoryCollection] wrapped inside `vtkNew`
5205    #[doc(alias = "vtkObjectFactoryCollection")]
5206    pub fn new() -> Self {
5207        unsafe extern "C" {
5208            fn vtkObjectFactoryCollection_new() -> *mut core::ffi::c_void;
5209        }
5210        Self(unsafe { &mut *vtkObjectFactoryCollection_new() })
5211    }
5212    #[cfg(test)]
5213    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5214        unsafe extern "C" {
5215            fn vtkObjectFactoryCollection_get_ptr(
5216                sself: *mut core::ffi::c_void,
5217            ) -> *mut core::ffi::c_void;
5218        }
5219        unsafe { vtkObjectFactoryCollection_get_ptr(self.0) }
5220    }
5221}
5222impl std::default::Default for vtkObjectFactoryCollection {
5223    fn default() -> Self {
5224        Self::new()
5225    }
5226}
5227impl Drop for vtkObjectFactoryCollection {
5228    fn drop(&mut self) {
5229        unsafe extern "C" {
5230            fn vtkObjectFactoryCollection_destructor(sself: *mut core::ffi::c_void);
5231        }
5232        unsafe { vtkObjectFactoryCollection_destructor(self.0) }
5233        self.0 = core::ptr::null_mut();
5234    }
5235}
5236#[test]
5237fn test_vtkObjectFactoryCollection_create_drop() {
5238    let obj = vtkObjectFactoryCollection::new();
5239    let ptr = obj.0;
5240    assert!(!ptr.is_null());
5241    assert!(unsafe { !obj._get_ptr().is_null() });
5242    drop(obj);
5243    let new_obj = vtkObjectFactoryCollection(ptr);
5244    assert!(unsafe { new_obj._get_ptr().is_null() });
5245}
5246/// supports legacy function callbacks for VTK
5247///
5248///
5249/// vtkOldStyleCallbackCommand is a callback that supports the legacy callback
5250/// methods found in VTK. For example, the legacy method
5251/// vtkProcessObject::SetStartMethod() is actually invoked using the
5252/// command/observer design pattern of VTK, and the vtkOldStyleCallbackCommand
5253/// is used to provide the legacy functionality. The callback function should
5254/// have the form void func(void *clientdata), where clientdata is special data
5255/// that should is associated with this instance of vtkCallbackCommand.
5256///
5257/// @warning
5258/// This is legacy glue. Please do not use; it will be eventually eliminated.
5259///
5260/// @sa
5261/// vtkCommand vtkCallbackCommand
5262#[allow(non_camel_case_types)]
5263pub struct vtkOldStyleCallbackCommand(*mut core::ffi::c_void);
5264impl vtkOldStyleCallbackCommand {
5265    /// Creates a new [vtkOldStyleCallbackCommand] wrapped inside `vtkNew`
5266    #[doc(alias = "vtkOldStyleCallbackCommand")]
5267    pub fn new() -> Self {
5268        unsafe extern "C" {
5269            fn vtkOldStyleCallbackCommand_new() -> *mut core::ffi::c_void;
5270        }
5271        Self(unsafe { &mut *vtkOldStyleCallbackCommand_new() })
5272    }
5273    #[cfg(test)]
5274    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5275        unsafe extern "C" {
5276            fn vtkOldStyleCallbackCommand_get_ptr(
5277                sself: *mut core::ffi::c_void,
5278            ) -> *mut core::ffi::c_void;
5279        }
5280        unsafe { vtkOldStyleCallbackCommand_get_ptr(self.0) }
5281    }
5282}
5283impl std::default::Default for vtkOldStyleCallbackCommand {
5284    fn default() -> Self {
5285        Self::new()
5286    }
5287}
5288impl Drop for vtkOldStyleCallbackCommand {
5289    fn drop(&mut self) {
5290        unsafe extern "C" {
5291            fn vtkOldStyleCallbackCommand_destructor(sself: *mut core::ffi::c_void);
5292        }
5293        unsafe { vtkOldStyleCallbackCommand_destructor(self.0) }
5294        self.0 = core::ptr::null_mut();
5295    }
5296}
5297#[test]
5298fn test_vtkOldStyleCallbackCommand_create_drop() {
5299    let obj = vtkOldStyleCallbackCommand::new();
5300    let ptr = obj.0;
5301    assert!(!ptr.is_null());
5302    assert!(unsafe { !obj._get_ptr().is_null() });
5303    drop(obj);
5304    let new_obj = vtkOldStyleCallbackCommand(ptr);
5305    assert!(unsafe { new_obj._get_ptr().is_null() });
5306}
5307/// base class for writing debug output to a console
5308///
5309///
5310/// This class is used to encapsulate all text output, so that it will work
5311/// with operating systems that have a stdout and stderr, and ones that
5312/// do not.  (i.e windows does not).  Sub-classes can be provided which can
5313/// redirect the output to a window.
5314#[allow(non_camel_case_types)]
5315pub struct vtkOutputWindow(*mut core::ffi::c_void);
5316impl vtkOutputWindow {
5317    /// Creates a new [vtkOutputWindow] wrapped inside `vtkNew`
5318    #[doc(alias = "vtkOutputWindow")]
5319    pub fn new() -> Self {
5320        unsafe extern "C" {
5321            fn vtkOutputWindow_new() -> *mut core::ffi::c_void;
5322        }
5323        Self(unsafe { &mut *vtkOutputWindow_new() })
5324    }
5325    #[cfg(test)]
5326    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5327        unsafe extern "C" {
5328            fn vtkOutputWindow_get_ptr(
5329                sself: *mut core::ffi::c_void,
5330            ) -> *mut core::ffi::c_void;
5331        }
5332        unsafe { vtkOutputWindow_get_ptr(self.0) }
5333    }
5334}
5335impl std::default::Default for vtkOutputWindow {
5336    fn default() -> Self {
5337        Self::new()
5338    }
5339}
5340impl Drop for vtkOutputWindow {
5341    fn drop(&mut self) {
5342        unsafe extern "C" {
5343            fn vtkOutputWindow_destructor(sself: *mut core::ffi::c_void);
5344        }
5345        unsafe { vtkOutputWindow_destructor(self.0) }
5346        self.0 = core::ptr::null_mut();
5347    }
5348}
5349#[test]
5350fn test_vtkOutputWindow_create_drop() {
5351    let obj = vtkOutputWindow::new();
5352    let ptr = obj.0;
5353    assert!(!ptr.is_null());
5354    assert!(unsafe { !obj._get_ptr().is_null() });
5355    drop(obj);
5356    let new_obj = vtkOutputWindow(ptr);
5357    assert!(unsafe { new_obj._get_ptr().is_null() });
5358}
5359/// maintain a list of override information objects
5360///
5361///
5362/// vtkOverrideInformationCollection is an object that creates and manipulates
5363/// lists of objects of type vtkOverrideInformation.
5364/// @sa
5365/// vtkCollection
5366#[allow(non_camel_case_types)]
5367pub struct vtkOverrideInformationCollection(*mut core::ffi::c_void);
5368impl vtkOverrideInformationCollection {
5369    /// Creates a new [vtkOverrideInformationCollection] wrapped inside `vtkNew`
5370    #[doc(alias = "vtkOverrideInformationCollection")]
5371    pub fn new() -> Self {
5372        unsafe extern "C" {
5373            fn vtkOverrideInformationCollection_new() -> *mut core::ffi::c_void;
5374        }
5375        Self(unsafe { &mut *vtkOverrideInformationCollection_new() })
5376    }
5377    #[cfg(test)]
5378    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5379        unsafe extern "C" {
5380            fn vtkOverrideInformationCollection_get_ptr(
5381                sself: *mut core::ffi::c_void,
5382            ) -> *mut core::ffi::c_void;
5383        }
5384        unsafe { vtkOverrideInformationCollection_get_ptr(self.0) }
5385    }
5386}
5387impl std::default::Default for vtkOverrideInformationCollection {
5388    fn default() -> Self {
5389        Self::new()
5390    }
5391}
5392impl Drop for vtkOverrideInformationCollection {
5393    fn drop(&mut self) {
5394        unsafe extern "C" {
5395            fn vtkOverrideInformationCollection_destructor(
5396                sself: *mut core::ffi::c_void,
5397            );
5398        }
5399        unsafe { vtkOverrideInformationCollection_destructor(self.0) }
5400        self.0 = core::ptr::null_mut();
5401    }
5402}
5403#[test]
5404fn test_vtkOverrideInformationCollection_create_drop() {
5405    let obj = vtkOverrideInformationCollection::new();
5406    let ptr = obj.0;
5407    assert!(!ptr.is_null());
5408    assert!(unsafe { !obj._get_ptr().is_null() });
5409    drop(obj);
5410    let new_obj = vtkOverrideInformationCollection(ptr);
5411    assert!(unsafe { new_obj._get_ptr().is_null() });
5412}
5413/// represent and manipulate 3D points
5414///
5415///
5416/// vtkPoints represents 3D points. The data model for vtkPoints is an
5417/// array of vx-vy-vz triplets accessible by (point or cell) id.
5418#[allow(non_camel_case_types)]
5419pub struct vtkPoints(*mut core::ffi::c_void);
5420impl vtkPoints {
5421    /// Creates a new [vtkPoints] wrapped inside `vtkNew`
5422    #[doc(alias = "vtkPoints")]
5423    pub fn new() -> Self {
5424        unsafe extern "C" {
5425            fn vtkPoints_new() -> *mut core::ffi::c_void;
5426        }
5427        Self(unsafe { &mut *vtkPoints_new() })
5428    }
5429    #[cfg(test)]
5430    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5431        unsafe extern "C" {
5432            fn vtkPoints_get_ptr(
5433                sself: *mut core::ffi::c_void,
5434            ) -> *mut core::ffi::c_void;
5435        }
5436        unsafe { vtkPoints_get_ptr(self.0) }
5437    }
5438}
5439impl std::default::Default for vtkPoints {
5440    fn default() -> Self {
5441        Self::new()
5442    }
5443}
5444impl Drop for vtkPoints {
5445    fn drop(&mut self) {
5446        unsafe extern "C" {
5447            fn vtkPoints_destructor(sself: *mut core::ffi::c_void);
5448        }
5449        unsafe { vtkPoints_destructor(self.0) }
5450        self.0 = core::ptr::null_mut();
5451    }
5452}
5453#[test]
5454fn test_vtkPoints_create_drop() {
5455    let obj = vtkPoints::new();
5456    let ptr = obj.0;
5457    assert!(!ptr.is_null());
5458    assert!(unsafe { !obj._get_ptr().is_null() });
5459    drop(obj);
5460    let new_obj = vtkPoints(ptr);
5461    assert!(unsafe { new_obj._get_ptr().is_null() });
5462}
5463/// represent and manipulate 2D points
5464///
5465///
5466/// vtkPoints2D represents 2D points. The data model for vtkPoints2D is an
5467/// array of vx-vy doublets accessible by (point or cell) id.
5468#[allow(non_camel_case_types)]
5469pub struct vtkPoints2D(*mut core::ffi::c_void);
5470impl vtkPoints2D {
5471    /// Creates a new [vtkPoints2D] wrapped inside `vtkNew`
5472    #[doc(alias = "vtkPoints2D")]
5473    pub fn new() -> Self {
5474        unsafe extern "C" {
5475            fn vtkPoints2D_new() -> *mut core::ffi::c_void;
5476        }
5477        Self(unsafe { &mut *vtkPoints2D_new() })
5478    }
5479    #[cfg(test)]
5480    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5481        unsafe extern "C" {
5482            fn vtkPoints2D_get_ptr(
5483                sself: *mut core::ffi::c_void,
5484            ) -> *mut core::ffi::c_void;
5485        }
5486        unsafe { vtkPoints2D_get_ptr(self.0) }
5487    }
5488}
5489impl std::default::Default for vtkPoints2D {
5490    fn default() -> Self {
5491        Self::new()
5492    }
5493}
5494impl Drop for vtkPoints2D {
5495    fn drop(&mut self) {
5496        unsafe extern "C" {
5497            fn vtkPoints2D_destructor(sself: *mut core::ffi::c_void);
5498        }
5499        unsafe { vtkPoints2D_destructor(self.0) }
5500        self.0 = core::ptr::null_mut();
5501    }
5502}
5503#[test]
5504fn test_vtkPoints2D_create_drop() {
5505    let obj = vtkPoints2D::new();
5506    let ptr = obj.0;
5507    assert!(!ptr.is_null());
5508    assert!(unsafe { !obj._get_ptr().is_null() });
5509    drop(obj);
5510    let new_obj = vtkPoints2D(ptr);
5511    assert!(unsafe { new_obj._get_ptr().is_null() });
5512}
5513/// a list of ids arranged in priority order
5514///
5515///
5516/// vtkPriorityQueue is a general object for creating and manipulating lists
5517/// of object ids (e.g., point or cell ids). Object ids are sorted according
5518/// to a user-specified priority, where entries at the top of the queue have
5519/// the smallest values.
5520///
5521/// This implementation provides a feature beyond the usual ability to insert
5522/// and retrieve (or pop) values from the queue. It is also possible to
5523/// pop any item in the queue given its id number. This allows you to delete
5524/// entries in the queue which can useful for reinserting an item into the
5525/// queue.
5526///
5527/// @warning
5528/// This implementation is a variation of the priority queue described in
5529/// "Data Structures & Algorithms" by Aho, Hopcroft, Ullman. It creates
5530/// a balanced, partially ordered binary tree implemented as an ordered
5531/// array. This avoids the overhead associated with parent/child pointers,
5532/// and frequent memory allocation and deallocation.
5533#[allow(non_camel_case_types)]
5534pub struct vtkPriorityQueue(*mut core::ffi::c_void);
5535impl vtkPriorityQueue {
5536    /// Creates a new [vtkPriorityQueue] wrapped inside `vtkNew`
5537    #[doc(alias = "vtkPriorityQueue")]
5538    pub fn new() -> Self {
5539        unsafe extern "C" {
5540            fn vtkPriorityQueue_new() -> *mut core::ffi::c_void;
5541        }
5542        Self(unsafe { &mut *vtkPriorityQueue_new() })
5543    }
5544    #[cfg(test)]
5545    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5546        unsafe extern "C" {
5547            fn vtkPriorityQueue_get_ptr(
5548                sself: *mut core::ffi::c_void,
5549            ) -> *mut core::ffi::c_void;
5550        }
5551        unsafe { vtkPriorityQueue_get_ptr(self.0) }
5552    }
5553}
5554impl std::default::Default for vtkPriorityQueue {
5555    fn default() -> Self {
5556        Self::new()
5557    }
5558}
5559impl Drop for vtkPriorityQueue {
5560    fn drop(&mut self) {
5561        unsafe extern "C" {
5562            fn vtkPriorityQueue_destructor(sself: *mut core::ffi::c_void);
5563        }
5564        unsafe { vtkPriorityQueue_destructor(self.0) }
5565        self.0 = core::ptr::null_mut();
5566    }
5567}
5568#[test]
5569fn test_vtkPriorityQueue_create_drop() {
5570    let obj = vtkPriorityQueue::new();
5571    let ptr = obj.0;
5572    assert!(!ptr.is_null());
5573    assert!(unsafe { !obj._get_ptr().is_null() });
5574    drop(obj);
5575    let new_obj = vtkPriorityQueue(ptr);
5576    assert!(unsafe { new_obj._get_ptr().is_null() });
5577}
5578/// convenience class to quickly generate a pool of random numbers
5579///
5580///
5581/// vtkRandomPool generates random numbers, and can do so using
5582/// multithreading.  It supports parallel applications where generating random
5583/// numbers on the fly is difficult (i.e., non-deterministic). Also, it can be
5584/// used to populate vtkDataArrays in an efficient manner. By default it uses
5585/// an instance of vtkMersenneTwister to generate random sequences, but any
5586/// subclass of vtkRandomSequence may be used. It also supports simple methods
5587/// to generate, access, and pass random memory pools between objects.
5588///
5589/// In threaded applications, these class may be conveniently used to
5590/// pre-generate a sequence of random numbers, followed by the use of
5591/// deterministic accessor methods to produce random sequences without
5592/// problems etc. due to unpredictable work load and order of thread
5593/// execution.
5594///
5595/// @warning
5596/// The class uses vtkMultiThreader if the size of the pool is larger than
5597/// the specified chunk size. Also, vtkSMPTools may be used to scale the
5598/// components in the method PopulateDataArray().
5599#[allow(non_camel_case_types)]
5600pub struct vtkRandomPool(*mut core::ffi::c_void);
5601impl vtkRandomPool {
5602    /// Creates a new [vtkRandomPool] wrapped inside `vtkNew`
5603    #[doc(alias = "vtkRandomPool")]
5604    pub fn new() -> Self {
5605        unsafe extern "C" {
5606            fn vtkRandomPool_new() -> *mut core::ffi::c_void;
5607        }
5608        Self(unsafe { &mut *vtkRandomPool_new() })
5609    }
5610    #[cfg(test)]
5611    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5612        unsafe extern "C" {
5613            fn vtkRandomPool_get_ptr(
5614                sself: *mut core::ffi::c_void,
5615            ) -> *mut core::ffi::c_void;
5616        }
5617        unsafe { vtkRandomPool_get_ptr(self.0) }
5618    }
5619}
5620impl std::default::Default for vtkRandomPool {
5621    fn default() -> Self {
5622        Self::new()
5623    }
5624}
5625impl Drop for vtkRandomPool {
5626    fn drop(&mut self) {
5627        unsafe extern "C" {
5628            fn vtkRandomPool_destructor(sself: *mut core::ffi::c_void);
5629        }
5630        unsafe { vtkRandomPool_destructor(self.0) }
5631        self.0 = core::ptr::null_mut();
5632    }
5633}
5634#[test]
5635fn test_vtkRandomPool_create_drop() {
5636    let obj = vtkRandomPool::new();
5637    let ptr = obj.0;
5638    assert!(!ptr.is_null());
5639    assert!(unsafe { !obj._get_ptr().is_null() });
5640    drop(obj);
5641    let new_obj = vtkRandomPool(ptr);
5642    assert!(unsafe { new_obj._get_ptr().is_null() });
5643}
5644/// Obsolete / empty subclass of object.
5645///
5646///
5647/// vtkReferenceCount functionality has now been moved into vtkObject
5648/// @sa
5649/// vtkObject
5650#[allow(non_camel_case_types)]
5651pub struct vtkReferenceCount(*mut core::ffi::c_void);
5652impl vtkReferenceCount {
5653    /// Creates a new [vtkReferenceCount] wrapped inside `vtkNew`
5654    #[doc(alias = "vtkReferenceCount")]
5655    pub fn new() -> Self {
5656        unsafe extern "C" {
5657            fn vtkReferenceCount_new() -> *mut core::ffi::c_void;
5658        }
5659        Self(unsafe { &mut *vtkReferenceCount_new() })
5660    }
5661    #[cfg(test)]
5662    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5663        unsafe extern "C" {
5664            fn vtkReferenceCount_get_ptr(
5665                sself: *mut core::ffi::c_void,
5666            ) -> *mut core::ffi::c_void;
5667        }
5668        unsafe { vtkReferenceCount_get_ptr(self.0) }
5669    }
5670}
5671impl std::default::Default for vtkReferenceCount {
5672    fn default() -> Self {
5673        Self::new()
5674    }
5675}
5676impl Drop for vtkReferenceCount {
5677    fn drop(&mut self) {
5678        unsafe extern "C" {
5679            fn vtkReferenceCount_destructor(sself: *mut core::ffi::c_void);
5680        }
5681        unsafe { vtkReferenceCount_destructor(self.0) }
5682        self.0 = core::ptr::null_mut();
5683    }
5684}
5685#[test]
5686fn test_vtkReferenceCount_create_drop() {
5687    let obj = vtkReferenceCount::new();
5688    let ptr = obj.0;
5689    assert!(!ptr.is_null());
5690    assert!(unsafe { !obj._get_ptr().is_null() });
5691    drop(obj);
5692    let new_obj = vtkReferenceCount(ptr);
5693    assert!(unsafe { new_obj._get_ptr().is_null() });
5694}
5695/// Superclass for mapping scalar values to colors
5696///
5697///
5698/// vtkScalarsToColors is a general-purpose base class for objects that
5699/// convert scalars to colors. This include vtkLookupTable classes and
5700/// color transfer functions.  By itself, this class will simply rescale
5701/// the scalars.
5702///
5703/// The scalar-to-color mapping can be augmented with an additional
5704/// uniform alpha blend. This is used, for example, to blend a vtkActor's
5705/// opacity with the lookup table values.
5706///
5707/// Specific scalar values may be annotated with text strings that will
5708/// be included in color legends using \a SetAnnotations, \a SetAnnotation,
5709/// \a GetNumberOfAnnotatedValues, \a GetAnnotatedValue, \a GetAnnotation,
5710/// \a RemoveAnnotation, and \a ResetAnnotations.
5711///
5712/// This class also has a method for indicating that the set of
5713/// annotated values form a categorical color map; by setting \a
5714/// IndexedLookup to true, you indicate that the annotated values are
5715/// the only valid values for which entries in the color table should
5716/// be returned. In this mode, subclasses should then assign colors to
5717/// annotated values by taking the modulus of an annotated value's
5718/// index in the list of annotations with the number of colors in the
5719/// table.
5720///
5721/// @sa
5722/// vtkLookupTable vtkColorTransferFunction
5723#[allow(non_camel_case_types)]
5724pub struct vtkScalarsToColors(*mut core::ffi::c_void);
5725impl vtkScalarsToColors {
5726    /// Creates a new [vtkScalarsToColors] wrapped inside `vtkNew`
5727    #[doc(alias = "vtkScalarsToColors")]
5728    pub fn new() -> Self {
5729        unsafe extern "C" {
5730            fn vtkScalarsToColors_new() -> *mut core::ffi::c_void;
5731        }
5732        Self(unsafe { &mut *vtkScalarsToColors_new() })
5733    }
5734    #[cfg(test)]
5735    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5736        unsafe extern "C" {
5737            fn vtkScalarsToColors_get_ptr(
5738                sself: *mut core::ffi::c_void,
5739            ) -> *mut core::ffi::c_void;
5740        }
5741        unsafe { vtkScalarsToColors_get_ptr(self.0) }
5742    }
5743}
5744impl std::default::Default for vtkScalarsToColors {
5745    fn default() -> Self {
5746        Self::new()
5747    }
5748}
5749impl Drop for vtkScalarsToColors {
5750    fn drop(&mut self) {
5751        unsafe extern "C" {
5752            fn vtkScalarsToColors_destructor(sself: *mut core::ffi::c_void);
5753        }
5754        unsafe { vtkScalarsToColors_destructor(self.0) }
5755        self.0 = core::ptr::null_mut();
5756    }
5757}
5758#[test]
5759fn test_vtkScalarsToColors_create_drop() {
5760    let obj = vtkScalarsToColors::new();
5761    let ptr = obj.0;
5762    assert!(!ptr.is_null());
5763    assert!(unsafe { !obj._get_ptr().is_null() });
5764    drop(obj);
5765    let new_obj = vtkScalarsToColors(ptr);
5766    assert!(unsafe { new_obj._get_ptr().is_null() });
5767}
5768/// Serialize VTK objects to JSON.
5769///
5770#[allow(non_camel_case_types)]
5771pub struct vtkSerializer(*mut core::ffi::c_void);
5772impl vtkSerializer {
5773    /// Creates a new [vtkSerializer] wrapped inside `vtkNew`
5774    #[doc(alias = "vtkSerializer")]
5775    pub fn new() -> Self {
5776        unsafe extern "C" {
5777            fn vtkSerializer_new() -> *mut core::ffi::c_void;
5778        }
5779        Self(unsafe { &mut *vtkSerializer_new() })
5780    }
5781    #[cfg(test)]
5782    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5783        unsafe extern "C" {
5784            fn vtkSerializer_get_ptr(
5785                sself: *mut core::ffi::c_void,
5786            ) -> *mut core::ffi::c_void;
5787        }
5788        unsafe { vtkSerializer_get_ptr(self.0) }
5789    }
5790}
5791impl std::default::Default for vtkSerializer {
5792    fn default() -> Self {
5793        Self::new()
5794    }
5795}
5796impl Drop for vtkSerializer {
5797    fn drop(&mut self) {
5798        unsafe extern "C" {
5799            fn vtkSerializer_destructor(sself: *mut core::ffi::c_void);
5800        }
5801        unsafe { vtkSerializer_destructor(self.0) }
5802        self.0 = core::ptr::null_mut();
5803    }
5804}
5805#[test]
5806fn test_vtkSerializer_create_drop() {
5807    let obj = vtkSerializer::new();
5808    let ptr = obj.0;
5809    assert!(!ptr.is_null());
5810    assert!(unsafe { !obj._get_ptr().is_null() });
5811    drop(obj);
5812    let new_obj = vtkSerializer(ptr);
5813    assert!(unsafe { new_obj._get_ptr().is_null() });
5814}
5815/// dynamic, self-adjusting array of short
5816///
5817///
5818/// vtkShortArray is an array of values of type short.  It provides
5819/// methods for insertion and retrieval of values and will
5820/// automatically resize itself to hold new data.
5821///
5822/// The C++ standard does not define the exact size of the short type,
5823/// so use of this type directly is discouraged.  If an array of 16 bit
5824/// integers is needed, prefer vtkTypeInt16Array to this class.
5825#[allow(non_camel_case_types)]
5826pub struct vtkShortArray(*mut core::ffi::c_void);
5827impl vtkShortArray {
5828    /// Creates a new [vtkShortArray] wrapped inside `vtkNew`
5829    #[doc(alias = "vtkShortArray")]
5830    pub fn new() -> Self {
5831        unsafe extern "C" {
5832            fn vtkShortArray_new() -> *mut core::ffi::c_void;
5833        }
5834        Self(unsafe { &mut *vtkShortArray_new() })
5835    }
5836    #[cfg(test)]
5837    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5838        unsafe extern "C" {
5839            fn vtkShortArray_get_ptr(
5840                sself: *mut core::ffi::c_void,
5841            ) -> *mut core::ffi::c_void;
5842        }
5843        unsafe { vtkShortArray_get_ptr(self.0) }
5844    }
5845}
5846impl std::default::Default for vtkShortArray {
5847    fn default() -> Self {
5848        Self::new()
5849    }
5850}
5851impl Drop for vtkShortArray {
5852    fn drop(&mut self) {
5853        unsafe extern "C" {
5854            fn vtkShortArray_destructor(sself: *mut core::ffi::c_void);
5855        }
5856        unsafe { vtkShortArray_destructor(self.0) }
5857        self.0 = core::ptr::null_mut();
5858    }
5859}
5860#[test]
5861fn test_vtkShortArray_create_drop() {
5862    let obj = vtkShortArray::new();
5863    let ptr = obj.0;
5864    assert!(!ptr.is_null());
5865    assert!(unsafe { !obj._get_ptr().is_null() });
5866    drop(obj);
5867    let new_obj = vtkShortArray(ptr);
5868    assert!(unsafe { new_obj._get_ptr().is_null() });
5869}
5870/// dynamic, self-adjusting array of signed char
5871///
5872///
5873/// vtkSignedCharArray is an array of values of type signed char.
5874/// It provides methods for insertion and retrieval of values and will
5875/// automatically resize itself to hold new data.
5876#[allow(non_camel_case_types)]
5877pub struct vtkSignedCharArray(*mut core::ffi::c_void);
5878impl vtkSignedCharArray {
5879    /// Creates a new [vtkSignedCharArray] wrapped inside `vtkNew`
5880    #[doc(alias = "vtkSignedCharArray")]
5881    pub fn new() -> Self {
5882        unsafe extern "C" {
5883            fn vtkSignedCharArray_new() -> *mut core::ffi::c_void;
5884        }
5885        Self(unsafe { &mut *vtkSignedCharArray_new() })
5886    }
5887    #[cfg(test)]
5888    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5889        unsafe extern "C" {
5890            fn vtkSignedCharArray_get_ptr(
5891                sself: *mut core::ffi::c_void,
5892            ) -> *mut core::ffi::c_void;
5893        }
5894        unsafe { vtkSignedCharArray_get_ptr(self.0) }
5895    }
5896}
5897impl std::default::Default for vtkSignedCharArray {
5898    fn default() -> Self {
5899        Self::new()
5900    }
5901}
5902impl Drop for vtkSignedCharArray {
5903    fn drop(&mut self) {
5904        unsafe extern "C" {
5905            fn vtkSignedCharArray_destructor(sself: *mut core::ffi::c_void);
5906        }
5907        unsafe { vtkSignedCharArray_destructor(self.0) }
5908        self.0 = core::ptr::null_mut();
5909    }
5910}
5911#[test]
5912fn test_vtkSignedCharArray_create_drop() {
5913    let obj = vtkSignedCharArray::new();
5914    let ptr = obj.0;
5915    assert!(!ptr.is_null());
5916    assert!(unsafe { !obj._get_ptr().is_null() });
5917    drop(obj);
5918    let new_obj = vtkSignedCharArray(ptr);
5919    assert!(unsafe { new_obj._get_ptr().is_null() });
5920}
5921/// provides several methods for sorting VTK arrays.
5922///
5923///
5924///
5925/// vtkSortDataArray is used to sort data, based on its value, or with an
5926/// associated key, into either ascending or descending order. This is useful
5927/// for operations like selection, or analysis, when evaluating and processing
5928/// data. A variety of sorting functions are provided, treating both arrays
5929/// (i.e., vtkAbstractArray) and id lists (vtkIdList). Note that complex arrays
5930/// like variants and string arrays are also handled.
5931///
5932/// Additional functionality is provided to generate data ordering, without
5933/// necessarily shuffling the data into a final, sorted position. Hence, the
5934/// sorting process is organized into three steps because of the complexity of
5935/// dealing with multiple types and multiple component data arrays. The first
5936/// step involves creating and initializing a sorted index array, and then
5937/// (second step) sorting this array to produce a map indicating the sorting
5938/// order.  In other words, the sorting index array is a permutation which can
5939/// be applied to other, associated data to shuffle it (third step) into an
5940/// order consistent with the sorting operation. Note that the generation of
5941/// the sorted index array is useful unto itself (even without the final
5942/// shuffling of data) because it generates an ordered list (from the data
5943/// values of any component in any array). So for example, it is possible to
5944/// find the top N cells with the largest scalar value simply by generating
5945/// the sorting index array from the call scalar values.
5946///
5947/// @warning
5948/// This class has been threaded with vtkSMPTools. Using TBB or other
5949/// non-sequential type (set in the CMake variable
5950/// VTK_SMP_IMPLEMENTATION_TYPE) may improve performance significantly on
5951/// multi-core machines.
5952///
5953/// @warning
5954/// The sort methods below are static, hence the sorting methods can be
5955/// used without instantiating the class. All methods are thread safe.
5956///
5957/// @sa
5958/// vtkSortFieldData
5959#[allow(non_camel_case_types)]
5960pub struct vtkSortDataArray(*mut core::ffi::c_void);
5961impl vtkSortDataArray {
5962    /// Creates a new [vtkSortDataArray] wrapped inside `vtkNew`
5963    #[doc(alias = "vtkSortDataArray")]
5964    pub fn new() -> Self {
5965        unsafe extern "C" {
5966            fn vtkSortDataArray_new() -> *mut core::ffi::c_void;
5967        }
5968        Self(unsafe { &mut *vtkSortDataArray_new() })
5969    }
5970    #[cfg(test)]
5971    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
5972        unsafe extern "C" {
5973            fn vtkSortDataArray_get_ptr(
5974                sself: *mut core::ffi::c_void,
5975            ) -> *mut core::ffi::c_void;
5976        }
5977        unsafe { vtkSortDataArray_get_ptr(self.0) }
5978    }
5979}
5980impl std::default::Default for vtkSortDataArray {
5981    fn default() -> Self {
5982        Self::new()
5983    }
5984}
5985impl Drop for vtkSortDataArray {
5986    fn drop(&mut self) {
5987        unsafe extern "C" {
5988            fn vtkSortDataArray_destructor(sself: *mut core::ffi::c_void);
5989        }
5990        unsafe { vtkSortDataArray_destructor(self.0) }
5991        self.0 = core::ptr::null_mut();
5992    }
5993}
5994#[test]
5995fn test_vtkSortDataArray_create_drop() {
5996    let obj = vtkSortDataArray::new();
5997    let ptr = obj.0;
5998    assert!(!ptr.is_null());
5999    assert!(unsafe { !obj._get_ptr().is_null() });
6000    drop(obj);
6001    let new_obj = vtkSortDataArray(ptr);
6002    assert!(unsafe { new_obj._get_ptr().is_null() });
6003}
6004/// a vtkAbstractArray subclass for strings
6005///
6006///
6007/// Points and cells may sometimes have associated data that are stored
6008/// as strings, e.g. labels for information visualization projects.
6009/// This class provides a clean way to store and access those strings.
6010/// @par Thanks:
6011/// Andy Wilson (atwilso@sandia.gov) wrote this class.
6012#[allow(non_camel_case_types)]
6013pub struct vtkStringArray(*mut core::ffi::c_void);
6014impl vtkStringArray {
6015    /// Creates a new [vtkStringArray] wrapped inside `vtkNew`
6016    #[doc(alias = "vtkStringArray")]
6017    pub fn new() -> Self {
6018        unsafe extern "C" {
6019            fn vtkStringArray_new() -> *mut core::ffi::c_void;
6020        }
6021        Self(unsafe { &mut *vtkStringArray_new() })
6022    }
6023    #[cfg(test)]
6024    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6025        unsafe extern "C" {
6026            fn vtkStringArray_get_ptr(
6027                sself: *mut core::ffi::c_void,
6028            ) -> *mut core::ffi::c_void;
6029        }
6030        unsafe { vtkStringArray_get_ptr(self.0) }
6031    }
6032}
6033impl std::default::Default for vtkStringArray {
6034    fn default() -> Self {
6035        Self::new()
6036    }
6037}
6038impl Drop for vtkStringArray {
6039    fn drop(&mut self) {
6040        unsafe extern "C" {
6041            fn vtkStringArray_destructor(sself: *mut core::ffi::c_void);
6042        }
6043        unsafe { vtkStringArray_destructor(self.0) }
6044        self.0 = core::ptr::null_mut();
6045    }
6046}
6047#[test]
6048fn test_vtkStringArray_create_drop() {
6049    let obj = vtkStringArray::new();
6050    let ptr = obj.0;
6051    assert!(!ptr.is_null());
6052    assert!(unsafe { !obj._get_ptr().is_null() });
6053    drop(obj);
6054    let new_obj = vtkStringArray(ptr);
6055    assert!(unsafe { new_obj._get_ptr().is_null() });
6056}
6057/// File Specific output window class
6058///
6059///
6060/// Writes debug/warning/error output to a log file instead of the console.
6061/// To use this class, instantiate it and then call SetInstance(this).
6062#[allow(non_camel_case_types)]
6063pub struct vtkStringOutputWindow(*mut core::ffi::c_void);
6064impl vtkStringOutputWindow {
6065    /// Creates a new [vtkStringOutputWindow] wrapped inside `vtkNew`
6066    #[doc(alias = "vtkStringOutputWindow")]
6067    pub fn new() -> Self {
6068        unsafe extern "C" {
6069            fn vtkStringOutputWindow_new() -> *mut core::ffi::c_void;
6070        }
6071        Self(unsafe { &mut *vtkStringOutputWindow_new() })
6072    }
6073    #[cfg(test)]
6074    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6075        unsafe extern "C" {
6076            fn vtkStringOutputWindow_get_ptr(
6077                sself: *mut core::ffi::c_void,
6078            ) -> *mut core::ffi::c_void;
6079        }
6080        unsafe { vtkStringOutputWindow_get_ptr(self.0) }
6081    }
6082}
6083impl std::default::Default for vtkStringOutputWindow {
6084    fn default() -> Self {
6085        Self::new()
6086    }
6087}
6088impl Drop for vtkStringOutputWindow {
6089    fn drop(&mut self) {
6090        unsafe extern "C" {
6091            fn vtkStringOutputWindow_destructor(sself: *mut core::ffi::c_void);
6092        }
6093        unsafe { vtkStringOutputWindow_destructor(self.0) }
6094        self.0 = core::ptr::null_mut();
6095    }
6096}
6097#[test]
6098fn test_vtkStringOutputWindow_create_drop() {
6099    let obj = vtkStringOutputWindow::new();
6100    let ptr = obj.0;
6101    assert!(!ptr.is_null());
6102    assert!(unsafe { !obj._get_ptr().is_null() });
6103    drop(obj);
6104    let new_obj = vtkStringOutputWindow(ptr);
6105    assert!(unsafe { new_obj._get_ptr().is_null() });
6106}
6107/// performs common time operations
6108///
6109///
6110///
6111/// vtkTimePointUtility is provides methods to perform common time operations.
6112#[allow(non_camel_case_types)]
6113pub struct vtkTimePointUtility(*mut core::ffi::c_void);
6114impl vtkTimePointUtility {
6115    /// Creates a new [vtkTimePointUtility] wrapped inside `vtkNew`
6116    #[doc(alias = "vtkTimePointUtility")]
6117    pub fn new() -> Self {
6118        unsafe extern "C" {
6119            fn vtkTimePointUtility_new() -> *mut core::ffi::c_void;
6120        }
6121        Self(unsafe { &mut *vtkTimePointUtility_new() })
6122    }
6123    #[cfg(test)]
6124    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6125        unsafe extern "C" {
6126            fn vtkTimePointUtility_get_ptr(
6127                sself: *mut core::ffi::c_void,
6128            ) -> *mut core::ffi::c_void;
6129        }
6130        unsafe { vtkTimePointUtility_get_ptr(self.0) }
6131    }
6132}
6133impl std::default::Default for vtkTimePointUtility {
6134    fn default() -> Self {
6135        Self::new()
6136    }
6137}
6138impl Drop for vtkTimePointUtility {
6139    fn drop(&mut self) {
6140        unsafe extern "C" {
6141            fn vtkTimePointUtility_destructor(sself: *mut core::ffi::c_void);
6142        }
6143        unsafe { vtkTimePointUtility_destructor(self.0) }
6144        self.0 = core::ptr::null_mut();
6145    }
6146}
6147#[test]
6148fn test_vtkTimePointUtility_create_drop() {
6149    let obj = vtkTimePointUtility::new();
6150    let ptr = obj.0;
6151    assert!(!ptr.is_null());
6152    assert!(unsafe { !obj._get_ptr().is_null() });
6153    drop(obj);
6154    let new_obj = vtkTimePointUtility(ptr);
6155    assert!(unsafe { new_obj._get_ptr().is_null() });
6156}
6157///
6158#[allow(non_camel_case_types)]
6159pub struct vtkTypeFloat32Array(*mut core::ffi::c_void);
6160impl vtkTypeFloat32Array {
6161    /// Creates a new [vtkTypeFloat32Array] wrapped inside `vtkNew`
6162    #[doc(alias = "vtkTypeFloat32Array")]
6163    pub fn new() -> Self {
6164        unsafe extern "C" {
6165            fn vtkTypeFloat32Array_new() -> *mut core::ffi::c_void;
6166        }
6167        Self(unsafe { &mut *vtkTypeFloat32Array_new() })
6168    }
6169    #[cfg(test)]
6170    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6171        unsafe extern "C" {
6172            fn vtkTypeFloat32Array_get_ptr(
6173                sself: *mut core::ffi::c_void,
6174            ) -> *mut core::ffi::c_void;
6175        }
6176        unsafe { vtkTypeFloat32Array_get_ptr(self.0) }
6177    }
6178}
6179impl std::default::Default for vtkTypeFloat32Array {
6180    fn default() -> Self {
6181        Self::new()
6182    }
6183}
6184impl Drop for vtkTypeFloat32Array {
6185    fn drop(&mut self) {
6186        unsafe extern "C" {
6187            fn vtkTypeFloat32Array_destructor(sself: *mut core::ffi::c_void);
6188        }
6189        unsafe { vtkTypeFloat32Array_destructor(self.0) }
6190        self.0 = core::ptr::null_mut();
6191    }
6192}
6193#[test]
6194fn test_vtkTypeFloat32Array_create_drop() {
6195    let obj = vtkTypeFloat32Array::new();
6196    let ptr = obj.0;
6197    assert!(!ptr.is_null());
6198    assert!(unsafe { !obj._get_ptr().is_null() });
6199    drop(obj);
6200    let new_obj = vtkTypeFloat32Array(ptr);
6201    assert!(unsafe { new_obj._get_ptr().is_null() });
6202}
6203///
6204#[allow(non_camel_case_types)]
6205pub struct vtkTypeFloat64Array(*mut core::ffi::c_void);
6206impl vtkTypeFloat64Array {
6207    /// Creates a new [vtkTypeFloat64Array] wrapped inside `vtkNew`
6208    #[doc(alias = "vtkTypeFloat64Array")]
6209    pub fn new() -> Self {
6210        unsafe extern "C" {
6211            fn vtkTypeFloat64Array_new() -> *mut core::ffi::c_void;
6212        }
6213        Self(unsafe { &mut *vtkTypeFloat64Array_new() })
6214    }
6215    #[cfg(test)]
6216    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6217        unsafe extern "C" {
6218            fn vtkTypeFloat64Array_get_ptr(
6219                sself: *mut core::ffi::c_void,
6220            ) -> *mut core::ffi::c_void;
6221        }
6222        unsafe { vtkTypeFloat64Array_get_ptr(self.0) }
6223    }
6224}
6225impl std::default::Default for vtkTypeFloat64Array {
6226    fn default() -> Self {
6227        Self::new()
6228    }
6229}
6230impl Drop for vtkTypeFloat64Array {
6231    fn drop(&mut self) {
6232        unsafe extern "C" {
6233            fn vtkTypeFloat64Array_destructor(sself: *mut core::ffi::c_void);
6234        }
6235        unsafe { vtkTypeFloat64Array_destructor(self.0) }
6236        self.0 = core::ptr::null_mut();
6237    }
6238}
6239#[test]
6240fn test_vtkTypeFloat64Array_create_drop() {
6241    let obj = vtkTypeFloat64Array::new();
6242    let ptr = obj.0;
6243    assert!(!ptr.is_null());
6244    assert!(unsafe { !obj._get_ptr().is_null() });
6245    drop(obj);
6246    let new_obj = vtkTypeFloat64Array(ptr);
6247    assert!(unsafe { new_obj._get_ptr().is_null() });
6248}
6249///
6250#[allow(non_camel_case_types)]
6251pub struct vtkTypeInt16Array(*mut core::ffi::c_void);
6252impl vtkTypeInt16Array {
6253    /// Creates a new [vtkTypeInt16Array] wrapped inside `vtkNew`
6254    #[doc(alias = "vtkTypeInt16Array")]
6255    pub fn new() -> Self {
6256        unsafe extern "C" {
6257            fn vtkTypeInt16Array_new() -> *mut core::ffi::c_void;
6258        }
6259        Self(unsafe { &mut *vtkTypeInt16Array_new() })
6260    }
6261    #[cfg(test)]
6262    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6263        unsafe extern "C" {
6264            fn vtkTypeInt16Array_get_ptr(
6265                sself: *mut core::ffi::c_void,
6266            ) -> *mut core::ffi::c_void;
6267        }
6268        unsafe { vtkTypeInt16Array_get_ptr(self.0) }
6269    }
6270}
6271impl std::default::Default for vtkTypeInt16Array {
6272    fn default() -> Self {
6273        Self::new()
6274    }
6275}
6276impl Drop for vtkTypeInt16Array {
6277    fn drop(&mut self) {
6278        unsafe extern "C" {
6279            fn vtkTypeInt16Array_destructor(sself: *mut core::ffi::c_void);
6280        }
6281        unsafe { vtkTypeInt16Array_destructor(self.0) }
6282        self.0 = core::ptr::null_mut();
6283    }
6284}
6285#[test]
6286fn test_vtkTypeInt16Array_create_drop() {
6287    let obj = vtkTypeInt16Array::new();
6288    let ptr = obj.0;
6289    assert!(!ptr.is_null());
6290    assert!(unsafe { !obj._get_ptr().is_null() });
6291    drop(obj);
6292    let new_obj = vtkTypeInt16Array(ptr);
6293    assert!(unsafe { new_obj._get_ptr().is_null() });
6294}
6295///
6296#[allow(non_camel_case_types)]
6297pub struct vtkTypeInt32Array(*mut core::ffi::c_void);
6298impl vtkTypeInt32Array {
6299    /// Creates a new [vtkTypeInt32Array] wrapped inside `vtkNew`
6300    #[doc(alias = "vtkTypeInt32Array")]
6301    pub fn new() -> Self {
6302        unsafe extern "C" {
6303            fn vtkTypeInt32Array_new() -> *mut core::ffi::c_void;
6304        }
6305        Self(unsafe { &mut *vtkTypeInt32Array_new() })
6306    }
6307    #[cfg(test)]
6308    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6309        unsafe extern "C" {
6310            fn vtkTypeInt32Array_get_ptr(
6311                sself: *mut core::ffi::c_void,
6312            ) -> *mut core::ffi::c_void;
6313        }
6314        unsafe { vtkTypeInt32Array_get_ptr(self.0) }
6315    }
6316}
6317impl std::default::Default for vtkTypeInt32Array {
6318    fn default() -> Self {
6319        Self::new()
6320    }
6321}
6322impl Drop for vtkTypeInt32Array {
6323    fn drop(&mut self) {
6324        unsafe extern "C" {
6325            fn vtkTypeInt32Array_destructor(sself: *mut core::ffi::c_void);
6326        }
6327        unsafe { vtkTypeInt32Array_destructor(self.0) }
6328        self.0 = core::ptr::null_mut();
6329    }
6330}
6331#[test]
6332fn test_vtkTypeInt32Array_create_drop() {
6333    let obj = vtkTypeInt32Array::new();
6334    let ptr = obj.0;
6335    assert!(!ptr.is_null());
6336    assert!(unsafe { !obj._get_ptr().is_null() });
6337    drop(obj);
6338    let new_obj = vtkTypeInt32Array(ptr);
6339    assert!(unsafe { new_obj._get_ptr().is_null() });
6340}
6341///
6342#[allow(non_camel_case_types)]
6343pub struct vtkTypeInt64Array(*mut core::ffi::c_void);
6344impl vtkTypeInt64Array {
6345    /// Creates a new [vtkTypeInt64Array] wrapped inside `vtkNew`
6346    #[doc(alias = "vtkTypeInt64Array")]
6347    pub fn new() -> Self {
6348        unsafe extern "C" {
6349            fn vtkTypeInt64Array_new() -> *mut core::ffi::c_void;
6350        }
6351        Self(unsafe { &mut *vtkTypeInt64Array_new() })
6352    }
6353    #[cfg(test)]
6354    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6355        unsafe extern "C" {
6356            fn vtkTypeInt64Array_get_ptr(
6357                sself: *mut core::ffi::c_void,
6358            ) -> *mut core::ffi::c_void;
6359        }
6360        unsafe { vtkTypeInt64Array_get_ptr(self.0) }
6361    }
6362}
6363impl std::default::Default for vtkTypeInt64Array {
6364    fn default() -> Self {
6365        Self::new()
6366    }
6367}
6368impl Drop for vtkTypeInt64Array {
6369    fn drop(&mut self) {
6370        unsafe extern "C" {
6371            fn vtkTypeInt64Array_destructor(sself: *mut core::ffi::c_void);
6372        }
6373        unsafe { vtkTypeInt64Array_destructor(self.0) }
6374        self.0 = core::ptr::null_mut();
6375    }
6376}
6377#[test]
6378fn test_vtkTypeInt64Array_create_drop() {
6379    let obj = vtkTypeInt64Array::new();
6380    let ptr = obj.0;
6381    assert!(!ptr.is_null());
6382    assert!(unsafe { !obj._get_ptr().is_null() });
6383    drop(obj);
6384    let new_obj = vtkTypeInt64Array(ptr);
6385    assert!(unsafe { new_obj._get_ptr().is_null() });
6386}
6387///
6388#[allow(non_camel_case_types)]
6389pub struct vtkTypeInt8Array(*mut core::ffi::c_void);
6390impl vtkTypeInt8Array {
6391    /// Creates a new [vtkTypeInt8Array] wrapped inside `vtkNew`
6392    #[doc(alias = "vtkTypeInt8Array")]
6393    pub fn new() -> Self {
6394        unsafe extern "C" {
6395            fn vtkTypeInt8Array_new() -> *mut core::ffi::c_void;
6396        }
6397        Self(unsafe { &mut *vtkTypeInt8Array_new() })
6398    }
6399    #[cfg(test)]
6400    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6401        unsafe extern "C" {
6402            fn vtkTypeInt8Array_get_ptr(
6403                sself: *mut core::ffi::c_void,
6404            ) -> *mut core::ffi::c_void;
6405        }
6406        unsafe { vtkTypeInt8Array_get_ptr(self.0) }
6407    }
6408}
6409impl std::default::Default for vtkTypeInt8Array {
6410    fn default() -> Self {
6411        Self::new()
6412    }
6413}
6414impl Drop for vtkTypeInt8Array {
6415    fn drop(&mut self) {
6416        unsafe extern "C" {
6417            fn vtkTypeInt8Array_destructor(sself: *mut core::ffi::c_void);
6418        }
6419        unsafe { vtkTypeInt8Array_destructor(self.0) }
6420        self.0 = core::ptr::null_mut();
6421    }
6422}
6423#[test]
6424fn test_vtkTypeInt8Array_create_drop() {
6425    let obj = vtkTypeInt8Array::new();
6426    let ptr = obj.0;
6427    assert!(!ptr.is_null());
6428    assert!(unsafe { !obj._get_ptr().is_null() });
6429    drop(obj);
6430    let new_obj = vtkTypeInt8Array(ptr);
6431    assert!(unsafe { new_obj._get_ptr().is_null() });
6432}
6433///
6434#[allow(non_camel_case_types)]
6435pub struct vtkTypeUInt16Array(*mut core::ffi::c_void);
6436impl vtkTypeUInt16Array {
6437    /// Creates a new [vtkTypeUInt16Array] wrapped inside `vtkNew`
6438    #[doc(alias = "vtkTypeUInt16Array")]
6439    pub fn new() -> Self {
6440        unsafe extern "C" {
6441            fn vtkTypeUInt16Array_new() -> *mut core::ffi::c_void;
6442        }
6443        Self(unsafe { &mut *vtkTypeUInt16Array_new() })
6444    }
6445    #[cfg(test)]
6446    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6447        unsafe extern "C" {
6448            fn vtkTypeUInt16Array_get_ptr(
6449                sself: *mut core::ffi::c_void,
6450            ) -> *mut core::ffi::c_void;
6451        }
6452        unsafe { vtkTypeUInt16Array_get_ptr(self.0) }
6453    }
6454}
6455impl std::default::Default for vtkTypeUInt16Array {
6456    fn default() -> Self {
6457        Self::new()
6458    }
6459}
6460impl Drop for vtkTypeUInt16Array {
6461    fn drop(&mut self) {
6462        unsafe extern "C" {
6463            fn vtkTypeUInt16Array_destructor(sself: *mut core::ffi::c_void);
6464        }
6465        unsafe { vtkTypeUInt16Array_destructor(self.0) }
6466        self.0 = core::ptr::null_mut();
6467    }
6468}
6469#[test]
6470fn test_vtkTypeUInt16Array_create_drop() {
6471    let obj = vtkTypeUInt16Array::new();
6472    let ptr = obj.0;
6473    assert!(!ptr.is_null());
6474    assert!(unsafe { !obj._get_ptr().is_null() });
6475    drop(obj);
6476    let new_obj = vtkTypeUInt16Array(ptr);
6477    assert!(unsafe { new_obj._get_ptr().is_null() });
6478}
6479///
6480#[allow(non_camel_case_types)]
6481pub struct vtkTypeUInt32Array(*mut core::ffi::c_void);
6482impl vtkTypeUInt32Array {
6483    /// Creates a new [vtkTypeUInt32Array] wrapped inside `vtkNew`
6484    #[doc(alias = "vtkTypeUInt32Array")]
6485    pub fn new() -> Self {
6486        unsafe extern "C" {
6487            fn vtkTypeUInt32Array_new() -> *mut core::ffi::c_void;
6488        }
6489        Self(unsafe { &mut *vtkTypeUInt32Array_new() })
6490    }
6491    #[cfg(test)]
6492    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6493        unsafe extern "C" {
6494            fn vtkTypeUInt32Array_get_ptr(
6495                sself: *mut core::ffi::c_void,
6496            ) -> *mut core::ffi::c_void;
6497        }
6498        unsafe { vtkTypeUInt32Array_get_ptr(self.0) }
6499    }
6500}
6501impl std::default::Default for vtkTypeUInt32Array {
6502    fn default() -> Self {
6503        Self::new()
6504    }
6505}
6506impl Drop for vtkTypeUInt32Array {
6507    fn drop(&mut self) {
6508        unsafe extern "C" {
6509            fn vtkTypeUInt32Array_destructor(sself: *mut core::ffi::c_void);
6510        }
6511        unsafe { vtkTypeUInt32Array_destructor(self.0) }
6512        self.0 = core::ptr::null_mut();
6513    }
6514}
6515#[test]
6516fn test_vtkTypeUInt32Array_create_drop() {
6517    let obj = vtkTypeUInt32Array::new();
6518    let ptr = obj.0;
6519    assert!(!ptr.is_null());
6520    assert!(unsafe { !obj._get_ptr().is_null() });
6521    drop(obj);
6522    let new_obj = vtkTypeUInt32Array(ptr);
6523    assert!(unsafe { new_obj._get_ptr().is_null() });
6524}
6525///
6526#[allow(non_camel_case_types)]
6527pub struct vtkTypeUInt64Array(*mut core::ffi::c_void);
6528impl vtkTypeUInt64Array {
6529    /// Creates a new [vtkTypeUInt64Array] wrapped inside `vtkNew`
6530    #[doc(alias = "vtkTypeUInt64Array")]
6531    pub fn new() -> Self {
6532        unsafe extern "C" {
6533            fn vtkTypeUInt64Array_new() -> *mut core::ffi::c_void;
6534        }
6535        Self(unsafe { &mut *vtkTypeUInt64Array_new() })
6536    }
6537    #[cfg(test)]
6538    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6539        unsafe extern "C" {
6540            fn vtkTypeUInt64Array_get_ptr(
6541                sself: *mut core::ffi::c_void,
6542            ) -> *mut core::ffi::c_void;
6543        }
6544        unsafe { vtkTypeUInt64Array_get_ptr(self.0) }
6545    }
6546}
6547impl std::default::Default for vtkTypeUInt64Array {
6548    fn default() -> Self {
6549        Self::new()
6550    }
6551}
6552impl Drop for vtkTypeUInt64Array {
6553    fn drop(&mut self) {
6554        unsafe extern "C" {
6555            fn vtkTypeUInt64Array_destructor(sself: *mut core::ffi::c_void);
6556        }
6557        unsafe { vtkTypeUInt64Array_destructor(self.0) }
6558        self.0 = core::ptr::null_mut();
6559    }
6560}
6561#[test]
6562fn test_vtkTypeUInt64Array_create_drop() {
6563    let obj = vtkTypeUInt64Array::new();
6564    let ptr = obj.0;
6565    assert!(!ptr.is_null());
6566    assert!(unsafe { !obj._get_ptr().is_null() });
6567    drop(obj);
6568    let new_obj = vtkTypeUInt64Array(ptr);
6569    assert!(unsafe { new_obj._get_ptr().is_null() });
6570}
6571///
6572#[allow(non_camel_case_types)]
6573pub struct vtkTypeUInt8Array(*mut core::ffi::c_void);
6574impl vtkTypeUInt8Array {
6575    /// Creates a new [vtkTypeUInt8Array] wrapped inside `vtkNew`
6576    #[doc(alias = "vtkTypeUInt8Array")]
6577    pub fn new() -> Self {
6578        unsafe extern "C" {
6579            fn vtkTypeUInt8Array_new() -> *mut core::ffi::c_void;
6580        }
6581        Self(unsafe { &mut *vtkTypeUInt8Array_new() })
6582    }
6583    #[cfg(test)]
6584    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6585        unsafe extern "C" {
6586            fn vtkTypeUInt8Array_get_ptr(
6587                sself: *mut core::ffi::c_void,
6588            ) -> *mut core::ffi::c_void;
6589        }
6590        unsafe { vtkTypeUInt8Array_get_ptr(self.0) }
6591    }
6592}
6593impl std::default::Default for vtkTypeUInt8Array {
6594    fn default() -> Self {
6595        Self::new()
6596    }
6597}
6598impl Drop for vtkTypeUInt8Array {
6599    fn drop(&mut self) {
6600        unsafe extern "C" {
6601            fn vtkTypeUInt8Array_destructor(sself: *mut core::ffi::c_void);
6602        }
6603        unsafe { vtkTypeUInt8Array_destructor(self.0) }
6604        self.0 = core::ptr::null_mut();
6605    }
6606}
6607#[test]
6608fn test_vtkTypeUInt8Array_create_drop() {
6609    let obj = vtkTypeUInt8Array::new();
6610    let ptr = obj.0;
6611    assert!(!ptr.is_null());
6612    assert!(unsafe { !obj._get_ptr().is_null() });
6613    drop(obj);
6614    let new_obj = vtkTypeUInt8Array(ptr);
6615    assert!(unsafe { new_obj._get_ptr().is_null() });
6616}
6617/// dynamic, self-adjusting array of unsigned char
6618///
6619///
6620/// vtkUnsignedCharArray is an array of values of type unsigned char.
6621/// It provides methods for insertion and retrieval of values and will
6622/// automatically resize itself to hold new data.
6623#[allow(non_camel_case_types)]
6624pub struct vtkUnsignedCharArray(*mut core::ffi::c_void);
6625impl vtkUnsignedCharArray {
6626    /// Creates a new [vtkUnsignedCharArray] wrapped inside `vtkNew`
6627    #[doc(alias = "vtkUnsignedCharArray")]
6628    pub fn new() -> Self {
6629        unsafe extern "C" {
6630            fn vtkUnsignedCharArray_new() -> *mut core::ffi::c_void;
6631        }
6632        Self(unsafe { &mut *vtkUnsignedCharArray_new() })
6633    }
6634    #[cfg(test)]
6635    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6636        unsafe extern "C" {
6637            fn vtkUnsignedCharArray_get_ptr(
6638                sself: *mut core::ffi::c_void,
6639            ) -> *mut core::ffi::c_void;
6640        }
6641        unsafe { vtkUnsignedCharArray_get_ptr(self.0) }
6642    }
6643}
6644impl std::default::Default for vtkUnsignedCharArray {
6645    fn default() -> Self {
6646        Self::new()
6647    }
6648}
6649impl Drop for vtkUnsignedCharArray {
6650    fn drop(&mut self) {
6651        unsafe extern "C" {
6652            fn vtkUnsignedCharArray_destructor(sself: *mut core::ffi::c_void);
6653        }
6654        unsafe { vtkUnsignedCharArray_destructor(self.0) }
6655        self.0 = core::ptr::null_mut();
6656    }
6657}
6658#[test]
6659fn test_vtkUnsignedCharArray_create_drop() {
6660    let obj = vtkUnsignedCharArray::new();
6661    let ptr = obj.0;
6662    assert!(!ptr.is_null());
6663    assert!(unsafe { !obj._get_ptr().is_null() });
6664    drop(obj);
6665    let new_obj = vtkUnsignedCharArray(ptr);
6666    assert!(unsafe { new_obj._get_ptr().is_null() });
6667}
6668/// dynamic, self-adjusting array of unsigned int
6669///
6670///
6671/// vtkUnsignedIntArray is an array of values of type unsigned int.  It
6672/// provides methods for insertion and retrieval of values and will
6673/// automatically resize itself to hold new data.
6674///
6675/// The C++ standard does not define the exact size of the unsigned int type,
6676/// so use of this type directly is discouraged.  If an array of 32 bit unsigned
6677/// integers is needed, prefer vtkTypeUInt32Array to this class.
6678#[allow(non_camel_case_types)]
6679pub struct vtkUnsignedIntArray(*mut core::ffi::c_void);
6680impl vtkUnsignedIntArray {
6681    /// Creates a new [vtkUnsignedIntArray] wrapped inside `vtkNew`
6682    #[doc(alias = "vtkUnsignedIntArray")]
6683    pub fn new() -> Self {
6684        unsafe extern "C" {
6685            fn vtkUnsignedIntArray_new() -> *mut core::ffi::c_void;
6686        }
6687        Self(unsafe { &mut *vtkUnsignedIntArray_new() })
6688    }
6689    #[cfg(test)]
6690    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6691        unsafe extern "C" {
6692            fn vtkUnsignedIntArray_get_ptr(
6693                sself: *mut core::ffi::c_void,
6694            ) -> *mut core::ffi::c_void;
6695        }
6696        unsafe { vtkUnsignedIntArray_get_ptr(self.0) }
6697    }
6698}
6699impl std::default::Default for vtkUnsignedIntArray {
6700    fn default() -> Self {
6701        Self::new()
6702    }
6703}
6704impl Drop for vtkUnsignedIntArray {
6705    fn drop(&mut self) {
6706        unsafe extern "C" {
6707            fn vtkUnsignedIntArray_destructor(sself: *mut core::ffi::c_void);
6708        }
6709        unsafe { vtkUnsignedIntArray_destructor(self.0) }
6710        self.0 = core::ptr::null_mut();
6711    }
6712}
6713#[test]
6714fn test_vtkUnsignedIntArray_create_drop() {
6715    let obj = vtkUnsignedIntArray::new();
6716    let ptr = obj.0;
6717    assert!(!ptr.is_null());
6718    assert!(unsafe { !obj._get_ptr().is_null() });
6719    drop(obj);
6720    let new_obj = vtkUnsignedIntArray(ptr);
6721    assert!(unsafe { new_obj._get_ptr().is_null() });
6722}
6723/// dynamic, self-adjusting array of unsigned long
6724///
6725///
6726/// vtkUnsignedLongArray is an array of values of type unsigned long.
6727/// It provides methods for insertion and retrieval of values and will
6728/// automatically resize itself to hold new data.
6729///
6730/// The C++ standard does not define the exact size of the unsigned long type,
6731/// so use of this type directly is discouraged.  If an array of 32 bit
6732/// unsigned integers is needed, prefer vtkTypeUInt32Array to this class.
6733/// If an array of 64 bit unsigned integers is needed, prefer
6734/// vtkUTypeInt64Array to this class.
6735#[allow(non_camel_case_types)]
6736pub struct vtkUnsignedLongArray(*mut core::ffi::c_void);
6737impl vtkUnsignedLongArray {
6738    /// Creates a new [vtkUnsignedLongArray] wrapped inside `vtkNew`
6739    #[doc(alias = "vtkUnsignedLongArray")]
6740    pub fn new() -> Self {
6741        unsafe extern "C" {
6742            fn vtkUnsignedLongArray_new() -> *mut core::ffi::c_void;
6743        }
6744        Self(unsafe { &mut *vtkUnsignedLongArray_new() })
6745    }
6746    #[cfg(test)]
6747    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6748        unsafe extern "C" {
6749            fn vtkUnsignedLongArray_get_ptr(
6750                sself: *mut core::ffi::c_void,
6751            ) -> *mut core::ffi::c_void;
6752        }
6753        unsafe { vtkUnsignedLongArray_get_ptr(self.0) }
6754    }
6755}
6756impl std::default::Default for vtkUnsignedLongArray {
6757    fn default() -> Self {
6758        Self::new()
6759    }
6760}
6761impl Drop for vtkUnsignedLongArray {
6762    fn drop(&mut self) {
6763        unsafe extern "C" {
6764            fn vtkUnsignedLongArray_destructor(sself: *mut core::ffi::c_void);
6765        }
6766        unsafe { vtkUnsignedLongArray_destructor(self.0) }
6767        self.0 = core::ptr::null_mut();
6768    }
6769}
6770#[test]
6771fn test_vtkUnsignedLongArray_create_drop() {
6772    let obj = vtkUnsignedLongArray::new();
6773    let ptr = obj.0;
6774    assert!(!ptr.is_null());
6775    assert!(unsafe { !obj._get_ptr().is_null() });
6776    drop(obj);
6777    let new_obj = vtkUnsignedLongArray(ptr);
6778    assert!(unsafe { new_obj._get_ptr().is_null() });
6779}
6780/// dynamic, self-adjusting array of unsigned long long
6781///
6782///
6783/// vtkUnsignedLongLongArray is an array of values of type unsigned long long.
6784/// It provides methods for insertion and retrieval of values and will
6785/// automatically resize itself to hold new data.
6786///
6787/// This class should not be used directly, as it only exists on systems
6788/// where the unsigned long long type is defined.  If you need an unsigned
6789/// 64 bit integer data array, use vtkTypeUInt64Array instead.
6790#[allow(non_camel_case_types)]
6791pub struct vtkUnsignedLongLongArray(*mut core::ffi::c_void);
6792impl vtkUnsignedLongLongArray {
6793    /// Creates a new [vtkUnsignedLongLongArray] wrapped inside `vtkNew`
6794    #[doc(alias = "vtkUnsignedLongLongArray")]
6795    pub fn new() -> Self {
6796        unsafe extern "C" {
6797            fn vtkUnsignedLongLongArray_new() -> *mut core::ffi::c_void;
6798        }
6799        Self(unsafe { &mut *vtkUnsignedLongLongArray_new() })
6800    }
6801    #[cfg(test)]
6802    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6803        unsafe extern "C" {
6804            fn vtkUnsignedLongLongArray_get_ptr(
6805                sself: *mut core::ffi::c_void,
6806            ) -> *mut core::ffi::c_void;
6807        }
6808        unsafe { vtkUnsignedLongLongArray_get_ptr(self.0) }
6809    }
6810}
6811impl std::default::Default for vtkUnsignedLongLongArray {
6812    fn default() -> Self {
6813        Self::new()
6814    }
6815}
6816impl Drop for vtkUnsignedLongLongArray {
6817    fn drop(&mut self) {
6818        unsafe extern "C" {
6819            fn vtkUnsignedLongLongArray_destructor(sself: *mut core::ffi::c_void);
6820        }
6821        unsafe { vtkUnsignedLongLongArray_destructor(self.0) }
6822        self.0 = core::ptr::null_mut();
6823    }
6824}
6825#[test]
6826fn test_vtkUnsignedLongLongArray_create_drop() {
6827    let obj = vtkUnsignedLongLongArray::new();
6828    let ptr = obj.0;
6829    assert!(!ptr.is_null());
6830    assert!(unsafe { !obj._get_ptr().is_null() });
6831    drop(obj);
6832    let new_obj = vtkUnsignedLongLongArray(ptr);
6833    assert!(unsafe { new_obj._get_ptr().is_null() });
6834}
6835/// dynamic, self-adjusting array of unsigned short
6836///
6837///
6838/// vtkUnsignedShortArray is an array of values of type unsigned short.
6839/// It provides methods for insertion and retrieval of values and will
6840/// automatically resize itself to hold new data.
6841///
6842/// The C++ standard does not define the exact size of the unsigned short type,
6843/// so use of this type directly is discouraged.  If an array of 16 bit
6844/// unsigned integers is needed, prefer vtkTypeUInt16Array to this class.
6845#[allow(non_camel_case_types)]
6846pub struct vtkUnsignedShortArray(*mut core::ffi::c_void);
6847impl vtkUnsignedShortArray {
6848    /// Creates a new [vtkUnsignedShortArray] wrapped inside `vtkNew`
6849    #[doc(alias = "vtkUnsignedShortArray")]
6850    pub fn new() -> Self {
6851        unsafe extern "C" {
6852            fn vtkUnsignedShortArray_new() -> *mut core::ffi::c_void;
6853        }
6854        Self(unsafe { &mut *vtkUnsignedShortArray_new() })
6855    }
6856    #[cfg(test)]
6857    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6858        unsafe extern "C" {
6859            fn vtkUnsignedShortArray_get_ptr(
6860                sself: *mut core::ffi::c_void,
6861            ) -> *mut core::ffi::c_void;
6862        }
6863        unsafe { vtkUnsignedShortArray_get_ptr(self.0) }
6864    }
6865}
6866impl std::default::Default for vtkUnsignedShortArray {
6867    fn default() -> Self {
6868        Self::new()
6869    }
6870}
6871impl Drop for vtkUnsignedShortArray {
6872    fn drop(&mut self) {
6873        unsafe extern "C" {
6874            fn vtkUnsignedShortArray_destructor(sself: *mut core::ffi::c_void);
6875        }
6876        unsafe { vtkUnsignedShortArray_destructor(self.0) }
6877        self.0 = core::ptr::null_mut();
6878    }
6879}
6880#[test]
6881fn test_vtkUnsignedShortArray_create_drop() {
6882    let obj = vtkUnsignedShortArray::new();
6883    let ptr = obj.0;
6884    assert!(!ptr.is_null());
6885    assert!(unsafe { !obj._get_ptr().is_null() });
6886    drop(obj);
6887    let new_obj = vtkUnsignedShortArray(ptr);
6888    assert!(unsafe { new_obj._get_ptr().is_null() });
6889}
6890/// An array holding vtkVariants.
6891///
6892///
6893///
6894///
6895/// @par Thanks:
6896/// Thanks to Patricia Crossno, Ken Moreland, Andrew Wilson and Brian Wylie from
6897/// Sandia National Laboratories for their help in developing this class.
6898#[allow(non_camel_case_types)]
6899pub struct vtkVariantArray(*mut core::ffi::c_void);
6900impl vtkVariantArray {
6901    /// Creates a new [vtkVariantArray] wrapped inside `vtkNew`
6902    #[doc(alias = "vtkVariantArray")]
6903    pub fn new() -> Self {
6904        unsafe extern "C" {
6905            fn vtkVariantArray_new() -> *mut core::ffi::c_void;
6906        }
6907        Self(unsafe { &mut *vtkVariantArray_new() })
6908    }
6909    #[cfg(test)]
6910    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6911        unsafe extern "C" {
6912            fn vtkVariantArray_get_ptr(
6913                sself: *mut core::ffi::c_void,
6914            ) -> *mut core::ffi::c_void;
6915        }
6916        unsafe { vtkVariantArray_get_ptr(self.0) }
6917    }
6918}
6919impl std::default::Default for vtkVariantArray {
6920    fn default() -> Self {
6921        Self::new()
6922    }
6923}
6924impl Drop for vtkVariantArray {
6925    fn drop(&mut self) {
6926        unsafe extern "C" {
6927            fn vtkVariantArray_destructor(sself: *mut core::ffi::c_void);
6928        }
6929        unsafe { vtkVariantArray_destructor(self.0) }
6930        self.0 = core::ptr::null_mut();
6931    }
6932}
6933#[test]
6934fn test_vtkVariantArray_create_drop() {
6935    let obj = vtkVariantArray::new();
6936    let ptr = obj.0;
6937    assert!(!ptr.is_null());
6938    assert!(unsafe { !obj._get_ptr().is_null() });
6939    drop(obj);
6940    let new_obj = vtkVariantArray(ptr);
6941    assert!(unsafe { new_obj._get_ptr().is_null() });
6942}
6943/// Versioning class for vtk
6944///
6945///
6946/// Holds methods for defining/determining the current vtk version
6947/// (major, minor, build).
6948///
6949/// @warning
6950/// This file will change frequently to update the VTKSourceVersion which
6951/// timestamps a particular source release.
6952#[allow(non_camel_case_types)]
6953pub struct vtkVersion(*mut core::ffi::c_void);
6954impl vtkVersion {
6955    /// Creates a new [vtkVersion] wrapped inside `vtkNew`
6956    #[doc(alias = "vtkVersion")]
6957    pub fn new() -> Self {
6958        unsafe extern "C" {
6959            fn vtkVersion_new() -> *mut core::ffi::c_void;
6960        }
6961        Self(unsafe { &mut *vtkVersion_new() })
6962    }
6963    #[cfg(test)]
6964    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
6965        unsafe extern "C" {
6966            fn vtkVersion_get_ptr(
6967                sself: *mut core::ffi::c_void,
6968            ) -> *mut core::ffi::c_void;
6969        }
6970        unsafe { vtkVersion_get_ptr(self.0) }
6971    }
6972}
6973impl std::default::Default for vtkVersion {
6974    fn default() -> Self {
6975        Self::new()
6976    }
6977}
6978impl Drop for vtkVersion {
6979    fn drop(&mut self) {
6980        unsafe extern "C" {
6981            fn vtkVersion_destructor(sself: *mut core::ffi::c_void);
6982        }
6983        unsafe { vtkVersion_destructor(self.0) }
6984        self.0 = core::ptr::null_mut();
6985    }
6986}
6987#[test]
6988fn test_vtkVersion_create_drop() {
6989    let obj = vtkVersion::new();
6990    let ptr = obj.0;
6991    assert!(!ptr.is_null());
6992    assert!(unsafe { !obj._get_ptr().is_null() });
6993    drop(obj);
6994    let new_obj = vtkVersion(ptr);
6995    assert!(unsafe { new_obj._get_ptr().is_null() });
6996}
6997/// dynamic, self-adjusting array of void* pointers
6998///
6999///
7000/// vtkVoidArray is an array of pointers to void. It provides methods
7001/// for insertion and retrieval of these pointers values, and will
7002/// automatically resize itself to hold new data.
7003#[allow(non_camel_case_types)]
7004pub struct vtkVoidArray(*mut core::ffi::c_void);
7005impl vtkVoidArray {
7006    /// Creates a new [vtkVoidArray] wrapped inside `vtkNew`
7007    #[doc(alias = "vtkVoidArray")]
7008    pub fn new() -> Self {
7009        unsafe extern "C" {
7010            fn vtkVoidArray_new() -> *mut core::ffi::c_void;
7011        }
7012        Self(unsafe { &mut *vtkVoidArray_new() })
7013    }
7014    #[cfg(test)]
7015    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
7016        unsafe extern "C" {
7017            fn vtkVoidArray_get_ptr(
7018                sself: *mut core::ffi::c_void,
7019            ) -> *mut core::ffi::c_void;
7020        }
7021        unsafe { vtkVoidArray_get_ptr(self.0) }
7022    }
7023}
7024impl std::default::Default for vtkVoidArray {
7025    fn default() -> Self {
7026        Self::new()
7027    }
7028}
7029impl Drop for vtkVoidArray {
7030    fn drop(&mut self) {
7031        unsafe extern "C" {
7032            fn vtkVoidArray_destructor(sself: *mut core::ffi::c_void);
7033        }
7034        unsafe { vtkVoidArray_destructor(self.0) }
7035        self.0 = core::ptr::null_mut();
7036    }
7037}
7038#[test]
7039fn test_vtkVoidArray_create_drop() {
7040    let obj = vtkVoidArray::new();
7041    let ptr = obj.0;
7042    assert!(!ptr.is_null());
7043    assert!(unsafe { !obj._get_ptr().is_null() });
7044    drop(obj);
7045    let new_obj = vtkVoidArray(ptr);
7046    assert!(unsafe { new_obj._get_ptr().is_null() });
7047}
7048/// Utility class to hold a weak reference to a vtkObject.
7049///
7050///
7051/// Simple Set(...)/Get(...) interface. Used in numpy support to provide a
7052/// reference to a vtkObject without preventing it from being collected.
7053#[allow(non_camel_case_types)]
7054pub struct vtkWeakReference(*mut core::ffi::c_void);
7055impl vtkWeakReference {
7056    /// Creates a new [vtkWeakReference] wrapped inside `vtkNew`
7057    #[doc(alias = "vtkWeakReference")]
7058    pub fn new() -> Self {
7059        unsafe extern "C" {
7060            fn vtkWeakReference_new() -> *mut core::ffi::c_void;
7061        }
7062        Self(unsafe { &mut *vtkWeakReference_new() })
7063    }
7064    #[cfg(test)]
7065    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
7066        unsafe extern "C" {
7067            fn vtkWeakReference_get_ptr(
7068                sself: *mut core::ffi::c_void,
7069            ) -> *mut core::ffi::c_void;
7070        }
7071        unsafe { vtkWeakReference_get_ptr(self.0) }
7072    }
7073}
7074impl std::default::Default for vtkWeakReference {
7075    fn default() -> Self {
7076        Self::new()
7077    }
7078}
7079impl Drop for vtkWeakReference {
7080    fn drop(&mut self) {
7081        unsafe extern "C" {
7082            fn vtkWeakReference_destructor(sself: *mut core::ffi::c_void);
7083        }
7084        unsafe { vtkWeakReference_destructor(self.0) }
7085        self.0 = core::ptr::null_mut();
7086    }
7087}
7088#[test]
7089fn test_vtkWeakReference_create_drop() {
7090    let obj = vtkWeakReference::new();
7091    let ptr = obj.0;
7092    assert!(!ptr.is_null());
7093    assert!(unsafe { !obj._get_ptr().is_null() });
7094    drop(obj);
7095    let new_obj = vtkWeakReference(ptr);
7096    assert!(unsafe { new_obj._get_ptr().is_null() });
7097}
7098/// XML File Specific output window class
7099///
7100///
7101/// Writes debug/warning/error output to an XML file. Uses prefined XML
7102/// tags for each text display method. The text is processed to replace
7103/// XML markup characters.
7104///
7105/// DisplayText - \<Text\>
7106///
7107/// DisplayErrorText - \<Error\>
7108///
7109/// DisplayWarningText - \<Warning\>
7110///
7111/// DisplayGenericWarningText - \<GenericWarning\>
7112///
7113/// DisplayDebugText - \<Debug\>
7114///
7115/// The method DisplayTag outputs the text unprocessed. To use this
7116/// class, instantiate it and then call SetInstance(this).
7117#[allow(non_camel_case_types)]
7118pub struct vtkXMLFileOutputWindow(*mut core::ffi::c_void);
7119impl vtkXMLFileOutputWindow {
7120    /// Creates a new [vtkXMLFileOutputWindow] wrapped inside `vtkNew`
7121    #[doc(alias = "vtkXMLFileOutputWindow")]
7122    pub fn new() -> Self {
7123        unsafe extern "C" {
7124            fn vtkXMLFileOutputWindow_new() -> *mut core::ffi::c_void;
7125        }
7126        Self(unsafe { &mut *vtkXMLFileOutputWindow_new() })
7127    }
7128    #[cfg(test)]
7129    unsafe fn _get_ptr(&self) -> *mut core::ffi::c_void {
7130        unsafe extern "C" {
7131            fn vtkXMLFileOutputWindow_get_ptr(
7132                sself: *mut core::ffi::c_void,
7133            ) -> *mut core::ffi::c_void;
7134        }
7135        unsafe { vtkXMLFileOutputWindow_get_ptr(self.0) }
7136    }
7137}
7138impl std::default::Default for vtkXMLFileOutputWindow {
7139    fn default() -> Self {
7140        Self::new()
7141    }
7142}
7143impl Drop for vtkXMLFileOutputWindow {
7144    fn drop(&mut self) {
7145        unsafe extern "C" {
7146            fn vtkXMLFileOutputWindow_destructor(sself: *mut core::ffi::c_void);
7147        }
7148        unsafe { vtkXMLFileOutputWindow_destructor(self.0) }
7149        self.0 = core::ptr::null_mut();
7150    }
7151}
7152#[test]
7153fn test_vtkXMLFileOutputWindow_create_drop() {
7154    let obj = vtkXMLFileOutputWindow::new();
7155    let ptr = obj.0;
7156    assert!(!ptr.is_null());
7157    assert!(unsafe { !obj._get_ptr().is_null() });
7158    drop(obj);
7159    let new_obj = vtkXMLFileOutputWindow(ptr);
7160    assert!(unsafe { new_obj._get_ptr().is_null() });
7161}