vtk_rs/
vtk_poly_data_algorithm.rs1#[cxx::bridge]
2pub(crate) mod ffi {
3 unsafe extern "C++" {
4 include!("vtk_poly_data_algorithm.h");
5
6 pub(crate) type vtkPolyDataAlgorithm;
7 pub(crate) type vtkDataObject;
8 pub(crate) type vtkPolyData;
9
10 fn vtk_poly_data_algorithm_new() -> *mut vtkPolyDataAlgorithm;
11 fn vtk_poly_data_algorithm_delete(poly_data_algorithm: Pin<&mut vtkPolyDataAlgorithm>);
12 fn vtk_poly_data_algorithm_get_input(
13 vtk_poly_data_algorithm: &vtkPolyDataAlgorithm,
14 port: i64,
15 ) -> &vtkDataObject;
16 fn vtk_poly_data_algorithm_get_poly_data_input(
17 vtk_poly_data_algorithm: &vtkPolyDataAlgorithm,
18 port: i64,
19 ) -> &vtkPolyData;
20 fn vtk_poly_data_algorithm_get_output(
21 vtk_poly_data_algorithm: &vtkPolyDataAlgorithm,
22 port: i64,
23 ) -> &vtkPolyData;
24 fn vtk_poly_data_algorithm_set_output(
25 vtk_poly_data_algorithm: Pin<&mut vtkPolyDataAlgorithm>,
26 data_object: &vtkDataObject,
27 );
28 fn vtk_poly_data_algorithm_set_input_data(
29 poly_data_algorithm: Pin<&mut vtkPolyDataAlgorithm>,
30 port: i64,
31 data_object: &vtkDataObject,
32 );
33 fn vtk_poly_data_algorithm_add_input_data(
34 poly_data_algorithm: Pin<&mut vtkPolyDataAlgorithm>,
35 port: i64,
36 data_object: &vtkDataObject,
37 );
38 }
39}
40
41pub(crate) mod private {
42 pub trait Sealed {}
43}
44
45crate::define_object!(
46 "https://vtk.org/doc/nightly/html/classvtkPolyDataAlgorithm.html",
47 @name PolyDataAlgorithm, ffi::vtkPolyDataAlgorithm,
48 @new ffi::vtk_poly_data_algorithm_new,
49 @delete ffi::vtk_poly_data_algorithm_delete,
51 @inherit vtkPolyDataAlgorithm
52);
53
54#[allow(non_camel_case_types)]
56pub trait vtkPolyDataAlgorithm: private::Sealed {
57 #[doc(hidden)]
58 fn as_vtk_poly_data_algorithm(&self) -> core::pin::Pin<&ffi::vtkPolyDataAlgorithm>;
59 #[doc(hidden)]
60 fn as_vtk_poly_data_algorithm_mut(&mut self) -> core::pin::Pin<&mut ffi::vtkPolyDataAlgorithm>;
61
62 fn get_input(&self, port: i64) -> Option<&crate::DataObject> {
70 let sself = self.as_vtk_poly_data_algorithm();
71 let raw_ref = ffi::vtk_poly_data_algorithm_get_input(&sself, port);
72 let raw_ptr = raw_ref as *const _ as *const crate::vtk_data_object::DataObject;
73 unsafe { raw_ptr.as_ref() }
74 }
75
76 fn vtk_poly_data_algorithm_get_poly_data_input(&self, port: i64) -> Option<&crate::PolyData> {
77 let sself = self.as_vtk_poly_data_algorithm();
78 let raw_ref = ffi::vtk_poly_data_algorithm_get_poly_data_input(&sself, port);
79 let raw_ptr = raw_ref as *const _ as *const crate::vtk_poly_data::PolyData;
80 unsafe { raw_ptr.as_ref() }
81 }
82
83 fn get_poly_data_input(&self, port: i64) -> Option<&crate::vtk_poly_data::PolyData> {
84 let sself = self.as_vtk_poly_data_algorithm();
85 let raw_ref = ffi::vtk_poly_data_algorithm_get_poly_data_input(&sself, port);
86 let raw_ptr = raw_ref as *const _ as *const crate::PolyData;
87 unsafe { raw_ptr.as_ref() }
88 }
89
90 fn set_output(&mut self, data_object: &impl crate::vtkDataObject) {
91 let dobject = &data_object.as_vtk_data_object() as *const _ as *const ffi::vtkDataObject;
92 ffi::vtk_poly_data_algorithm_set_output(self.as_vtk_poly_data_algorithm_mut(), unsafe {
93 &*dobject
94 });
95 }
96
97 fn set_input_data(&mut self, port: i64, data_object: &impl crate::vtkDataObject) {
98 let dobject = &data_object.as_vtk_data_object() as *const _ as *const ffi::vtkDataObject;
99 ffi::vtk_poly_data_algorithm_set_input_data(
100 self.as_vtk_poly_data_algorithm_mut(),
101 port,
102 unsafe { &*dobject },
103 );
104 }
105
106 fn add_input_data(&mut self, port: i64, data_object: &impl crate::vtkDataObject) {
107 let dobject = &data_object.as_vtk_data_object() as *const _ as *const ffi::vtkDataObject;
108 ffi::vtk_poly_data_algorithm_add_input_data(
109 self.as_vtk_poly_data_algorithm_mut(),
110 port,
111 unsafe { &*dobject },
112 );
113 }
114
115 fn get_output(&self, port: i64) -> Option<&crate::PolyData> {
116 let sself = self.as_vtk_poly_data_algorithm();
117 let raw_ref = ffi::vtk_poly_data_algorithm_get_output(&sself, port);
118 let raw_ptr = raw_ref as *const _ as *const crate::PolyData;
119 unsafe { raw_ptr.as_ref() }
120 }
121}