1#[repr(C)]
14#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub struct __BindgenBitfieldUnit<Storage> {
16 storage: Storage,
17}
18impl<Storage> __BindgenBitfieldUnit<Storage> {
19 #[inline]
20 pub const fn new(storage: Storage) -> Self {
21 Self { storage }
22 }
23}
24impl<Storage> __BindgenBitfieldUnit<Storage>
25where
26 Storage: AsRef<[u8]> + AsMut<[u8]>,
27{
28 #[inline]
29 fn extract_bit(byte: u8, index: usize) -> bool {
30 let bit_index = if cfg!(target_endian = "big") {
31 7 - (index % 8)
32 } else {
33 index % 8
34 };
35 let mask = 1 << bit_index;
36 byte & mask == mask
37 }
38
39 #[inline]
40 pub fn get_bit(&self, index: usize) -> bool {
41 debug_assert!(index / 8 < self.storage.as_ref().len());
42 let byte_index = index / 8;
43 let byte = self.storage.as_ref()[byte_index];
44 Self::extract_bit(byte, index)
45 }
46
47 #[inline]
48 pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
49 debug_assert!(index / 8 < core::mem::size_of::<Storage>());
50 let byte_index = index / 8;
51 let byte = unsafe {
52 *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
53 };
54 Self::extract_bit(byte, index)
55 }
56
57 #[inline]
58 fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
59 let bit_index = if cfg!(target_endian = "big") {
60 7 - (index % 8)
61 } else {
62 index % 8
63 };
64 let mask = 1 << bit_index;
65 if val { byte | mask } else { byte & !mask }
66 }
67
68 #[inline]
69 pub fn set_bit(&mut self, index: usize, val: bool) {
70 debug_assert!(index / 8 < self.storage.as_ref().len());
71 let byte_index = index / 8;
72 let byte = &mut self.storage.as_mut()[byte_index];
73 *byte = Self::change_bit(*byte, index, val);
74 }
75
76 #[inline]
77 pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
78 debug_assert!(index / 8 < core::mem::size_of::<Storage>());
79 let byte_index = index / 8;
80 let byte = unsafe {
81 (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
82 };
83 unsafe { *byte = Self::change_bit(*byte, index, val) };
84 }
85
86 #[inline]
87 pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
88 debug_assert!(bit_width <= 64);
89 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
90 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
91 let mut val = 0;
92 for i in 0..(bit_width as usize) {
93 if self.get_bit(i + bit_offset) {
94 let index = if cfg!(target_endian = "big") {
95 bit_width as usize - 1 - i
96 } else {
97 i
98 };
99 val |= 1 << index;
100 }
101 }
102 val
103 }
104
105 #[inline]
106 pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
107 debug_assert!(bit_width <= 64);
108 debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
109 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
110 let mut val = 0;
111 for i in 0..(bit_width as usize) {
112 if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
113 let index = if cfg!(target_endian = "big") {
114 bit_width as usize - 1 - i
115 } else {
116 i
117 };
118 val |= 1 << index;
119 }
120 }
121 val
122 }
123
124 #[inline]
125 pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
126 debug_assert!(bit_width <= 64);
127 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
128 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
129 for i in 0..(bit_width as usize) {
130 let mask = 1 << i;
131 let val_bit_is_set = val & mask == mask;
132 let index = if cfg!(target_endian = "big") {
133 bit_width as usize - 1 - i
134 } else {
135 i
136 };
137 self.set_bit(index + bit_offset, val_bit_is_set);
138 }
139 }
140
141 #[inline]
142 pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
143 debug_assert!(bit_width <= 64);
144 debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
145 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
146 for i in 0..(bit_width as usize) {
147 let mask = 1 << i;
148 let val_bit_is_set = val & mask == mask;
149 let index = if cfg!(target_endian = "big") {
150 bit_width as usize - 1 - i
151 } else {
152 i
153 };
154 unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
155 }
156 }
157}
158#[doc = r" If Bindgen could only determine the size and alignment of a"]
159#[doc = r" type, it is represented like this."]
160#[derive(PartialEq, Copy, Clone, Debug, Hash)]
161#[repr(C)]
162pub struct __BindgenOpaqueArray<T: Copy, const N: usize>(pub [T; N]);
163impl<T: Copy + Default, const N: usize> Default for __BindgenOpaqueArray<T, N> {
164 fn default() -> Self {
165 Self([<T as Default>::default(); N])
166 }
167}
168#[doc = " \\brief BufferDescriptor is a struct which describes buffer elements in\n interleaved data buffers. Almost all Osd Evaluator APIs take\n BufferDescriptors along with device-specific buffer objects.\n\n The offset of BufferDescriptor can also be used to express a\n batching offset if the data buffer is combined across multiple\n objects together.\n\n * Note that each element has the same data type (float)\n"]
169#[repr(C)]
170#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
171pub struct OpenSubdiv_v3_7_0_Osd_BufferDescriptor {
172 #[doc = " offset to desired element data"]
173 pub offset: ::std::os::raw::c_int,
174 #[doc = " number or length of the data"]
175 pub length: ::std::os::raw::c_int,
176 #[doc = " stride to the next element"]
177 pub stride: ::std::os::raw::c_int,
178}
179pub const OpenSubdiv_v3_7_0_Sdc_SchemeType_SCHEME_BILINEAR: OpenSubdiv_v3_7_0_Sdc_SchemeType = 0;
180pub const OpenSubdiv_v3_7_0_Sdc_SchemeType_SCHEME_CATMARK: OpenSubdiv_v3_7_0_Sdc_SchemeType = 1;
181pub const OpenSubdiv_v3_7_0_Sdc_SchemeType_SCHEME_LOOP: OpenSubdiv_v3_7_0_Sdc_SchemeType = 2;
182#[doc = "\n \\brief Enumerated type for all subdivision schemes supported by OpenSubdiv\n"]
183pub type OpenSubdiv_v3_7_0_Sdc_SchemeType = ::std::os::raw::c_uint;
184#[doc = "< Used by Catmark and Bilinear"]
185pub const OpenSubdiv_v3_7_0_Sdc_Split_SPLIT_TO_QUADS: OpenSubdiv_v3_7_0_Sdc_Split = 0;
186#[doc = "< Used by Loop"]
187pub const OpenSubdiv_v3_7_0_Sdc_Split_SPLIT_TO_TRIS: OpenSubdiv_v3_7_0_Sdc_Split = 1;
188#[doc = "< Not currently used (potential future extension)"]
189pub const OpenSubdiv_v3_7_0_Sdc_Split_SPLIT_HYBRID: OpenSubdiv_v3_7_0_Sdc_Split = 2;
190#[doc = "\n \\brief Enumerated type for all face splitting schemes\n"]
191pub type OpenSubdiv_v3_7_0_Sdc_Split = ::std::os::raw::c_uint;
192#[doc = "\n \\brief Traits associated with the types of all subdivision schemes -- parameterized by\n the scheme type. All traits are also defined in the scheme itself.\n"]
193#[repr(C)]
194#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
195pub struct OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits {
196 pub _address: u8,
197}
198unsafe extern "C" {
199 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Sdc16SchemeTypeTraits23GetTopologicalSplitTypeENS1_10SchemeTypeE"]
200 pub fn OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits_GetTopologicalSplitType(
201 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
202 ) -> OpenSubdiv_v3_7_0_Sdc_Split;
203}
204unsafe extern "C" {
205 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Sdc16SchemeTypeTraits18GetRegularFaceSizeENS1_10SchemeTypeE"]
206 pub fn OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits_GetRegularFaceSize(
207 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
208 ) -> ::std::os::raw::c_int;
209}
210unsafe extern "C" {
211 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Sdc16SchemeTypeTraits23GetRegularVertexValenceENS1_10SchemeTypeE"]
212 pub fn OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits_GetRegularVertexValence(
213 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
214 ) -> ::std::os::raw::c_int;
215}
216unsafe extern "C" {
217 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Sdc16SchemeTypeTraits24GetLocalNeighborhoodSizeENS1_10SchemeTypeE"]
218 pub fn OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits_GetLocalNeighborhoodSize(
219 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
220 ) -> ::std::os::raw::c_int;
221}
222unsafe extern "C" {
223 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Sdc16SchemeTypeTraits7GetNameENS1_10SchemeTypeE"]
224 pub fn OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits_GetName(
225 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
226 ) -> *const ::std::os::raw::c_char;
227}
228impl OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits {
229 #[inline]
230 pub unsafe fn GetTopologicalSplitType(
231 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
232 ) -> OpenSubdiv_v3_7_0_Sdc_Split {
233 OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits_GetTopologicalSplitType(schemeType)
234 }
235
236 #[inline]
237 pub unsafe fn GetRegularFaceSize(
238 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
239 ) -> ::std::os::raw::c_int {
240 OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits_GetRegularFaceSize(schemeType)
241 }
242
243 #[inline]
244 pub unsafe fn GetRegularVertexValence(
245 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
246 ) -> ::std::os::raw::c_int {
247 OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits_GetRegularVertexValence(schemeType)
248 }
249
250 #[inline]
251 pub unsafe fn GetLocalNeighborhoodSize(
252 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
253 ) -> ::std::os::raw::c_int {
254 OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits_GetLocalNeighborhoodSize(schemeType)
255 }
256
257 #[inline]
258 pub unsafe fn GetName(
259 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
260 ) -> *const ::std::os::raw::c_char {
261 OpenSubdiv_v3_7_0_Sdc_SchemeTypeTraits_GetName(schemeType)
262 }
263}
264#[doc = "\n \\brief All supported options applying to subdivision scheme.\n\n The Options class contains all supported options that can be applied to a\n subdivision scheme to affect the shape of the limit surface. These differ from\n approximations that may be applied at a higher level, i.e. options to limit the\n level of feature adaptive subdivision, options to ignore fractional creasing,\n or creasing entirely, etc. These options define the shape of a particular\n limit surface, including the \"shape\" of primitive variable data associated with\n it.\n\n The intent is that these sets of options be defined at a high level and\n propagated into the lowest-level computation in support of each subdivision\n scheme. Ideally it remains a set of bit-fields (essentially an int) and so\n remains light weight and easily passed around by value.\n"]
265#[repr(C)]
266#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
267pub struct OpenSubdiv_v3_7_0_Sdc_Options {
268 pub _vtxBoundInterp: OpenSubdiv_v3_7_0_Sdc_Options_EnumIntType,
269 pub _fvarLinInterp: OpenSubdiv_v3_7_0_Sdc_Options_EnumIntType,
270 pub _creasingMethod: OpenSubdiv_v3_7_0_Sdc_Options_EnumIntType,
271 pub _triangleSub: OpenSubdiv_v3_7_0_Sdc_Options_EnumIntType,
272}
273#[doc = "< no boundary interpolation, except where\n< boundary edges were explicitly sharpened"]
274pub const OpenSubdiv_v3_7_0_Sdc_Options_VtxBoundaryInterpolation_VTX_BOUNDARY_NONE:
275 OpenSubdiv_v3_7_0_Sdc_Options_VtxBoundaryInterpolation = 0;
276#[doc = "< all boundary edges sharpened and interpolated"]
277pub const OpenSubdiv_v3_7_0_Sdc_Options_VtxBoundaryInterpolation_VTX_BOUNDARY_EDGE_ONLY:
278 OpenSubdiv_v3_7_0_Sdc_Options_VtxBoundaryInterpolation = 1;
279#[doc = "< all boundary edges and corner vertices\n< sharpened and interpolated"]
280pub const OpenSubdiv_v3_7_0_Sdc_Options_VtxBoundaryInterpolation_VTX_BOUNDARY_EDGE_AND_CORNER:
281 OpenSubdiv_v3_7_0_Sdc_Options_VtxBoundaryInterpolation = 2;
282pub type OpenSubdiv_v3_7_0_Sdc_Options_VtxBoundaryInterpolation = ::std::os::raw::c_uint;
283#[doc = "< smooth everywhere (\"edge only\")"]
284pub const OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation_FVAR_LINEAR_NONE:
285 OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation = 0;
286#[doc = "< sharpen corners only"]
287pub const OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation_FVAR_LINEAR_CORNERS_ONLY:
288 OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation = 1;
289#[doc = "< (\"edge corner\")"]
290pub const OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation_FVAR_LINEAR_CORNERS_PLUS1:
291 OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation = 2;
292#[doc = "< (\"edge and corner + propagate corner\")"]
293pub const OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation_FVAR_LINEAR_CORNERS_PLUS2:
294 OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation = 3;
295#[doc = "< sharpen all boundaries (\"always sharp\")"]
296pub const OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation_FVAR_LINEAR_BOUNDARIES:
297 OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation = 4;
298#[doc = "< bilinear interpolation (\"bilinear\")"]
299pub const OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation_FVAR_LINEAR_ALL:
300 OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation = 5;
301pub type OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation = ::std::os::raw::c_uint;
302#[doc = "< Catmark rule"]
303pub const OpenSubdiv_v3_7_0_Sdc_Options_CreasingMethod_CREASE_UNIFORM:
304 OpenSubdiv_v3_7_0_Sdc_Options_CreasingMethod = 0;
305#[doc = "< Chaikin rule"]
306pub const OpenSubdiv_v3_7_0_Sdc_Options_CreasingMethod_CREASE_CHAIKIN:
307 OpenSubdiv_v3_7_0_Sdc_Options_CreasingMethod = 1;
308pub type OpenSubdiv_v3_7_0_Sdc_Options_CreasingMethod = ::std::os::raw::c_uint;
309#[doc = "< Catmark weights (Catmark scheme only)"]
310pub const OpenSubdiv_v3_7_0_Sdc_Options_TriangleSubdivision_TRI_SUB_CATMARK:
311 OpenSubdiv_v3_7_0_Sdc_Options_TriangleSubdivision = 0;
312#[doc = "< \"smooth triangle\" weights (Catmark scheme only)"]
313pub const OpenSubdiv_v3_7_0_Sdc_Options_TriangleSubdivision_TRI_SUB_SMOOTH:
314 OpenSubdiv_v3_7_0_Sdc_Options_TriangleSubdivision = 1;
315pub type OpenSubdiv_v3_7_0_Sdc_Options_TriangleSubdivision = ::std::os::raw::c_uint;
316pub type OpenSubdiv_v3_7_0_Sdc_Options_EnumIntType = ::std::os::raw::c_uchar;
317#[doc = "\n \\brief Types, constants and utilities related to semi-sharp creasing -- whose implementation\n is independent of the subdivision scheme.\n\n Crease is intended to be a light-weight, trivially constructed class that computes\n crease-related properties -- typically sharpness values and associated interpolation\n weights. An instance of Crease is defined with a set of options that include current\n and future variations that will impact computations involving sharpness values.\n\n The Crease methods do not use topological neighborhoods as input. The methods here\n rely more on the sharpness values and less on the topology, so we choose to work directly\n with the sharpness values. We also follow the trend of using primitive arrays in the\n interface to encourage local gathering for re-use.\n\n Note on the need for and use of sharpness values:\n In general, mask queries rely on the sharpness values. The common case of a smooth\n vertex, when known, avoids the need to inspect them, but unless the rules are well understood,\n users will be expected to provided them -- particularly when they expect the mask queries\n to do all of the work (just determining if a vertex is smooth will require inspection of\n incident edge sharpness).\n Mask queries will occasionally require the subdivided sharpness values around the\n child vertex. So users will be expected to either provide them up front when known, or to be\n gathered on demand. Any implementation of subdivision with creasing cannot avoid subdividing\n the sharpness values first, so keeping them available for re-use is a worthwhile consideration.\n"]
318#[repr(C)]
319#[derive(Debug, Hash, PartialEq, Eq)]
320pub struct OpenSubdiv_v3_7_0_Sdc_Crease {
321 pub _options: OpenSubdiv_v3_7_0_Sdc_Options,
322}
323pub const OpenSubdiv_v3_7_0_Sdc_Crease_Rule_RULE_UNKNOWN: OpenSubdiv_v3_7_0_Sdc_Crease_Rule = 0;
324pub const OpenSubdiv_v3_7_0_Sdc_Crease_Rule_RULE_SMOOTH: OpenSubdiv_v3_7_0_Sdc_Crease_Rule = 1;
325pub const OpenSubdiv_v3_7_0_Sdc_Crease_Rule_RULE_DART: OpenSubdiv_v3_7_0_Sdc_Crease_Rule = 2;
326pub const OpenSubdiv_v3_7_0_Sdc_Crease_Rule_RULE_CREASE: OpenSubdiv_v3_7_0_Sdc_Crease_Rule = 4;
327pub const OpenSubdiv_v3_7_0_Sdc_Crease_Rule_RULE_CORNER: OpenSubdiv_v3_7_0_Sdc_Crease_Rule = 8;
328#[doc = "\n Enum for the types of subdivision rules applied based on sharpness values (note these\n correspond to Hbr's vertex \"mask\"). The values are assigned to bit positions as it is\n useful to use bitwise operations to inspect collections of vertices (i.e. all of the\n vertices incident a particular face).\n"]
329pub type OpenSubdiv_v3_7_0_Sdc_Crease_Rule = ::std::os::raw::c_uint;
330unsafe extern "C" {
331 #[doc = " Constants and related queries of sharpness values:\n"]
332 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Sdc6Crease16SHARPNESS_SMOOTHE"]
333 pub static OpenSubdiv_v3_7_0_Sdc_Crease_SHARPNESS_SMOOTH: f32;
334}
335unsafe extern "C" {
336 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Sdc6Crease18SHARPNESS_INFINITEE"]
337 pub static OpenSubdiv_v3_7_0_Sdc_Crease_SHARPNESS_INFINITE: f32;
338}
339unsafe extern "C" {
340 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Sdc6Crease30SubdivideEdgeSharpnessAtVertexEfiPKf"]
341 pub fn OpenSubdiv_v3_7_0_Sdc_Crease_SubdivideEdgeSharpnessAtVertex(
342 this: *const OpenSubdiv_v3_7_0_Sdc_Crease,
343 edgeSharpness: f32,
344 incidentEdgeCountAtEndVertex: ::std::os::raw::c_int,
345 edgeSharpnessAroundEndVertex: *const f32,
346 ) -> f32;
347}
348unsafe extern "C" {
349 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Sdc6Crease36SubdivideEdgeSharpnessesAroundVertexEiPKfPf"]
350 pub fn OpenSubdiv_v3_7_0_Sdc_Crease_SubdivideEdgeSharpnessesAroundVertex(
351 this: *const OpenSubdiv_v3_7_0_Sdc_Crease,
352 incidentEdgeCountAtVertex: ::std::os::raw::c_int,
353 incidentEdgeSharpnessAroundVertex: *const f32,
354 childEdgesSharpnessAroundVertex: *mut f32,
355 );
356}
357unsafe extern "C" {
358 #[doc = " Rule determination:\n Mask queries do not require the Rule to be known, it can be determined from\n the information provided, but it is generally more efficient when the Rule is known\n and provided. In particular, the Smooth case dominates and is known to be applicable\n based on the origin of the vertex without inspection of sharpness.\n"]
359 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Sdc6Crease25DetermineVertexVertexRuleEfiPKf"]
360 pub fn OpenSubdiv_v3_7_0_Sdc_Crease_DetermineVertexVertexRule(
361 this: *const OpenSubdiv_v3_7_0_Sdc_Crease,
362 vertexSharpness: f32,
363 incidentEdgeCount: ::std::os::raw::c_int,
364 incidentEdgeSharpness: *const f32,
365 ) -> OpenSubdiv_v3_7_0_Sdc_Crease_Rule;
366}
367unsafe extern "C" {
368 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Sdc6Crease25DetermineVertexVertexRuleEfi"]
369 pub fn OpenSubdiv_v3_7_0_Sdc_Crease_DetermineVertexVertexRule1(
370 this: *const OpenSubdiv_v3_7_0_Sdc_Crease,
371 vertexSharpness: f32,
372 sharpEdgeCount: ::std::os::raw::c_int,
373 ) -> OpenSubdiv_v3_7_0_Sdc_Crease_Rule;
374}
375unsafe extern "C" {
376 #[doc = " \\brief Transitional weighting:\n When the rules applicable to a parent vertex and its child differ, one or more\n sharpness values has \"decayed\" to zero. Both rules are then applicable and blended\n by a weight between 0 and 1 that reflects the transition. Most often this will be\n a single sharpness value that decays from within the interval [0,1] to zero -- and\n the weight to apply is exactly that sharpness value -- but more than one may decay,\n and values > 1 may also decay to 0 in a single step while others within [0,1] may\n remain > 0.\n So to properly determine a transitional weight, sharpness values for both the\n parent and child must be inspected, combined and clamped accordingly.\n"]
377 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Sdc6Crease31ComputeFractionalWeightAtVertexEffiPKfS4_"]
378 pub fn OpenSubdiv_v3_7_0_Sdc_Crease_ComputeFractionalWeightAtVertex(
379 this: *const OpenSubdiv_v3_7_0_Sdc_Crease,
380 vertexSharpness: f32,
381 childVertexSharpness: f32,
382 incidentEdgeCount: ::std::os::raw::c_int,
383 incidentEdgeSharpness: *const f32,
384 childEdgesSharpness: *const f32,
385 ) -> f32;
386}
387impl OpenSubdiv_v3_7_0_Sdc_Crease {
388 #[inline]
389 pub unsafe fn SubdivideEdgeSharpnessAtVertex(
390 &self,
391 edgeSharpness: f32,
392 incidentEdgeCountAtEndVertex: ::std::os::raw::c_int,
393 edgeSharpnessAroundEndVertex: *const f32,
394 ) -> f32 {
395 OpenSubdiv_v3_7_0_Sdc_Crease_SubdivideEdgeSharpnessAtVertex(
396 self,
397 edgeSharpness,
398 incidentEdgeCountAtEndVertex,
399 edgeSharpnessAroundEndVertex,
400 )
401 }
402
403 #[inline]
404 pub unsafe fn SubdivideEdgeSharpnessesAroundVertex(
405 &self,
406 incidentEdgeCountAtVertex: ::std::os::raw::c_int,
407 incidentEdgeSharpnessAroundVertex: *const f32,
408 childEdgesSharpnessAroundVertex: *mut f32,
409 ) {
410 OpenSubdiv_v3_7_0_Sdc_Crease_SubdivideEdgeSharpnessesAroundVertex(
411 self,
412 incidentEdgeCountAtVertex,
413 incidentEdgeSharpnessAroundVertex,
414 childEdgesSharpnessAroundVertex,
415 )
416 }
417
418 #[inline]
419 pub unsafe fn DetermineVertexVertexRule(
420 &self,
421 vertexSharpness: f32,
422 incidentEdgeCount: ::std::os::raw::c_int,
423 incidentEdgeSharpness: *const f32,
424 ) -> OpenSubdiv_v3_7_0_Sdc_Crease_Rule {
425 OpenSubdiv_v3_7_0_Sdc_Crease_DetermineVertexVertexRule(
426 self,
427 vertexSharpness,
428 incidentEdgeCount,
429 incidentEdgeSharpness,
430 )
431 }
432
433 #[inline]
434 pub unsafe fn DetermineVertexVertexRule1(
435 &self,
436 vertexSharpness: f32,
437 sharpEdgeCount: ::std::os::raw::c_int,
438 ) -> OpenSubdiv_v3_7_0_Sdc_Crease_Rule {
439 OpenSubdiv_v3_7_0_Sdc_Crease_DetermineVertexVertexRule1(
440 self,
441 vertexSharpness,
442 sharpEdgeCount,
443 )
444 }
445
446 #[inline]
447 pub unsafe fn ComputeFractionalWeightAtVertex(
448 &self,
449 vertexSharpness: f32,
450 childVertexSharpness: f32,
451 incidentEdgeCount: ::std::os::raw::c_int,
452 incidentEdgeSharpness: *const f32,
453 childEdgesSharpness: *const f32,
454 ) -> f32 {
455 OpenSubdiv_v3_7_0_Sdc_Crease_ComputeFractionalWeightAtVertex(
456 self,
457 vertexSharpness,
458 childVertexSharpness,
459 incidentEdgeCount,
460 incidentEdgeSharpness,
461 childEdgesSharpness,
462 )
463 }
464}
465unsafe extern "C" {
466 #[link_name = "\u{1}GetTopologicalSplitType"]
467 pub fn OpenSubdiv_v3_7_0_Sdc_Scheme_GetTopologicalSplitType() -> OpenSubdiv_v3_7_0_Sdc_Split;
468}
469unsafe extern "C" {
470 #[link_name = "\u{1}GetRegularFaceSize"]
471 pub fn OpenSubdiv_v3_7_0_Sdc_Scheme_GetRegularFaceSize() -> ::std::os::raw::c_int;
472}
473unsafe extern "C" {
474 #[link_name = "\u{1}GetRegularVertexValence"]
475 pub fn OpenSubdiv_v3_7_0_Sdc_Scheme_GetRegularVertexValence() -> ::std::os::raw::c_int;
476}
477unsafe extern "C" {
478 #[link_name = "\u{1}GetLocalNeighborhoodSize"]
479 pub fn OpenSubdiv_v3_7_0_Sdc_Scheme_GetLocalNeighborhoodSize() -> ::std::os::raw::c_int;
480}
481#[repr(C)]
482#[derive(Debug, Hash, PartialEq, Eq)]
483pub struct OpenSubdiv_v3_7_0_Sdc_Scheme_LocalMask<WEIGHT> {
484 pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<WEIGHT>>,
485 pub _vWeights: *mut OpenSubdiv_v3_7_0_Sdc_Scheme_LocalMask_Weight<WEIGHT>,
486 pub _eWeights: *mut OpenSubdiv_v3_7_0_Sdc_Scheme_LocalMask_Weight<WEIGHT>,
487 pub _fWeights: *mut OpenSubdiv_v3_7_0_Sdc_Scheme_LocalMask_Weight<WEIGHT>,
488 pub _vCount: ::std::os::raw::c_int,
489 pub _eCount: ::std::os::raw::c_int,
490 pub _fCount: ::std::os::raw::c_int,
491 pub _fWeightsForCenters: bool,
492}
493pub type OpenSubdiv_v3_7_0_Sdc_Scheme_LocalMask_Weight<WEIGHT> = WEIGHT;
494#[repr(C)]
495#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
496pub struct OpenSubdiv_v3_7_0_Vtr_ConstArray<TYPE> {
497 pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<TYPE>>,
498 pub _begin: *const OpenSubdiv_v3_7_0_Vtr_ConstArray_value_type<TYPE>,
499 pub _size: OpenSubdiv_v3_7_0_Vtr_ConstArray_size_type,
500}
501pub type OpenSubdiv_v3_7_0_Vtr_ConstArray_value_type<TYPE> = TYPE;
502pub type OpenSubdiv_v3_7_0_Vtr_ConstArray_size_type = ::std::os::raw::c_int;
503pub type OpenSubdiv_v3_7_0_Vtr_ConstArray_const_reference<TYPE> = *const TYPE;
504pub type OpenSubdiv_v3_7_0_Vtr_ConstArray_const_iterator<TYPE> = *const TYPE;
505pub type OpenSubdiv_v3_7_0_Vtr_ConstArray_reference<TYPE> = *mut TYPE;
506pub type OpenSubdiv_v3_7_0_Vtr_ConstArray_iterator<TYPE> = *mut TYPE;
507#[repr(C)]
508#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
509pub struct OpenSubdiv_v3_7_0_Vtr_Array<TYPE> {
510 pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<TYPE>>,
511 pub _base: OpenSubdiv_v3_7_0_Vtr_ConstArray<TYPE>,
512}
513pub type OpenSubdiv_v3_7_0_Vtr_Array_value_type<TYPE> = TYPE;
514pub type OpenSubdiv_v3_7_0_Vtr_Array_size_type = ::std::os::raw::c_int;
515pub type OpenSubdiv_v3_7_0_Vtr_Array_const_reference<TYPE> = *const TYPE;
516pub type OpenSubdiv_v3_7_0_Vtr_Array_reference<TYPE> = *mut TYPE;
517pub type OpenSubdiv_v3_7_0_Vtr_Array_iterator<TYPE> = *mut TYPE;
518pub type OpenSubdiv_v3_7_0_Vtr_Index = ::std::os::raw::c_int;
519pub type OpenSubdiv_v3_7_0_Vtr_LocalIndex = ::std::os::raw::c_ushort;
520pub type OpenSubdiv_v3_7_0_Vtr_IndexVector = __BindgenOpaqueArray<u64, 3usize>;
521pub type OpenSubdiv_v3_7_0_Vtr_IndexArray =
522 OpenSubdiv_v3_7_0_Vtr_Array<OpenSubdiv_v3_7_0_Vtr_Index>;
523pub type OpenSubdiv_v3_7_0_Vtr_ConstIndexArray =
524 OpenSubdiv_v3_7_0_Vtr_ConstArray<OpenSubdiv_v3_7_0_Vtr_Index>;
525pub type OpenSubdiv_v3_7_0_Vtr_LocalIndexArray =
526 OpenSubdiv_v3_7_0_Vtr_Array<OpenSubdiv_v3_7_0_Vtr_LocalIndex>;
527pub type OpenSubdiv_v3_7_0_Vtr_ConstLocalIndexArray =
528 OpenSubdiv_v3_7_0_Vtr_ConstArray<OpenSubdiv_v3_7_0_Vtr_LocalIndex>;
529#[repr(C)]
530#[derive(Debug, Copy, Clone)]
531pub struct OpenSubdiv_v3_7_0_Vtr_internal_TriRefinement {
532 _unused: [u8; 0],
533}
534#[repr(C)]
535#[derive(Debug, Copy, Clone)]
536pub struct OpenSubdiv_v3_7_0_Vtr_internal_QuadRefinement {
537 _unused: [u8; 0],
538}
539#[repr(C)]
540pub struct OpenSubdiv_v3_7_0_Vtr_internal_Level {
541 pub _faceCount: ::std::os::raw::c_int,
542 pub _edgeCount: ::std::os::raw::c_int,
543 pub _vertCount: ::std::os::raw::c_int,
544 pub _depth: ::std::os::raw::c_int,
545 pub _maxEdgeFaces: ::std::os::raw::c_int,
546 pub _maxValence: ::std::os::raw::c_int,
547 pub _faceVertCountsAndOffsets: __BindgenOpaqueArray<u64, 3usize>,
548 pub _faceVertIndices: __BindgenOpaqueArray<u64, 3usize>,
549 pub _faceEdgeIndices: __BindgenOpaqueArray<u64, 3usize>,
550 pub _faceTags: __BindgenOpaqueArray<u64, 3usize>,
551 pub _edgeVertIndices: __BindgenOpaqueArray<u64, 3usize>,
552 pub _edgeFaceCountsAndOffsets: __BindgenOpaqueArray<u64, 3usize>,
553 pub _edgeFaceIndices: __BindgenOpaqueArray<u64, 3usize>,
554 pub _edgeFaceLocalIndices: __BindgenOpaqueArray<u64, 3usize>,
555 pub _edgeSharpness: __BindgenOpaqueArray<u64, 3usize>,
556 pub _edgeTags: __BindgenOpaqueArray<u64, 3usize>,
557 pub _vertFaceCountsAndOffsets: __BindgenOpaqueArray<u64, 3usize>,
558 pub _vertFaceIndices: __BindgenOpaqueArray<u64, 3usize>,
559 pub _vertFaceLocalIndices: __BindgenOpaqueArray<u64, 3usize>,
560 pub _vertEdgeCountsAndOffsets: __BindgenOpaqueArray<u64, 3usize>,
561 pub _vertEdgeIndices: __BindgenOpaqueArray<u64, 3usize>,
562 pub _vertEdgeLocalIndices: __BindgenOpaqueArray<u64, 3usize>,
563 pub _vertSharpness: __BindgenOpaqueArray<u64, 3usize>,
564 pub _vertTags: __BindgenOpaqueArray<u64, 3usize>,
565 pub _fvarChannels: __BindgenOpaqueArray<u64, 3usize>,
566}
567#[repr(C)]
568#[repr(align(2))]
569#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
570pub struct OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag {
571 pub _bitfield_align_1: [u8; 0],
572 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
573}
574pub type OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize = ::std::os::raw::c_ushort;
575unsafe extern "C" {
576 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5Level4VTag9BitwiseOrEPKS4_i"]
577 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_BitwiseOr(
578 vTags: *const OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag,
579 size: ::std::os::raw::c_int,
580 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag;
581}
582impl OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag {
583 #[inline]
584 pub fn _nonManifold(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
585 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
586 }
587
588 #[inline]
589 pub fn set__nonManifold(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
590 unsafe {
591 let val: u16 = ::std::mem::transmute(val);
592 self._bitfield_1.set(0usize, 1u8, val as u64)
593 }
594 }
595
596 #[inline]
597 pub unsafe fn _nonManifold_raw(
598 this: *const Self,
599 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
600 unsafe {
601 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
602 ::std::ptr::addr_of!((*this)._bitfield_1),
603 0usize,
604 1u8,
605 ) as u16)
606 }
607 }
608
609 #[inline]
610 pub unsafe fn set__nonManifold_raw(
611 this: *mut Self,
612 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
613 ) {
614 unsafe {
615 let val: u16 = ::std::mem::transmute(val);
616 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
617 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
618 0usize,
619 1u8,
620 val as u64,
621 )
622 }
623 }
624
625 #[inline]
626 pub fn _xordinary(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
627 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
628 }
629
630 #[inline]
631 pub fn set__xordinary(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
632 unsafe {
633 let val: u16 = ::std::mem::transmute(val);
634 self._bitfield_1.set(1usize, 1u8, val as u64)
635 }
636 }
637
638 #[inline]
639 pub unsafe fn _xordinary_raw(
640 this: *const Self,
641 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
642 unsafe {
643 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
644 ::std::ptr::addr_of!((*this)._bitfield_1),
645 1usize,
646 1u8,
647 ) as u16)
648 }
649 }
650
651 #[inline]
652 pub unsafe fn set__xordinary_raw(
653 this: *mut Self,
654 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
655 ) {
656 unsafe {
657 let val: u16 = ::std::mem::transmute(val);
658 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
659 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
660 1usize,
661 1u8,
662 val as u64,
663 )
664 }
665 }
666
667 #[inline]
668 pub fn _boundary(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
669 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
670 }
671
672 #[inline]
673 pub fn set__boundary(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
674 unsafe {
675 let val: u16 = ::std::mem::transmute(val);
676 self._bitfield_1.set(2usize, 1u8, val as u64)
677 }
678 }
679
680 #[inline]
681 pub unsafe fn _boundary_raw(
682 this: *const Self,
683 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
684 unsafe {
685 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
686 ::std::ptr::addr_of!((*this)._bitfield_1),
687 2usize,
688 1u8,
689 ) as u16)
690 }
691 }
692
693 #[inline]
694 pub unsafe fn set__boundary_raw(
695 this: *mut Self,
696 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
697 ) {
698 unsafe {
699 let val: u16 = ::std::mem::transmute(val);
700 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
701 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
702 2usize,
703 1u8,
704 val as u64,
705 )
706 }
707 }
708
709 #[inline]
710 pub fn _corner(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
711 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) }
712 }
713
714 #[inline]
715 pub fn set__corner(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
716 unsafe {
717 let val: u16 = ::std::mem::transmute(val);
718 self._bitfield_1.set(3usize, 1u8, val as u64)
719 }
720 }
721
722 #[inline]
723 pub unsafe fn _corner_raw(
724 this: *const Self,
725 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
726 unsafe {
727 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
728 ::std::ptr::addr_of!((*this)._bitfield_1),
729 3usize,
730 1u8,
731 ) as u16)
732 }
733 }
734
735 #[inline]
736 pub unsafe fn set__corner_raw(
737 this: *mut Self,
738 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
739 ) {
740 unsafe {
741 let val: u16 = ::std::mem::transmute(val);
742 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
743 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
744 3usize,
745 1u8,
746 val as u64,
747 )
748 }
749 }
750
751 #[inline]
752 pub fn _infSharp(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
753 unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u16) }
754 }
755
756 #[inline]
757 pub fn set__infSharp(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
758 unsafe {
759 let val: u16 = ::std::mem::transmute(val);
760 self._bitfield_1.set(4usize, 1u8, val as u64)
761 }
762 }
763
764 #[inline]
765 pub unsafe fn _infSharp_raw(
766 this: *const Self,
767 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
768 unsafe {
769 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
770 ::std::ptr::addr_of!((*this)._bitfield_1),
771 4usize,
772 1u8,
773 ) as u16)
774 }
775 }
776
777 #[inline]
778 pub unsafe fn set__infSharp_raw(
779 this: *mut Self,
780 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
781 ) {
782 unsafe {
783 let val: u16 = ::std::mem::transmute(val);
784 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
785 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
786 4usize,
787 1u8,
788 val as u64,
789 )
790 }
791 }
792
793 #[inline]
794 pub fn _semiSharp(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
795 unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u16) }
796 }
797
798 #[inline]
799 pub fn set__semiSharp(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
800 unsafe {
801 let val: u16 = ::std::mem::transmute(val);
802 self._bitfield_1.set(5usize, 1u8, val as u64)
803 }
804 }
805
806 #[inline]
807 pub unsafe fn _semiSharp_raw(
808 this: *const Self,
809 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
810 unsafe {
811 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
812 ::std::ptr::addr_of!((*this)._bitfield_1),
813 5usize,
814 1u8,
815 ) as u16)
816 }
817 }
818
819 #[inline]
820 pub unsafe fn set__semiSharp_raw(
821 this: *mut Self,
822 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
823 ) {
824 unsafe {
825 let val: u16 = ::std::mem::transmute(val);
826 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
827 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
828 5usize,
829 1u8,
830 val as u64,
831 )
832 }
833 }
834
835 #[inline]
836 pub fn _semiSharpEdges(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
837 unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u16) }
838 }
839
840 #[inline]
841 pub fn set__semiSharpEdges(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
842 unsafe {
843 let val: u16 = ::std::mem::transmute(val);
844 self._bitfield_1.set(6usize, 1u8, val as u64)
845 }
846 }
847
848 #[inline]
849 pub unsafe fn _semiSharpEdges_raw(
850 this: *const Self,
851 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
852 unsafe {
853 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
854 ::std::ptr::addr_of!((*this)._bitfield_1),
855 6usize,
856 1u8,
857 ) as u16)
858 }
859 }
860
861 #[inline]
862 pub unsafe fn set__semiSharpEdges_raw(
863 this: *mut Self,
864 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
865 ) {
866 unsafe {
867 let val: u16 = ::std::mem::transmute(val);
868 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
869 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
870 6usize,
871 1u8,
872 val as u64,
873 )
874 }
875 }
876
877 #[inline]
878 pub fn _rule(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
879 unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 4u8) as u16) }
880 }
881
882 #[inline]
883 pub fn set__rule(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
884 unsafe {
885 let val: u16 = ::std::mem::transmute(val);
886 self._bitfield_1.set(7usize, 4u8, val as u64)
887 }
888 }
889
890 #[inline]
891 pub unsafe fn _rule_raw(
892 this: *const Self,
893 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
894 unsafe {
895 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
896 ::std::ptr::addr_of!((*this)._bitfield_1),
897 7usize,
898 4u8,
899 ) as u16)
900 }
901 }
902
903 #[inline]
904 pub unsafe fn set__rule_raw(
905 this: *mut Self,
906 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
907 ) {
908 unsafe {
909 let val: u16 = ::std::mem::transmute(val);
910 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
911 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
912 7usize,
913 4u8,
914 val as u64,
915 )
916 }
917 }
918
919 #[inline]
920 pub fn _incomplete(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
921 unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
922 }
923
924 #[inline]
925 pub fn set__incomplete(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
926 unsafe {
927 let val: u16 = ::std::mem::transmute(val);
928 self._bitfield_1.set(11usize, 1u8, val as u64)
929 }
930 }
931
932 #[inline]
933 pub unsafe fn _incomplete_raw(
934 this: *const Self,
935 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
936 unsafe {
937 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
938 ::std::ptr::addr_of!((*this)._bitfield_1),
939 11usize,
940 1u8,
941 ) as u16)
942 }
943 }
944
945 #[inline]
946 pub unsafe fn set__incomplete_raw(
947 this: *mut Self,
948 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
949 ) {
950 unsafe {
951 let val: u16 = ::std::mem::transmute(val);
952 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
953 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
954 11usize,
955 1u8,
956 val as u64,
957 )
958 }
959 }
960
961 #[inline]
962 pub fn _incidIrregFace(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
963 unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
964 }
965
966 #[inline]
967 pub fn set__incidIrregFace(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
968 unsafe {
969 let val: u16 = ::std::mem::transmute(val);
970 self._bitfield_1.set(12usize, 1u8, val as u64)
971 }
972 }
973
974 #[inline]
975 pub unsafe fn _incidIrregFace_raw(
976 this: *const Self,
977 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
978 unsafe {
979 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
980 ::std::ptr::addr_of!((*this)._bitfield_1),
981 12usize,
982 1u8,
983 ) as u16)
984 }
985 }
986
987 #[inline]
988 pub unsafe fn set__incidIrregFace_raw(
989 this: *mut Self,
990 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
991 ) {
992 unsafe {
993 let val: u16 = ::std::mem::transmute(val);
994 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
995 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
996 12usize,
997 1u8,
998 val as u64,
999 )
1000 }
1001 }
1002
1003 #[inline]
1004 pub fn _infSharpEdges(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
1005 unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
1006 }
1007
1008 #[inline]
1009 pub fn set__infSharpEdges(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
1010 unsafe {
1011 let val: u16 = ::std::mem::transmute(val);
1012 self._bitfield_1.set(13usize, 1u8, val as u64)
1013 }
1014 }
1015
1016 #[inline]
1017 pub unsafe fn _infSharpEdges_raw(
1018 this: *const Self,
1019 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
1020 unsafe {
1021 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
1022 ::std::ptr::addr_of!((*this)._bitfield_1),
1023 13usize,
1024 1u8,
1025 ) as u16)
1026 }
1027 }
1028
1029 #[inline]
1030 pub unsafe fn set__infSharpEdges_raw(
1031 this: *mut Self,
1032 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1033 ) {
1034 unsafe {
1035 let val: u16 = ::std::mem::transmute(val);
1036 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
1037 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1038 13usize,
1039 1u8,
1040 val as u64,
1041 )
1042 }
1043 }
1044
1045 #[inline]
1046 pub fn _infSharpCrease(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
1047 unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
1048 }
1049
1050 #[inline]
1051 pub fn set__infSharpCrease(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
1052 unsafe {
1053 let val: u16 = ::std::mem::transmute(val);
1054 self._bitfield_1.set(14usize, 1u8, val as u64)
1055 }
1056 }
1057
1058 #[inline]
1059 pub unsafe fn _infSharpCrease_raw(
1060 this: *const Self,
1061 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
1062 unsafe {
1063 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
1064 ::std::ptr::addr_of!((*this)._bitfield_1),
1065 14usize,
1066 1u8,
1067 ) as u16)
1068 }
1069 }
1070
1071 #[inline]
1072 pub unsafe fn set__infSharpCrease_raw(
1073 this: *mut Self,
1074 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1075 ) {
1076 unsafe {
1077 let val: u16 = ::std::mem::transmute(val);
1078 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
1079 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1080 14usize,
1081 1u8,
1082 val as u64,
1083 )
1084 }
1085 }
1086
1087 #[inline]
1088 pub fn _infIrregular(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
1089 unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
1090 }
1091
1092 #[inline]
1093 pub fn set__infIrregular(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize) {
1094 unsafe {
1095 let val: u16 = ::std::mem::transmute(val);
1096 self._bitfield_1.set(15usize, 1u8, val as u64)
1097 }
1098 }
1099
1100 #[inline]
1101 pub unsafe fn _infIrregular_raw(
1102 this: *const Self,
1103 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize {
1104 unsafe {
1105 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
1106 ::std::ptr::addr_of!((*this)._bitfield_1),
1107 15usize,
1108 1u8,
1109 ) as u16)
1110 }
1111 }
1112
1113 #[inline]
1114 pub unsafe fn set__infIrregular_raw(
1115 this: *mut Self,
1116 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1117 ) {
1118 unsafe {
1119 let val: u16 = ::std::mem::transmute(val);
1120 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
1121 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1122 15usize,
1123 1u8,
1124 val as u64,
1125 )
1126 }
1127 }
1128
1129 #[inline]
1130 pub fn new_bitfield_1(
1131 _nonManifold: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1132 _xordinary: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1133 _boundary: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1134 _corner: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1135 _infSharp: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1136 _semiSharp: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1137 _semiSharpEdges: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1138 _rule: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1139 _incomplete: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1140 _incidIrregFace: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1141 _infSharpEdges: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1142 _infSharpCrease: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1143 _infIrregular: OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_VTagSize,
1144 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
1145 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
1146 __bindgen_bitfield_unit.set(0usize, 1u8, {
1147 let _nonManifold: u16 = unsafe { ::std::mem::transmute(_nonManifold) };
1148 _nonManifold as u64
1149 });
1150 __bindgen_bitfield_unit.set(1usize, 1u8, {
1151 let _xordinary: u16 = unsafe { ::std::mem::transmute(_xordinary) };
1152 _xordinary as u64
1153 });
1154 __bindgen_bitfield_unit.set(2usize, 1u8, {
1155 let _boundary: u16 = unsafe { ::std::mem::transmute(_boundary) };
1156 _boundary as u64
1157 });
1158 __bindgen_bitfield_unit.set(3usize, 1u8, {
1159 let _corner: u16 = unsafe { ::std::mem::transmute(_corner) };
1160 _corner as u64
1161 });
1162 __bindgen_bitfield_unit.set(4usize, 1u8, {
1163 let _infSharp: u16 = unsafe { ::std::mem::transmute(_infSharp) };
1164 _infSharp as u64
1165 });
1166 __bindgen_bitfield_unit.set(5usize, 1u8, {
1167 let _semiSharp: u16 = unsafe { ::std::mem::transmute(_semiSharp) };
1168 _semiSharp as u64
1169 });
1170 __bindgen_bitfield_unit.set(6usize, 1u8, {
1171 let _semiSharpEdges: u16 = unsafe { ::std::mem::transmute(_semiSharpEdges) };
1172 _semiSharpEdges as u64
1173 });
1174 __bindgen_bitfield_unit.set(7usize, 4u8, {
1175 let _rule: u16 = unsafe { ::std::mem::transmute(_rule) };
1176 _rule as u64
1177 });
1178 __bindgen_bitfield_unit.set(11usize, 1u8, {
1179 let _incomplete: u16 = unsafe { ::std::mem::transmute(_incomplete) };
1180 _incomplete as u64
1181 });
1182 __bindgen_bitfield_unit.set(12usize, 1u8, {
1183 let _incidIrregFace: u16 = unsafe { ::std::mem::transmute(_incidIrregFace) };
1184 _incidIrregFace as u64
1185 });
1186 __bindgen_bitfield_unit.set(13usize, 1u8, {
1187 let _infSharpEdges: u16 = unsafe { ::std::mem::transmute(_infSharpEdges) };
1188 _infSharpEdges as u64
1189 });
1190 __bindgen_bitfield_unit.set(14usize, 1u8, {
1191 let _infSharpCrease: u16 = unsafe { ::std::mem::transmute(_infSharpCrease) };
1192 _infSharpCrease as u64
1193 });
1194 __bindgen_bitfield_unit.set(15usize, 1u8, {
1195 let _infIrregular: u16 = unsafe { ::std::mem::transmute(_infIrregular) };
1196 _infIrregular as u64
1197 });
1198 __bindgen_bitfield_unit
1199 }
1200
1201 #[inline]
1202 pub unsafe fn BitwiseOr(
1203 vTags: *const OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag,
1204 size: ::std::os::raw::c_int,
1205 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag {
1206 OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag_BitwiseOr(vTags, size)
1207 }
1208}
1209#[repr(C)]
1210#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1211pub struct OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag {
1212 pub _bitfield_align_1: [u8; 0],
1213 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1214}
1215pub type OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize = ::std::os::raw::c_uchar;
1216unsafe extern "C" {
1217 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5Level4ETag9BitwiseOrEPKS4_i"]
1218 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_BitwiseOr(
1219 eTags: *const OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag,
1220 size: ::std::os::raw::c_int,
1221 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag;
1222}
1223impl OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag {
1224 #[inline]
1225 pub fn _nonManifold(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize {
1226 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
1227 }
1228
1229 #[inline]
1230 pub fn set__nonManifold(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize) {
1231 unsafe {
1232 let val: u8 = ::std::mem::transmute(val);
1233 self._bitfield_1.set(0usize, 1u8, val as u64)
1234 }
1235 }
1236
1237 #[inline]
1238 pub unsafe fn _nonManifold_raw(
1239 this: *const Self,
1240 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize {
1241 unsafe {
1242 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1243 ::std::ptr::addr_of!((*this)._bitfield_1),
1244 0usize,
1245 1u8,
1246 ) as u8)
1247 }
1248 }
1249
1250 #[inline]
1251 pub unsafe fn set__nonManifold_raw(
1252 this: *mut Self,
1253 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize,
1254 ) {
1255 unsafe {
1256 let val: u8 = ::std::mem::transmute(val);
1257 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1258 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1259 0usize,
1260 1u8,
1261 val as u64,
1262 )
1263 }
1264 }
1265
1266 #[inline]
1267 pub fn _boundary(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize {
1268 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
1269 }
1270
1271 #[inline]
1272 pub fn set__boundary(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize) {
1273 unsafe {
1274 let val: u8 = ::std::mem::transmute(val);
1275 self._bitfield_1.set(1usize, 1u8, val as u64)
1276 }
1277 }
1278
1279 #[inline]
1280 pub unsafe fn _boundary_raw(
1281 this: *const Self,
1282 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize {
1283 unsafe {
1284 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1285 ::std::ptr::addr_of!((*this)._bitfield_1),
1286 1usize,
1287 1u8,
1288 ) as u8)
1289 }
1290 }
1291
1292 #[inline]
1293 pub unsafe fn set__boundary_raw(
1294 this: *mut Self,
1295 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize,
1296 ) {
1297 unsafe {
1298 let val: u8 = ::std::mem::transmute(val);
1299 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1300 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1301 1usize,
1302 1u8,
1303 val as u64,
1304 )
1305 }
1306 }
1307
1308 #[inline]
1309 pub fn _infSharp(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize {
1310 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
1311 }
1312
1313 #[inline]
1314 pub fn set__infSharp(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize) {
1315 unsafe {
1316 let val: u8 = ::std::mem::transmute(val);
1317 self._bitfield_1.set(2usize, 1u8, val as u64)
1318 }
1319 }
1320
1321 #[inline]
1322 pub unsafe fn _infSharp_raw(
1323 this: *const Self,
1324 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize {
1325 unsafe {
1326 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1327 ::std::ptr::addr_of!((*this)._bitfield_1),
1328 2usize,
1329 1u8,
1330 ) as u8)
1331 }
1332 }
1333
1334 #[inline]
1335 pub unsafe fn set__infSharp_raw(
1336 this: *mut Self,
1337 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize,
1338 ) {
1339 unsafe {
1340 let val: u8 = ::std::mem::transmute(val);
1341 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1342 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1343 2usize,
1344 1u8,
1345 val as u64,
1346 )
1347 }
1348 }
1349
1350 #[inline]
1351 pub fn _semiSharp(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize {
1352 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
1353 }
1354
1355 #[inline]
1356 pub fn set__semiSharp(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize) {
1357 unsafe {
1358 let val: u8 = ::std::mem::transmute(val);
1359 self._bitfield_1.set(3usize, 1u8, val as u64)
1360 }
1361 }
1362
1363 #[inline]
1364 pub unsafe fn _semiSharp_raw(
1365 this: *const Self,
1366 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize {
1367 unsafe {
1368 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1369 ::std::ptr::addr_of!((*this)._bitfield_1),
1370 3usize,
1371 1u8,
1372 ) as u8)
1373 }
1374 }
1375
1376 #[inline]
1377 pub unsafe fn set__semiSharp_raw(
1378 this: *mut Self,
1379 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize,
1380 ) {
1381 unsafe {
1382 let val: u8 = ::std::mem::transmute(val);
1383 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1384 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1385 3usize,
1386 1u8,
1387 val as u64,
1388 )
1389 }
1390 }
1391
1392 #[inline]
1393 pub fn new_bitfield_1(
1394 _nonManifold: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize,
1395 _boundary: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize,
1396 _infSharp: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize,
1397 _semiSharp: OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_ETagSize,
1398 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1399 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1400 __bindgen_bitfield_unit.set(0usize, 1u8, {
1401 let _nonManifold: u8 = unsafe { ::std::mem::transmute(_nonManifold) };
1402 _nonManifold as u64
1403 });
1404 __bindgen_bitfield_unit.set(1usize, 1u8, {
1405 let _boundary: u8 = unsafe { ::std::mem::transmute(_boundary) };
1406 _boundary as u64
1407 });
1408 __bindgen_bitfield_unit.set(2usize, 1u8, {
1409 let _infSharp: u8 = unsafe { ::std::mem::transmute(_infSharp) };
1410 _infSharp as u64
1411 });
1412 __bindgen_bitfield_unit.set(3usize, 1u8, {
1413 let _semiSharp: u8 = unsafe { ::std::mem::transmute(_semiSharp) };
1414 _semiSharp as u64
1415 });
1416 __bindgen_bitfield_unit
1417 }
1418
1419 #[inline]
1420 pub unsafe fn BitwiseOr(
1421 eTags: *const OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag,
1422 size: ::std::os::raw::c_int,
1423 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag {
1424 OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag_BitwiseOr(eTags, size)
1425 }
1426}
1427#[repr(C)]
1428#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1429pub struct OpenSubdiv_v3_7_0_Vtr_internal_Level_FTag {
1430 pub _bitfield_align_1: [u8; 0],
1431 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1432}
1433pub type OpenSubdiv_v3_7_0_Vtr_internal_Level_FTag_FTagSize = ::std::os::raw::c_uchar;
1434impl OpenSubdiv_v3_7_0_Vtr_internal_Level_FTag {
1435 #[inline]
1436 pub fn _hole(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_FTag_FTagSize {
1437 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
1438 }
1439
1440 #[inline]
1441 pub fn set__hole(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_Level_FTag_FTagSize) {
1442 unsafe {
1443 let val: u8 = ::std::mem::transmute(val);
1444 self._bitfield_1.set(0usize, 1u8, val as u64)
1445 }
1446 }
1447
1448 #[inline]
1449 pub unsafe fn _hole_raw(
1450 this: *const Self,
1451 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_FTag_FTagSize {
1452 unsafe {
1453 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1454 ::std::ptr::addr_of!((*this)._bitfield_1),
1455 0usize,
1456 1u8,
1457 ) as u8)
1458 }
1459 }
1460
1461 #[inline]
1462 pub unsafe fn set__hole_raw(
1463 this: *mut Self,
1464 val: OpenSubdiv_v3_7_0_Vtr_internal_Level_FTag_FTagSize,
1465 ) {
1466 unsafe {
1467 let val: u8 = ::std::mem::transmute(val);
1468 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1469 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1470 0usize,
1471 1u8,
1472 val as u64,
1473 )
1474 }
1475 }
1476
1477 #[inline]
1478 pub fn new_bitfield_1(
1479 _hole: OpenSubdiv_v3_7_0_Vtr_internal_Level_FTag_FTagSize,
1480 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1481 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1482 __bindgen_bitfield_unit.set(0usize, 1u8, {
1483 let _hole: u8 = unsafe { ::std::mem::transmute(_hole) };
1484 _hole as u64
1485 });
1486 __bindgen_bitfield_unit
1487 }
1488}
1489#[repr(C)]
1490#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1491pub struct OpenSubdiv_v3_7_0_Vtr_internal_Level_VSpan {
1492 pub _numFaces: OpenSubdiv_v3_7_0_Vtr_LocalIndex,
1493 pub _startFace: OpenSubdiv_v3_7_0_Vtr_LocalIndex,
1494 pub _cornerInSpan: OpenSubdiv_v3_7_0_Vtr_LocalIndex,
1495 pub _bitfield_align_1: [u8; 0],
1496 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1497 pub __bindgen_padding_0: u8,
1498}
1499impl OpenSubdiv_v3_7_0_Vtr_internal_Level_VSpan {
1500 #[inline]
1501 pub fn _periodic(&self) -> ::std::os::raw::c_ushort {
1502 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
1503 }
1504
1505 #[inline]
1506 pub fn set__periodic(&mut self, val: ::std::os::raw::c_ushort) {
1507 unsafe {
1508 let val: u16 = ::std::mem::transmute(val);
1509 self._bitfield_1.set(0usize, 1u8, val as u64)
1510 }
1511 }
1512
1513 #[inline]
1514 pub unsafe fn _periodic_raw(this: *const Self) -> ::std::os::raw::c_ushort {
1515 unsafe {
1516 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1517 ::std::ptr::addr_of!((*this)._bitfield_1),
1518 0usize,
1519 1u8,
1520 ) as u16)
1521 }
1522 }
1523
1524 #[inline]
1525 pub unsafe fn set__periodic_raw(this: *mut Self, val: ::std::os::raw::c_ushort) {
1526 unsafe {
1527 let val: u16 = ::std::mem::transmute(val);
1528 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1529 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1530 0usize,
1531 1u8,
1532 val as u64,
1533 )
1534 }
1535 }
1536
1537 #[inline]
1538 pub fn _sharp(&self) -> ::std::os::raw::c_ushort {
1539 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
1540 }
1541
1542 #[inline]
1543 pub fn set__sharp(&mut self, val: ::std::os::raw::c_ushort) {
1544 unsafe {
1545 let val: u16 = ::std::mem::transmute(val);
1546 self._bitfield_1.set(1usize, 1u8, val as u64)
1547 }
1548 }
1549
1550 #[inline]
1551 pub unsafe fn _sharp_raw(this: *const Self) -> ::std::os::raw::c_ushort {
1552 unsafe {
1553 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1554 ::std::ptr::addr_of!((*this)._bitfield_1),
1555 1usize,
1556 1u8,
1557 ) as u16)
1558 }
1559 }
1560
1561 #[inline]
1562 pub unsafe fn set__sharp_raw(this: *mut Self, val: ::std::os::raw::c_ushort) {
1563 unsafe {
1564 let val: u16 = ::std::mem::transmute(val);
1565 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1566 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1567 1usize,
1568 1u8,
1569 val as u64,
1570 )
1571 }
1572 }
1573
1574 #[inline]
1575 pub fn new_bitfield_1(
1576 _periodic: ::std::os::raw::c_ushort,
1577 _sharp: ::std::os::raw::c_ushort,
1578 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1579 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1580 __bindgen_bitfield_unit.set(0usize, 1u8, {
1581 let _periodic: u16 = unsafe { ::std::mem::transmute(_periodic) };
1582 _periodic as u64
1583 });
1584 __bindgen_bitfield_unit.set(1usize, 1u8, {
1585 let _sharp: u16 = unsafe { ::std::mem::transmute(_sharp) };
1586 _sharp as u64
1587 });
1588 __bindgen_bitfield_unit
1589 }
1590}
1591pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_MISSING_EDGE_FACES:
1592 OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 0;
1593pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_MISSING_EDGE_VERTS:
1594 OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 1;
1595pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_MISSING_FACE_EDGES:
1596 OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 2;
1597pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_MISSING_FACE_VERTS:
1598 OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 3;
1599pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_MISSING_VERT_FACES:
1600 OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 4;
1601pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_MISSING_VERT_EDGES:
1602 OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 5;
1603pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_FAILED_CORRELATION_EDGE_FACE : OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 6 ;
1604pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_FAILED_CORRELATION_FACE_VERT : OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 7 ;
1605pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_FAILED_CORRELATION_FACE_EDGE : OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 8 ;
1606pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_FAILED_ORIENTATION_INCIDENT_EDGE : OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 9 ;
1607pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_FAILED_ORIENTATION_INCIDENT_FACE : OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 10 ;
1608pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_FAILED_ORIENTATION_INCIDENT_FACES_EDGES : OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 11 ;
1609pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_DEGENERATE_EDGE:
1610 OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 12;
1611pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_NON_MANIFOLD_EDGE:
1612 OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 13;
1613pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_INVALID_CREASE_EDGE:
1614 OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 14;
1615pub const OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError_TOPOLOGY_INVALID_CREASE_VERT:
1616 OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = 15;
1617pub type OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError = ::std::os::raw::c_uint;
1618pub type OpenSubdiv_v3_7_0_Vtr_internal_Level_ValidationCallback = ::std::option::Option<
1619 unsafe extern "C" fn(
1620 errCode: OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError,
1621 msg: *const ::std::os::raw::c_char,
1622 clientData: *const ::std::os::raw::c_void,
1623 ),
1624>;
1625unsafe extern "C" {
1626 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level8findEdgeEii"]
1627 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_findEdge(
1628 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1629 v0Index: OpenSubdiv_v3_7_0_Vtr_Index,
1630 v1Index: OpenSubdiv_v3_7_0_Vtr_Index,
1631 ) -> OpenSubdiv_v3_7_0_Vtr_Index;
1632}
1633unsafe extern "C" {
1634 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level14getFVarOptionsEi"]
1635 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_getFVarOptions(
1636 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1637 channel: ::std::os::raw::c_int,
1638 ) -> OpenSubdiv_v3_7_0_Sdc_Options;
1639}
1640unsafe extern "C" {
1641 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level16getNumFVarValuesEi"]
1642 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_getNumFVarValues(
1643 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1644 channel: ::std::os::raw::c_int,
1645 ) -> ::std::os::raw::c_int;
1646}
1647unsafe extern "C" {
1648 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level17getFaceFVarValuesEii"]
1649 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceFVarValues(
1650 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1651 faceIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1652 channel: ::std::os::raw::c_int,
1653 ) -> OpenSubdiv_v3_7_0_Vtr_ConstIndexArray;
1654}
1655unsafe extern "C" {
1656 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5Level22getTopologyErrorStringENS3_13TopologyErrorE"]
1657 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_getTopologyErrorString(
1658 errCode: OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError,
1659 ) -> *const ::std::os::raw::c_char;
1660}
1661unsafe extern "C" {
1662 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level16validateTopologyEPFvNS3_13TopologyErrorEPKcPKvES8_"]
1663 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_validateTopology(
1664 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1665 callback: OpenSubdiv_v3_7_0_Vtr_internal_Level_ValidationCallback,
1666 clientData: *const ::std::os::raw::c_void,
1667 ) -> bool;
1668}
1669unsafe extern "C" {
1670 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level5printEPKNS2_10RefinementE"]
1671 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_print(
1672 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1673 parentRefinement: *const OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
1674 );
1675}
1676unsafe extern "C" {
1677 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level19isSingleCreasePatchEiPfPi"]
1678 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_isSingleCreasePatch(
1679 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1680 face: OpenSubdiv_v3_7_0_Vtr_Index,
1681 sharpnessOut: *mut f32,
1682 rotationOut: *mut ::std::os::raw::c_int,
1683 ) -> bool;
1684}
1685unsafe extern "C" {
1686 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level27doesVertexFVarTopologyMatchEii"]
1687 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_doesVertexFVarTopologyMatch(
1688 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1689 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1690 fvarChannel: ::std::os::raw::c_int,
1691 ) -> bool;
1692}
1693unsafe extern "C" {
1694 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level25doesFaceFVarTopologyMatchEii"]
1695 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_doesFaceFVarTopologyMatch(
1696 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1697 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1698 fvarChannel: ::std::os::raw::c_int,
1699 ) -> bool;
1700}
1701unsafe extern "C" {
1702 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level25doesEdgeFVarTopologyMatchEii"]
1703 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_doesEdgeFVarTopologyMatch(
1704 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1705 eIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1706 fvarChannel: ::std::os::raw::c_int,
1707 ) -> bool;
1708}
1709unsafe extern "C" {
1710 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level12getFaceVTagsEiPNS3_4VTagEi"]
1711 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceVTags(
1712 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1713 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1714 vTags: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag,
1715 fvarChannel: ::std::os::raw::c_int,
1716 );
1717}
1718unsafe extern "C" {
1719 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level12getFaceETagsEiPNS3_4ETagEi"]
1720 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceETags(
1721 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1722 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1723 eTags: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag,
1724 fvarChannel: ::std::os::raw::c_int,
1725 );
1726}
1727unsafe extern "C" {
1728 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level20getFaceCompositeVTagEii"]
1729 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceCompositeVTag(
1730 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1731 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1732 fvarChannel: ::std::os::raw::c_int,
1733 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag;
1734}
1735unsafe extern "C" {
1736 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level20getFaceCompositeVTagERNS1_10ConstArrayIiEE"]
1737 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceCompositeVTag1(
1738 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1739 fVerts: *mut OpenSubdiv_v3_7_0_Vtr_ConstIndexArray,
1740 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag;
1741}
1742unsafe extern "C" {
1743 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level26getVertexCompositeFVarVTagEii"]
1744 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_getVertexCompositeFVarVTag(
1745 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1746 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1747 fvarChannel: ::std::os::raw::c_int,
1748 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag;
1749}
1750unsafe extern "C" {
1751 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level27gatherQuadLinearPatchPointsEiPiii"]
1752 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadLinearPatchPoints(
1753 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1754 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1755 patchPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1756 rotation: ::std::os::raw::c_int,
1757 fvarChannel: ::std::os::raw::c_int,
1758 ) -> ::std::os::raw::c_int;
1759}
1760unsafe extern "C" {
1761 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level36gatherQuadRegularInteriorPatchPointsEiPiii"]
1762 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadRegularInteriorPatchPoints(
1763 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1764 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1765 patchPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1766 rotation: ::std::os::raw::c_int,
1767 fvarChannel: ::std::os::raw::c_int,
1768 ) -> ::std::os::raw::c_int;
1769}
1770unsafe extern "C" {
1771 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level36gatherQuadRegularBoundaryPatchPointsEiPiii"]
1772 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadRegularBoundaryPatchPoints(
1773 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1774 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1775 patchPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1776 boundaryEdgeInFace: ::std::os::raw::c_int,
1777 fvarChannel: ::std::os::raw::c_int,
1778 ) -> ::std::os::raw::c_int;
1779}
1780unsafe extern "C" {
1781 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level34gatherQuadRegularCornerPatchPointsEiPiii"]
1782 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadRegularCornerPatchPoints(
1783 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1784 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1785 patchPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1786 cornerVertInFace: ::std::os::raw::c_int,
1787 fvarChannel: ::std::os::raw::c_int,
1788 ) -> ::std::os::raw::c_int;
1789}
1790unsafe extern "C" {
1791 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level33gatherQuadRegularRingAroundVertexEiPii"]
1792 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadRegularRingAroundVertex(
1793 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1794 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1795 ringPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1796 fvarChannel: ::std::os::raw::c_int,
1797 ) -> ::std::os::raw::c_int;
1798}
1799unsafe extern "C" {
1800 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level40gatherQuadRegularPartialRingAroundVertexEiRKNS3_5VSpanEPii"]
1801 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadRegularPartialRingAroundVertex(
1802 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1803 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1804 span: *const OpenSubdiv_v3_7_0_Vtr_internal_Level_VSpan,
1805 ringPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1806 fvarChannel: ::std::os::raw::c_int,
1807 ) -> ::std::os::raw::c_int;
1808}
1809unsafe extern "C" {
1810 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level35gatherTriRegularInteriorPatchPointsEiPii"]
1811 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherTriRegularInteriorPatchPoints(
1812 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1813 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1814 patchVerts: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1815 rotation: ::std::os::raw::c_int,
1816 ) -> ::std::os::raw::c_int;
1817}
1818unsafe extern "C" {
1819 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level41gatherTriRegularBoundaryVertexPatchPointsEiPii"]
1820 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherTriRegularBoundaryVertexPatchPoints(
1821 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1822 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1823 patchVerts: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1824 boundaryVertInFace: ::std::os::raw::c_int,
1825 ) -> ::std::os::raw::c_int;
1826}
1827unsafe extern "C" {
1828 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level39gatherTriRegularBoundaryEdgePatchPointsEiPii"]
1829 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherTriRegularBoundaryEdgePatchPoints(
1830 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1831 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1832 patchVerts: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1833 boundaryEdgeInFace: ::std::os::raw::c_int,
1834 ) -> ::std::os::raw::c_int;
1835}
1836unsafe extern "C" {
1837 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level39gatherTriRegularCornerVertexPatchPointsEiPii"]
1838 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherTriRegularCornerVertexPatchPoints(
1839 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1840 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1841 patchVerts: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1842 cornerVertInFace: ::std::os::raw::c_int,
1843 ) -> ::std::os::raw::c_int;
1844}
1845unsafe extern "C" {
1846 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level37gatherTriRegularCornerEdgePatchPointsEiPii"]
1847 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherTriRegularCornerEdgePatchPoints(
1848 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1849 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1850 patchVerts: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1851 cornerEdgeInFace: ::std::os::raw::c_int,
1852 ) -> ::std::os::raw::c_int;
1853}
1854unsafe extern "C" {
1855 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5Level17createFVarChannelEiRKNS0_3Sdc7OptionsE"]
1856 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_createFVarChannel(
1857 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
1858 fvarValueCount: ::std::os::raw::c_int,
1859 options: *const OpenSubdiv_v3_7_0_Sdc_Options,
1860 ) -> ::std::os::raw::c_int;
1861}
1862unsafe extern "C" {
1863 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5Level18destroyFVarChannelEi"]
1864 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_destroyFVarChannel(
1865 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
1866 channel: ::std::os::raw::c_int,
1867 );
1868}
1869unsafe extern "C" {
1870 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5Level17getFaceFVarValuesEii"]
1871 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceFVarValues1(
1872 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
1873 faceIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1874 channel: ::std::os::raw::c_int,
1875 ) -> OpenSubdiv_v3_7_0_Vtr_IndexArray;
1876}
1877unsafe extern "C" {
1878 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5Level27completeFVarChannelTopologyEii"]
1879 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_completeFVarChannelTopology(
1880 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
1881 channel: ::std::os::raw::c_int,
1882 regBoundaryValence: ::std::os::raw::c_int,
1883 );
1884}
1885unsafe extern "C" {
1886 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5Level32completeTopologyFromFaceVerticesEv"]
1887 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_completeTopologyFromFaceVertices(
1888 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
1889 ) -> bool;
1890}
1891unsafe extern "C" {
1892 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level8findEdgeEiiNS1_10ConstArrayIiEE"]
1893 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_findEdge1(
1894 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1895 v0: OpenSubdiv_v3_7_0_Vtr_Index,
1896 v1: OpenSubdiv_v3_7_0_Vtr_Index,
1897 v0Edges: OpenSubdiv_v3_7_0_Vtr_ConstIndexArray,
1898 ) -> OpenSubdiv_v3_7_0_Vtr_Index;
1899}
1900unsafe extern "C" {
1901 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5Level24orientIncidentComponentsEv"]
1902 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_orientIncidentComponents(
1903 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
1904 );
1905}
1906unsafe extern "C" {
1907 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level24orderVertexFacesAndEdgesEiPiS4_"]
1908 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_orderVertexFacesAndEdges(
1909 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1910 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1911 vFaces: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1912 vEdges: *mut OpenSubdiv_v3_7_0_Vtr_Index,
1913 ) -> bool;
1914}
1915unsafe extern "C" {
1916 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5Level24orderVertexFacesAndEdgesEi"]
1917 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_orderVertexFacesAndEdges1(
1918 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
1919 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1920 ) -> bool;
1921}
1922unsafe extern "C" {
1923 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal5Level27testVertexNonManifoldCreaseEi"]
1924 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_testVertexNonManifoldCrease(
1925 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
1926 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1927 ) -> bool;
1928}
1929unsafe extern "C" {
1930 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5Level20populateLocalIndicesEv"]
1931 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_populateLocalIndices(
1932 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
1933 );
1934}
1935unsafe extern "C" {
1936 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5LevelC1Ev"]
1937 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_Level(
1938 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
1939 );
1940}
1941unsafe extern "C" {
1942 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal5LevelD1Ev"]
1943 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Level_Level_destructor(
1944 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
1945 );
1946}
1947impl OpenSubdiv_v3_7_0_Vtr_internal_Level {
1948 #[inline]
1949 pub unsafe fn findEdge(
1950 &self,
1951 v0Index: OpenSubdiv_v3_7_0_Vtr_Index,
1952 v1Index: OpenSubdiv_v3_7_0_Vtr_Index,
1953 ) -> OpenSubdiv_v3_7_0_Vtr_Index {
1954 OpenSubdiv_v3_7_0_Vtr_internal_Level_findEdge(self, v0Index, v1Index)
1955 }
1956
1957 #[inline]
1958 pub unsafe fn getFVarOptions(
1959 &self,
1960 channel: ::std::os::raw::c_int,
1961 ) -> OpenSubdiv_v3_7_0_Sdc_Options {
1962 OpenSubdiv_v3_7_0_Vtr_internal_Level_getFVarOptions(self, channel)
1963 }
1964
1965 #[inline]
1966 pub unsafe fn getNumFVarValues(&self, channel: ::std::os::raw::c_int) -> ::std::os::raw::c_int {
1967 OpenSubdiv_v3_7_0_Vtr_internal_Level_getNumFVarValues(self, channel)
1968 }
1969
1970 #[inline]
1971 pub unsafe fn getFaceFVarValues(
1972 &self,
1973 faceIndex: OpenSubdiv_v3_7_0_Vtr_Index,
1974 channel: ::std::os::raw::c_int,
1975 ) -> OpenSubdiv_v3_7_0_Vtr_ConstIndexArray {
1976 OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceFVarValues(self, faceIndex, channel)
1977 }
1978
1979 #[inline]
1980 pub unsafe fn getTopologyErrorString(
1981 errCode: OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError,
1982 ) -> *const ::std::os::raw::c_char {
1983 OpenSubdiv_v3_7_0_Vtr_internal_Level_getTopologyErrorString(errCode)
1984 }
1985
1986 #[inline]
1987 pub unsafe fn validateTopology(
1988 &self,
1989 callback: OpenSubdiv_v3_7_0_Vtr_internal_Level_ValidationCallback,
1990 clientData: *const ::std::os::raw::c_void,
1991 ) -> bool {
1992 OpenSubdiv_v3_7_0_Vtr_internal_Level_validateTopology(self, callback, clientData)
1993 }
1994
1995 #[inline]
1996 pub unsafe fn print(&self, parentRefinement: *const OpenSubdiv_v3_7_0_Vtr_internal_Refinement) {
1997 OpenSubdiv_v3_7_0_Vtr_internal_Level_print(self, parentRefinement)
1998 }
1999
2000 #[inline]
2001 pub unsafe fn isSingleCreasePatch(
2002 &self,
2003 face: OpenSubdiv_v3_7_0_Vtr_Index,
2004 sharpnessOut: *mut f32,
2005 rotationOut: *mut ::std::os::raw::c_int,
2006 ) -> bool {
2007 OpenSubdiv_v3_7_0_Vtr_internal_Level_isSingleCreasePatch(
2008 self,
2009 face,
2010 sharpnessOut,
2011 rotationOut,
2012 )
2013 }
2014
2015 #[inline]
2016 pub unsafe fn doesVertexFVarTopologyMatch(
2017 &self,
2018 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2019 fvarChannel: ::std::os::raw::c_int,
2020 ) -> bool {
2021 OpenSubdiv_v3_7_0_Vtr_internal_Level_doesVertexFVarTopologyMatch(self, vIndex, fvarChannel)
2022 }
2023
2024 #[inline]
2025 pub unsafe fn doesFaceFVarTopologyMatch(
2026 &self,
2027 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2028 fvarChannel: ::std::os::raw::c_int,
2029 ) -> bool {
2030 OpenSubdiv_v3_7_0_Vtr_internal_Level_doesFaceFVarTopologyMatch(self, fIndex, fvarChannel)
2031 }
2032
2033 #[inline]
2034 pub unsafe fn doesEdgeFVarTopologyMatch(
2035 &self,
2036 eIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2037 fvarChannel: ::std::os::raw::c_int,
2038 ) -> bool {
2039 OpenSubdiv_v3_7_0_Vtr_internal_Level_doesEdgeFVarTopologyMatch(self, eIndex, fvarChannel)
2040 }
2041
2042 #[inline]
2043 pub unsafe fn getFaceVTags(
2044 &self,
2045 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2046 vTags: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag,
2047 fvarChannel: ::std::os::raw::c_int,
2048 ) {
2049 OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceVTags(self, fIndex, vTags, fvarChannel)
2050 }
2051
2052 #[inline]
2053 pub unsafe fn getFaceETags(
2054 &self,
2055 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2056 eTags: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level_ETag,
2057 fvarChannel: ::std::os::raw::c_int,
2058 ) {
2059 OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceETags(self, fIndex, eTags, fvarChannel)
2060 }
2061
2062 #[inline]
2063 pub unsafe fn getFaceCompositeVTag(
2064 &self,
2065 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2066 fvarChannel: ::std::os::raw::c_int,
2067 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag {
2068 OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceCompositeVTag(self, fIndex, fvarChannel)
2069 }
2070
2071 #[inline]
2072 pub unsafe fn getFaceCompositeVTag1(
2073 &self,
2074 fVerts: *mut OpenSubdiv_v3_7_0_Vtr_ConstIndexArray,
2075 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag {
2076 OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceCompositeVTag1(self, fVerts)
2077 }
2078
2079 #[inline]
2080 pub unsafe fn getVertexCompositeFVarVTag(
2081 &self,
2082 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2083 fvarChannel: ::std::os::raw::c_int,
2084 ) -> OpenSubdiv_v3_7_0_Vtr_internal_Level_VTag {
2085 OpenSubdiv_v3_7_0_Vtr_internal_Level_getVertexCompositeFVarVTag(self, vIndex, fvarChannel)
2086 }
2087
2088 #[inline]
2089 pub unsafe fn gatherQuadLinearPatchPoints(
2090 &self,
2091 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2092 patchPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2093 rotation: ::std::os::raw::c_int,
2094 fvarChannel: ::std::os::raw::c_int,
2095 ) -> ::std::os::raw::c_int {
2096 OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadLinearPatchPoints(
2097 self,
2098 fIndex,
2099 patchPoints,
2100 rotation,
2101 fvarChannel,
2102 )
2103 }
2104
2105 #[inline]
2106 pub unsafe fn gatherQuadRegularInteriorPatchPoints(
2107 &self,
2108 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2109 patchPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2110 rotation: ::std::os::raw::c_int,
2111 fvarChannel: ::std::os::raw::c_int,
2112 ) -> ::std::os::raw::c_int {
2113 OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadRegularInteriorPatchPoints(
2114 self,
2115 fIndex,
2116 patchPoints,
2117 rotation,
2118 fvarChannel,
2119 )
2120 }
2121
2122 #[inline]
2123 pub unsafe fn gatherQuadRegularBoundaryPatchPoints(
2124 &self,
2125 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2126 patchPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2127 boundaryEdgeInFace: ::std::os::raw::c_int,
2128 fvarChannel: ::std::os::raw::c_int,
2129 ) -> ::std::os::raw::c_int {
2130 OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadRegularBoundaryPatchPoints(
2131 self,
2132 fIndex,
2133 patchPoints,
2134 boundaryEdgeInFace,
2135 fvarChannel,
2136 )
2137 }
2138
2139 #[inline]
2140 pub unsafe fn gatherQuadRegularCornerPatchPoints(
2141 &self,
2142 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2143 patchPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2144 cornerVertInFace: ::std::os::raw::c_int,
2145 fvarChannel: ::std::os::raw::c_int,
2146 ) -> ::std::os::raw::c_int {
2147 OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadRegularCornerPatchPoints(
2148 self,
2149 fIndex,
2150 patchPoints,
2151 cornerVertInFace,
2152 fvarChannel,
2153 )
2154 }
2155
2156 #[inline]
2157 pub unsafe fn gatherQuadRegularRingAroundVertex(
2158 &self,
2159 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2160 ringPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2161 fvarChannel: ::std::os::raw::c_int,
2162 ) -> ::std::os::raw::c_int {
2163 OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadRegularRingAroundVertex(
2164 self,
2165 vIndex,
2166 ringPoints,
2167 fvarChannel,
2168 )
2169 }
2170
2171 #[inline]
2172 pub unsafe fn gatherQuadRegularPartialRingAroundVertex(
2173 &self,
2174 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2175 span: *const OpenSubdiv_v3_7_0_Vtr_internal_Level_VSpan,
2176 ringPoints: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2177 fvarChannel: ::std::os::raw::c_int,
2178 ) -> ::std::os::raw::c_int {
2179 OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherQuadRegularPartialRingAroundVertex(
2180 self,
2181 vIndex,
2182 span,
2183 ringPoints,
2184 fvarChannel,
2185 )
2186 }
2187
2188 #[inline]
2189 pub unsafe fn gatherTriRegularInteriorPatchPoints(
2190 &self,
2191 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2192 patchVerts: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2193 rotation: ::std::os::raw::c_int,
2194 ) -> ::std::os::raw::c_int {
2195 OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherTriRegularInteriorPatchPoints(
2196 self, fIndex, patchVerts, rotation,
2197 )
2198 }
2199
2200 #[inline]
2201 pub unsafe fn gatherTriRegularBoundaryVertexPatchPoints(
2202 &self,
2203 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2204 patchVerts: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2205 boundaryVertInFace: ::std::os::raw::c_int,
2206 ) -> ::std::os::raw::c_int {
2207 OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherTriRegularBoundaryVertexPatchPoints(
2208 self,
2209 fIndex,
2210 patchVerts,
2211 boundaryVertInFace,
2212 )
2213 }
2214
2215 #[inline]
2216 pub unsafe fn gatherTriRegularBoundaryEdgePatchPoints(
2217 &self,
2218 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2219 patchVerts: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2220 boundaryEdgeInFace: ::std::os::raw::c_int,
2221 ) -> ::std::os::raw::c_int {
2222 OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherTriRegularBoundaryEdgePatchPoints(
2223 self,
2224 fIndex,
2225 patchVerts,
2226 boundaryEdgeInFace,
2227 )
2228 }
2229
2230 #[inline]
2231 pub unsafe fn gatherTriRegularCornerVertexPatchPoints(
2232 &self,
2233 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2234 patchVerts: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2235 cornerVertInFace: ::std::os::raw::c_int,
2236 ) -> ::std::os::raw::c_int {
2237 OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherTriRegularCornerVertexPatchPoints(
2238 self,
2239 fIndex,
2240 patchVerts,
2241 cornerVertInFace,
2242 )
2243 }
2244
2245 #[inline]
2246 pub unsafe fn gatherTriRegularCornerEdgePatchPoints(
2247 &self,
2248 fIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2249 patchVerts: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2250 cornerEdgeInFace: ::std::os::raw::c_int,
2251 ) -> ::std::os::raw::c_int {
2252 OpenSubdiv_v3_7_0_Vtr_internal_Level_gatherTriRegularCornerEdgePatchPoints(
2253 self,
2254 fIndex,
2255 patchVerts,
2256 cornerEdgeInFace,
2257 )
2258 }
2259
2260 #[inline]
2261 pub unsafe fn createFVarChannel(
2262 &mut self,
2263 fvarValueCount: ::std::os::raw::c_int,
2264 options: *const OpenSubdiv_v3_7_0_Sdc_Options,
2265 ) -> ::std::os::raw::c_int {
2266 OpenSubdiv_v3_7_0_Vtr_internal_Level_createFVarChannel(self, fvarValueCount, options)
2267 }
2268
2269 #[inline]
2270 pub unsafe fn destroyFVarChannel(&mut self, channel: ::std::os::raw::c_int) {
2271 OpenSubdiv_v3_7_0_Vtr_internal_Level_destroyFVarChannel(self, channel)
2272 }
2273
2274 #[inline]
2275 pub unsafe fn getFaceFVarValues1(
2276 &mut self,
2277 faceIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2278 channel: ::std::os::raw::c_int,
2279 ) -> OpenSubdiv_v3_7_0_Vtr_IndexArray {
2280 OpenSubdiv_v3_7_0_Vtr_internal_Level_getFaceFVarValues1(self, faceIndex, channel)
2281 }
2282
2283 #[inline]
2284 pub unsafe fn completeFVarChannelTopology(
2285 &mut self,
2286 channel: ::std::os::raw::c_int,
2287 regBoundaryValence: ::std::os::raw::c_int,
2288 ) {
2289 OpenSubdiv_v3_7_0_Vtr_internal_Level_completeFVarChannelTopology(
2290 self,
2291 channel,
2292 regBoundaryValence,
2293 )
2294 }
2295
2296 #[inline]
2297 pub unsafe fn completeTopologyFromFaceVertices(&mut self) -> bool {
2298 OpenSubdiv_v3_7_0_Vtr_internal_Level_completeTopologyFromFaceVertices(self)
2299 }
2300
2301 #[inline]
2302 pub unsafe fn findEdge1(
2303 &self,
2304 v0: OpenSubdiv_v3_7_0_Vtr_Index,
2305 v1: OpenSubdiv_v3_7_0_Vtr_Index,
2306 v0Edges: OpenSubdiv_v3_7_0_Vtr_ConstIndexArray,
2307 ) -> OpenSubdiv_v3_7_0_Vtr_Index {
2308 OpenSubdiv_v3_7_0_Vtr_internal_Level_findEdge1(self, v0, v1, v0Edges)
2309 }
2310
2311 #[inline]
2312 pub unsafe fn orientIncidentComponents(&mut self) {
2313 OpenSubdiv_v3_7_0_Vtr_internal_Level_orientIncidentComponents(self)
2314 }
2315
2316 #[inline]
2317 pub unsafe fn orderVertexFacesAndEdges(
2318 &self,
2319 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2320 vFaces: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2321 vEdges: *mut OpenSubdiv_v3_7_0_Vtr_Index,
2322 ) -> bool {
2323 OpenSubdiv_v3_7_0_Vtr_internal_Level_orderVertexFacesAndEdges(self, vIndex, vFaces, vEdges)
2324 }
2325
2326 #[inline]
2327 pub unsafe fn orderVertexFacesAndEdges1(
2328 &mut self,
2329 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
2330 ) -> bool {
2331 OpenSubdiv_v3_7_0_Vtr_internal_Level_orderVertexFacesAndEdges1(self, vIndex)
2332 }
2333
2334 #[inline]
2335 pub unsafe fn testVertexNonManifoldCrease(&self, vIndex: OpenSubdiv_v3_7_0_Vtr_Index) -> bool {
2336 OpenSubdiv_v3_7_0_Vtr_internal_Level_testVertexNonManifoldCrease(self, vIndex)
2337 }
2338
2339 #[inline]
2340 pub unsafe fn populateLocalIndices(&mut self) {
2341 OpenSubdiv_v3_7_0_Vtr_internal_Level_populateLocalIndices(self)
2342 }
2343
2344 #[inline]
2345 pub unsafe fn new() -> Self {
2346 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
2347 OpenSubdiv_v3_7_0_Vtr_internal_Level_Level(__bindgen_tmp.as_mut_ptr());
2348 __bindgen_tmp.assume_init()
2349 }
2350
2351 #[inline]
2352 pub unsafe fn destruct(&mut self) {
2353 OpenSubdiv_v3_7_0_Vtr_internal_Level_Level_destructor(self)
2354 }
2355}
2356#[repr(C)]
2357pub struct OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel {
2358 pub _level: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
2359 pub _options: OpenSubdiv_v3_7_0_Sdc_Options,
2360 pub _isLinear: bool,
2361 pub _hasLinearBoundaries: bool,
2362 pub _hasDependentSharpness: bool,
2363 pub _valueCount: ::std::os::raw::c_int,
2364 pub _faceVertValues: __BindgenOpaqueArray<u64, 3usize>,
2365 pub _edgeTags: __BindgenOpaqueArray<u64, 3usize>,
2366 pub _vertSiblingCounts: __BindgenOpaqueArray<u64, 3usize>,
2367 pub _vertSiblingOffsets: __BindgenOpaqueArray<u64, 3usize>,
2368 pub _vertFaceSiblings: __BindgenOpaqueArray<u64, 3usize>,
2369 pub _vertValueIndices: __BindgenOpaqueArray<u64, 3usize>,
2370 pub _vertValueTags: __BindgenOpaqueArray<u64, 3usize>,
2371 pub _vertValueCreaseEnds: __BindgenOpaqueArray<u64, 3usize>,
2372}
2373#[repr(C)]
2374#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2375pub struct OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag {
2376 pub _bitfield_align_1: [u8; 0],
2377 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
2378}
2379pub type OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize = ::std::os::raw::c_uchar;
2380impl OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag {
2381 #[inline]
2382 pub fn _mismatch(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize {
2383 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
2384 }
2385
2386 #[inline]
2387 pub fn set__mismatch(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize) {
2388 unsafe {
2389 let val: u8 = ::std::mem::transmute(val);
2390 self._bitfield_1.set(0usize, 1u8, val as u64)
2391 }
2392 }
2393
2394 #[inline]
2395 pub unsafe fn _mismatch_raw(
2396 this: *const Self,
2397 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize {
2398 unsafe {
2399 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2400 ::std::ptr::addr_of!((*this)._bitfield_1),
2401 0usize,
2402 1u8,
2403 ) as u8)
2404 }
2405 }
2406
2407 #[inline]
2408 pub unsafe fn set__mismatch_raw(
2409 this: *mut Self,
2410 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize,
2411 ) {
2412 unsafe {
2413 let val: u8 = ::std::mem::transmute(val);
2414 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2415 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2416 0usize,
2417 1u8,
2418 val as u64,
2419 )
2420 }
2421 }
2422
2423 #[inline]
2424 pub fn _disctsV0(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize {
2425 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
2426 }
2427
2428 #[inline]
2429 pub fn set__disctsV0(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize) {
2430 unsafe {
2431 let val: u8 = ::std::mem::transmute(val);
2432 self._bitfield_1.set(1usize, 1u8, val as u64)
2433 }
2434 }
2435
2436 #[inline]
2437 pub unsafe fn _disctsV0_raw(
2438 this: *const Self,
2439 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize {
2440 unsafe {
2441 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2442 ::std::ptr::addr_of!((*this)._bitfield_1),
2443 1usize,
2444 1u8,
2445 ) as u8)
2446 }
2447 }
2448
2449 #[inline]
2450 pub unsafe fn set__disctsV0_raw(
2451 this: *mut Self,
2452 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize,
2453 ) {
2454 unsafe {
2455 let val: u8 = ::std::mem::transmute(val);
2456 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2457 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2458 1usize,
2459 1u8,
2460 val as u64,
2461 )
2462 }
2463 }
2464
2465 #[inline]
2466 pub fn _disctsV1(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize {
2467 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
2468 }
2469
2470 #[inline]
2471 pub fn set__disctsV1(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize) {
2472 unsafe {
2473 let val: u8 = ::std::mem::transmute(val);
2474 self._bitfield_1.set(2usize, 1u8, val as u64)
2475 }
2476 }
2477
2478 #[inline]
2479 pub unsafe fn _disctsV1_raw(
2480 this: *const Self,
2481 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize {
2482 unsafe {
2483 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2484 ::std::ptr::addr_of!((*this)._bitfield_1),
2485 2usize,
2486 1u8,
2487 ) as u8)
2488 }
2489 }
2490
2491 #[inline]
2492 pub unsafe fn set__disctsV1_raw(
2493 this: *mut Self,
2494 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize,
2495 ) {
2496 unsafe {
2497 let val: u8 = ::std::mem::transmute(val);
2498 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2499 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2500 2usize,
2501 1u8,
2502 val as u64,
2503 )
2504 }
2505 }
2506
2507 #[inline]
2508 pub fn _linear(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize {
2509 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
2510 }
2511
2512 #[inline]
2513 pub fn set__linear(&mut self, val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize) {
2514 unsafe {
2515 let val: u8 = ::std::mem::transmute(val);
2516 self._bitfield_1.set(3usize, 1u8, val as u64)
2517 }
2518 }
2519
2520 #[inline]
2521 pub unsafe fn _linear_raw(
2522 this: *const Self,
2523 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize {
2524 unsafe {
2525 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2526 ::std::ptr::addr_of!((*this)._bitfield_1),
2527 3usize,
2528 1u8,
2529 ) as u8)
2530 }
2531 }
2532
2533 #[inline]
2534 pub unsafe fn set__linear_raw(
2535 this: *mut Self,
2536 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize,
2537 ) {
2538 unsafe {
2539 let val: u8 = ::std::mem::transmute(val);
2540 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2541 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2542 3usize,
2543 1u8,
2544 val as u64,
2545 )
2546 }
2547 }
2548
2549 #[inline]
2550 pub fn new_bitfield_1(
2551 _mismatch: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize,
2552 _disctsV0: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize,
2553 _disctsV1: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize,
2554 _linear: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ETag_ETagSize,
2555 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
2556 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
2557 __bindgen_bitfield_unit.set(0usize, 1u8, {
2558 let _mismatch: u8 = unsafe { ::std::mem::transmute(_mismatch) };
2559 _mismatch as u64
2560 });
2561 __bindgen_bitfield_unit.set(1usize, 1u8, {
2562 let _disctsV0: u8 = unsafe { ::std::mem::transmute(_disctsV0) };
2563 _disctsV0 as u64
2564 });
2565 __bindgen_bitfield_unit.set(2usize, 1u8, {
2566 let _disctsV1: u8 = unsafe { ::std::mem::transmute(_disctsV1) };
2567 _disctsV1 as u64
2568 });
2569 __bindgen_bitfield_unit.set(3usize, 1u8, {
2570 let _linear: u8 = unsafe { ::std::mem::transmute(_linear) };
2571 _linear as u64
2572 });
2573 __bindgen_bitfield_unit
2574 }
2575}
2576#[repr(C)]
2577#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2578pub struct OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag {
2579 pub _bitfield_align_1: [u8; 0],
2580 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
2581}
2582pub type OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize = ::std::os::raw::c_uchar;
2583impl OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag {
2584 #[inline]
2585 pub fn _mismatch(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2586 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
2587 }
2588
2589 #[inline]
2590 pub fn set__mismatch(
2591 &mut self,
2592 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2593 ) {
2594 unsafe {
2595 let val: u8 = ::std::mem::transmute(val);
2596 self._bitfield_1.set(0usize, 1u8, val as u64)
2597 }
2598 }
2599
2600 #[inline]
2601 pub unsafe fn _mismatch_raw(
2602 this: *const Self,
2603 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2604 unsafe {
2605 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2606 ::std::ptr::addr_of!((*this)._bitfield_1),
2607 0usize,
2608 1u8,
2609 ) as u8)
2610 }
2611 }
2612
2613 #[inline]
2614 pub unsafe fn set__mismatch_raw(
2615 this: *mut Self,
2616 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2617 ) {
2618 unsafe {
2619 let val: u8 = ::std::mem::transmute(val);
2620 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2621 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2622 0usize,
2623 1u8,
2624 val as u64,
2625 )
2626 }
2627 }
2628
2629 #[inline]
2630 pub fn _xordinary(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2631 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
2632 }
2633
2634 #[inline]
2635 pub fn set__xordinary(
2636 &mut self,
2637 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2638 ) {
2639 unsafe {
2640 let val: u8 = ::std::mem::transmute(val);
2641 self._bitfield_1.set(1usize, 1u8, val as u64)
2642 }
2643 }
2644
2645 #[inline]
2646 pub unsafe fn _xordinary_raw(
2647 this: *const Self,
2648 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2649 unsafe {
2650 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2651 ::std::ptr::addr_of!((*this)._bitfield_1),
2652 1usize,
2653 1u8,
2654 ) as u8)
2655 }
2656 }
2657
2658 #[inline]
2659 pub unsafe fn set__xordinary_raw(
2660 this: *mut Self,
2661 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2662 ) {
2663 unsafe {
2664 let val: u8 = ::std::mem::transmute(val);
2665 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2666 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2667 1usize,
2668 1u8,
2669 val as u64,
2670 )
2671 }
2672 }
2673
2674 #[inline]
2675 pub fn _nonManifold(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2676 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
2677 }
2678
2679 #[inline]
2680 pub fn set__nonManifold(
2681 &mut self,
2682 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2683 ) {
2684 unsafe {
2685 let val: u8 = ::std::mem::transmute(val);
2686 self._bitfield_1.set(2usize, 1u8, val as u64)
2687 }
2688 }
2689
2690 #[inline]
2691 pub unsafe fn _nonManifold_raw(
2692 this: *const Self,
2693 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2694 unsafe {
2695 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2696 ::std::ptr::addr_of!((*this)._bitfield_1),
2697 2usize,
2698 1u8,
2699 ) as u8)
2700 }
2701 }
2702
2703 #[inline]
2704 pub unsafe fn set__nonManifold_raw(
2705 this: *mut Self,
2706 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2707 ) {
2708 unsafe {
2709 let val: u8 = ::std::mem::transmute(val);
2710 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2711 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2712 2usize,
2713 1u8,
2714 val as u64,
2715 )
2716 }
2717 }
2718
2719 #[inline]
2720 pub fn _crease(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2721 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
2722 }
2723
2724 #[inline]
2725 pub fn set__crease(
2726 &mut self,
2727 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2728 ) {
2729 unsafe {
2730 let val: u8 = ::std::mem::transmute(val);
2731 self._bitfield_1.set(3usize, 1u8, val as u64)
2732 }
2733 }
2734
2735 #[inline]
2736 pub unsafe fn _crease_raw(
2737 this: *const Self,
2738 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2739 unsafe {
2740 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2741 ::std::ptr::addr_of!((*this)._bitfield_1),
2742 3usize,
2743 1u8,
2744 ) as u8)
2745 }
2746 }
2747
2748 #[inline]
2749 pub unsafe fn set__crease_raw(
2750 this: *mut Self,
2751 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2752 ) {
2753 unsafe {
2754 let val: u8 = ::std::mem::transmute(val);
2755 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2756 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2757 3usize,
2758 1u8,
2759 val as u64,
2760 )
2761 }
2762 }
2763
2764 #[inline]
2765 pub fn _semiSharp(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2766 unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
2767 }
2768
2769 #[inline]
2770 pub fn set__semiSharp(
2771 &mut self,
2772 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2773 ) {
2774 unsafe {
2775 let val: u8 = ::std::mem::transmute(val);
2776 self._bitfield_1.set(4usize, 1u8, val as u64)
2777 }
2778 }
2779
2780 #[inline]
2781 pub unsafe fn _semiSharp_raw(
2782 this: *const Self,
2783 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2784 unsafe {
2785 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2786 ::std::ptr::addr_of!((*this)._bitfield_1),
2787 4usize,
2788 1u8,
2789 ) as u8)
2790 }
2791 }
2792
2793 #[inline]
2794 pub unsafe fn set__semiSharp_raw(
2795 this: *mut Self,
2796 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2797 ) {
2798 unsafe {
2799 let val: u8 = ::std::mem::transmute(val);
2800 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2801 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2802 4usize,
2803 1u8,
2804 val as u64,
2805 )
2806 }
2807 }
2808
2809 #[inline]
2810 pub fn _depSharp(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2811 unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
2812 }
2813
2814 #[inline]
2815 pub fn set__depSharp(
2816 &mut self,
2817 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2818 ) {
2819 unsafe {
2820 let val: u8 = ::std::mem::transmute(val);
2821 self._bitfield_1.set(5usize, 1u8, val as u64)
2822 }
2823 }
2824
2825 #[inline]
2826 pub unsafe fn _depSharp_raw(
2827 this: *const Self,
2828 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2829 unsafe {
2830 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2831 ::std::ptr::addr_of!((*this)._bitfield_1),
2832 5usize,
2833 1u8,
2834 ) as u8)
2835 }
2836 }
2837
2838 #[inline]
2839 pub unsafe fn set__depSharp_raw(
2840 this: *mut Self,
2841 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2842 ) {
2843 unsafe {
2844 let val: u8 = ::std::mem::transmute(val);
2845 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2846 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2847 5usize,
2848 1u8,
2849 val as u64,
2850 )
2851 }
2852 }
2853
2854 #[inline]
2855 pub fn _infSharpEdges(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2856 unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
2857 }
2858
2859 #[inline]
2860 pub fn set__infSharpEdges(
2861 &mut self,
2862 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2863 ) {
2864 unsafe {
2865 let val: u8 = ::std::mem::transmute(val);
2866 self._bitfield_1.set(6usize, 1u8, val as u64)
2867 }
2868 }
2869
2870 #[inline]
2871 pub unsafe fn _infSharpEdges_raw(
2872 this: *const Self,
2873 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2874 unsafe {
2875 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2876 ::std::ptr::addr_of!((*this)._bitfield_1),
2877 6usize,
2878 1u8,
2879 ) as u8)
2880 }
2881 }
2882
2883 #[inline]
2884 pub unsafe fn set__infSharpEdges_raw(
2885 this: *mut Self,
2886 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2887 ) {
2888 unsafe {
2889 let val: u8 = ::std::mem::transmute(val);
2890 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2891 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2892 6usize,
2893 1u8,
2894 val as u64,
2895 )
2896 }
2897 }
2898
2899 #[inline]
2900 pub fn _infIrregular(&self) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2901 unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
2902 }
2903
2904 #[inline]
2905 pub fn set__infIrregular(
2906 &mut self,
2907 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2908 ) {
2909 unsafe {
2910 let val: u8 = ::std::mem::transmute(val);
2911 self._bitfield_1.set(7usize, 1u8, val as u64)
2912 }
2913 }
2914
2915 #[inline]
2916 pub unsafe fn _infIrregular_raw(
2917 this: *const Self,
2918 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize {
2919 unsafe {
2920 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2921 ::std::ptr::addr_of!((*this)._bitfield_1),
2922 7usize,
2923 1u8,
2924 ) as u8)
2925 }
2926 }
2927
2928 #[inline]
2929 pub unsafe fn set__infIrregular_raw(
2930 this: *mut Self,
2931 val: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2932 ) {
2933 unsafe {
2934 let val: u8 = ::std::mem::transmute(val);
2935 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2936 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2937 7usize,
2938 1u8,
2939 val as u64,
2940 )
2941 }
2942 }
2943
2944 #[inline]
2945 pub fn new_bitfield_1(
2946 _mismatch: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2947 _xordinary: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2948 _nonManifold: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2949 _crease: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2950 _semiSharp: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2951 _depSharp: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2952 _infSharpEdges: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2953 _infIrregular: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag_ValueTagSize,
2954 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
2955 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
2956 __bindgen_bitfield_unit.set(0usize, 1u8, {
2957 let _mismatch: u8 = unsafe { ::std::mem::transmute(_mismatch) };
2958 _mismatch as u64
2959 });
2960 __bindgen_bitfield_unit.set(1usize, 1u8, {
2961 let _xordinary: u8 = unsafe { ::std::mem::transmute(_xordinary) };
2962 _xordinary as u64
2963 });
2964 __bindgen_bitfield_unit.set(2usize, 1u8, {
2965 let _nonManifold: u8 = unsafe { ::std::mem::transmute(_nonManifold) };
2966 _nonManifold as u64
2967 });
2968 __bindgen_bitfield_unit.set(3usize, 1u8, {
2969 let _crease: u8 = unsafe { ::std::mem::transmute(_crease) };
2970 _crease as u64
2971 });
2972 __bindgen_bitfield_unit.set(4usize, 1u8, {
2973 let _semiSharp: u8 = unsafe { ::std::mem::transmute(_semiSharp) };
2974 _semiSharp as u64
2975 });
2976 __bindgen_bitfield_unit.set(5usize, 1u8, {
2977 let _depSharp: u8 = unsafe { ::std::mem::transmute(_depSharp) };
2978 _depSharp as u64
2979 });
2980 __bindgen_bitfield_unit.set(6usize, 1u8, {
2981 let _infSharpEdges: u8 = unsafe { ::std::mem::transmute(_infSharpEdges) };
2982 _infSharpEdges as u64
2983 });
2984 __bindgen_bitfield_unit.set(7usize, 1u8, {
2985 let _infIrregular: u8 = unsafe { ::std::mem::transmute(_infIrregular) };
2986 _infIrregular as u64
2987 });
2988 __bindgen_bitfield_unit
2989 }
2990}
2991pub type OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ConstValueTagArray =
2992 OpenSubdiv_v3_7_0_Vtr_ConstArray<OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag>;
2993pub type OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTagArray =
2994 OpenSubdiv_v3_7_0_Vtr_Array<OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag>;
2995#[repr(C)]
2996#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2997pub struct OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_CreaseEndPair {
2998 pub _startFace: OpenSubdiv_v3_7_0_Vtr_LocalIndex,
2999 pub _endFace: OpenSubdiv_v3_7_0_Vtr_LocalIndex,
3000}
3001pub type OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ConstCreaseEndPairArray =
3002 OpenSubdiv_v3_7_0_Vtr_ConstArray<OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_CreaseEndPair>;
3003pub type OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_CreaseEndPairArray =
3004 OpenSubdiv_v3_7_0_Vtr_Array<OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_CreaseEndPair>;
3005pub type OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_Sibling = OpenSubdiv_v3_7_0_Vtr_LocalIndex;
3006pub type OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ConstSiblingArray =
3007 OpenSubdiv_v3_7_0_Vtr_ConstLocalIndexArray;
3008pub type OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_SiblingArray =
3009 OpenSubdiv_v3_7_0_Vtr_LocalIndexArray;
3010#[repr(C)]
3011#[derive(Debug, Copy, Clone)]
3012pub struct OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueSpan {
3013 _unused: [u8; 0],
3014}
3015unsafe extern "C" {
3016 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel16getFaceValueTagsEiPNS3_8ValueTagE"]
3017 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_getFaceValueTags(
3018 this: *const OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3019 faceIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3020 valueTags: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag,
3021 );
3022}
3023unsafe extern "C" {
3024 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel24getFaceCompositeValueTagEi"]
3025 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_getFaceCompositeValueTag(
3026 this: *const OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3027 faceIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3028 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag;
3029}
3030unsafe extern "C" {
3031 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel17getEdgeFaceValuesEiiPi"]
3032 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_getEdgeFaceValues(
3033 this: *const OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3034 eIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3035 fIncToEdge: ::std::os::raw::c_int,
3036 valuesPerVert: *mut OpenSubdiv_v3_7_0_Vtr_Index,
3037 );
3038}
3039unsafe extern "C" {
3040 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel19getVertexEdgeValuesEiPi"]
3041 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_getVertexEdgeValues(
3042 this: *const OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3043 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3044 valuesPerEdge: *mut OpenSubdiv_v3_7_0_Vtr_Index,
3045 );
3046}
3047unsafe extern "C" {
3048 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel24getVertexCreaseEndValuesEitPi"]
3049 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_getVertexCreaseEndValues(
3050 this: *const OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3051 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3052 sibling: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_Sibling,
3053 endValues: *mut OpenSubdiv_v3_7_0_Vtr_Index,
3054 );
3055}
3056unsafe extern "C" {
3057 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel10setOptionsERKNS0_3Sdc7OptionsE"]
3058 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_setOptions(
3059 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3060 options: *const OpenSubdiv_v3_7_0_Sdc_Options,
3061 );
3062}
3063unsafe extern "C" {
3064 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel18resizeVertexValuesEi"]
3065 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_resizeVertexValues(
3066 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3067 numVertexValues: ::std::os::raw::c_int,
3068 );
3069}
3070unsafe extern "C" {
3071 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel12resizeValuesEi"]
3072 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_resizeValues(
3073 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3074 numValues: ::std::os::raw::c_int,
3075 );
3076}
3077unsafe extern "C" {
3078 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel16resizeComponentsEv"]
3079 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_resizeComponents(
3080 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3081 );
3082}
3083unsafe extern "C" {
3084 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel30completeTopologyFromFaceValuesEi"]
3085 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_completeTopologyFromFaceValues(
3086 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3087 regBoundaryValence: ::std::os::raw::c_int,
3088 );
3089}
3090unsafe extern "C" {
3091 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel36initializeFaceValuesFromFaceVerticesEv"]
3092 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_initializeFaceValuesFromFaceVertices(
3093 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3094 );
3095}
3096unsafe extern "C" {
3097 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel42initializeFaceValuesFromVertexFaceSiblingsEv"]
3098 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_initializeFaceValuesFromVertexFaceSiblings(
3099 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3100 );
3101}
3102unsafe extern "C" {
3103 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel16gatherValueSpansEiPNS3_9ValueSpanE"]
3104 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_gatherValueSpans(
3105 this: *const OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3106 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3107 vValueSpans: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueSpan,
3108 );
3109}
3110unsafe extern "C" {
3111 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel8validateEv"]
3112 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_validate(
3113 this: *const OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3114 ) -> bool;
3115}
3116unsafe extern "C" {
3117 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel5printEv"]
3118 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_print(
3119 this: *const OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3120 );
3121}
3122unsafe extern "C" {
3123 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal9FVarLevel45buildFaceVertexSiblingsFromVertexFaceSiblingsERSt6vectorItSaItEE"]
3124 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_buildFaceVertexSiblingsFromVertexFaceSiblings(
3125 this: *const OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3126 fvSiblings: *mut __BindgenOpaqueArray<u64, 3usize>,
3127 );
3128}
3129unsafe extern "C" {
3130 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal9FVarLevelC1ERKNS2_5LevelE"]
3131 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_FVarLevel(
3132 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3133 level: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
3134 );
3135}
3136unsafe extern "C" {
3137 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal9FVarLevelD1Ev"]
3138 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_FVarLevel_destructor(
3139 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
3140 );
3141}
3142impl OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel {
3143 #[inline]
3144 pub unsafe fn getFaceValueTags(
3145 &self,
3146 faceIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3147 valueTags: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag,
3148 ) {
3149 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_getFaceValueTags(self, faceIndex, valueTags)
3150 }
3151
3152 #[inline]
3153 pub unsafe fn getFaceCompositeValueTag(
3154 &self,
3155 faceIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3156 ) -> OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueTag {
3157 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_getFaceCompositeValueTag(self, faceIndex)
3158 }
3159
3160 #[inline]
3161 pub unsafe fn getEdgeFaceValues(
3162 &self,
3163 eIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3164 fIncToEdge: ::std::os::raw::c_int,
3165 valuesPerVert: *mut OpenSubdiv_v3_7_0_Vtr_Index,
3166 ) {
3167 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_getEdgeFaceValues(
3168 self,
3169 eIndex,
3170 fIncToEdge,
3171 valuesPerVert,
3172 )
3173 }
3174
3175 #[inline]
3176 pub unsafe fn getVertexEdgeValues(
3177 &self,
3178 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3179 valuesPerEdge: *mut OpenSubdiv_v3_7_0_Vtr_Index,
3180 ) {
3181 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_getVertexEdgeValues(self, vIndex, valuesPerEdge)
3182 }
3183
3184 #[inline]
3185 pub unsafe fn getVertexCreaseEndValues(
3186 &self,
3187 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3188 sibling: OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_Sibling,
3189 endValues: *mut OpenSubdiv_v3_7_0_Vtr_Index,
3190 ) {
3191 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_getVertexCreaseEndValues(
3192 self, vIndex, sibling, endValues,
3193 )
3194 }
3195
3196 #[inline]
3197 pub unsafe fn setOptions(&mut self, options: *const OpenSubdiv_v3_7_0_Sdc_Options) {
3198 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_setOptions(self, options)
3199 }
3200
3201 #[inline]
3202 pub unsafe fn resizeVertexValues(&mut self, numVertexValues: ::std::os::raw::c_int) {
3203 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_resizeVertexValues(self, numVertexValues)
3204 }
3205
3206 #[inline]
3207 pub unsafe fn resizeValues(&mut self, numValues: ::std::os::raw::c_int) {
3208 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_resizeValues(self, numValues)
3209 }
3210
3211 #[inline]
3212 pub unsafe fn resizeComponents(&mut self) {
3213 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_resizeComponents(self)
3214 }
3215
3216 #[inline]
3217 pub unsafe fn completeTopologyFromFaceValues(
3218 &mut self,
3219 regBoundaryValence: ::std::os::raw::c_int,
3220 ) {
3221 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_completeTopologyFromFaceValues(
3222 self,
3223 regBoundaryValence,
3224 )
3225 }
3226
3227 #[inline]
3228 pub unsafe fn initializeFaceValuesFromFaceVertices(&mut self) {
3229 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_initializeFaceValuesFromFaceVertices(self)
3230 }
3231
3232 #[inline]
3233 pub unsafe fn initializeFaceValuesFromVertexFaceSiblings(&mut self) {
3234 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_initializeFaceValuesFromVertexFaceSiblings(self)
3235 }
3236
3237 #[inline]
3238 pub unsafe fn gatherValueSpans(
3239 &self,
3240 vIndex: OpenSubdiv_v3_7_0_Vtr_Index,
3241 vValueSpans: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_ValueSpan,
3242 ) {
3243 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_gatherValueSpans(self, vIndex, vValueSpans)
3244 }
3245
3246 #[inline]
3247 pub unsafe fn validate(&self) -> bool {
3248 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_validate(self)
3249 }
3250
3251 #[inline]
3252 pub unsafe fn print(&self) {
3253 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_print(self)
3254 }
3255
3256 #[inline]
3257 pub unsafe fn buildFaceVertexSiblingsFromVertexFaceSiblings(
3258 &self,
3259 fvSiblings: *mut __BindgenOpaqueArray<u64, 3usize>,
3260 ) {
3261 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_buildFaceVertexSiblingsFromVertexFaceSiblings(
3262 self, fvSiblings,
3263 )
3264 }
3265
3266 #[inline]
3267 pub unsafe fn new(level: *const OpenSubdiv_v3_7_0_Vtr_internal_Level) -> Self {
3268 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
3269 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_FVarLevel(__bindgen_tmp.as_mut_ptr(), level);
3270 __bindgen_tmp.assume_init()
3271 }
3272
3273 #[inline]
3274 pub unsafe fn destruct(&mut self) {
3275 OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel_FVarLevel_destructor(self)
3276 }
3277}
3278#[repr(C)]
3279pub struct OpenSubdiv_v3_7_0_Vtr_internal_Refinement__bindgen_vtable(::std::os::raw::c_void);
3280#[repr(C)]
3281pub struct OpenSubdiv_v3_7_0_Vtr_internal_Refinement {
3282 pub vtable_: *const OpenSubdiv_v3_7_0_Vtr_internal_Refinement__bindgen_vtable,
3283 pub _parent: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
3284 pub _child: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
3285 pub _options: OpenSubdiv_v3_7_0_Sdc_Options,
3286 pub _splitType: OpenSubdiv_v3_7_0_Sdc_Split,
3287 pub _regFaceSize: ::std::os::raw::c_int,
3288 pub _uniform: bool,
3289 pub _faceVertsFirst: bool,
3290 pub _childFaceFromFaceCount: ::std::os::raw::c_int,
3291 pub _childEdgeFromFaceCount: ::std::os::raw::c_int,
3292 pub _childEdgeFromEdgeCount: ::std::os::raw::c_int,
3293 pub _childVertFromFaceCount: ::std::os::raw::c_int,
3294 pub _childVertFromEdgeCount: ::std::os::raw::c_int,
3295 pub _childVertFromVertCount: ::std::os::raw::c_int,
3296 pub _firstChildFaceFromFace: ::std::os::raw::c_int,
3297 pub _firstChildEdgeFromFace: ::std::os::raw::c_int,
3298 pub _firstChildEdgeFromEdge: ::std::os::raw::c_int,
3299 pub _firstChildVertFromFace: ::std::os::raw::c_int,
3300 pub _firstChildVertFromEdge: ::std::os::raw::c_int,
3301 pub _firstChildVertFromVert: ::std::os::raw::c_int,
3302 pub _faceChildFaceCountsAndOffsets: OpenSubdiv_v3_7_0_Vtr_IndexArray,
3303 pub _faceChildEdgeCountsAndOffsets: OpenSubdiv_v3_7_0_Vtr_IndexArray,
3304 pub _faceChildFaceIndices: OpenSubdiv_v3_7_0_Vtr_IndexVector,
3305 pub _faceChildEdgeIndices: OpenSubdiv_v3_7_0_Vtr_IndexVector,
3306 pub _faceChildVertIndex: OpenSubdiv_v3_7_0_Vtr_IndexVector,
3307 pub _edgeChildEdgeIndices: OpenSubdiv_v3_7_0_Vtr_IndexVector,
3308 pub _edgeChildVertIndex: OpenSubdiv_v3_7_0_Vtr_IndexVector,
3309 pub _vertChildVertIndex: OpenSubdiv_v3_7_0_Vtr_IndexVector,
3310 pub _childFaceParentIndex: OpenSubdiv_v3_7_0_Vtr_IndexVector,
3311 pub _childEdgeParentIndex: OpenSubdiv_v3_7_0_Vtr_IndexVector,
3312 pub _childVertexParentIndex: OpenSubdiv_v3_7_0_Vtr_IndexVector,
3313 pub _childFaceTag: __BindgenOpaqueArray<u64, 3usize>,
3314 pub _childEdgeTag: __BindgenOpaqueArray<u64, 3usize>,
3315 pub _childVertexTag: __BindgenOpaqueArray<u64, 3usize>,
3316 pub _parentFaceTag: __BindgenOpaqueArray<u64, 3usize>,
3317 pub _parentEdgeTag: __BindgenOpaqueArray<u64, 3usize>,
3318 pub _parentVertexTag: __BindgenOpaqueArray<u64, 3usize>,
3319 pub _fvarChannels: __BindgenOpaqueArray<u64, 3usize>,
3320}
3321#[repr(C)]
3322#[repr(align(4))]
3323#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3324pub struct OpenSubdiv_v3_7_0_Vtr_internal_Refinement_Options {
3325 pub _bitfield_align_1: [u8; 0],
3326 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
3327 pub __bindgen_padding_0: [u8; 3usize],
3328}
3329impl OpenSubdiv_v3_7_0_Vtr_internal_Refinement_Options {
3330 #[inline]
3331 pub fn _sparse(&self) -> ::std::os::raw::c_uint {
3332 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
3333 }
3334
3335 #[inline]
3336 pub fn set__sparse(&mut self, val: ::std::os::raw::c_uint) {
3337 unsafe {
3338 let val: u32 = ::std::mem::transmute(val);
3339 self._bitfield_1.set(0usize, 1u8, val as u64)
3340 }
3341 }
3342
3343 #[inline]
3344 pub unsafe fn _sparse_raw(this: *const Self) -> ::std::os::raw::c_uint {
3345 unsafe {
3346 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3347 ::std::ptr::addr_of!((*this)._bitfield_1),
3348 0usize,
3349 1u8,
3350 ) as u32)
3351 }
3352 }
3353
3354 #[inline]
3355 pub unsafe fn set__sparse_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3356 unsafe {
3357 let val: u32 = ::std::mem::transmute(val);
3358 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3359 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3360 0usize,
3361 1u8,
3362 val as u64,
3363 )
3364 }
3365 }
3366
3367 #[inline]
3368 pub fn _faceVertsFirst(&self) -> ::std::os::raw::c_uint {
3369 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
3370 }
3371
3372 #[inline]
3373 pub fn set__faceVertsFirst(&mut self, val: ::std::os::raw::c_uint) {
3374 unsafe {
3375 let val: u32 = ::std::mem::transmute(val);
3376 self._bitfield_1.set(1usize, 1u8, val as u64)
3377 }
3378 }
3379
3380 #[inline]
3381 pub unsafe fn _faceVertsFirst_raw(this: *const Self) -> ::std::os::raw::c_uint {
3382 unsafe {
3383 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3384 ::std::ptr::addr_of!((*this)._bitfield_1),
3385 1usize,
3386 1u8,
3387 ) as u32)
3388 }
3389 }
3390
3391 #[inline]
3392 pub unsafe fn set__faceVertsFirst_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3393 unsafe {
3394 let val: u32 = ::std::mem::transmute(val);
3395 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3396 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3397 1usize,
3398 1u8,
3399 val as u64,
3400 )
3401 }
3402 }
3403
3404 #[inline]
3405 pub fn _minimalTopology(&self) -> ::std::os::raw::c_uint {
3406 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
3407 }
3408
3409 #[inline]
3410 pub fn set__minimalTopology(&mut self, val: ::std::os::raw::c_uint) {
3411 unsafe {
3412 let val: u32 = ::std::mem::transmute(val);
3413 self._bitfield_1.set(2usize, 1u8, val as u64)
3414 }
3415 }
3416
3417 #[inline]
3418 pub unsafe fn _minimalTopology_raw(this: *const Self) -> ::std::os::raw::c_uint {
3419 unsafe {
3420 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3421 ::std::ptr::addr_of!((*this)._bitfield_1),
3422 2usize,
3423 1u8,
3424 ) as u32)
3425 }
3426 }
3427
3428 #[inline]
3429 pub unsafe fn set__minimalTopology_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3430 unsafe {
3431 let val: u32 = ::std::mem::transmute(val);
3432 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3433 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3434 2usize,
3435 1u8,
3436 val as u64,
3437 )
3438 }
3439 }
3440
3441 #[inline]
3442 pub fn new_bitfield_1(
3443 _sparse: ::std::os::raw::c_uint,
3444 _faceVertsFirst: ::std::os::raw::c_uint,
3445 _minimalTopology: ::std::os::raw::c_uint,
3446 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
3447 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
3448 __bindgen_bitfield_unit.set(0usize, 1u8, {
3449 let _sparse: u32 = unsafe { ::std::mem::transmute(_sparse) };
3450 _sparse as u64
3451 });
3452 __bindgen_bitfield_unit.set(1usize, 1u8, {
3453 let _faceVertsFirst: u32 = unsafe { ::std::mem::transmute(_faceVertsFirst) };
3454 _faceVertsFirst as u64
3455 });
3456 __bindgen_bitfield_unit.set(2usize, 1u8, {
3457 let _minimalTopology: u32 = unsafe { ::std::mem::transmute(_minimalTopology) };
3458 _minimalTopology as u64
3459 });
3460 __bindgen_bitfield_unit
3461 }
3462}
3463#[repr(C)]
3464#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3465pub struct OpenSubdiv_v3_7_0_Vtr_internal_Refinement_SparseTag {
3466 pub _bitfield_align_1: [u8; 0],
3467 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
3468}
3469impl OpenSubdiv_v3_7_0_Vtr_internal_Refinement_SparseTag {
3470 #[inline]
3471 pub fn _selected(&self) -> ::std::os::raw::c_uchar {
3472 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
3473 }
3474
3475 #[inline]
3476 pub fn set__selected(&mut self, val: ::std::os::raw::c_uchar) {
3477 unsafe {
3478 let val: u8 = ::std::mem::transmute(val);
3479 self._bitfield_1.set(0usize, 1u8, val as u64)
3480 }
3481 }
3482
3483 #[inline]
3484 pub unsafe fn _selected_raw(this: *const Self) -> ::std::os::raw::c_uchar {
3485 unsafe {
3486 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3487 ::std::ptr::addr_of!((*this)._bitfield_1),
3488 0usize,
3489 1u8,
3490 ) as u8)
3491 }
3492 }
3493
3494 #[inline]
3495 pub unsafe fn set__selected_raw(this: *mut Self, val: ::std::os::raw::c_uchar) {
3496 unsafe {
3497 let val: u8 = ::std::mem::transmute(val);
3498 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3499 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3500 0usize,
3501 1u8,
3502 val as u64,
3503 )
3504 }
3505 }
3506
3507 #[inline]
3508 pub fn _transitional(&self) -> ::std::os::raw::c_uchar {
3509 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 4u8) as u8) }
3510 }
3511
3512 #[inline]
3513 pub fn set__transitional(&mut self, val: ::std::os::raw::c_uchar) {
3514 unsafe {
3515 let val: u8 = ::std::mem::transmute(val);
3516 self._bitfield_1.set(1usize, 4u8, val as u64)
3517 }
3518 }
3519
3520 #[inline]
3521 pub unsafe fn _transitional_raw(this: *const Self) -> ::std::os::raw::c_uchar {
3522 unsafe {
3523 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3524 ::std::ptr::addr_of!((*this)._bitfield_1),
3525 1usize,
3526 4u8,
3527 ) as u8)
3528 }
3529 }
3530
3531 #[inline]
3532 pub unsafe fn set__transitional_raw(this: *mut Self, val: ::std::os::raw::c_uchar) {
3533 unsafe {
3534 let val: u8 = ::std::mem::transmute(val);
3535 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3536 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3537 1usize,
3538 4u8,
3539 val as u64,
3540 )
3541 }
3542 }
3543
3544 #[inline]
3545 pub fn new_bitfield_1(
3546 _selected: ::std::os::raw::c_uchar,
3547 _transitional: ::std::os::raw::c_uchar,
3548 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
3549 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
3550 __bindgen_bitfield_unit.set(0usize, 1u8, {
3551 let _selected: u8 = unsafe { ::std::mem::transmute(_selected) };
3552 _selected as u64
3553 });
3554 __bindgen_bitfield_unit.set(1usize, 4u8, {
3555 let _transitional: u8 = unsafe { ::std::mem::transmute(_transitional) };
3556 _transitional as u64
3557 });
3558 __bindgen_bitfield_unit
3559 }
3560}
3561#[repr(C)]
3562#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3563pub struct OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag {
3564 pub _bitfield_align_1: [u8; 0],
3565 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
3566}
3567impl OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag {
3568 #[inline]
3569 pub fn _incomplete(&self) -> ::std::os::raw::c_uchar {
3570 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
3571 }
3572
3573 #[inline]
3574 pub fn set__incomplete(&mut self, val: ::std::os::raw::c_uchar) {
3575 unsafe {
3576 let val: u8 = ::std::mem::transmute(val);
3577 self._bitfield_1.set(0usize, 1u8, val as u64)
3578 }
3579 }
3580
3581 #[inline]
3582 pub unsafe fn _incomplete_raw(this: *const Self) -> ::std::os::raw::c_uchar {
3583 unsafe {
3584 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3585 ::std::ptr::addr_of!((*this)._bitfield_1),
3586 0usize,
3587 1u8,
3588 ) as u8)
3589 }
3590 }
3591
3592 #[inline]
3593 pub unsafe fn set__incomplete_raw(this: *mut Self, val: ::std::os::raw::c_uchar) {
3594 unsafe {
3595 let val: u8 = ::std::mem::transmute(val);
3596 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3597 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3598 0usize,
3599 1u8,
3600 val as u64,
3601 )
3602 }
3603 }
3604
3605 #[inline]
3606 pub fn _parentType(&self) -> ::std::os::raw::c_uchar {
3607 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u8) }
3608 }
3609
3610 #[inline]
3611 pub fn set__parentType(&mut self, val: ::std::os::raw::c_uchar) {
3612 unsafe {
3613 let val: u8 = ::std::mem::transmute(val);
3614 self._bitfield_1.set(1usize, 2u8, val as u64)
3615 }
3616 }
3617
3618 #[inline]
3619 pub unsafe fn _parentType_raw(this: *const Self) -> ::std::os::raw::c_uchar {
3620 unsafe {
3621 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3622 ::std::ptr::addr_of!((*this)._bitfield_1),
3623 1usize,
3624 2u8,
3625 ) as u8)
3626 }
3627 }
3628
3629 #[inline]
3630 pub unsafe fn set__parentType_raw(this: *mut Self, val: ::std::os::raw::c_uchar) {
3631 unsafe {
3632 let val: u8 = ::std::mem::transmute(val);
3633 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3634 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3635 1usize,
3636 2u8,
3637 val as u64,
3638 )
3639 }
3640 }
3641
3642 #[inline]
3643 pub fn _indexInParent(&self) -> ::std::os::raw::c_uchar {
3644 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 2u8) as u8) }
3645 }
3646
3647 #[inline]
3648 pub fn set__indexInParent(&mut self, val: ::std::os::raw::c_uchar) {
3649 unsafe {
3650 let val: u8 = ::std::mem::transmute(val);
3651 self._bitfield_1.set(3usize, 2u8, val as u64)
3652 }
3653 }
3654
3655 #[inline]
3656 pub unsafe fn _indexInParent_raw(this: *const Self) -> ::std::os::raw::c_uchar {
3657 unsafe {
3658 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3659 ::std::ptr::addr_of!((*this)._bitfield_1),
3660 3usize,
3661 2u8,
3662 ) as u8)
3663 }
3664 }
3665
3666 #[inline]
3667 pub unsafe fn set__indexInParent_raw(this: *mut Self, val: ::std::os::raw::c_uchar) {
3668 unsafe {
3669 let val: u8 = ::std::mem::transmute(val);
3670 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3671 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3672 3usize,
3673 2u8,
3674 val as u64,
3675 )
3676 }
3677 }
3678
3679 #[inline]
3680 pub fn new_bitfield_1(
3681 _incomplete: ::std::os::raw::c_uchar,
3682 _parentType: ::std::os::raw::c_uchar,
3683 _indexInParent: ::std::os::raw::c_uchar,
3684 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
3685 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
3686 __bindgen_bitfield_unit.set(0usize, 1u8, {
3687 let _incomplete: u8 = unsafe { ::std::mem::transmute(_incomplete) };
3688 _incomplete as u64
3689 });
3690 __bindgen_bitfield_unit.set(1usize, 2u8, {
3691 let _parentType: u8 = unsafe { ::std::mem::transmute(_parentType) };
3692 _parentType as u64
3693 });
3694 __bindgen_bitfield_unit.set(3usize, 2u8, {
3695 let _indexInParent: u8 = unsafe { ::std::mem::transmute(_indexInParent) };
3696 _indexInParent as u64
3697 });
3698 __bindgen_bitfield_unit
3699 }
3700}
3701#[repr(C)]
3702#[repr(align(4))]
3703#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3704pub struct OpenSubdiv_v3_7_0_Vtr_internal_Refinement_Relations {
3705 pub _bitfield_align_1: [u8; 0],
3706 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
3707 pub __bindgen_padding_0: [u8; 3usize],
3708}
3709impl OpenSubdiv_v3_7_0_Vtr_internal_Refinement_Relations {
3710 #[inline]
3711 pub fn _faceVertices(&self) -> ::std::os::raw::c_uint {
3712 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
3713 }
3714
3715 #[inline]
3716 pub fn set__faceVertices(&mut self, val: ::std::os::raw::c_uint) {
3717 unsafe {
3718 let val: u32 = ::std::mem::transmute(val);
3719 self._bitfield_1.set(0usize, 1u8, val as u64)
3720 }
3721 }
3722
3723 #[inline]
3724 pub unsafe fn _faceVertices_raw(this: *const Self) -> ::std::os::raw::c_uint {
3725 unsafe {
3726 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3727 ::std::ptr::addr_of!((*this)._bitfield_1),
3728 0usize,
3729 1u8,
3730 ) as u32)
3731 }
3732 }
3733
3734 #[inline]
3735 pub unsafe fn set__faceVertices_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3736 unsafe {
3737 let val: u32 = ::std::mem::transmute(val);
3738 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3739 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3740 0usize,
3741 1u8,
3742 val as u64,
3743 )
3744 }
3745 }
3746
3747 #[inline]
3748 pub fn _faceEdges(&self) -> ::std::os::raw::c_uint {
3749 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
3750 }
3751
3752 #[inline]
3753 pub fn set__faceEdges(&mut self, val: ::std::os::raw::c_uint) {
3754 unsafe {
3755 let val: u32 = ::std::mem::transmute(val);
3756 self._bitfield_1.set(1usize, 1u8, val as u64)
3757 }
3758 }
3759
3760 #[inline]
3761 pub unsafe fn _faceEdges_raw(this: *const Self) -> ::std::os::raw::c_uint {
3762 unsafe {
3763 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3764 ::std::ptr::addr_of!((*this)._bitfield_1),
3765 1usize,
3766 1u8,
3767 ) as u32)
3768 }
3769 }
3770
3771 #[inline]
3772 pub unsafe fn set__faceEdges_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3773 unsafe {
3774 let val: u32 = ::std::mem::transmute(val);
3775 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3776 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3777 1usize,
3778 1u8,
3779 val as u64,
3780 )
3781 }
3782 }
3783
3784 #[inline]
3785 pub fn _edgeVertices(&self) -> ::std::os::raw::c_uint {
3786 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
3787 }
3788
3789 #[inline]
3790 pub fn set__edgeVertices(&mut self, val: ::std::os::raw::c_uint) {
3791 unsafe {
3792 let val: u32 = ::std::mem::transmute(val);
3793 self._bitfield_1.set(2usize, 1u8, val as u64)
3794 }
3795 }
3796
3797 #[inline]
3798 pub unsafe fn _edgeVertices_raw(this: *const Self) -> ::std::os::raw::c_uint {
3799 unsafe {
3800 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3801 ::std::ptr::addr_of!((*this)._bitfield_1),
3802 2usize,
3803 1u8,
3804 ) as u32)
3805 }
3806 }
3807
3808 #[inline]
3809 pub unsafe fn set__edgeVertices_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3810 unsafe {
3811 let val: u32 = ::std::mem::transmute(val);
3812 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3813 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3814 2usize,
3815 1u8,
3816 val as u64,
3817 )
3818 }
3819 }
3820
3821 #[inline]
3822 pub fn _edgeFaces(&self) -> ::std::os::raw::c_uint {
3823 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
3824 }
3825
3826 #[inline]
3827 pub fn set__edgeFaces(&mut self, val: ::std::os::raw::c_uint) {
3828 unsafe {
3829 let val: u32 = ::std::mem::transmute(val);
3830 self._bitfield_1.set(3usize, 1u8, val as u64)
3831 }
3832 }
3833
3834 #[inline]
3835 pub unsafe fn _edgeFaces_raw(this: *const Self) -> ::std::os::raw::c_uint {
3836 unsafe {
3837 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3838 ::std::ptr::addr_of!((*this)._bitfield_1),
3839 3usize,
3840 1u8,
3841 ) as u32)
3842 }
3843 }
3844
3845 #[inline]
3846 pub unsafe fn set__edgeFaces_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3847 unsafe {
3848 let val: u32 = ::std::mem::transmute(val);
3849 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3850 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3851 3usize,
3852 1u8,
3853 val as u64,
3854 )
3855 }
3856 }
3857
3858 #[inline]
3859 pub fn _vertexFaces(&self) -> ::std::os::raw::c_uint {
3860 unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
3861 }
3862
3863 #[inline]
3864 pub fn set__vertexFaces(&mut self, val: ::std::os::raw::c_uint) {
3865 unsafe {
3866 let val: u32 = ::std::mem::transmute(val);
3867 self._bitfield_1.set(4usize, 1u8, val as u64)
3868 }
3869 }
3870
3871 #[inline]
3872 pub unsafe fn _vertexFaces_raw(this: *const Self) -> ::std::os::raw::c_uint {
3873 unsafe {
3874 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3875 ::std::ptr::addr_of!((*this)._bitfield_1),
3876 4usize,
3877 1u8,
3878 ) as u32)
3879 }
3880 }
3881
3882 #[inline]
3883 pub unsafe fn set__vertexFaces_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3884 unsafe {
3885 let val: u32 = ::std::mem::transmute(val);
3886 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3887 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3888 4usize,
3889 1u8,
3890 val as u64,
3891 )
3892 }
3893 }
3894
3895 #[inline]
3896 pub fn _vertexEdges(&self) -> ::std::os::raw::c_uint {
3897 unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
3898 }
3899
3900 #[inline]
3901 pub fn set__vertexEdges(&mut self, val: ::std::os::raw::c_uint) {
3902 unsafe {
3903 let val: u32 = ::std::mem::transmute(val);
3904 self._bitfield_1.set(5usize, 1u8, val as u64)
3905 }
3906 }
3907
3908 #[inline]
3909 pub unsafe fn _vertexEdges_raw(this: *const Self) -> ::std::os::raw::c_uint {
3910 unsafe {
3911 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3912 ::std::ptr::addr_of!((*this)._bitfield_1),
3913 5usize,
3914 1u8,
3915 ) as u32)
3916 }
3917 }
3918
3919 #[inline]
3920 pub unsafe fn set__vertexEdges_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3921 unsafe {
3922 let val: u32 = ::std::mem::transmute(val);
3923 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3924 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3925 5usize,
3926 1u8,
3927 val as u64,
3928 )
3929 }
3930 }
3931
3932 #[inline]
3933 pub fn new_bitfield_1(
3934 _faceVertices: ::std::os::raw::c_uint,
3935 _faceEdges: ::std::os::raw::c_uint,
3936 _edgeVertices: ::std::os::raw::c_uint,
3937 _edgeFaces: ::std::os::raw::c_uint,
3938 _vertexFaces: ::std::os::raw::c_uint,
3939 _vertexEdges: ::std::os::raw::c_uint,
3940 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
3941 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
3942 __bindgen_bitfield_unit.set(0usize, 1u8, {
3943 let _faceVertices: u32 = unsafe { ::std::mem::transmute(_faceVertices) };
3944 _faceVertices as u64
3945 });
3946 __bindgen_bitfield_unit.set(1usize, 1u8, {
3947 let _faceEdges: u32 = unsafe { ::std::mem::transmute(_faceEdges) };
3948 _faceEdges as u64
3949 });
3950 __bindgen_bitfield_unit.set(2usize, 1u8, {
3951 let _edgeVertices: u32 = unsafe { ::std::mem::transmute(_edgeVertices) };
3952 _edgeVertices as u64
3953 });
3954 __bindgen_bitfield_unit.set(3usize, 1u8, {
3955 let _edgeFaces: u32 = unsafe { ::std::mem::transmute(_edgeFaces) };
3956 _edgeFaces as u64
3957 });
3958 __bindgen_bitfield_unit.set(4usize, 1u8, {
3959 let _vertexFaces: u32 = unsafe { ::std::mem::transmute(_vertexFaces) };
3960 _vertexFaces as u64
3961 });
3962 __bindgen_bitfield_unit.set(5usize, 1u8, {
3963 let _vertexEdges: u32 = unsafe { ::std::mem::transmute(_vertexEdges) };
3964 _vertexEdges as u64
3965 });
3966 __bindgen_bitfield_unit
3967 }
3968}
3969unsafe extern "C" {
3970 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement6refineENS3_7OptionsE"]
3971 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_refine(
3972 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
3973 options: OpenSubdiv_v3_7_0_Vtr_internal_Refinement_Options,
3974 );
3975}
3976unsafe extern "C" {
3977 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement28populateParentToChildMappingEv"]
3978 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateParentToChildMapping(
3979 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
3980 );
3981}
3982unsafe extern "C" {
3983 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement26populateParentChildIndicesEv"]
3984 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateParentChildIndices(
3985 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
3986 );
3987}
3988unsafe extern "C" {
3989 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal10Refinement25printParentToChildMappingEv"]
3990 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_printParentToChildMapping(
3991 this: *const OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
3992 );
3993}
3994unsafe extern "C" {
3995 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement29initializeSparseSelectionTagsEv"]
3996 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_initializeSparseSelectionTags(
3997 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
3998 );
3999}
4000unsafe extern "C" {
4001 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement31markSparseChildComponentIndicesEv"]
4002 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_markSparseChildComponentIndices(
4003 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4004 );
4005}
4006unsafe extern "C" {
4007 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement24markSparseVertexChildrenEv"]
4008 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_markSparseVertexChildren(
4009 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4010 );
4011}
4012unsafe extern "C" {
4013 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement22markSparseEdgeChildrenEv"]
4014 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_markSparseEdgeChildren(
4015 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4016 );
4017}
4018unsafe extern "C" {
4019 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement30initializeChildComponentCountsEv"]
4020 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_initializeChildComponentCounts(
4021 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4022 );
4023}
4024unsafe extern "C" {
4025 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement28populateChildToParentMappingEv"]
4026 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateChildToParentMapping(
4027 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4028 );
4029}
4030unsafe extern "C" {
4031 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement25populateFaceParentVectorsEPA4_KNS3_8ChildTagE"]
4032 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateFaceParentVectors(
4033 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4034 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4035 );
4036}
4037unsafe extern "C" {
4038 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement33populateFaceParentFromParentFacesEPA4_KNS3_8ChildTagE"]
4039 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateFaceParentFromParentFaces(
4040 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4041 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4042 );
4043}
4044unsafe extern "C" {
4045 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement25populateEdgeParentVectorsEPA4_KNS3_8ChildTagE"]
4046 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeParentVectors(
4047 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4048 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4049 );
4050}
4051unsafe extern "C" {
4052 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement33populateEdgeParentFromParentFacesEPA4_KNS3_8ChildTagE"]
4053 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeParentFromParentFaces(
4054 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4055 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4056 );
4057}
4058unsafe extern "C" {
4059 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement33populateEdgeParentFromParentEdgesEPA4_KNS3_8ChildTagE"]
4060 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeParentFromParentEdges(
4061 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4062 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4063 );
4064}
4065unsafe extern "C" {
4066 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement27populateVertexParentVectorsEPA4_KNS3_8ChildTagE"]
4067 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexParentVectors(
4068 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4069 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4070 );
4071}
4072unsafe extern "C" {
4073 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement35populateVertexParentFromParentFacesEPA4_KNS3_8ChildTagE"]
4074 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexParentFromParentFaces(
4075 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4076 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4077 );
4078}
4079unsafe extern "C" {
4080 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement35populateVertexParentFromParentEdgesEPA4_KNS3_8ChildTagE"]
4081 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexParentFromParentEdges(
4082 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4083 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4084 );
4085}
4086unsafe extern "C" {
4087 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement38populateVertexParentFromParentVerticesEPA4_KNS3_8ChildTagE"]
4088 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexParentFromParentVertices(
4089 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4090 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4091 );
4092}
4093unsafe extern "C" {
4094 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement22propagateComponentTagsEv"]
4095 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_propagateComponentTags(
4096 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4097 );
4098}
4099unsafe extern "C" {
4100 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement22populateFaceTagVectorsEv"]
4101 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateFaceTagVectors(
4102 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4103 );
4104}
4105unsafe extern "C" {
4106 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement31populateFaceTagsFromParentFacesEv"]
4107 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateFaceTagsFromParentFaces(
4108 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4109 );
4110}
4111unsafe extern "C" {
4112 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement22populateEdgeTagVectorsEv"]
4113 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeTagVectors(
4114 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4115 );
4116}
4117unsafe extern "C" {
4118 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement31populateEdgeTagsFromParentFacesEv"]
4119 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeTagsFromParentFaces(
4120 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4121 );
4122}
4123unsafe extern "C" {
4124 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement31populateEdgeTagsFromParentEdgesEv"]
4125 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeTagsFromParentEdges(
4126 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4127 );
4128}
4129unsafe extern "C" {
4130 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement24populateVertexTagVectorsEv"]
4131 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexTagVectors(
4132 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4133 );
4134}
4135unsafe extern "C" {
4136 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement33populateVertexTagsFromParentFacesEv"]
4137 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexTagsFromParentFaces(
4138 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4139 );
4140}
4141unsafe extern "C" {
4142 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement33populateVertexTagsFromParentEdgesEv"]
4143 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexTagsFromParentEdges(
4144 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4145 );
4146}
4147unsafe extern "C" {
4148 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement36populateVertexTagsFromParentVerticesEv"]
4149 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexTagsFromParentVertices(
4150 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4151 );
4152}
4153unsafe extern "C" {
4154 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement17subdivideTopologyERKNS3_9RelationsE"]
4155 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_subdivideTopology(
4156 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4157 relationsToSubdivide: *const OpenSubdiv_v3_7_0_Vtr_internal_Refinement_Relations,
4158 );
4159}
4160unsafe extern "C" {
4161 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement24subdivideSharpnessValuesEv"]
4162 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_subdivideSharpnessValues(
4163 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4164 );
4165}
4166unsafe extern "C" {
4167 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement24subdivideVertexSharpnessEv"]
4168 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_subdivideVertexSharpness(
4169 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4170 );
4171}
4172unsafe extern "C" {
4173 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement22subdivideEdgeSharpnessEv"]
4174 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_subdivideEdgeSharpness(
4175 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4176 );
4177}
4178unsafe extern "C" {
4179 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement27reclassifySemisharpVerticesEv"]
4180 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_reclassifySemisharpVertices(
4181 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4182 );
4183}
4184unsafe extern "C" {
4185 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10Refinement21subdivideFVarChannelsEv"]
4186 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_subdivideFVarChannels(
4187 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4188 );
4189}
4190unsafe extern "C" {
4191 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10RefinementC2ERKNS2_5LevelERS4_RKNS0_3Sdc7OptionsE"]
4192 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_Refinement(
4193 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4194 parent: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
4195 child: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
4196 schemeOptions: *const OpenSubdiv_v3_7_0_Sdc_Options,
4197 );
4198}
4199impl OpenSubdiv_v3_7_0_Vtr_internal_Refinement {
4200 #[inline]
4201 pub unsafe fn refine(&mut self, options: OpenSubdiv_v3_7_0_Vtr_internal_Refinement_Options) {
4202 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_refine(self, options)
4203 }
4204
4205 #[inline]
4206 pub unsafe fn populateParentToChildMapping(&mut self) {
4207 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateParentToChildMapping(self)
4208 }
4209
4210 #[inline]
4211 pub unsafe fn populateParentChildIndices(&mut self) {
4212 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateParentChildIndices(self)
4213 }
4214
4215 #[inline]
4216 pub unsafe fn printParentToChildMapping(&self) {
4217 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_printParentToChildMapping(self)
4218 }
4219
4220 #[inline]
4221 pub unsafe fn initializeSparseSelectionTags(&mut self) {
4222 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_initializeSparseSelectionTags(self)
4223 }
4224
4225 #[inline]
4226 pub unsafe fn markSparseChildComponentIndices(&mut self) {
4227 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_markSparseChildComponentIndices(self)
4228 }
4229
4230 #[inline]
4231 pub unsafe fn markSparseVertexChildren(&mut self) {
4232 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_markSparseVertexChildren(self)
4233 }
4234
4235 #[inline]
4236 pub unsafe fn markSparseEdgeChildren(&mut self) {
4237 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_markSparseEdgeChildren(self)
4238 }
4239
4240 #[inline]
4241 pub unsafe fn initializeChildComponentCounts(&mut self) {
4242 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_initializeChildComponentCounts(self)
4243 }
4244
4245 #[inline]
4246 pub unsafe fn populateChildToParentMapping(&mut self) {
4247 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateChildToParentMapping(self)
4248 }
4249
4250 #[inline]
4251 pub unsafe fn populateFaceParentVectors(
4252 &mut self,
4253 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4254 ) {
4255 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateFaceParentVectors(self, initialChildTags)
4256 }
4257
4258 #[inline]
4259 pub unsafe fn populateFaceParentFromParentFaces(
4260 &mut self,
4261 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4262 ) {
4263 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateFaceParentFromParentFaces(
4264 self,
4265 initialChildTags,
4266 )
4267 }
4268
4269 #[inline]
4270 pub unsafe fn populateEdgeParentVectors(
4271 &mut self,
4272 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4273 ) {
4274 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeParentVectors(self, initialChildTags)
4275 }
4276
4277 #[inline]
4278 pub unsafe fn populateEdgeParentFromParentFaces(
4279 &mut self,
4280 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4281 ) {
4282 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeParentFromParentFaces(
4283 self,
4284 initialChildTags,
4285 )
4286 }
4287
4288 #[inline]
4289 pub unsafe fn populateEdgeParentFromParentEdges(
4290 &mut self,
4291 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4292 ) {
4293 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeParentFromParentEdges(
4294 self,
4295 initialChildTags,
4296 )
4297 }
4298
4299 #[inline]
4300 pub unsafe fn populateVertexParentVectors(
4301 &mut self,
4302 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4303 ) {
4304 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexParentVectors(
4305 self,
4306 initialChildTags,
4307 )
4308 }
4309
4310 #[inline]
4311 pub unsafe fn populateVertexParentFromParentFaces(
4312 &mut self,
4313 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4314 ) {
4315 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexParentFromParentFaces(
4316 self,
4317 initialChildTags,
4318 )
4319 }
4320
4321 #[inline]
4322 pub unsafe fn populateVertexParentFromParentEdges(
4323 &mut self,
4324 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4325 ) {
4326 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexParentFromParentEdges(
4327 self,
4328 initialChildTags,
4329 )
4330 }
4331
4332 #[inline]
4333 pub unsafe fn populateVertexParentFromParentVertices(
4334 &mut self,
4335 initialChildTags: *const [OpenSubdiv_v3_7_0_Vtr_internal_Refinement_ChildTag; 4usize],
4336 ) {
4337 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexParentFromParentVertices(
4338 self,
4339 initialChildTags,
4340 )
4341 }
4342
4343 #[inline]
4344 pub unsafe fn propagateComponentTags(&mut self) {
4345 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_propagateComponentTags(self)
4346 }
4347
4348 #[inline]
4349 pub unsafe fn populateFaceTagVectors(&mut self) {
4350 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateFaceTagVectors(self)
4351 }
4352
4353 #[inline]
4354 pub unsafe fn populateFaceTagsFromParentFaces(&mut self) {
4355 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateFaceTagsFromParentFaces(self)
4356 }
4357
4358 #[inline]
4359 pub unsafe fn populateEdgeTagVectors(&mut self) {
4360 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeTagVectors(self)
4361 }
4362
4363 #[inline]
4364 pub unsafe fn populateEdgeTagsFromParentFaces(&mut self) {
4365 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeTagsFromParentFaces(self)
4366 }
4367
4368 #[inline]
4369 pub unsafe fn populateEdgeTagsFromParentEdges(&mut self) {
4370 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateEdgeTagsFromParentEdges(self)
4371 }
4372
4373 #[inline]
4374 pub unsafe fn populateVertexTagVectors(&mut self) {
4375 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexTagVectors(self)
4376 }
4377
4378 #[inline]
4379 pub unsafe fn populateVertexTagsFromParentFaces(&mut self) {
4380 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexTagsFromParentFaces(self)
4381 }
4382
4383 #[inline]
4384 pub unsafe fn populateVertexTagsFromParentEdges(&mut self) {
4385 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexTagsFromParentEdges(self)
4386 }
4387
4388 #[inline]
4389 pub unsafe fn populateVertexTagsFromParentVertices(&mut self) {
4390 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_populateVertexTagsFromParentVertices(self)
4391 }
4392
4393 #[inline]
4394 pub unsafe fn subdivideTopology(
4395 &mut self,
4396 relationsToSubdivide: *const OpenSubdiv_v3_7_0_Vtr_internal_Refinement_Relations,
4397 ) {
4398 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_subdivideTopology(self, relationsToSubdivide)
4399 }
4400
4401 #[inline]
4402 pub unsafe fn subdivideSharpnessValues(&mut self) {
4403 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_subdivideSharpnessValues(self)
4404 }
4405
4406 #[inline]
4407 pub unsafe fn subdivideVertexSharpness(&mut self) {
4408 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_subdivideVertexSharpness(self)
4409 }
4410
4411 #[inline]
4412 pub unsafe fn subdivideEdgeSharpness(&mut self) {
4413 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_subdivideEdgeSharpness(self)
4414 }
4415
4416 #[inline]
4417 pub unsafe fn reclassifySemisharpVertices(&mut self) {
4418 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_reclassifySemisharpVertices(self)
4419 }
4420
4421 #[inline]
4422 pub unsafe fn subdivideFVarChannels(&mut self) {
4423 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_subdivideFVarChannels(self)
4424 }
4425
4426 #[inline]
4427 pub unsafe fn new(
4428 parent: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
4429 child: *mut OpenSubdiv_v3_7_0_Vtr_internal_Level,
4430 schemeOptions: *const OpenSubdiv_v3_7_0_Sdc_Options,
4431 ) -> Self {
4432 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
4433 OpenSubdiv_v3_7_0_Vtr_internal_Refinement_Refinement(
4434 __bindgen_tmp.as_mut_ptr(),
4435 parent,
4436 child,
4437 schemeOptions,
4438 );
4439 __bindgen_tmp.assume_init()
4440 }
4441}
4442unsafe extern "C" {
4443 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal10RefinementD1Ev"]
4444 pub fn OpenSubdiv_v3_7_0_Vtr_internal_Refinement_Refinement_destructor(
4445 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4446 );
4447}
4448#[repr(C)]
4449pub struct OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement {
4450 pub _refinement: *const OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4451 pub _parentLevel: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
4452 pub _parentFVar: *const OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
4453 pub _childLevel: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
4454 pub _childFVar: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
4455 pub _childValueParentSource: __BindgenOpaqueArray<u64, 3usize>,
4456}
4457unsafe extern "C" {
4458 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement19getFractionalWeightEitit"]
4459 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_getFractionalWeight(
4460 this: *const OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4461 pVert: OpenSubdiv_v3_7_0_Vtr_Index,
4462 pSibling: OpenSubdiv_v3_7_0_Vtr_LocalIndex,
4463 cVert: OpenSubdiv_v3_7_0_Vtr_Index,
4464 cSibling: OpenSubdiv_v3_7_0_Vtr_LocalIndex,
4465 ) -> f32;
4466}
4467unsafe extern "C" {
4468 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement15applyRefinementEv"]
4469 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_applyRefinement(
4470 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4471 );
4472}
4473unsafe extern "C" {
4474 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement30estimateAndAllocateChildValuesEv"]
4475 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_estimateAndAllocateChildValues(
4476 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4477 );
4478}
4479unsafe extern "C" {
4480 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement19populateChildValuesEv"]
4481 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValues(
4482 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4483 );
4484}
4485unsafe extern "C" {
4486 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement35populateChildValuesFromFaceVerticesEv"]
4487 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValuesFromFaceVertices(
4488 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4489 );
4490}
4491unsafe extern "C" {
4492 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement35populateChildValuesFromEdgeVerticesEv"]
4493 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValuesFromEdgeVertices(
4494 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4495 );
4496}
4497unsafe extern "C" {
4498 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement32populateChildValuesForEdgeVertexEii"]
4499 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValuesForEdgeVertex(
4500 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4501 cVert: OpenSubdiv_v3_7_0_Vtr_Index,
4502 pEdge: OpenSubdiv_v3_7_0_Vtr_Index,
4503 ) -> ::std::os::raw::c_int;
4504}
4505unsafe extern "C" {
4506 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement37populateChildValuesFromVertexVerticesEv"]
4507 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValuesFromVertexVertices(
4508 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4509 );
4510}
4511unsafe extern "C" {
4512 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement34populateChildValuesForVertexVertexEii"]
4513 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValuesForVertexVertex(
4514 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4515 cVert: OpenSubdiv_v3_7_0_Vtr_Index,
4516 pVert: OpenSubdiv_v3_7_0_Vtr_Index,
4517 ) -> ::std::os::raw::c_int;
4518}
4519unsafe extern "C" {
4520 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement26trimAndFinalizeChildValuesEv"]
4521 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_trimAndFinalizeChildValues(
4522 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4523 );
4524}
4525unsafe extern "C" {
4526 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement17propagateEdgeTagsEv"]
4527 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_propagateEdgeTags(
4528 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4529 );
4530}
4531unsafe extern "C" {
4532 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement18propagateValueTagsEv"]
4533 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_propagateValueTags(
4534 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4535 );
4536}
4537unsafe extern "C" {
4538 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement21propagateValueCreasesEv"]
4539 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_propagateValueCreases(
4540 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4541 );
4542}
4543unsafe extern "C" {
4544 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinement25reclassifySemisharpValuesEv"]
4545 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_reclassifySemisharpValues(
4546 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4547 );
4548}
4549unsafe extern "C" {
4550 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinementC1ERKNS2_10RefinementERNS2_9FVarLevelES8_"]
4551 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_FVarRefinement(
4552 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4553 refinement: *const OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4554 parent: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
4555 child: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
4556 );
4557}
4558unsafe extern "C" {
4559 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Vtr8internal14FVarRefinementD1Ev"]
4560 pub fn OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_FVarRefinement_destructor(
4561 this: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement,
4562 );
4563}
4564impl OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement {
4565 #[inline]
4566 pub unsafe fn getFractionalWeight(
4567 &self,
4568 pVert: OpenSubdiv_v3_7_0_Vtr_Index,
4569 pSibling: OpenSubdiv_v3_7_0_Vtr_LocalIndex,
4570 cVert: OpenSubdiv_v3_7_0_Vtr_Index,
4571 cSibling: OpenSubdiv_v3_7_0_Vtr_LocalIndex,
4572 ) -> f32 {
4573 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_getFractionalWeight(
4574 self, pVert, pSibling, cVert, cSibling,
4575 )
4576 }
4577
4578 #[inline]
4579 pub unsafe fn applyRefinement(&mut self) {
4580 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_applyRefinement(self)
4581 }
4582
4583 #[inline]
4584 pub unsafe fn estimateAndAllocateChildValues(&mut self) {
4585 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_estimateAndAllocateChildValues(self)
4586 }
4587
4588 #[inline]
4589 pub unsafe fn populateChildValues(&mut self) {
4590 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValues(self)
4591 }
4592
4593 #[inline]
4594 pub unsafe fn populateChildValuesFromFaceVertices(&mut self) {
4595 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValuesFromFaceVertices(self)
4596 }
4597
4598 #[inline]
4599 pub unsafe fn populateChildValuesFromEdgeVertices(&mut self) {
4600 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValuesFromEdgeVertices(self)
4601 }
4602
4603 #[inline]
4604 pub unsafe fn populateChildValuesForEdgeVertex(
4605 &mut self,
4606 cVert: OpenSubdiv_v3_7_0_Vtr_Index,
4607 pEdge: OpenSubdiv_v3_7_0_Vtr_Index,
4608 ) -> ::std::os::raw::c_int {
4609 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValuesForEdgeVertex(
4610 self, cVert, pEdge,
4611 )
4612 }
4613
4614 #[inline]
4615 pub unsafe fn populateChildValuesFromVertexVertices(&mut self) {
4616 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValuesFromVertexVertices(self)
4617 }
4618
4619 #[inline]
4620 pub unsafe fn populateChildValuesForVertexVertex(
4621 &mut self,
4622 cVert: OpenSubdiv_v3_7_0_Vtr_Index,
4623 pVert: OpenSubdiv_v3_7_0_Vtr_Index,
4624 ) -> ::std::os::raw::c_int {
4625 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_populateChildValuesForVertexVertex(
4626 self, cVert, pVert,
4627 )
4628 }
4629
4630 #[inline]
4631 pub unsafe fn trimAndFinalizeChildValues(&mut self) {
4632 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_trimAndFinalizeChildValues(self)
4633 }
4634
4635 #[inline]
4636 pub unsafe fn propagateEdgeTags(&mut self) {
4637 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_propagateEdgeTags(self)
4638 }
4639
4640 #[inline]
4641 pub unsafe fn propagateValueTags(&mut self) {
4642 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_propagateValueTags(self)
4643 }
4644
4645 #[inline]
4646 pub unsafe fn propagateValueCreases(&mut self) {
4647 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_propagateValueCreases(self)
4648 }
4649
4650 #[inline]
4651 pub unsafe fn reclassifySemisharpValues(&mut self) {
4652 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_reclassifySemisharpValues(self)
4653 }
4654
4655 #[inline]
4656 pub unsafe fn new(
4657 refinement: *const OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4658 parent: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
4659 child: *mut OpenSubdiv_v3_7_0_Vtr_internal_FVarLevel,
4660 ) -> Self {
4661 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
4662 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_FVarRefinement(
4663 __bindgen_tmp.as_mut_ptr(),
4664 refinement,
4665 parent,
4666 child,
4667 );
4668 __bindgen_tmp.assume_init()
4669 }
4670
4671 #[inline]
4672 pub unsafe fn destruct(&mut self) {
4673 OpenSubdiv_v3_7_0_Vtr_internal_FVarRefinement_FVarRefinement_destructor(self)
4674 }
4675}
4676pub type OpenSubdiv_v3_7_0_Vtr_internal_StackBuffer_size_type = ::std::os::raw::c_uint;
4677#[repr(C)]
4678#[derive(Debug, Hash, PartialEq, Eq)]
4679pub struct OpenSubdiv_v3_7_0_Vtr_internal_FaceInterface {
4680 pub _vertCount: ::std::os::raw::c_int,
4681}
4682#[repr(C)]
4683#[derive(Debug, Hash, PartialEq, Eq)]
4684pub struct OpenSubdiv_v3_7_0_Vtr_internal_EdgeInterface {
4685 pub _level: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
4686 pub _eIndex: ::std::os::raw::c_int,
4687}
4688#[repr(C)]
4689#[derive(Debug, Hash, PartialEq, Eq)]
4690pub struct OpenSubdiv_v3_7_0_Vtr_internal_VertexInterface {
4691 pub _parent: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
4692 pub _child: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
4693 pub _pIndex: ::std::os::raw::c_int,
4694 pub _cIndex: ::std::os::raw::c_int,
4695 pub _eCount: ::std::os::raw::c_int,
4696 pub _fCount: ::std::os::raw::c_int,
4697}
4698#[repr(C)]
4699#[derive(Debug, Copy, Clone)]
4700pub struct OpenSubdiv_v3_7_0_Vtr_internal_SparseSelector {
4701 _unused: [u8; 0],
4702}
4703pub type OpenSubdiv_v3_7_0_Far_Index = OpenSubdiv_v3_7_0_Vtr_Index;
4704pub type OpenSubdiv_v3_7_0_Far_LocalIndex = OpenSubdiv_v3_7_0_Vtr_LocalIndex;
4705pub type OpenSubdiv_v3_7_0_Far_IndexArray = OpenSubdiv_v3_7_0_Vtr_IndexArray;
4706pub type OpenSubdiv_v3_7_0_Far_LocalIndexArray = OpenSubdiv_v3_7_0_Vtr_LocalIndexArray;
4707pub type OpenSubdiv_v3_7_0_Far_ConstIndexArray = OpenSubdiv_v3_7_0_Vtr_ConstIndexArray;
4708pub type OpenSubdiv_v3_7_0_Far_ConstLocalIndexArray = OpenSubdiv_v3_7_0_Vtr_ConstLocalIndexArray;
4709#[doc = "< No error. Move along."]
4710pub const OpenSubdiv_v3_7_0_Far_ErrorType_FAR_NO_ERROR: OpenSubdiv_v3_7_0_Far_ErrorType = 0;
4711#[doc = "< Issue a fatal error and end the program."]
4712pub const OpenSubdiv_v3_7_0_Far_ErrorType_FAR_FATAL_ERROR: OpenSubdiv_v3_7_0_Far_ErrorType = 1;
4713#[doc = "< Issue an internal programming error, but continue execution."]
4714pub const OpenSubdiv_v3_7_0_Far_ErrorType_FAR_INTERNAL_CODING_ERROR:
4715 OpenSubdiv_v3_7_0_Far_ErrorType = 2;
4716#[doc = "< Issue a generic programming error, but continue execution."]
4717pub const OpenSubdiv_v3_7_0_Far_ErrorType_FAR_CODING_ERROR: OpenSubdiv_v3_7_0_Far_ErrorType = 3;
4718#[doc = "< Issue a generic runtime error, but continue execution."]
4719pub const OpenSubdiv_v3_7_0_Far_ErrorType_FAR_RUNTIME_ERROR: OpenSubdiv_v3_7_0_Far_ErrorType = 4;
4720pub type OpenSubdiv_v3_7_0_Far_ErrorType = ::std::os::raw::c_uint;
4721#[doc = " \\brief The error callback function type (default is \"printf\")"]
4722pub type OpenSubdiv_v3_7_0_Far_ErrorCallbackFunc = ::std::option::Option<
4723 unsafe extern "C" fn(
4724 err: OpenSubdiv_v3_7_0_Far_ErrorType,
4725 message: *const ::std::os::raw::c_char,
4726 ),
4727>;
4728#[doc = " \\brief The warning callback function type (default is \"printf\")"]
4729pub type OpenSubdiv_v3_7_0_Far_WarningCallbackFunc =
4730 ::std::option::Option<unsafe extern "C" fn(message: *const ::std::os::raw::c_char)>;
4731#[doc = "\n \\brief An interface for accessing data in a specific level of a refined topology hierarchy.\n\n TopologyLevel provides an interface to data in a specific level of a topology hierarchy.\n Instances of TopologyLevel are created and owned by a TopologyRefiner,\n which will return const-references to them. Such references are only valid during the\n lifetime of the TopologyRefiner that created and returned them, and only for a given refinement,\n i.e. if the TopologyRefiner is re-refined, any references to TopoologyLevels are invalidated.\n"]
4732#[repr(C)]
4733#[derive(Debug, Hash, PartialEq, Eq)]
4734pub struct OpenSubdiv_v3_7_0_Far_TopologyLevel {
4735 pub _level: *const OpenSubdiv_v3_7_0_Vtr_internal_Level,
4736 pub _refToParent: *const OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4737 pub _refToChild: *const OpenSubdiv_v3_7_0_Vtr_internal_Refinement,
4738}
4739#[repr(C)]
4740#[derive(Debug, Copy, Clone)]
4741pub struct OpenSubdiv_v3_7_0_Far_internal_FeatureMask {
4742 _unused: [u8; 0],
4743}
4744#[doc = "\n \\brief Stores topology data for a specified set of refinement options.\n"]
4745#[repr(C)]
4746pub struct OpenSubdiv_v3_7_0_Far_TopologyRefiner {
4747 pub _subdivType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
4748 pub _subdivOptions: OpenSubdiv_v3_7_0_Sdc_Options,
4749 pub _bitfield_align_1: [u8; 0],
4750 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
4751 pub _uniformOptions: OpenSubdiv_v3_7_0_Far_TopologyRefiner_UniformOptions,
4752 pub _adaptiveOptions: OpenSubdiv_v3_7_0_Far_TopologyRefiner_AdaptiveOptions,
4753 pub _totalVertices: ::std::os::raw::c_int,
4754 pub _totalEdges: ::std::os::raw::c_int,
4755 pub _totalFaces: ::std::os::raw::c_int,
4756 pub _totalFaceVertices: ::std::os::raw::c_int,
4757 pub _maxValence: ::std::os::raw::c_int,
4758 pub _baseLevelOwned: bool,
4759 pub _levels: __BindgenOpaqueArray<u64, 3usize>,
4760 pub _refinements: __BindgenOpaqueArray<u64, 3usize>,
4761 pub _farLevels: __BindgenOpaqueArray<u64, 3usize>,
4762}
4763#[doc = " \\brief Uniform refinement options\n\n Options for uniform refinement, including the number of levels, vertex\n ordering and generation of topology information.\n\n Note the impact of the option to generate fullTopologyInLastLevel. Given\n subsequent levels of uniform refinement typically reguire 4x the data\n of the previous level, only the minimum amount of data is generated in the\n last level by default, i.e. a vertex and face-vertex list. If requiring\n topology traversal of the last level, e.g. inspecting edges or incident\n faces of vertices, the option to generate full topology in the last\n level should be enabled.\n"]
4764#[repr(C)]
4765#[repr(align(4))]
4766#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4767pub struct OpenSubdiv_v3_7_0_Far_TopologyRefiner_UniformOptions {
4768 pub _bitfield_align_1: [u8; 0],
4769 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
4770 pub __bindgen_padding_0: [u8; 3usize],
4771}
4772impl OpenSubdiv_v3_7_0_Far_TopologyRefiner_UniformOptions {
4773 #[inline]
4774 pub fn refinementLevel(&self) -> ::std::os::raw::c_uint {
4775 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
4776 }
4777
4778 #[inline]
4779 pub fn set_refinementLevel(&mut self, val: ::std::os::raw::c_uint) {
4780 unsafe {
4781 let val: u32 = ::std::mem::transmute(val);
4782 self._bitfield_1.set(0usize, 4u8, val as u64)
4783 }
4784 }
4785
4786 #[inline]
4787 pub unsafe fn refinementLevel_raw(this: *const Self) -> ::std::os::raw::c_uint {
4788 unsafe {
4789 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
4790 ::std::ptr::addr_of!((*this)._bitfield_1),
4791 0usize,
4792 4u8,
4793 ) as u32)
4794 }
4795 }
4796
4797 #[inline]
4798 pub unsafe fn set_refinementLevel_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
4799 unsafe {
4800 let val: u32 = ::std::mem::transmute(val);
4801 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
4802 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
4803 0usize,
4804 4u8,
4805 val as u64,
4806 )
4807 }
4808 }
4809
4810 #[inline]
4811 pub fn orderVerticesFromFacesFirst(&self) -> ::std::os::raw::c_uint {
4812 unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
4813 }
4814
4815 #[inline]
4816 pub fn set_orderVerticesFromFacesFirst(&mut self, val: ::std::os::raw::c_uint) {
4817 unsafe {
4818 let val: u32 = ::std::mem::transmute(val);
4819 self._bitfield_1.set(4usize, 1u8, val as u64)
4820 }
4821 }
4822
4823 #[inline]
4824 pub unsafe fn orderVerticesFromFacesFirst_raw(this: *const Self) -> ::std::os::raw::c_uint {
4825 unsafe {
4826 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
4827 ::std::ptr::addr_of!((*this)._bitfield_1),
4828 4usize,
4829 1u8,
4830 ) as u32)
4831 }
4832 }
4833
4834 #[inline]
4835 pub unsafe fn set_orderVerticesFromFacesFirst_raw(
4836 this: *mut Self,
4837 val: ::std::os::raw::c_uint,
4838 ) {
4839 unsafe {
4840 let val: u32 = ::std::mem::transmute(val);
4841 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
4842 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
4843 4usize,
4844 1u8,
4845 val as u64,
4846 )
4847 }
4848 }
4849
4850 #[inline]
4851 pub fn fullTopologyInLastLevel(&self) -> ::std::os::raw::c_uint {
4852 unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
4853 }
4854
4855 #[inline]
4856 pub fn set_fullTopologyInLastLevel(&mut self, val: ::std::os::raw::c_uint) {
4857 unsafe {
4858 let val: u32 = ::std::mem::transmute(val);
4859 self._bitfield_1.set(5usize, 1u8, val as u64)
4860 }
4861 }
4862
4863 #[inline]
4864 pub unsafe fn fullTopologyInLastLevel_raw(this: *const Self) -> ::std::os::raw::c_uint {
4865 unsafe {
4866 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
4867 ::std::ptr::addr_of!((*this)._bitfield_1),
4868 5usize,
4869 1u8,
4870 ) as u32)
4871 }
4872 }
4873
4874 #[inline]
4875 pub unsafe fn set_fullTopologyInLastLevel_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
4876 unsafe {
4877 let val: u32 = ::std::mem::transmute(val);
4878 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
4879 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
4880 5usize,
4881 1u8,
4882 val as u64,
4883 )
4884 }
4885 }
4886
4887 #[inline]
4888 pub fn new_bitfield_1(
4889 refinementLevel: ::std::os::raw::c_uint,
4890 orderVerticesFromFacesFirst: ::std::os::raw::c_uint,
4891 fullTopologyInLastLevel: ::std::os::raw::c_uint,
4892 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
4893 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
4894 __bindgen_bitfield_unit.set(0usize, 4u8, {
4895 let refinementLevel: u32 = unsafe { ::std::mem::transmute(refinementLevel) };
4896 refinementLevel as u64
4897 });
4898 __bindgen_bitfield_unit.set(4usize, 1u8, {
4899 let orderVerticesFromFacesFirst: u32 =
4900 unsafe { ::std::mem::transmute(orderVerticesFromFacesFirst) };
4901 orderVerticesFromFacesFirst as u64
4902 });
4903 __bindgen_bitfield_unit.set(5usize, 1u8, {
4904 let fullTopologyInLastLevel: u32 =
4905 unsafe { ::std::mem::transmute(fullTopologyInLastLevel) };
4906 fullTopologyInLastLevel as u64
4907 });
4908 __bindgen_bitfield_unit
4909 }
4910}
4911#[doc = " \\brief Adaptive refinement options"]
4912#[repr(C)]
4913#[repr(align(4))]
4914#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4915pub struct OpenSubdiv_v3_7_0_Far_TopologyRefiner_AdaptiveOptions {
4916 pub _bitfield_align_1: [u8; 0],
4917 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
4918 pub __bindgen_padding_0: u16,
4919}
4920impl OpenSubdiv_v3_7_0_Far_TopologyRefiner_AdaptiveOptions {
4921 #[inline]
4922 pub fn isolationLevel(&self) -> ::std::os::raw::c_uint {
4923 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
4924 }
4925
4926 #[inline]
4927 pub fn set_isolationLevel(&mut self, val: ::std::os::raw::c_uint) {
4928 unsafe {
4929 let val: u32 = ::std::mem::transmute(val);
4930 self._bitfield_1.set(0usize, 4u8, val as u64)
4931 }
4932 }
4933
4934 #[inline]
4935 pub unsafe fn isolationLevel_raw(this: *const Self) -> ::std::os::raw::c_uint {
4936 unsafe {
4937 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
4938 ::std::ptr::addr_of!((*this)._bitfield_1),
4939 0usize,
4940 4u8,
4941 ) as u32)
4942 }
4943 }
4944
4945 #[inline]
4946 pub unsafe fn set_isolationLevel_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
4947 unsafe {
4948 let val: u32 = ::std::mem::transmute(val);
4949 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
4950 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
4951 0usize,
4952 4u8,
4953 val as u64,
4954 )
4955 }
4956 }
4957
4958 #[inline]
4959 pub fn secondaryLevel(&self) -> ::std::os::raw::c_uint {
4960 unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u32) }
4961 }
4962
4963 #[inline]
4964 pub fn set_secondaryLevel(&mut self, val: ::std::os::raw::c_uint) {
4965 unsafe {
4966 let val: u32 = ::std::mem::transmute(val);
4967 self._bitfield_1.set(4usize, 4u8, val as u64)
4968 }
4969 }
4970
4971 #[inline]
4972 pub unsafe fn secondaryLevel_raw(this: *const Self) -> ::std::os::raw::c_uint {
4973 unsafe {
4974 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
4975 ::std::ptr::addr_of!((*this)._bitfield_1),
4976 4usize,
4977 4u8,
4978 ) as u32)
4979 }
4980 }
4981
4982 #[inline]
4983 pub unsafe fn set_secondaryLevel_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
4984 unsafe {
4985 let val: u32 = ::std::mem::transmute(val);
4986 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
4987 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
4988 4usize,
4989 4u8,
4990 val as u64,
4991 )
4992 }
4993 }
4994
4995 #[inline]
4996 pub fn useSingleCreasePatch(&self) -> ::std::os::raw::c_uint {
4997 unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
4998 }
4999
5000 #[inline]
5001 pub fn set_useSingleCreasePatch(&mut self, val: ::std::os::raw::c_uint) {
5002 unsafe {
5003 let val: u32 = ::std::mem::transmute(val);
5004 self._bitfield_1.set(8usize, 1u8, val as u64)
5005 }
5006 }
5007
5008 #[inline]
5009 pub unsafe fn useSingleCreasePatch_raw(this: *const Self) -> ::std::os::raw::c_uint {
5010 unsafe {
5011 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5012 ::std::ptr::addr_of!((*this)._bitfield_1),
5013 8usize,
5014 1u8,
5015 ) as u32)
5016 }
5017 }
5018
5019 #[inline]
5020 pub unsafe fn set_useSingleCreasePatch_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
5021 unsafe {
5022 let val: u32 = ::std::mem::transmute(val);
5023 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5024 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5025 8usize,
5026 1u8,
5027 val as u64,
5028 )
5029 }
5030 }
5031
5032 #[inline]
5033 pub fn useInfSharpPatch(&self) -> ::std::os::raw::c_uint {
5034 unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
5035 }
5036
5037 #[inline]
5038 pub fn set_useInfSharpPatch(&mut self, val: ::std::os::raw::c_uint) {
5039 unsafe {
5040 let val: u32 = ::std::mem::transmute(val);
5041 self._bitfield_1.set(9usize, 1u8, val as u64)
5042 }
5043 }
5044
5045 #[inline]
5046 pub unsafe fn useInfSharpPatch_raw(this: *const Self) -> ::std::os::raw::c_uint {
5047 unsafe {
5048 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5049 ::std::ptr::addr_of!((*this)._bitfield_1),
5050 9usize,
5051 1u8,
5052 ) as u32)
5053 }
5054 }
5055
5056 #[inline]
5057 pub unsafe fn set_useInfSharpPatch_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
5058 unsafe {
5059 let val: u32 = ::std::mem::transmute(val);
5060 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5061 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5062 9usize,
5063 1u8,
5064 val as u64,
5065 )
5066 }
5067 }
5068
5069 #[inline]
5070 pub fn considerFVarChannels(&self) -> ::std::os::raw::c_uint {
5071 unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
5072 }
5073
5074 #[inline]
5075 pub fn set_considerFVarChannels(&mut self, val: ::std::os::raw::c_uint) {
5076 unsafe {
5077 let val: u32 = ::std::mem::transmute(val);
5078 self._bitfield_1.set(10usize, 1u8, val as u64)
5079 }
5080 }
5081
5082 #[inline]
5083 pub unsafe fn considerFVarChannels_raw(this: *const Self) -> ::std::os::raw::c_uint {
5084 unsafe {
5085 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5086 ::std::ptr::addr_of!((*this)._bitfield_1),
5087 10usize,
5088 1u8,
5089 ) as u32)
5090 }
5091 }
5092
5093 #[inline]
5094 pub unsafe fn set_considerFVarChannels_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
5095 unsafe {
5096 let val: u32 = ::std::mem::transmute(val);
5097 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5098 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5099 10usize,
5100 1u8,
5101 val as u64,
5102 )
5103 }
5104 }
5105
5106 #[inline]
5107 pub fn orderVerticesFromFacesFirst(&self) -> ::std::os::raw::c_uint {
5108 unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
5109 }
5110
5111 #[inline]
5112 pub fn set_orderVerticesFromFacesFirst(&mut self, val: ::std::os::raw::c_uint) {
5113 unsafe {
5114 let val: u32 = ::std::mem::transmute(val);
5115 self._bitfield_1.set(11usize, 1u8, val as u64)
5116 }
5117 }
5118
5119 #[inline]
5120 pub unsafe fn orderVerticesFromFacesFirst_raw(this: *const Self) -> ::std::os::raw::c_uint {
5121 unsafe {
5122 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5123 ::std::ptr::addr_of!((*this)._bitfield_1),
5124 11usize,
5125 1u8,
5126 ) as u32)
5127 }
5128 }
5129
5130 #[inline]
5131 pub unsafe fn set_orderVerticesFromFacesFirst_raw(
5132 this: *mut Self,
5133 val: ::std::os::raw::c_uint,
5134 ) {
5135 unsafe {
5136 let val: u32 = ::std::mem::transmute(val);
5137 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5138 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5139 11usize,
5140 1u8,
5141 val as u64,
5142 )
5143 }
5144 }
5145
5146 #[inline]
5147 pub fn new_bitfield_1(
5148 isolationLevel: ::std::os::raw::c_uint,
5149 secondaryLevel: ::std::os::raw::c_uint,
5150 useSingleCreasePatch: ::std::os::raw::c_uint,
5151 useInfSharpPatch: ::std::os::raw::c_uint,
5152 considerFVarChannels: ::std::os::raw::c_uint,
5153 orderVerticesFromFacesFirst: ::std::os::raw::c_uint,
5154 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
5155 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
5156 __bindgen_bitfield_unit.set(0usize, 4u8, {
5157 let isolationLevel: u32 = unsafe { ::std::mem::transmute(isolationLevel) };
5158 isolationLevel as u64
5159 });
5160 __bindgen_bitfield_unit.set(4usize, 4u8, {
5161 let secondaryLevel: u32 = unsafe { ::std::mem::transmute(secondaryLevel) };
5162 secondaryLevel as u64
5163 });
5164 __bindgen_bitfield_unit.set(8usize, 1u8, {
5165 let useSingleCreasePatch: u32 = unsafe { ::std::mem::transmute(useSingleCreasePatch) };
5166 useSingleCreasePatch as u64
5167 });
5168 __bindgen_bitfield_unit.set(9usize, 1u8, {
5169 let useInfSharpPatch: u32 = unsafe { ::std::mem::transmute(useInfSharpPatch) };
5170 useInfSharpPatch as u64
5171 });
5172 __bindgen_bitfield_unit.set(10usize, 1u8, {
5173 let considerFVarChannels: u32 = unsafe { ::std::mem::transmute(considerFVarChannels) };
5174 considerFVarChannels as u64
5175 });
5176 __bindgen_bitfield_unit.set(11usize, 1u8, {
5177 let orderVerticesFromFacesFirst: u32 =
5178 unsafe { ::std::mem::transmute(orderVerticesFromFacesFirst) };
5179 orderVerticesFromFacesFirst as u64
5180 });
5181 __bindgen_bitfield_unit
5182 }
5183}
5184unsafe extern "C" {
5185 #[doc = " \\brief Refine the topology uniformly\n\n This method applies uniform refinement to the level specified in the\n given UniformOptions.\n\n Note the impact of the UniformOption to generate fullTopologyInLastLevel\n and be sure it is assigned to satisfy the needs of the resulting refinement.\n\n @param options Options controlling uniform refinement\n"]
5186 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far15TopologyRefiner13RefineUniformENS2_14UniformOptionsE"]
5187 pub fn OpenSubdiv_v3_7_0_Far_TopologyRefiner_RefineUniform(
5188 this: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5189 options: OpenSubdiv_v3_7_0_Far_TopologyRefiner_UniformOptions,
5190 );
5191}
5192unsafe extern "C" {
5193 #[doc = " \\brief Feature Adaptive topology refinement\n\n @param options Options controlling adaptive refinement\n\n @param selectedFaces Limit adaptive refinement to the specified faces\n"]
5194 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far15TopologyRefiner14RefineAdaptiveENS2_15AdaptiveOptionsENS0_3Vtr10ConstArrayIiEE"]
5195 pub fn OpenSubdiv_v3_7_0_Far_TopologyRefiner_RefineAdaptive(
5196 this: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5197 options: OpenSubdiv_v3_7_0_Far_TopologyRefiner_AdaptiveOptions,
5198 selectedFaces: OpenSubdiv_v3_7_0_Far_ConstIndexArray,
5199 );
5200}
5201unsafe extern "C" {
5202 #[doc = " \\brief Unrefine the topology, keeping only the base level."]
5203 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far15TopologyRefiner8UnrefineEv"]
5204 pub fn OpenSubdiv_v3_7_0_Far_TopologyRefiner_Unrefine(
5205 this: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5206 );
5207}
5208unsafe extern "C" {
5209 #[doc = " \\brief Returns the total number of face-varying values in all levels"]
5210 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far15TopologyRefiner21GetNumFVarValuesTotalEi"]
5211 pub fn OpenSubdiv_v3_7_0_Far_TopologyRefiner_GetNumFVarValuesTotal(
5212 this: *const OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5213 channel: ::std::os::raw::c_int,
5214 ) -> ::std::os::raw::c_int;
5215}
5216unsafe extern "C" {
5217 #[doc = " \\brief Constructor"]
5218 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far15TopologyRefinerC1ENS0_3Sdc10SchemeTypeENS3_7OptionsE"]
5219 pub fn OpenSubdiv_v3_7_0_Far_TopologyRefiner_TopologyRefiner(
5220 this: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5221 type_: OpenSubdiv_v3_7_0_Sdc_SchemeType,
5222 options: OpenSubdiv_v3_7_0_Sdc_Options,
5223 );
5224}
5225unsafe extern "C" {
5226 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far15TopologyRefinerC1ERKS2_"]
5227 pub fn OpenSubdiv_v3_7_0_Far_TopologyRefiner_TopologyRefiner1(
5228 this: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5229 source: *const OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5230 );
5231}
5232unsafe extern "C" {
5233 #[doc = " \\brief Destructor"]
5234 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far15TopologyRefinerD1Ev"]
5235 pub fn OpenSubdiv_v3_7_0_Far_TopologyRefiner_TopologyRefiner_destructor(
5236 this: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5237 );
5238}
5239impl OpenSubdiv_v3_7_0_Far_TopologyRefiner {
5240 #[inline]
5241 pub fn _isUniform(&self) -> ::std::os::raw::c_uint {
5242 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
5243 }
5244
5245 #[inline]
5246 pub fn set__isUniform(&mut self, val: ::std::os::raw::c_uint) {
5247 unsafe {
5248 let val: u32 = ::std::mem::transmute(val);
5249 self._bitfield_1.set(0usize, 1u8, val as u64)
5250 }
5251 }
5252
5253 #[inline]
5254 pub unsafe fn _isUniform_raw(this: *const Self) -> ::std::os::raw::c_uint {
5255 unsafe {
5256 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5257 ::std::ptr::addr_of!((*this)._bitfield_1),
5258 0usize,
5259 1u8,
5260 ) as u32)
5261 }
5262 }
5263
5264 #[inline]
5265 pub unsafe fn set__isUniform_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
5266 unsafe {
5267 let val: u32 = ::std::mem::transmute(val);
5268 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5269 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5270 0usize,
5271 1u8,
5272 val as u64,
5273 )
5274 }
5275 }
5276
5277 #[inline]
5278 pub fn _hasHoles(&self) -> ::std::os::raw::c_uint {
5279 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
5280 }
5281
5282 #[inline]
5283 pub fn set__hasHoles(&mut self, val: ::std::os::raw::c_uint) {
5284 unsafe {
5285 let val: u32 = ::std::mem::transmute(val);
5286 self._bitfield_1.set(1usize, 1u8, val as u64)
5287 }
5288 }
5289
5290 #[inline]
5291 pub unsafe fn _hasHoles_raw(this: *const Self) -> ::std::os::raw::c_uint {
5292 unsafe {
5293 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5294 ::std::ptr::addr_of!((*this)._bitfield_1),
5295 1usize,
5296 1u8,
5297 ) as u32)
5298 }
5299 }
5300
5301 #[inline]
5302 pub unsafe fn set__hasHoles_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
5303 unsafe {
5304 let val: u32 = ::std::mem::transmute(val);
5305 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5306 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5307 1usize,
5308 1u8,
5309 val as u64,
5310 )
5311 }
5312 }
5313
5314 #[inline]
5315 pub fn _hasIrregFaces(&self) -> ::std::os::raw::c_uint {
5316 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
5317 }
5318
5319 #[inline]
5320 pub fn set__hasIrregFaces(&mut self, val: ::std::os::raw::c_uint) {
5321 unsafe {
5322 let val: u32 = ::std::mem::transmute(val);
5323 self._bitfield_1.set(2usize, 1u8, val as u64)
5324 }
5325 }
5326
5327 #[inline]
5328 pub unsafe fn _hasIrregFaces_raw(this: *const Self) -> ::std::os::raw::c_uint {
5329 unsafe {
5330 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5331 ::std::ptr::addr_of!((*this)._bitfield_1),
5332 2usize,
5333 1u8,
5334 ) as u32)
5335 }
5336 }
5337
5338 #[inline]
5339 pub unsafe fn set__hasIrregFaces_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
5340 unsafe {
5341 let val: u32 = ::std::mem::transmute(val);
5342 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5343 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5344 2usize,
5345 1u8,
5346 val as u64,
5347 )
5348 }
5349 }
5350
5351 #[inline]
5352 pub fn _regFaceSize(&self) -> ::std::os::raw::c_uint {
5353 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 3u8) as u32) }
5354 }
5355
5356 #[inline]
5357 pub fn set__regFaceSize(&mut self, val: ::std::os::raw::c_uint) {
5358 unsafe {
5359 let val: u32 = ::std::mem::transmute(val);
5360 self._bitfield_1.set(3usize, 3u8, val as u64)
5361 }
5362 }
5363
5364 #[inline]
5365 pub unsafe fn _regFaceSize_raw(this: *const Self) -> ::std::os::raw::c_uint {
5366 unsafe {
5367 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5368 ::std::ptr::addr_of!((*this)._bitfield_1),
5369 3usize,
5370 3u8,
5371 ) as u32)
5372 }
5373 }
5374
5375 #[inline]
5376 pub unsafe fn set__regFaceSize_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
5377 unsafe {
5378 let val: u32 = ::std::mem::transmute(val);
5379 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5380 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5381 3usize,
5382 3u8,
5383 val as u64,
5384 )
5385 }
5386 }
5387
5388 #[inline]
5389 pub fn _maxLevel(&self) -> ::std::os::raw::c_uint {
5390 unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 4u8) as u32) }
5391 }
5392
5393 #[inline]
5394 pub fn set__maxLevel(&mut self, val: ::std::os::raw::c_uint) {
5395 unsafe {
5396 let val: u32 = ::std::mem::transmute(val);
5397 self._bitfield_1.set(6usize, 4u8, val as u64)
5398 }
5399 }
5400
5401 #[inline]
5402 pub unsafe fn _maxLevel_raw(this: *const Self) -> ::std::os::raw::c_uint {
5403 unsafe {
5404 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5405 ::std::ptr::addr_of!((*this)._bitfield_1),
5406 6usize,
5407 4u8,
5408 ) as u32)
5409 }
5410 }
5411
5412 #[inline]
5413 pub unsafe fn set__maxLevel_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
5414 unsafe {
5415 let val: u32 = ::std::mem::transmute(val);
5416 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5417 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5418 6usize,
5419 4u8,
5420 val as u64,
5421 )
5422 }
5423 }
5424
5425 #[inline]
5426 pub fn new_bitfield_1(
5427 _isUniform: ::std::os::raw::c_uint,
5428 _hasHoles: ::std::os::raw::c_uint,
5429 _hasIrregFaces: ::std::os::raw::c_uint,
5430 _regFaceSize: ::std::os::raw::c_uint,
5431 _maxLevel: ::std::os::raw::c_uint,
5432 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
5433 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
5434 __bindgen_bitfield_unit.set(0usize, 1u8, {
5435 let _isUniform: u32 = unsafe { ::std::mem::transmute(_isUniform) };
5436 _isUniform as u64
5437 });
5438 __bindgen_bitfield_unit.set(1usize, 1u8, {
5439 let _hasHoles: u32 = unsafe { ::std::mem::transmute(_hasHoles) };
5440 _hasHoles as u64
5441 });
5442 __bindgen_bitfield_unit.set(2usize, 1u8, {
5443 let _hasIrregFaces: u32 = unsafe { ::std::mem::transmute(_hasIrregFaces) };
5444 _hasIrregFaces as u64
5445 });
5446 __bindgen_bitfield_unit.set(3usize, 3u8, {
5447 let _regFaceSize: u32 = unsafe { ::std::mem::transmute(_regFaceSize) };
5448 _regFaceSize as u64
5449 });
5450 __bindgen_bitfield_unit.set(6usize, 4u8, {
5451 let _maxLevel: u32 = unsafe { ::std::mem::transmute(_maxLevel) };
5452 _maxLevel as u64
5453 });
5454 __bindgen_bitfield_unit
5455 }
5456
5457 #[inline]
5458 pub unsafe fn RefineUniform(
5459 &mut self,
5460 options: OpenSubdiv_v3_7_0_Far_TopologyRefiner_UniformOptions,
5461 ) {
5462 OpenSubdiv_v3_7_0_Far_TopologyRefiner_RefineUniform(self, options)
5463 }
5464
5465 #[inline]
5466 pub unsafe fn RefineAdaptive(
5467 &mut self,
5468 options: OpenSubdiv_v3_7_0_Far_TopologyRefiner_AdaptiveOptions,
5469 selectedFaces: OpenSubdiv_v3_7_0_Far_ConstIndexArray,
5470 ) {
5471 OpenSubdiv_v3_7_0_Far_TopologyRefiner_RefineAdaptive(self, options, selectedFaces)
5472 }
5473
5474 #[inline]
5475 pub unsafe fn Unrefine(&mut self) {
5476 OpenSubdiv_v3_7_0_Far_TopologyRefiner_Unrefine(self)
5477 }
5478
5479 #[inline]
5480 pub unsafe fn GetNumFVarValuesTotal(
5481 &self,
5482 channel: ::std::os::raw::c_int,
5483 ) -> ::std::os::raw::c_int {
5484 OpenSubdiv_v3_7_0_Far_TopologyRefiner_GetNumFVarValuesTotal(self, channel)
5485 }
5486
5487 #[inline]
5488 pub unsafe fn new(
5489 type_: OpenSubdiv_v3_7_0_Sdc_SchemeType,
5490 options: OpenSubdiv_v3_7_0_Sdc_Options,
5491 ) -> Self {
5492 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
5493 OpenSubdiv_v3_7_0_Far_TopologyRefiner_TopologyRefiner(
5494 __bindgen_tmp.as_mut_ptr(),
5495 type_,
5496 options,
5497 );
5498 __bindgen_tmp.assume_init()
5499 }
5500
5501 #[inline]
5502 pub unsafe fn new1(source: *const OpenSubdiv_v3_7_0_Far_TopologyRefiner) -> Self {
5503 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
5504 OpenSubdiv_v3_7_0_Far_TopologyRefiner_TopologyRefiner1(__bindgen_tmp.as_mut_ptr(), source);
5505 __bindgen_tmp.assume_init()
5506 }
5507
5508 #[inline]
5509 pub unsafe fn destruct(&mut self) {
5510 OpenSubdiv_v3_7_0_Far_TopologyRefiner_TopologyRefiner_destructor(self)
5511 }
5512}
5513#[doc = "\n \\brief Applies refinement operations to generic primvar data.\n"]
5514#[repr(C)]
5515#[derive(Debug, Hash, PartialEq, Eq)]
5516pub struct OpenSubdiv_v3_7_0_Far_PrimvarRefinerReal {
5517 pub _refiner: *const OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5518}
5519pub type OpenSubdiv_v3_7_0_Far_PrimvarRefinerReal_Weight<REAL> = REAL;
5520#[repr(C)]
5521#[derive(Debug, Hash, PartialEq, Eq)]
5522pub struct OpenSubdiv_v3_7_0_Far_PrimvarRefinerReal_Mask<REAL> {
5523 pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<REAL>>,
5524 pub _vertWeights: *mut OpenSubdiv_v3_7_0_Far_PrimvarRefinerReal_Mask_Weight<REAL>,
5525 pub _edgeWeights: *mut OpenSubdiv_v3_7_0_Far_PrimvarRefinerReal_Mask_Weight<REAL>,
5526 pub _faceWeights: *mut OpenSubdiv_v3_7_0_Far_PrimvarRefinerReal_Mask_Weight<REAL>,
5527 pub _vertCount: ::std::os::raw::c_int,
5528 pub _edgeCount: ::std::os::raw::c_int,
5529 pub _faceCount: ::std::os::raw::c_int,
5530 pub _faceWeightsForFaceCenters: bool,
5531}
5532pub type OpenSubdiv_v3_7_0_Far_PrimvarRefinerReal_Mask_Weight<REAL> = REAL;
5533#[repr(C)]
5534#[derive(Debug, PartialEq)]
5535pub struct OpenSubdiv_v3_7_0_Far_PrimvarRefiner {
5536 pub _base: OpenSubdiv_v3_7_0_Far_PrimvarRefinerReal,
5537}
5538#[doc = " \\brief Vertex stencil descriptor\n\n Allows access and manipulation of a single stencil in a StencilTable.\n"]
5539#[repr(C)]
5540#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5541pub struct OpenSubdiv_v3_7_0_Far_StencilReal<REAL> {
5542 pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<REAL>>,
5543 pub _size: *mut ::std::os::raw::c_int,
5544 pub _indices: *mut OpenSubdiv_v3_7_0_Far_Index,
5545 pub _weights: *mut REAL,
5546}
5547#[doc = " \\brief Vertex stencil class wrapping the template for compatibility.\n"]
5548#[repr(C)]
5549#[derive(Debug, Copy, Clone, PartialEq)]
5550pub struct OpenSubdiv_v3_7_0_Far_Stencil {
5551 pub _base: OpenSubdiv_v3_7_0_Far_StencilReal<f32>,
5552}
5553#[doc = " \\brief Vertex stencil descriptor\n\n Allows access and manipulation of a single stencil in a StencilTable.\n"]
5554pub type OpenSubdiv_v3_7_0_Far_Stencil_BaseStencil = OpenSubdiv_v3_7_0_Far_StencilReal<f32>;
5555#[doc = " \\brief Stencil table class wrapping the template for compatibility.\n"]
5556#[repr(C)]
5557pub struct OpenSubdiv_v3_7_0_Far_StencilTable {
5558 pub _address: u8,
5559}
5560#[doc = " \\brief Limit point stencil descriptor\n"]
5561#[repr(C)]
5562#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5563pub struct OpenSubdiv_v3_7_0_Far_LimitStencilReal<REAL> {
5564 pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<REAL>>,
5565 pub _base: OpenSubdiv_v3_7_0_Far_StencilReal<REAL>,
5566 pub _duWeights: *mut REAL,
5567 pub _dvWeights: *mut REAL,
5568 pub _duuWeights: *mut REAL,
5569 pub _duvWeights: *mut REAL,
5570 pub _dvvWeights: *mut REAL,
5571}
5572#[doc = " \\brief Limit point stencil class wrapping the template for compatibility.\n"]
5573#[repr(C)]
5574#[derive(Debug, Copy, Clone, PartialEq)]
5575pub struct OpenSubdiv_v3_7_0_Far_LimitStencil {
5576 pub _base: OpenSubdiv_v3_7_0_Far_LimitStencilReal<f32>,
5577}
5578#[doc = " \\brief Limit point stencil descriptor\n"]
5579pub type OpenSubdiv_v3_7_0_Far_LimitStencil_BaseStencil =
5580 OpenSubdiv_v3_7_0_Far_LimitStencilReal<f32>;
5581#[doc = " \\brief Limit stencil table class wrapping the template for compatibility.\n"]
5582#[repr(C)]
5583pub struct OpenSubdiv_v3_7_0_Far_LimitStencilTable {
5584 pub _address: u8,
5585}
5586#[doc = "\\brief Private base class of Factories for constructing TopologyRefiners\n\n TopologyRefinerFactoryBase is the base class for subclasses that are intended to\n construct TopologyRefiners directly from meshes in their native representations.\n The subclasses are parameterized by the mesh type \\<class MESH\\> and are expected\n to inherit the details related to assembly and validation provided here that are\n independent of the subclass' mesh type."]
5587#[repr(C)]
5588#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5589pub struct OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase {
5590 pub _address: u8,
5591}
5592pub type OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase_TopologyCallback =
5593 OpenSubdiv_v3_7_0_Vtr_internal_Level_ValidationCallback;
5594unsafe extern "C" {
5595 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far26TopologyRefinerFactoryBase30prepareComponentTopologySizingERNS1_15TopologyRefinerE"]
5596 pub fn OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase_prepareComponentTopologySizing(
5597 refiner: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5598 ) -> bool;
5599}
5600unsafe extern "C" {
5601 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far26TopologyRefinerFactoryBase34prepareComponentTopologyAssignmentERNS1_15TopologyRefinerEbPFvNS0_3Vtr8internal5Level13TopologyErrorEPKcPKvESC_"]
5602 pub fn OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase_prepareComponentTopologyAssignment(
5603 refiner: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5604 fullValidation: bool,
5605 callback: OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase_TopologyCallback,
5606 callbackData: *const ::std::os::raw::c_void,
5607 ) -> bool;
5608}
5609unsafe extern "C" {
5610 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far26TopologyRefinerFactoryBase32prepareComponentTagsAndSharpnessERNS1_15TopologyRefinerE"]
5611 pub fn OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase_prepareComponentTagsAndSharpness(
5612 refiner: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5613 ) -> bool;
5614}
5615unsafe extern "C" {
5616 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far26TopologyRefinerFactoryBase26prepareFaceVaryingChannelsERNS1_15TopologyRefinerE"]
5617 pub fn OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase_prepareFaceVaryingChannels(
5618 refiner: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5619 ) -> bool;
5620}
5621impl OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase {
5622 #[inline]
5623 pub unsafe fn prepareComponentTopologySizing(
5624 refiner: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5625 ) -> bool {
5626 OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase_prepareComponentTopologySizing(refiner)
5627 }
5628
5629 #[inline]
5630 pub unsafe fn prepareComponentTopologyAssignment(
5631 refiner: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5632 fullValidation: bool,
5633 callback: OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase_TopologyCallback,
5634 callbackData: *const ::std::os::raw::c_void,
5635 ) -> bool {
5636 OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase_prepareComponentTopologyAssignment(
5637 refiner,
5638 fullValidation,
5639 callback,
5640 callbackData,
5641 )
5642 }
5643
5644 #[inline]
5645 pub unsafe fn prepareComponentTagsAndSharpness(
5646 refiner: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5647 ) -> bool {
5648 OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase_prepareComponentTagsAndSharpness(refiner)
5649 }
5650
5651 #[inline]
5652 pub unsafe fn prepareFaceVaryingChannels(
5653 refiner: *mut OpenSubdiv_v3_7_0_Far_TopologyRefiner,
5654 ) -> bool {
5655 OpenSubdiv_v3_7_0_Far_TopologyRefinerFactoryBase_prepareFaceVaryingChannels(refiner)
5656 }
5657}
5658#[doc = "\\brief Factory for constructing TopologyRefiners from specific mesh classes.\n\n TopologyRefinerFactory<MESH> is the factory class template to convert an instance of\n TopologyRefiner from an arbitrary mesh class. While a class template, the implementation\n is not (cannot) be complete, so specialization of a few methods is required (it is a\n stateless factory, so no instance and only static methods).\n\n This template provides both the interface and high level assembly for the construction\n of the TopologyRefiner instance. The high level construction executes a specific set\n of operations to convert the client's MESH into TopologyRefiner. This set of operations\n combines methods independent of MESH from the base class with those specialized here for\n class MESH.\n"]
5659#[repr(C)]
5660#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5661pub struct OpenSubdiv_v3_7_0_Far_TopologyRefinerFactory {
5662 pub _address: u8,
5663}
5664#[doc = " \\brief Options related to the construction of each TopologyRefiner.\n"]
5665#[repr(C)]
5666#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5667pub struct OpenSubdiv_v3_7_0_Far_TopologyRefinerFactory_Options {
5668 #[doc = "< The subdivision scheme type identifier"]
5669 pub schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
5670 #[doc = "< The full set of options for the scheme,\n< e.g. boundary interpolation rules..."]
5671 pub schemeOptions: OpenSubdiv_v3_7_0_Sdc_Options,
5672 pub _bitfield_align_1: [u8; 0],
5673 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
5674}
5675impl OpenSubdiv_v3_7_0_Far_TopologyRefinerFactory_Options {
5676 #[inline]
5677 pub fn validateFullTopology(&self) -> ::std::os::raw::c_uint {
5678 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
5679 }
5680
5681 #[inline]
5682 pub fn set_validateFullTopology(&mut self, val: ::std::os::raw::c_uint) {
5683 unsafe {
5684 let val: u32 = ::std::mem::transmute(val);
5685 self._bitfield_1.set(0usize, 1u8, val as u64)
5686 }
5687 }
5688
5689 #[inline]
5690 pub unsafe fn validateFullTopology_raw(this: *const Self) -> ::std::os::raw::c_uint {
5691 unsafe {
5692 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
5693 ::std::ptr::addr_of!((*this)._bitfield_1),
5694 0usize,
5695 1u8,
5696 ) as u32)
5697 }
5698 }
5699
5700 #[inline]
5701 pub unsafe fn set_validateFullTopology_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
5702 unsafe {
5703 let val: u32 = ::std::mem::transmute(val);
5704 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
5705 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5706 0usize,
5707 1u8,
5708 val as u64,
5709 )
5710 }
5711 }
5712
5713 #[inline]
5714 pub fn new_bitfield_1(
5715 validateFullTopology: ::std::os::raw::c_uint,
5716 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
5717 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
5718 __bindgen_bitfield_unit.set(0usize, 1u8, {
5719 let validateFullTopology: u32 = unsafe { ::std::mem::transmute(validateFullTopology) };
5720 validateFullTopology as u64
5721 });
5722 __bindgen_bitfield_unit
5723 }
5724}
5725pub use self::OpenSubdiv_v3_7_0_Vtr_internal_Level_TopologyError as OpenSubdiv_v3_7_0_Far_TopologyRefinerFactory_TopologyError;
5726#[doc = "\n \\brief A simple reference to raw topology data for use with TopologyRefinerFactory\n\n TopologyDescriptor is a simple struct containing references to raw topology data used\n to construct a TopologyRefiner. It is not a requirement but a convenience for use\n with TopologyRefinerFactory when mesh topology is not available in an existing mesh\n data structure. It should be functionally complete and simple to use, but for more\n demanding situations, writing a custom Factory is usually warranted.\n"]
5727#[repr(C)]
5728#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5729pub struct OpenSubdiv_v3_7_0_Far_TopologyDescriptor {
5730 pub numVertices: ::std::os::raw::c_int,
5731 pub numFaces: ::std::os::raw::c_int,
5732 pub numVertsPerFace: *const ::std::os::raw::c_int,
5733 pub vertIndicesPerFace: *const OpenSubdiv_v3_7_0_Far_Index,
5734 pub numCreases: ::std::os::raw::c_int,
5735 pub creaseVertexIndexPairs: *const OpenSubdiv_v3_7_0_Far_Index,
5736 pub creaseWeights: *const f32,
5737 pub numCorners: ::std::os::raw::c_int,
5738 pub cornerVertexIndices: *const OpenSubdiv_v3_7_0_Far_Index,
5739 pub cornerWeights: *const f32,
5740 pub numHoles: ::std::os::raw::c_int,
5741 pub holeIndices: *const OpenSubdiv_v3_7_0_Far_Index,
5742 pub isLeftHanded: bool,
5743 pub numFVarChannels: ::std::os::raw::c_int,
5744 pub fvarChannels: *const OpenSubdiv_v3_7_0_Far_TopologyDescriptor_FVarChannel,
5745}
5746#[repr(C)]
5747#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5748pub struct OpenSubdiv_v3_7_0_Far_TopologyDescriptor_FVarChannel {
5749 pub numValues: ::std::os::raw::c_int,
5750 pub valueIndices: *const OpenSubdiv_v3_7_0_Far_Index,
5751}
5752unsafe extern "C" {
5753 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far18TopologyDescriptorC1Ev"]
5754 pub fn OpenSubdiv_v3_7_0_Far_TopologyDescriptor_TopologyDescriptor(
5755 this: *mut OpenSubdiv_v3_7_0_Far_TopologyDescriptor,
5756 );
5757}
5758impl OpenSubdiv_v3_7_0_Far_TopologyDescriptor {
5759 #[inline]
5760 pub unsafe fn new() -> Self {
5761 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
5762 OpenSubdiv_v3_7_0_Far_TopologyDescriptor_TopologyDescriptor(__bindgen_tmp.as_mut_ptr());
5763 __bindgen_tmp.assume_init()
5764 }
5765}
5766#[doc = " \\brief Describes the type of a patch\n\n Uniquely identifies all the different types of patches\n"]
5767#[repr(C)]
5768#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5769pub struct OpenSubdiv_v3_7_0_Far_PatchDescriptor {
5770 pub _type: ::std::os::raw::c_uint,
5771}
5772#[doc = "< undefined"]
5773pub const OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type_NON_PATCH:
5774 OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = 0;
5775#[doc = "< points (useful for cage drawing)"]
5776pub const OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type_POINTS:
5777 OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = 1;
5778#[doc = "< lines (useful for cage drawing)"]
5779pub const OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type_LINES:
5780 OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = 2;
5781#[doc = "< 4-sided quadrilateral (bilinear)"]
5782pub const OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type_QUADS:
5783 OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = 3;
5784#[doc = "< 3-sided triangle"]
5785pub const OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type_TRIANGLES:
5786 OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = 4;
5787#[doc = "< regular triangular patch for the Loop scheme"]
5788pub const OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type_LOOP:
5789 OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = 5;
5790#[doc = "< regular B-Spline patch for the Catmark scheme"]
5791pub const OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type_REGULAR:
5792 OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = 6;
5793pub const OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type_GREGORY:
5794 OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = 7;
5795pub const OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type_GREGORY_BOUNDARY:
5796 OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = 8;
5797pub const OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type_GREGORY_BASIS:
5798 OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = 9;
5799pub const OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type_GREGORY_TRIANGLE:
5800 OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = 10;
5801pub type OpenSubdiv_v3_7_0_Far_PatchDescriptor_Type = ::std::os::raw::c_uint;
5802unsafe extern "C" {
5803 #[doc = " \\brief Returns a vector of all the legal patch descriptors for the\n given adaptive subdivision scheme"]
5804 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far15PatchDescriptor27GetAdaptivePatchDescriptorsENS0_3Sdc10SchemeTypeE"]
5805 pub fn OpenSubdiv_v3_7_0_Far_PatchDescriptor_GetAdaptivePatchDescriptors(
5806 type_: OpenSubdiv_v3_7_0_Sdc_SchemeType,
5807 ) -> OpenSubdiv_v3_7_0_Vtr_ConstArray<OpenSubdiv_v3_7_0_Far_PatchDescriptor>;
5808}
5809unsafe extern "C" {
5810 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far15PatchDescriptor5printEv"]
5811 pub fn OpenSubdiv_v3_7_0_Far_PatchDescriptor_print(
5812 this: *const OpenSubdiv_v3_7_0_Far_PatchDescriptor,
5813 );
5814}
5815impl OpenSubdiv_v3_7_0_Far_PatchDescriptor {
5816 #[inline]
5817 pub unsafe fn GetAdaptivePatchDescriptors(
5818 type_: OpenSubdiv_v3_7_0_Sdc_SchemeType,
5819 ) -> OpenSubdiv_v3_7_0_Vtr_ConstArray<OpenSubdiv_v3_7_0_Far_PatchDescriptor> {
5820 OpenSubdiv_v3_7_0_Far_PatchDescriptor_GetAdaptivePatchDescriptors(type_)
5821 }
5822
5823 #[inline]
5824 pub unsafe fn print(&self) {
5825 OpenSubdiv_v3_7_0_Far_PatchDescriptor_print(self)
5826 }
5827}
5828pub type OpenSubdiv_v3_7_0_Far_ConstPatchDescriptorArray =
5829 OpenSubdiv_v3_7_0_Vtr_ConstArray<OpenSubdiv_v3_7_0_Far_PatchDescriptor>;
5830#[doc = " \\brief Patch parameterization\n\n Topological refinement splits coarse mesh faces into refined faces.\n\n This patch parameterzation describes the relationship between one\n of these refined faces and its corresponding coarse face. It is used\n both for refined faces that are represented as full limit surface\n parametric patches as well as for refined faces represented as simple\n triangles or quads. This parameterization is needed to interpolate\n primvar data across a refined face.\n\n The U,V and refinement level parameters describe the scale and offset\n needed to map a location on the patch between levels of refinement.\n The encoding of these values exploits the quad-tree organization of\n the faces produced by subdivision. We encode the U,V origin of the\n patch using two 10-bit integer values and the refinement level as\n a 4-bit integer. This is sufficient to represent up through 10 levels\n of refinement.\n\n Special consideration must be given to the refined faces resulting from\n irregular coarse faces. We adopt a convention similar to Ptex texture\n mapping and define the parameterization for these faces in terms of the\n regular faces resulting from the first topological splitting of the\n irregular coarse face.\n\n When computing the basis functions needed to evaluate the limit surface\n parametric patch representing a refined face, we also need to know which\n edges of the patch are interpolated boundaries. These edges are encoded\n as a boundary bitmask identifying the boundary edges of the patch in\n sequential order starting from the first vertex of the refined face.\n\n A sparse topological refinement (like feature adaptive refinement) can\n produce refined faces that are adjacent to faces at the next level of\n subdivision. We identify these transitional edges with a transition\n bitmask using the same encoding as the boundary bitmask.\n\n For triangular subdivision schemes we specify the parameterization using\n a similar method. Alternate triangles at a given level of refinement\n are parameterized from their opposite corners and encoded as occupying\n the opposite diagonal of the quad-tree hierarchy. The third barycentric\n coordinate is dependent on and can be derived from the other two\n coordinates. This encoding also takes inspiration from the Ptex\n texture mapping specification.\n\n Bitfield layout :\n\n Field0 | Bits | Content\n -----------|:----:|------------------------------------------------------\n faceId | 28 | the faceId of the patch\n transition | 4 | transition edge mask encoding\n\n Field1 | Bits | Content\n -----------|:----:|------------------------------------------------------\n level | 4 | the subdivision level of the patch\n nonquad | 1 | whether patch is refined from a non-quad face\n regular | 1 | whether patch is regular\n unused | 1 | unused\n boundary | 5 | boundary edge mask encoding\n v | 10 | log2 value of u parameter at first patch corner\n u | 10 | log2 value of v parameter at first patch corner\n\n Note : the bitfield is not expanded in the struct due to differences in how\n GPU & CPU compilers pack bit-fields and endian-ness.\n\n*!\n\\verbatim\nQuad Patch Parameterization\n\n(0,1) (1,1)\n+-------+-------+---------------+\n| | | |\n| L2 | L2 | |\n|0,3 |1,3 | |\n+-------+-------+ L1 |\n| | | |\n| L2 | L2 | |\n|0,2 |1,2 |1,1 |\n+-------+-------+---------------+\n| | |\n| | |\n| | |\n| L1 | L1 |\n| | |\n| | |\n|0,0 |1,0 |\n+---------------+---------------+\n(0,0) (1,0)\n\\endverbatim\n*/\n*!\n\\verbatim\nTriangle Patch Parameterization\n\n(0,1) (1,1) (0,1,0)\n+-------+-------+---------------+ +\n| \\ | \\ | \\ | | \\\n|L2 \\ |L2 \\ | \\ | | \\\n|0,3 \\ |1,3 \\ | \\ | | L2 \\\n+-------+-------+ \\ | +-------+\n| \\ | \\ | L1 \\ | | \\ L2 | \\\n|L2 \\ |L2 \\ | \\ | | \\ | \\\n|0,2 \\ |1,2 \\ |1,1 \\ | | L2 \\ | L2 \\\n+-------+-------+---------------+ +-------+-------+\n| \\ | \\ | | \\ | \\\n| \\ | \\ | | \\ | \\\n| \\ | \\ | | \\ L1 | \\\n| \\ | \\ | | \\ | \\\n| L1 \\ | L1 \\ | | L1 \\ | L1 \\\n| \\ | \\ | | \\ | \\\n|0,0 \\ |1,0 \\ | | \\ | \\\n+---------------+---------------+ +---------------+---------------+\n(0,0) (1,0) (0,0,1) (1,0,0)\n\\endverbatim\n*/"]
5831#[repr(C)]
5832#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5833pub struct OpenSubdiv_v3_7_0_Far_PatchParam {
5834 pub _bitfield_align_1: [u32; 0],
5835 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
5836}
5837impl OpenSubdiv_v3_7_0_Far_PatchParam {
5838 #[inline]
5839 pub fn field0(&self) -> ::std::os::raw::c_uint {
5840 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u32) }
5841 }
5842
5843 #[inline]
5844 pub fn set_field0(&mut self, val: ::std::os::raw::c_uint) {
5845 unsafe {
5846 let val: u32 = ::std::mem::transmute(val);
5847 self._bitfield_1.set(0usize, 32u8, val as u64)
5848 }
5849 }
5850
5851 #[inline]
5852 pub unsafe fn field0_raw(this: *const Self) -> ::std::os::raw::c_uint {
5853 unsafe {
5854 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
5855 ::std::ptr::addr_of!((*this)._bitfield_1),
5856 0usize,
5857 32u8,
5858 ) as u32)
5859 }
5860 }
5861
5862 #[inline]
5863 pub unsafe fn set_field0_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
5864 unsafe {
5865 let val: u32 = ::std::mem::transmute(val);
5866 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
5867 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5868 0usize,
5869 32u8,
5870 val as u64,
5871 )
5872 }
5873 }
5874
5875 #[inline]
5876 pub fn field1(&self) -> ::std::os::raw::c_uint {
5877 unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u32) }
5878 }
5879
5880 #[inline]
5881 pub fn set_field1(&mut self, val: ::std::os::raw::c_uint) {
5882 unsafe {
5883 let val: u32 = ::std::mem::transmute(val);
5884 self._bitfield_1.set(32usize, 32u8, val as u64)
5885 }
5886 }
5887
5888 #[inline]
5889 pub unsafe fn field1_raw(this: *const Self) -> ::std::os::raw::c_uint {
5890 unsafe {
5891 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
5892 ::std::ptr::addr_of!((*this)._bitfield_1),
5893 32usize,
5894 32u8,
5895 ) as u32)
5896 }
5897 }
5898
5899 #[inline]
5900 pub unsafe fn set_field1_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
5901 unsafe {
5902 let val: u32 = ::std::mem::transmute(val);
5903 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
5904 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
5905 32usize,
5906 32u8,
5907 val as u64,
5908 )
5909 }
5910 }
5911
5912 #[inline]
5913 pub fn new_bitfield_1(
5914 field0: ::std::os::raw::c_uint,
5915 field1: ::std::os::raw::c_uint,
5916 ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
5917 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
5918 __bindgen_bitfield_unit.set(0usize, 32u8, {
5919 let field0: u32 = unsafe { ::std::mem::transmute(field0) };
5920 field0 as u64
5921 });
5922 __bindgen_bitfield_unit.set(32usize, 32u8, {
5923 let field1: u32 = unsafe { ::std::mem::transmute(field1) };
5924 field1 as u64
5925 });
5926 __bindgen_bitfield_unit
5927 }
5928}
5929pub type OpenSubdiv_v3_7_0_Far_PatchParamTable = __BindgenOpaqueArray<u64, 3usize>;
5930pub type OpenSubdiv_v3_7_0_Far_PatchParamArray =
5931 OpenSubdiv_v3_7_0_Vtr_Array<OpenSubdiv_v3_7_0_Far_PatchParam>;
5932pub type OpenSubdiv_v3_7_0_Far_ConstPatchParamArray =
5933 OpenSubdiv_v3_7_0_Vtr_ConstArray<OpenSubdiv_v3_7_0_Far_PatchParam>;
5934#[doc = " \\brief Container for arrays of parametric patches\n\n PatchTable contains topology and parametric information about the patches\n generated by the Refinement process. Patches in the table are sorted into\n arrays based on their PatchDescriptor Type.\n\n Note : PatchTable can be accessed either using a PatchHandle or a\n combination of array and patch indices.\n\n XXXX manuelk we should add a PatchIterator that can dereference into\n a PatchHandle for fast linear traversal of the table\n"]
5935#[repr(C)]
5936pub struct OpenSubdiv_v3_7_0_Far_PatchTable {
5937 pub _maxValence: ::std::os::raw::c_int,
5938 pub _numPtexFaces: ::std::os::raw::c_int,
5939 pub _patchArrays: OpenSubdiv_v3_7_0_Far_PatchTable_PatchArrayVector,
5940 pub _patchVerts: __BindgenOpaqueArray<u64, 3usize>,
5941 pub _paramTable: OpenSubdiv_v3_7_0_Far_PatchParamTable,
5942 pub _quadOffsetsTable: OpenSubdiv_v3_7_0_Far_PatchTable_QuadOffsetsTable,
5943 pub _vertexValenceTable: OpenSubdiv_v3_7_0_Far_PatchTable_VertexValenceTable,
5944 pub _localPointStencils: OpenSubdiv_v3_7_0_Far_PatchTable_StencilTablePtr,
5945 pub _localPointVaryingStencils: OpenSubdiv_v3_7_0_Far_PatchTable_StencilTablePtr,
5946 pub _varyingDesc: OpenSubdiv_v3_7_0_Far_PatchDescriptor,
5947 pub _varyingVerts: __BindgenOpaqueArray<u64, 3usize>,
5948 pub _fvarChannels: OpenSubdiv_v3_7_0_Far_PatchTable_FVarPatchChannelVector,
5949 pub _localPointFaceVaryingStencils: __BindgenOpaqueArray<u64, 3usize>,
5950 pub _sharpnessIndices: __BindgenOpaqueArray<u64, 3usize>,
5951 pub _sharpnessValues: __BindgenOpaqueArray<u64, 3usize>,
5952 pub _bitfield_align_1: [u8; 0],
5953 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
5954 pub __bindgen_padding_0: [u8; 7usize],
5955}
5956#[doc = " \\brief Handle that can be used as unique patch identifier within PatchTable"]
5957#[repr(C)]
5958#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5959pub struct OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle {
5960 pub arrayIndex: OpenSubdiv_v3_7_0_Far_Index,
5961 pub patchIndex: OpenSubdiv_v3_7_0_Far_Index,
5962 pub vertIndex: OpenSubdiv_v3_7_0_Far_Index,
5963}
5964#[doc = " \\brief Accessors for the gregory patch evaluation buffers.\n These methods will be deprecated.\n"]
5965pub type OpenSubdiv_v3_7_0_Far_PatchTable_ConstQuadOffsetsArray =
5966 OpenSubdiv_v3_7_0_Vtr_ConstArray<::std::os::raw::c_uint>;
5967pub type OpenSubdiv_v3_7_0_Far_PatchTable_VertexValenceTable = __BindgenOpaqueArray<u64, 3usize>;
5968#[doc = " @name Direct accessors\n\n \\warning These direct accessors are left for convenience, but they are\n likely going to be deprecated in future releases\n"]
5969pub type OpenSubdiv_v3_7_0_Far_PatchTable_PatchVertsTable = __BindgenOpaqueArray<u64, 3usize>;
5970pub type OpenSubdiv_v3_7_0_Far_PatchTable_QuadOffsetsTable = __BindgenOpaqueArray<u64, 3usize>;
5971#[repr(C)]
5972#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5973pub struct OpenSubdiv_v3_7_0_Far_PatchTable_PatchArray {
5974 pub desc: OpenSubdiv_v3_7_0_Far_PatchDescriptor,
5975 pub numPatches: ::std::os::raw::c_int,
5976 pub vertIndex: OpenSubdiv_v3_7_0_Far_Index,
5977 pub patchIndex: OpenSubdiv_v3_7_0_Far_Index,
5978 pub quadOffsetIndex: OpenSubdiv_v3_7_0_Far_Index,
5979}
5980unsafe extern "C" {
5981 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable10PatchArray5printEv"]
5982 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_PatchArray_print(
5983 this: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchArray,
5984 );
5985}
5986impl OpenSubdiv_v3_7_0_Far_PatchTable_PatchArray {
5987 #[inline]
5988 pub unsafe fn print(&self) {
5989 OpenSubdiv_v3_7_0_Far_PatchTable_PatchArray_print(self)
5990 }
5991}
5992pub type OpenSubdiv_v3_7_0_Far_PatchTable_PatchArrayVector = __BindgenOpaqueArray<u64, 3usize>;
5993#[repr(C)]
5994pub struct OpenSubdiv_v3_7_0_Far_PatchTable_FVarPatchChannel {
5995 pub interpolation: OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation,
5996 pub regDesc: OpenSubdiv_v3_7_0_Far_PatchDescriptor,
5997 pub irregDesc: OpenSubdiv_v3_7_0_Far_PatchDescriptor,
5998 pub stride: ::std::os::raw::c_int,
5999 pub patchValues: __BindgenOpaqueArray<u64, 3usize>,
6000 pub patchParam: __BindgenOpaqueArray<u64, 3usize>,
6001}
6002pub type OpenSubdiv_v3_7_0_Far_PatchTable_FVarPatchChannelVector =
6003 __BindgenOpaqueArray<u64, 3usize>;
6004unsafe extern "C" {
6005 #[doc = " \\brief True if the patches are of feature adaptive types"]
6006 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable17IsFeatureAdaptiveEv"]
6007 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_IsFeatureAdaptive(
6008 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6009 ) -> bool;
6010}
6011unsafe extern "C" {
6012 #[doc = " \\brief Returns the total number of patches stored in the table"]
6013 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable18GetNumPatchesTotalEv"]
6014 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetNumPatchesTotal(
6015 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6016 ) -> ::std::os::raw::c_int;
6017}
6018unsafe extern "C" {
6019 #[doc = " \\brief Returns the PatchDescriptor for the patch identified by \\p handle"]
6020 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable18GetPatchDescriptorERKNS2_11PatchHandleE"]
6021 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchDescriptor(
6022 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6023 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6024 ) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor;
6025}
6026unsafe extern "C" {
6027 #[doc = " \\brief Returns the control vertex indices for the patch identified by \\p handle"]
6028 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable16GetPatchVerticesERKNS2_11PatchHandleE"]
6029 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchVertices(
6030 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6031 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6032 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray;
6033}
6034unsafe extern "C" {
6035 #[doc = " \\brief Returns a PatchParam for the patch identified by \\p handle"]
6036 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable13GetPatchParamERKNS2_11PatchHandleE"]
6037 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchParam(
6038 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6039 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6040 ) -> OpenSubdiv_v3_7_0_Far_PatchParam;
6041}
6042unsafe extern "C" {
6043 #[doc = " \\brief Returns the control vertex indices for \\p patch in \\p array"]
6044 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable16GetPatchVerticesEii"]
6045 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchVertices1(
6046 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6047 array: ::std::os::raw::c_int,
6048 patch: ::std::os::raw::c_int,
6049 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray;
6050}
6051unsafe extern "C" {
6052 #[doc = " \\brief Returns the PatchParam for \\p patch in \\p array"]
6053 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable13GetPatchParamEii"]
6054 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchParam1(
6055 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6056 array: ::std::os::raw::c_int,
6057 patch: ::std::os::raw::c_int,
6058 ) -> OpenSubdiv_v3_7_0_Far_PatchParam;
6059}
6060unsafe extern "C" {
6061 #[doc = " \\brief Returns the number of patch arrays in the table"]
6062 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable17GetNumPatchArraysEv"]
6063 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetNumPatchArrays(
6064 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6065 ) -> ::std::os::raw::c_int;
6066}
6067unsafe extern "C" {
6068 #[doc = " \\brief Returns the number of patches in \\p array"]
6069 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable13GetNumPatchesEi"]
6070 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetNumPatches(
6071 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6072 array: ::std::os::raw::c_int,
6073 ) -> ::std::os::raw::c_int;
6074}
6075unsafe extern "C" {
6076 #[doc = " \\brief Returns the number of control vertices in \\p array"]
6077 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable21GetNumControlVerticesEi"]
6078 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetNumControlVertices(
6079 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6080 array: ::std::os::raw::c_int,
6081 ) -> ::std::os::raw::c_int;
6082}
6083unsafe extern "C" {
6084 #[doc = " \\brief Returns the PatchDescriptor for the patches in \\p array"]
6085 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable23GetPatchArrayDescriptorEi"]
6086 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchArrayDescriptor(
6087 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6088 array: ::std::os::raw::c_int,
6089 ) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor;
6090}
6091unsafe extern "C" {
6092 #[doc = " \\brief Returns the control vertex indices for the patches in \\p array"]
6093 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable21GetPatchArrayVerticesEi"]
6094 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchArrayVertices(
6095 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6096 array: ::std::os::raw::c_int,
6097 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray;
6098}
6099unsafe extern "C" {
6100 #[doc = " \\brief Returns the PatchParams for the patches in \\p array"]
6101 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable14GetPatchParamsEi"]
6102 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchParams(
6103 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6104 array: ::std::os::raw::c_int,
6105 ) -> OpenSubdiv_v3_7_0_Far_ConstPatchParamArray;
6106}
6107unsafe extern "C" {
6108 #[doc = " \\brief Returns the number of local vertex points."]
6109 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable17GetNumLocalPointsEv"]
6110 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetNumLocalPoints(
6111 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6112 ) -> ::std::os::raw::c_int;
6113}
6114unsafe extern "C" {
6115 #[doc = " \\brief Returns the number of local varying points."]
6116 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable24GetNumLocalPointsVaryingEv"]
6117 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetNumLocalPointsVarying(
6118 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6119 ) -> ::std::os::raw::c_int;
6120}
6121unsafe extern "C" {
6122 #[doc = " \\brief Returns the number of local face-varying points for \\p channel"]
6123 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable28GetNumLocalPointsFaceVaryingEi"]
6124 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetNumLocalPointsFaceVarying(
6125 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6126 channel: ::std::os::raw::c_int,
6127 ) -> ::std::os::raw::c_int;
6128}
6129unsafe extern "C" {
6130 #[doc = " \\brief Returns the 'QuadOffsets' for the Gregory patch identified by \\p handle"]
6131 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable19GetPatchQuadOffsetsERKNS2_11PatchHandleE"]
6132 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchQuadOffsets(
6133 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6134 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6135 ) -> OpenSubdiv_v3_7_0_Far_PatchTable_ConstQuadOffsetsArray;
6136}
6137unsafe extern "C" {
6138 #[doc = " \\brief Returns the crease sharpness for the patch identified by \\p handle\n if it is a single-crease patch, or 0.0f"]
6139 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable34GetSingleCreasePatchSharpnessValueERKNS2_11PatchHandleE"]
6140 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetSingleCreasePatchSharpnessValue(
6141 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6142 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6143 ) -> f32;
6144}
6145unsafe extern "C" {
6146 #[doc = " \\brief Returns the crease sharpness for the \\p patch in \\p array\n if it is a single-crease patch, or 0.0f"]
6147 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable34GetSingleCreasePatchSharpnessValueEii"]
6148 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetSingleCreasePatchSharpnessValue1(
6149 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6150 array: ::std::os::raw::c_int,
6151 patch: ::std::os::raw::c_int,
6152 ) -> f32;
6153}
6154unsafe extern "C" {
6155 #[doc = " \\brief Returns the varying patch descriptor"]
6156 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable25GetVaryingPatchDescriptorEv"]
6157 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetVaryingPatchDescriptor(
6158 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6159 ) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor;
6160}
6161unsafe extern "C" {
6162 #[doc = " \\brief Returns the varying vertex indices for a given patch"]
6163 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable23GetPatchVaryingVerticesERKNS2_11PatchHandleE"]
6164 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchVaryingVertices(
6165 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6166 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6167 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray;
6168}
6169unsafe extern "C" {
6170 #[doc = " \\brief Returns the varying vertex indices for a given patch"]
6171 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable23GetPatchVaryingVerticesEii"]
6172 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchVaryingVertices1(
6173 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6174 array: ::std::os::raw::c_int,
6175 patch: ::std::os::raw::c_int,
6176 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray;
6177}
6178unsafe extern "C" {
6179 #[doc = " \\brief Returns the varying vertex indices for the patches in \\p array"]
6180 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable28GetPatchArrayVaryingVerticesEi"]
6181 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchArrayVaryingVertices(
6182 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6183 array: ::std::os::raw::c_int,
6184 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray;
6185}
6186unsafe extern "C" {
6187 #[doc = " \\brief Returns an array of varying vertex indices for the patches."]
6188 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable18GetVaryingVerticesEv"]
6189 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetVaryingVertices(
6190 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6191 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray;
6192}
6193unsafe extern "C" {
6194 #[doc = " \\brief Returns the number of face-varying channels"]
6195 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable18GetNumFVarChannelsEv"]
6196 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetNumFVarChannels(
6197 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6198 ) -> ::std::os::raw::c_int;
6199}
6200unsafe extern "C" {
6201 #[doc = " \\brief Returns the regular patch descriptor for \\p channel"]
6202 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable29GetFVarPatchDescriptorRegularEi"]
6203 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarPatchDescriptorRegular(
6204 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6205 channel: ::std::os::raw::c_int,
6206 ) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor;
6207}
6208unsafe extern "C" {
6209 #[doc = " \\brief Returns the irregular patch descriptor for \\p channel"]
6210 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable31GetFVarPatchDescriptorIrregularEi"]
6211 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarPatchDescriptorIrregular(
6212 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6213 channel: ::std::os::raw::c_int,
6214 ) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor;
6215}
6216unsafe extern "C" {
6217 #[doc = " \\brief Returns the default/irregular patch descriptor for \\p channel"]
6218 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable22GetFVarPatchDescriptorEi"]
6219 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarPatchDescriptor(
6220 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6221 channel: ::std::os::raw::c_int,
6222 ) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor;
6223}
6224unsafe extern "C" {
6225 #[doc = " \\brief Returns the value indices for a given patch in \\p channel"]
6226 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable18GetPatchFVarValuesERKNS2_11PatchHandleEi"]
6227 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchFVarValues(
6228 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6229 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6230 channel: ::std::os::raw::c_int,
6231 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray;
6232}
6233unsafe extern "C" {
6234 #[doc = " \\brief Returns the value indices for a given patch in \\p channel"]
6235 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable18GetPatchFVarValuesEiii"]
6236 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchFVarValues1(
6237 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6238 array: ::std::os::raw::c_int,
6239 patch: ::std::os::raw::c_int,
6240 channel: ::std::os::raw::c_int,
6241 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray;
6242}
6243unsafe extern "C" {
6244 #[doc = " \\brief Returns the value indices for the patches in \\p array in \\p channel"]
6245 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable23GetPatchArrayFVarValuesEii"]
6246 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchArrayFVarValues(
6247 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6248 array: ::std::os::raw::c_int,
6249 channel: ::std::os::raw::c_int,
6250 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray;
6251}
6252unsafe extern "C" {
6253 #[doc = " \\brief Returns an array of value indices for the patches in \\p channel"]
6254 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable13GetFVarValuesEi"]
6255 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarValues(
6256 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6257 channel: ::std::os::raw::c_int,
6258 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray;
6259}
6260unsafe extern "C" {
6261 #[doc = " \\brief Returns the stride between patches in the value index array of \\p channel"]
6262 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable18GetFVarValueStrideEi"]
6263 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarValueStride(
6264 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6265 channel: ::std::os::raw::c_int,
6266 ) -> ::std::os::raw::c_int;
6267}
6268unsafe extern "C" {
6269 #[doc = " \\brief Returns the value indices for a given patch in \\p channel"]
6270 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable22GetPatchFVarPatchParamERKNS2_11PatchHandleEi"]
6271 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchFVarPatchParam(
6272 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6273 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6274 channel: ::std::os::raw::c_int,
6275 ) -> OpenSubdiv_v3_7_0_Far_PatchParam;
6276}
6277unsafe extern "C" {
6278 #[doc = " \\brief Returns the face-varying params for a given patch \\p channel"]
6279 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable22GetPatchFVarPatchParamEiii"]
6280 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchFVarPatchParam1(
6281 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6282 array: ::std::os::raw::c_int,
6283 patch: ::std::os::raw::c_int,
6284 channel: ::std::os::raw::c_int,
6285 ) -> OpenSubdiv_v3_7_0_Far_PatchParam;
6286}
6287unsafe extern "C" {
6288 #[doc = " \\brief Returns the face-varying for a given patch in \\p array in \\p channel"]
6289 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable28GetPatchArrayFVarPatchParamsEii"]
6290 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchArrayFVarPatchParams(
6291 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6292 array: ::std::os::raw::c_int,
6293 channel: ::std::os::raw::c_int,
6294 ) -> OpenSubdiv_v3_7_0_Far_ConstPatchParamArray;
6295}
6296unsafe extern "C" {
6297 #[doc = " \\brief Returns an array of face-varying patch param for \\p channel"]
6298 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable18GetFVarPatchParamsEi"]
6299 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarPatchParams(
6300 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6301 channel: ::std::os::raw::c_int,
6302 ) -> OpenSubdiv_v3_7_0_Far_ConstPatchParamArray;
6303}
6304unsafe extern "C" {
6305 #[doc = " \\brief Deprecated @see PatchTable#GetFVarPatchDescriptor"]
6306 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable33GetFVarChannelLinearInterpolationEi"]
6307 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarChannelLinearInterpolation(
6308 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6309 channel: ::std::os::raw::c_int,
6310 ) -> OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation;
6311}
6312unsafe extern "C" {
6313 #[doc = " debug helper"]
6314 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable5printEv"]
6315 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_print(this: *const OpenSubdiv_v3_7_0_Far_PatchTable);
6316}
6317unsafe extern "C" {
6318 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Far10PatchTable13getPatchIndexEii"]
6319 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_getPatchIndex(
6320 this: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6321 array: ::std::os::raw::c_int,
6322 patch: ::std::os::raw::c_int,
6323 ) -> OpenSubdiv_v3_7_0_Far_Index;
6324}
6325unsafe extern "C" {
6326 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far10PatchTable14getPatchParamsEi"]
6327 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_getPatchParams(
6328 this: *mut OpenSubdiv_v3_7_0_Far_PatchTable,
6329 arrayIndex: ::std::os::raw::c_int,
6330 ) -> OpenSubdiv_v3_7_0_Far_PatchParamArray;
6331}
6332unsafe extern "C" {
6333 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far10PatchTable19getSharpnessIndicesEi"]
6334 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_getSharpnessIndices(
6335 this: *mut OpenSubdiv_v3_7_0_Far_PatchTable,
6336 arrayIndex: OpenSubdiv_v3_7_0_Far_Index,
6337 ) -> *mut OpenSubdiv_v3_7_0_Far_Index;
6338}
6339unsafe extern "C" {
6340 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far10PatchTable18getSharpnessValuesEi"]
6341 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_getSharpnessValues(
6342 this: *mut OpenSubdiv_v3_7_0_Far_PatchTable,
6343 arrayIndex: OpenSubdiv_v3_7_0_Far_Index,
6344 ) -> *mut f32;
6345}
6346unsafe extern "C" {
6347 #[doc = " \\brief Copy constructor"]
6348 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far10PatchTableC1ERKS2_"]
6349 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_PatchTable(
6350 this: *mut OpenSubdiv_v3_7_0_Far_PatchTable,
6351 src: *const OpenSubdiv_v3_7_0_Far_PatchTable,
6352 );
6353}
6354unsafe extern "C" {
6355 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far10PatchTableC1Ei"]
6356 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_PatchTable1(
6357 this: *mut OpenSubdiv_v3_7_0_Far_PatchTable,
6358 maxvalence: ::std::os::raw::c_int,
6359 );
6360}
6361unsafe extern "C" {
6362 #[doc = " \\brief Destructor"]
6363 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far10PatchTableD1Ev"]
6364 pub fn OpenSubdiv_v3_7_0_Far_PatchTable_PatchTable_destructor(
6365 this: *mut OpenSubdiv_v3_7_0_Far_PatchTable,
6366 );
6367}
6368impl OpenSubdiv_v3_7_0_Far_PatchTable {
6369 #[inline]
6370 pub fn _isUniformLinear(&self) -> ::std::os::raw::c_uint {
6371 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
6372 }
6373
6374 #[inline]
6375 pub fn set__isUniformLinear(&mut self, val: ::std::os::raw::c_uint) {
6376 unsafe {
6377 let val: u32 = ::std::mem::transmute(val);
6378 self._bitfield_1.set(0usize, 1u8, val as u64)
6379 }
6380 }
6381
6382 #[inline]
6383 pub unsafe fn _isUniformLinear_raw(this: *const Self) -> ::std::os::raw::c_uint {
6384 unsafe {
6385 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
6386 ::std::ptr::addr_of!((*this)._bitfield_1),
6387 0usize,
6388 1u8,
6389 ) as u32)
6390 }
6391 }
6392
6393 #[inline]
6394 pub unsafe fn set__isUniformLinear_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
6395 unsafe {
6396 let val: u32 = ::std::mem::transmute(val);
6397 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
6398 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6399 0usize,
6400 1u8,
6401 val as u64,
6402 )
6403 }
6404 }
6405
6406 #[inline]
6407 pub fn _vertexPrecisionIsDouble(&self) -> ::std::os::raw::c_uint {
6408 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
6409 }
6410
6411 #[inline]
6412 pub fn set__vertexPrecisionIsDouble(&mut self, val: ::std::os::raw::c_uint) {
6413 unsafe {
6414 let val: u32 = ::std::mem::transmute(val);
6415 self._bitfield_1.set(1usize, 1u8, val as u64)
6416 }
6417 }
6418
6419 #[inline]
6420 pub unsafe fn _vertexPrecisionIsDouble_raw(this: *const Self) -> ::std::os::raw::c_uint {
6421 unsafe {
6422 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
6423 ::std::ptr::addr_of!((*this)._bitfield_1),
6424 1usize,
6425 1u8,
6426 ) as u32)
6427 }
6428 }
6429
6430 #[inline]
6431 pub unsafe fn set__vertexPrecisionIsDouble_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
6432 unsafe {
6433 let val: u32 = ::std::mem::transmute(val);
6434 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
6435 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6436 1usize,
6437 1u8,
6438 val as u64,
6439 )
6440 }
6441 }
6442
6443 #[inline]
6444 pub fn _varyingPrecisionIsDouble(&self) -> ::std::os::raw::c_uint {
6445 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
6446 }
6447
6448 #[inline]
6449 pub fn set__varyingPrecisionIsDouble(&mut self, val: ::std::os::raw::c_uint) {
6450 unsafe {
6451 let val: u32 = ::std::mem::transmute(val);
6452 self._bitfield_1.set(2usize, 1u8, val as u64)
6453 }
6454 }
6455
6456 #[inline]
6457 pub unsafe fn _varyingPrecisionIsDouble_raw(this: *const Self) -> ::std::os::raw::c_uint {
6458 unsafe {
6459 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
6460 ::std::ptr::addr_of!((*this)._bitfield_1),
6461 2usize,
6462 1u8,
6463 ) as u32)
6464 }
6465 }
6466
6467 #[inline]
6468 pub unsafe fn set__varyingPrecisionIsDouble_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
6469 unsafe {
6470 let val: u32 = ::std::mem::transmute(val);
6471 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
6472 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6473 2usize,
6474 1u8,
6475 val as u64,
6476 )
6477 }
6478 }
6479
6480 #[inline]
6481 pub fn _faceVaryingPrecisionIsDouble(&self) -> ::std::os::raw::c_uint {
6482 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
6483 }
6484
6485 #[inline]
6486 pub fn set__faceVaryingPrecisionIsDouble(&mut self, val: ::std::os::raw::c_uint) {
6487 unsafe {
6488 let val: u32 = ::std::mem::transmute(val);
6489 self._bitfield_1.set(3usize, 1u8, val as u64)
6490 }
6491 }
6492
6493 #[inline]
6494 pub unsafe fn _faceVaryingPrecisionIsDouble_raw(this: *const Self) -> ::std::os::raw::c_uint {
6495 unsafe {
6496 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
6497 ::std::ptr::addr_of!((*this)._bitfield_1),
6498 3usize,
6499 1u8,
6500 ) as u32)
6501 }
6502 }
6503
6504 #[inline]
6505 pub unsafe fn set__faceVaryingPrecisionIsDouble_raw(
6506 this: *mut Self,
6507 val: ::std::os::raw::c_uint,
6508 ) {
6509 unsafe {
6510 let val: u32 = ::std::mem::transmute(val);
6511 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
6512 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6513 3usize,
6514 1u8,
6515 val as u64,
6516 )
6517 }
6518 }
6519
6520 #[inline]
6521 pub fn new_bitfield_1(
6522 _isUniformLinear: ::std::os::raw::c_uint,
6523 _vertexPrecisionIsDouble: ::std::os::raw::c_uint,
6524 _varyingPrecisionIsDouble: ::std::os::raw::c_uint,
6525 _faceVaryingPrecisionIsDouble: ::std::os::raw::c_uint,
6526 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
6527 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
6528 __bindgen_bitfield_unit.set(0usize, 1u8, {
6529 let _isUniformLinear: u32 = unsafe { ::std::mem::transmute(_isUniformLinear) };
6530 _isUniformLinear as u64
6531 });
6532 __bindgen_bitfield_unit.set(1usize, 1u8, {
6533 let _vertexPrecisionIsDouble: u32 =
6534 unsafe { ::std::mem::transmute(_vertexPrecisionIsDouble) };
6535 _vertexPrecisionIsDouble as u64
6536 });
6537 __bindgen_bitfield_unit.set(2usize, 1u8, {
6538 let _varyingPrecisionIsDouble: u32 =
6539 unsafe { ::std::mem::transmute(_varyingPrecisionIsDouble) };
6540 _varyingPrecisionIsDouble as u64
6541 });
6542 __bindgen_bitfield_unit.set(3usize, 1u8, {
6543 let _faceVaryingPrecisionIsDouble: u32 =
6544 unsafe { ::std::mem::transmute(_faceVaryingPrecisionIsDouble) };
6545 _faceVaryingPrecisionIsDouble as u64
6546 });
6547 __bindgen_bitfield_unit
6548 }
6549
6550 #[inline]
6551 pub unsafe fn IsFeatureAdaptive(&self) -> bool {
6552 OpenSubdiv_v3_7_0_Far_PatchTable_IsFeatureAdaptive(self)
6553 }
6554
6555 #[inline]
6556 pub unsafe fn GetNumPatchesTotal(&self) -> ::std::os::raw::c_int {
6557 OpenSubdiv_v3_7_0_Far_PatchTable_GetNumPatchesTotal(self)
6558 }
6559
6560 #[inline]
6561 pub unsafe fn GetPatchDescriptor(
6562 &self,
6563 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6564 ) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor {
6565 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchDescriptor(self, handle)
6566 }
6567
6568 #[inline]
6569 pub unsafe fn GetPatchVertices(
6570 &self,
6571 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6572 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray {
6573 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchVertices(self, handle)
6574 }
6575
6576 #[inline]
6577 pub unsafe fn GetPatchParam(
6578 &self,
6579 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6580 ) -> OpenSubdiv_v3_7_0_Far_PatchParam {
6581 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchParam(self, handle)
6582 }
6583
6584 #[inline]
6585 pub unsafe fn GetPatchVertices1(
6586 &self,
6587 array: ::std::os::raw::c_int,
6588 patch: ::std::os::raw::c_int,
6589 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray {
6590 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchVertices1(self, array, patch)
6591 }
6592
6593 #[inline]
6594 pub unsafe fn GetPatchParam1(
6595 &self,
6596 array: ::std::os::raw::c_int,
6597 patch: ::std::os::raw::c_int,
6598 ) -> OpenSubdiv_v3_7_0_Far_PatchParam {
6599 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchParam1(self, array, patch)
6600 }
6601
6602 #[inline]
6603 pub unsafe fn GetNumPatchArrays(&self) -> ::std::os::raw::c_int {
6604 OpenSubdiv_v3_7_0_Far_PatchTable_GetNumPatchArrays(self)
6605 }
6606
6607 #[inline]
6608 pub unsafe fn GetNumPatches(&self, array: ::std::os::raw::c_int) -> ::std::os::raw::c_int {
6609 OpenSubdiv_v3_7_0_Far_PatchTable_GetNumPatches(self, array)
6610 }
6611
6612 #[inline]
6613 pub unsafe fn GetNumControlVertices(
6614 &self,
6615 array: ::std::os::raw::c_int,
6616 ) -> ::std::os::raw::c_int {
6617 OpenSubdiv_v3_7_0_Far_PatchTable_GetNumControlVertices(self, array)
6618 }
6619
6620 #[inline]
6621 pub unsafe fn GetPatchArrayDescriptor(
6622 &self,
6623 array: ::std::os::raw::c_int,
6624 ) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor {
6625 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchArrayDescriptor(self, array)
6626 }
6627
6628 #[inline]
6629 pub unsafe fn GetPatchArrayVertices(
6630 &self,
6631 array: ::std::os::raw::c_int,
6632 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray {
6633 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchArrayVertices(self, array)
6634 }
6635
6636 #[inline]
6637 pub unsafe fn GetPatchParams(
6638 &self,
6639 array: ::std::os::raw::c_int,
6640 ) -> OpenSubdiv_v3_7_0_Far_ConstPatchParamArray {
6641 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchParams(self, array)
6642 }
6643
6644 #[inline]
6645 pub unsafe fn GetNumLocalPoints(&self) -> ::std::os::raw::c_int {
6646 OpenSubdiv_v3_7_0_Far_PatchTable_GetNumLocalPoints(self)
6647 }
6648
6649 #[inline]
6650 pub unsafe fn GetNumLocalPointsVarying(&self) -> ::std::os::raw::c_int {
6651 OpenSubdiv_v3_7_0_Far_PatchTable_GetNumLocalPointsVarying(self)
6652 }
6653
6654 #[inline]
6655 pub unsafe fn GetNumLocalPointsFaceVarying(
6656 &self,
6657 channel: ::std::os::raw::c_int,
6658 ) -> ::std::os::raw::c_int {
6659 OpenSubdiv_v3_7_0_Far_PatchTable_GetNumLocalPointsFaceVarying(self, channel)
6660 }
6661
6662 #[inline]
6663 pub unsafe fn GetPatchQuadOffsets(
6664 &self,
6665 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6666 ) -> OpenSubdiv_v3_7_0_Far_PatchTable_ConstQuadOffsetsArray {
6667 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchQuadOffsets(self, handle)
6668 }
6669
6670 #[inline]
6671 pub unsafe fn GetSingleCreasePatchSharpnessValue(
6672 &self,
6673 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6674 ) -> f32 {
6675 OpenSubdiv_v3_7_0_Far_PatchTable_GetSingleCreasePatchSharpnessValue(self, handle)
6676 }
6677
6678 #[inline]
6679 pub unsafe fn GetSingleCreasePatchSharpnessValue1(
6680 &self,
6681 array: ::std::os::raw::c_int,
6682 patch: ::std::os::raw::c_int,
6683 ) -> f32 {
6684 OpenSubdiv_v3_7_0_Far_PatchTable_GetSingleCreasePatchSharpnessValue1(self, array, patch)
6685 }
6686
6687 #[inline]
6688 pub unsafe fn GetVaryingPatchDescriptor(&self) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor {
6689 OpenSubdiv_v3_7_0_Far_PatchTable_GetVaryingPatchDescriptor(self)
6690 }
6691
6692 #[inline]
6693 pub unsafe fn GetPatchVaryingVertices(
6694 &self,
6695 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6696 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray {
6697 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchVaryingVertices(self, handle)
6698 }
6699
6700 #[inline]
6701 pub unsafe fn GetPatchVaryingVertices1(
6702 &self,
6703 array: ::std::os::raw::c_int,
6704 patch: ::std::os::raw::c_int,
6705 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray {
6706 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchVaryingVertices1(self, array, patch)
6707 }
6708
6709 #[inline]
6710 pub unsafe fn GetPatchArrayVaryingVertices(
6711 &self,
6712 array: ::std::os::raw::c_int,
6713 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray {
6714 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchArrayVaryingVertices(self, array)
6715 }
6716
6717 #[inline]
6718 pub unsafe fn GetVaryingVertices(&self) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray {
6719 OpenSubdiv_v3_7_0_Far_PatchTable_GetVaryingVertices(self)
6720 }
6721
6722 #[inline]
6723 pub unsafe fn GetNumFVarChannels(&self) -> ::std::os::raw::c_int {
6724 OpenSubdiv_v3_7_0_Far_PatchTable_GetNumFVarChannels(self)
6725 }
6726
6727 #[inline]
6728 pub unsafe fn GetFVarPatchDescriptorRegular(
6729 &self,
6730 channel: ::std::os::raw::c_int,
6731 ) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor {
6732 OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarPatchDescriptorRegular(self, channel)
6733 }
6734
6735 #[inline]
6736 pub unsafe fn GetFVarPatchDescriptorIrregular(
6737 &self,
6738 channel: ::std::os::raw::c_int,
6739 ) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor {
6740 OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarPatchDescriptorIrregular(self, channel)
6741 }
6742
6743 #[inline]
6744 pub unsafe fn GetFVarPatchDescriptor(
6745 &self,
6746 channel: ::std::os::raw::c_int,
6747 ) -> OpenSubdiv_v3_7_0_Far_PatchDescriptor {
6748 OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarPatchDescriptor(self, channel)
6749 }
6750
6751 #[inline]
6752 pub unsafe fn GetPatchFVarValues(
6753 &self,
6754 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6755 channel: ::std::os::raw::c_int,
6756 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray {
6757 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchFVarValues(self, handle, channel)
6758 }
6759
6760 #[inline]
6761 pub unsafe fn GetPatchFVarValues1(
6762 &self,
6763 array: ::std::os::raw::c_int,
6764 patch: ::std::os::raw::c_int,
6765 channel: ::std::os::raw::c_int,
6766 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray {
6767 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchFVarValues1(self, array, patch, channel)
6768 }
6769
6770 #[inline]
6771 pub unsafe fn GetPatchArrayFVarValues(
6772 &self,
6773 array: ::std::os::raw::c_int,
6774 channel: ::std::os::raw::c_int,
6775 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray {
6776 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchArrayFVarValues(self, array, channel)
6777 }
6778
6779 #[inline]
6780 pub unsafe fn GetFVarValues(
6781 &self,
6782 channel: ::std::os::raw::c_int,
6783 ) -> OpenSubdiv_v3_7_0_Far_ConstIndexArray {
6784 OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarValues(self, channel)
6785 }
6786
6787 #[inline]
6788 pub unsafe fn GetFVarValueStride(
6789 &self,
6790 channel: ::std::os::raw::c_int,
6791 ) -> ::std::os::raw::c_int {
6792 OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarValueStride(self, channel)
6793 }
6794
6795 #[inline]
6796 pub unsafe fn GetPatchFVarPatchParam(
6797 &self,
6798 handle: *const OpenSubdiv_v3_7_0_Far_PatchTable_PatchHandle,
6799 channel: ::std::os::raw::c_int,
6800 ) -> OpenSubdiv_v3_7_0_Far_PatchParam {
6801 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchFVarPatchParam(self, handle, channel)
6802 }
6803
6804 #[inline]
6805 pub unsafe fn GetPatchFVarPatchParam1(
6806 &self,
6807 array: ::std::os::raw::c_int,
6808 patch: ::std::os::raw::c_int,
6809 channel: ::std::os::raw::c_int,
6810 ) -> OpenSubdiv_v3_7_0_Far_PatchParam {
6811 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchFVarPatchParam1(self, array, patch, channel)
6812 }
6813
6814 #[inline]
6815 pub unsafe fn GetPatchArrayFVarPatchParams(
6816 &self,
6817 array: ::std::os::raw::c_int,
6818 channel: ::std::os::raw::c_int,
6819 ) -> OpenSubdiv_v3_7_0_Far_ConstPatchParamArray {
6820 OpenSubdiv_v3_7_0_Far_PatchTable_GetPatchArrayFVarPatchParams(self, array, channel)
6821 }
6822
6823 #[inline]
6824 pub unsafe fn GetFVarPatchParams(
6825 &self,
6826 channel: ::std::os::raw::c_int,
6827 ) -> OpenSubdiv_v3_7_0_Far_ConstPatchParamArray {
6828 OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarPatchParams(self, channel)
6829 }
6830
6831 #[inline]
6832 pub unsafe fn GetFVarChannelLinearInterpolation(
6833 &self,
6834 channel: ::std::os::raw::c_int,
6835 ) -> OpenSubdiv_v3_7_0_Sdc_Options_FVarLinearInterpolation {
6836 OpenSubdiv_v3_7_0_Far_PatchTable_GetFVarChannelLinearInterpolation(self, channel)
6837 }
6838
6839 #[inline]
6840 pub unsafe fn print(&self) {
6841 OpenSubdiv_v3_7_0_Far_PatchTable_print(self)
6842 }
6843
6844 #[inline]
6845 pub unsafe fn getPatchIndex(
6846 &self,
6847 array: ::std::os::raw::c_int,
6848 patch: ::std::os::raw::c_int,
6849 ) -> OpenSubdiv_v3_7_0_Far_Index {
6850 OpenSubdiv_v3_7_0_Far_PatchTable_getPatchIndex(self, array, patch)
6851 }
6852
6853 #[inline]
6854 pub unsafe fn getPatchParams(
6855 &mut self,
6856 arrayIndex: ::std::os::raw::c_int,
6857 ) -> OpenSubdiv_v3_7_0_Far_PatchParamArray {
6858 OpenSubdiv_v3_7_0_Far_PatchTable_getPatchParams(self, arrayIndex)
6859 }
6860
6861 #[inline]
6862 pub unsafe fn getSharpnessIndices(
6863 &mut self,
6864 arrayIndex: OpenSubdiv_v3_7_0_Far_Index,
6865 ) -> *mut OpenSubdiv_v3_7_0_Far_Index {
6866 OpenSubdiv_v3_7_0_Far_PatchTable_getSharpnessIndices(self, arrayIndex)
6867 }
6868
6869 #[inline]
6870 pub unsafe fn getSharpnessValues(
6871 &mut self,
6872 arrayIndex: OpenSubdiv_v3_7_0_Far_Index,
6873 ) -> *mut f32 {
6874 OpenSubdiv_v3_7_0_Far_PatchTable_getSharpnessValues(self, arrayIndex)
6875 }
6876
6877 #[inline]
6878 pub unsafe fn new(src: *const OpenSubdiv_v3_7_0_Far_PatchTable) -> Self {
6879 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
6880 OpenSubdiv_v3_7_0_Far_PatchTable_PatchTable(__bindgen_tmp.as_mut_ptr(), src);
6881 __bindgen_tmp.assume_init()
6882 }
6883
6884 #[inline]
6885 pub unsafe fn new1(maxvalence: ::std::os::raw::c_int) -> Self {
6886 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
6887 OpenSubdiv_v3_7_0_Far_PatchTable_PatchTable1(__bindgen_tmp.as_mut_ptr(), maxvalence);
6888 __bindgen_tmp.assume_init()
6889 }
6890
6891 #[inline]
6892 pub unsafe fn destruct(&mut self) {
6893 OpenSubdiv_v3_7_0_Far_PatchTable_PatchTable_destructor(self)
6894 }
6895}
6896#[doc = " \\brief Factory for constructing a PatchTable from a TopologyRefiner\n"]
6897#[repr(C)]
6898#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6899pub struct OpenSubdiv_v3_7_0_Far_PatchTableFactory {
6900 pub _address: u8,
6901}
6902#[doc = " \\brief Public options for the PatchTable factory\n"]
6903#[repr(C)]
6904#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6905pub struct OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options {
6906 pub _bitfield_align_1: [u8; 0],
6907 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
6908 #[doc = "< Number of channel indices and interpolation modes passed"]
6909 pub numFVarChannels: ::std::os::raw::c_int,
6910 #[doc = "< List containing the indices of the channels selected for the factory"]
6911 pub fvarChannelIndices: *const ::std::os::raw::c_int,
6912}
6913#[doc = "< unspecified"]
6914pub const OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options_EndCapType_ENDCAP_NONE:
6915 OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options_EndCapType = 0;
6916#[doc = "< use linear patches (simple quads or tris)"]
6917pub const OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options_EndCapType_ENDCAP_BILINEAR_BASIS:
6918 OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options_EndCapType = 1;
6919#[doc = "< use BSpline-like patches (same patch type as regular)"]
6920pub const OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options_EndCapType_ENDCAP_BSPLINE_BASIS:
6921 OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options_EndCapType = 2;
6922#[doc = "< use Gregory patches (highest quality, recommended default)"]
6923pub const OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options_EndCapType_ENDCAP_GREGORY_BASIS:
6924 OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options_EndCapType = 3;
6925#[doc = "< legacy option for 2.x style Gregory patches (Catmark only)"]
6926pub const OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options_EndCapType_ENDCAP_LEGACY_GREGORY:
6927 OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options_EndCapType = 4;
6928#[doc = " \\brief Choice for approximating irregular patches (end-caps)\n\n This enum specifies how irregular patches (end-caps) are approximated.\n A basis is chosen, rather than a specific patch type, and has a\n corresponding patch type for each subdivision scheme, i.e. a quad and\n triangular patch type exists for each basis. These choices provide a\n trade-off between surface quality and performance.\n"]
6929pub type OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options_EndCapType = ::std::os::raw::c_uint;
6930impl OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options {
6931 #[inline]
6932 pub fn generateAllLevels(&self) -> ::std::os::raw::c_uint {
6933 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
6934 }
6935
6936 #[inline]
6937 pub fn set_generateAllLevels(&mut self, val: ::std::os::raw::c_uint) {
6938 unsafe {
6939 let val: u32 = ::std::mem::transmute(val);
6940 self._bitfield_1.set(0usize, 1u8, val as u64)
6941 }
6942 }
6943
6944 #[inline]
6945 pub unsafe fn generateAllLevels_raw(this: *const Self) -> ::std::os::raw::c_uint {
6946 unsafe {
6947 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
6948 ::std::ptr::addr_of!((*this)._bitfield_1),
6949 0usize,
6950 1u8,
6951 ) as u32)
6952 }
6953 }
6954
6955 #[inline]
6956 pub unsafe fn set_generateAllLevels_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
6957 unsafe {
6958 let val: u32 = ::std::mem::transmute(val);
6959 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
6960 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6961 0usize,
6962 1u8,
6963 val as u64,
6964 )
6965 }
6966 }
6967
6968 #[inline]
6969 pub fn includeBaseLevelIndices(&self) -> ::std::os::raw::c_uint {
6970 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
6971 }
6972
6973 #[inline]
6974 pub fn set_includeBaseLevelIndices(&mut self, val: ::std::os::raw::c_uint) {
6975 unsafe {
6976 let val: u32 = ::std::mem::transmute(val);
6977 self._bitfield_1.set(1usize, 1u8, val as u64)
6978 }
6979 }
6980
6981 #[inline]
6982 pub unsafe fn includeBaseLevelIndices_raw(this: *const Self) -> ::std::os::raw::c_uint {
6983 unsafe {
6984 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
6985 ::std::ptr::addr_of!((*this)._bitfield_1),
6986 1usize,
6987 1u8,
6988 ) as u32)
6989 }
6990 }
6991
6992 #[inline]
6993 pub unsafe fn set_includeBaseLevelIndices_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
6994 unsafe {
6995 let val: u32 = ::std::mem::transmute(val);
6996 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
6997 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6998 1usize,
6999 1u8,
7000 val as u64,
7001 )
7002 }
7003 }
7004
7005 #[inline]
7006 pub fn includeFVarBaseLevelIndices(&self) -> ::std::os::raw::c_uint {
7007 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
7008 }
7009
7010 #[inline]
7011 pub fn set_includeFVarBaseLevelIndices(&mut self, val: ::std::os::raw::c_uint) {
7012 unsafe {
7013 let val: u32 = ::std::mem::transmute(val);
7014 self._bitfield_1.set(2usize, 1u8, val as u64)
7015 }
7016 }
7017
7018 #[inline]
7019 pub unsafe fn includeFVarBaseLevelIndices_raw(this: *const Self) -> ::std::os::raw::c_uint {
7020 unsafe {
7021 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7022 ::std::ptr::addr_of!((*this)._bitfield_1),
7023 2usize,
7024 1u8,
7025 ) as u32)
7026 }
7027 }
7028
7029 #[inline]
7030 pub unsafe fn set_includeFVarBaseLevelIndices_raw(
7031 this: *mut Self,
7032 val: ::std::os::raw::c_uint,
7033 ) {
7034 unsafe {
7035 let val: u32 = ::std::mem::transmute(val);
7036 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7037 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7038 2usize,
7039 1u8,
7040 val as u64,
7041 )
7042 }
7043 }
7044
7045 #[inline]
7046 pub fn triangulateQuads(&self) -> ::std::os::raw::c_uint {
7047 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
7048 }
7049
7050 #[inline]
7051 pub fn set_triangulateQuads(&mut self, val: ::std::os::raw::c_uint) {
7052 unsafe {
7053 let val: u32 = ::std::mem::transmute(val);
7054 self._bitfield_1.set(3usize, 1u8, val as u64)
7055 }
7056 }
7057
7058 #[inline]
7059 pub unsafe fn triangulateQuads_raw(this: *const Self) -> ::std::os::raw::c_uint {
7060 unsafe {
7061 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7062 ::std::ptr::addr_of!((*this)._bitfield_1),
7063 3usize,
7064 1u8,
7065 ) as u32)
7066 }
7067 }
7068
7069 #[inline]
7070 pub unsafe fn set_triangulateQuads_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7071 unsafe {
7072 let val: u32 = ::std::mem::transmute(val);
7073 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7074 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7075 3usize,
7076 1u8,
7077 val as u64,
7078 )
7079 }
7080 }
7081
7082 #[inline]
7083 pub fn useSingleCreasePatch(&self) -> ::std::os::raw::c_uint {
7084 unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
7085 }
7086
7087 #[inline]
7088 pub fn set_useSingleCreasePatch(&mut self, val: ::std::os::raw::c_uint) {
7089 unsafe {
7090 let val: u32 = ::std::mem::transmute(val);
7091 self._bitfield_1.set(4usize, 1u8, val as u64)
7092 }
7093 }
7094
7095 #[inline]
7096 pub unsafe fn useSingleCreasePatch_raw(this: *const Self) -> ::std::os::raw::c_uint {
7097 unsafe {
7098 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7099 ::std::ptr::addr_of!((*this)._bitfield_1),
7100 4usize,
7101 1u8,
7102 ) as u32)
7103 }
7104 }
7105
7106 #[inline]
7107 pub unsafe fn set_useSingleCreasePatch_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7108 unsafe {
7109 let val: u32 = ::std::mem::transmute(val);
7110 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7111 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7112 4usize,
7113 1u8,
7114 val as u64,
7115 )
7116 }
7117 }
7118
7119 #[inline]
7120 pub fn useInfSharpPatch(&self) -> ::std::os::raw::c_uint {
7121 unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
7122 }
7123
7124 #[inline]
7125 pub fn set_useInfSharpPatch(&mut self, val: ::std::os::raw::c_uint) {
7126 unsafe {
7127 let val: u32 = ::std::mem::transmute(val);
7128 self._bitfield_1.set(5usize, 1u8, val as u64)
7129 }
7130 }
7131
7132 #[inline]
7133 pub unsafe fn useInfSharpPatch_raw(this: *const Self) -> ::std::os::raw::c_uint {
7134 unsafe {
7135 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7136 ::std::ptr::addr_of!((*this)._bitfield_1),
7137 5usize,
7138 1u8,
7139 ) as u32)
7140 }
7141 }
7142
7143 #[inline]
7144 pub unsafe fn set_useInfSharpPatch_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7145 unsafe {
7146 let val: u32 = ::std::mem::transmute(val);
7147 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7148 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7149 5usize,
7150 1u8,
7151 val as u64,
7152 )
7153 }
7154 }
7155
7156 #[inline]
7157 pub fn maxIsolationLevel(&self) -> ::std::os::raw::c_uint {
7158 unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 4u8) as u32) }
7159 }
7160
7161 #[inline]
7162 pub fn set_maxIsolationLevel(&mut self, val: ::std::os::raw::c_uint) {
7163 unsafe {
7164 let val: u32 = ::std::mem::transmute(val);
7165 self._bitfield_1.set(6usize, 4u8, val as u64)
7166 }
7167 }
7168
7169 #[inline]
7170 pub unsafe fn maxIsolationLevel_raw(this: *const Self) -> ::std::os::raw::c_uint {
7171 unsafe {
7172 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7173 ::std::ptr::addr_of!((*this)._bitfield_1),
7174 6usize,
7175 4u8,
7176 ) as u32)
7177 }
7178 }
7179
7180 #[inline]
7181 pub unsafe fn set_maxIsolationLevel_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7182 unsafe {
7183 let val: u32 = ::std::mem::transmute(val);
7184 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7185 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7186 6usize,
7187 4u8,
7188 val as u64,
7189 )
7190 }
7191 }
7192
7193 #[inline]
7194 pub fn endCapType(&self) -> ::std::os::raw::c_uint {
7195 unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 3u8) as u32) }
7196 }
7197
7198 #[inline]
7199 pub fn set_endCapType(&mut self, val: ::std::os::raw::c_uint) {
7200 unsafe {
7201 let val: u32 = ::std::mem::transmute(val);
7202 self._bitfield_1.set(10usize, 3u8, val as u64)
7203 }
7204 }
7205
7206 #[inline]
7207 pub unsafe fn endCapType_raw(this: *const Self) -> ::std::os::raw::c_uint {
7208 unsafe {
7209 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7210 ::std::ptr::addr_of!((*this)._bitfield_1),
7211 10usize,
7212 3u8,
7213 ) as u32)
7214 }
7215 }
7216
7217 #[inline]
7218 pub unsafe fn set_endCapType_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7219 unsafe {
7220 let val: u32 = ::std::mem::transmute(val);
7221 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7222 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7223 10usize,
7224 3u8,
7225 val as u64,
7226 )
7227 }
7228 }
7229
7230 #[inline]
7231 pub fn shareEndCapPatchPoints(&self) -> ::std::os::raw::c_uint {
7232 unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
7233 }
7234
7235 #[inline]
7236 pub fn set_shareEndCapPatchPoints(&mut self, val: ::std::os::raw::c_uint) {
7237 unsafe {
7238 let val: u32 = ::std::mem::transmute(val);
7239 self._bitfield_1.set(13usize, 1u8, val as u64)
7240 }
7241 }
7242
7243 #[inline]
7244 pub unsafe fn shareEndCapPatchPoints_raw(this: *const Self) -> ::std::os::raw::c_uint {
7245 unsafe {
7246 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7247 ::std::ptr::addr_of!((*this)._bitfield_1),
7248 13usize,
7249 1u8,
7250 ) as u32)
7251 }
7252 }
7253
7254 #[inline]
7255 pub unsafe fn set_shareEndCapPatchPoints_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7256 unsafe {
7257 let val: u32 = ::std::mem::transmute(val);
7258 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7259 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7260 13usize,
7261 1u8,
7262 val as u64,
7263 )
7264 }
7265 }
7266
7267 #[inline]
7268 pub fn generateVaryingTables(&self) -> ::std::os::raw::c_uint {
7269 unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
7270 }
7271
7272 #[inline]
7273 pub fn set_generateVaryingTables(&mut self, val: ::std::os::raw::c_uint) {
7274 unsafe {
7275 let val: u32 = ::std::mem::transmute(val);
7276 self._bitfield_1.set(14usize, 1u8, val as u64)
7277 }
7278 }
7279
7280 #[inline]
7281 pub unsafe fn generateVaryingTables_raw(this: *const Self) -> ::std::os::raw::c_uint {
7282 unsafe {
7283 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7284 ::std::ptr::addr_of!((*this)._bitfield_1),
7285 14usize,
7286 1u8,
7287 ) as u32)
7288 }
7289 }
7290
7291 #[inline]
7292 pub unsafe fn set_generateVaryingTables_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7293 unsafe {
7294 let val: u32 = ::std::mem::transmute(val);
7295 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7296 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7297 14usize,
7298 1u8,
7299 val as u64,
7300 )
7301 }
7302 }
7303
7304 #[inline]
7305 pub fn generateVaryingLocalPoints(&self) -> ::std::os::raw::c_uint {
7306 unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
7307 }
7308
7309 #[inline]
7310 pub fn set_generateVaryingLocalPoints(&mut self, val: ::std::os::raw::c_uint) {
7311 unsafe {
7312 let val: u32 = ::std::mem::transmute(val);
7313 self._bitfield_1.set(15usize, 1u8, val as u64)
7314 }
7315 }
7316
7317 #[inline]
7318 pub unsafe fn generateVaryingLocalPoints_raw(this: *const Self) -> ::std::os::raw::c_uint {
7319 unsafe {
7320 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7321 ::std::ptr::addr_of!((*this)._bitfield_1),
7322 15usize,
7323 1u8,
7324 ) as u32)
7325 }
7326 }
7327
7328 #[inline]
7329 pub unsafe fn set_generateVaryingLocalPoints_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7330 unsafe {
7331 let val: u32 = ::std::mem::transmute(val);
7332 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7333 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7334 15usize,
7335 1u8,
7336 val as u64,
7337 )
7338 }
7339 }
7340
7341 #[inline]
7342 pub fn generateFVarTables(&self) -> ::std::os::raw::c_uint {
7343 unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
7344 }
7345
7346 #[inline]
7347 pub fn set_generateFVarTables(&mut self, val: ::std::os::raw::c_uint) {
7348 unsafe {
7349 let val: u32 = ::std::mem::transmute(val);
7350 self._bitfield_1.set(16usize, 1u8, val as u64)
7351 }
7352 }
7353
7354 #[inline]
7355 pub unsafe fn generateFVarTables_raw(this: *const Self) -> ::std::os::raw::c_uint {
7356 unsafe {
7357 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7358 ::std::ptr::addr_of!((*this)._bitfield_1),
7359 16usize,
7360 1u8,
7361 ) as u32)
7362 }
7363 }
7364
7365 #[inline]
7366 pub unsafe fn set_generateFVarTables_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7367 unsafe {
7368 let val: u32 = ::std::mem::transmute(val);
7369 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7370 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7371 16usize,
7372 1u8,
7373 val as u64,
7374 )
7375 }
7376 }
7377
7378 #[inline]
7379 pub fn patchPrecisionDouble(&self) -> ::std::os::raw::c_uint {
7380 unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) }
7381 }
7382
7383 #[inline]
7384 pub fn set_patchPrecisionDouble(&mut self, val: ::std::os::raw::c_uint) {
7385 unsafe {
7386 let val: u32 = ::std::mem::transmute(val);
7387 self._bitfield_1.set(17usize, 1u8, val as u64)
7388 }
7389 }
7390
7391 #[inline]
7392 pub unsafe fn patchPrecisionDouble_raw(this: *const Self) -> ::std::os::raw::c_uint {
7393 unsafe {
7394 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7395 ::std::ptr::addr_of!((*this)._bitfield_1),
7396 17usize,
7397 1u8,
7398 ) as u32)
7399 }
7400 }
7401
7402 #[inline]
7403 pub unsafe fn set_patchPrecisionDouble_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7404 unsafe {
7405 let val: u32 = ::std::mem::transmute(val);
7406 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7407 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7408 17usize,
7409 1u8,
7410 val as u64,
7411 )
7412 }
7413 }
7414
7415 #[inline]
7416 pub fn fvarPatchPrecisionDouble(&self) -> ::std::os::raw::c_uint {
7417 unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
7418 }
7419
7420 #[inline]
7421 pub fn set_fvarPatchPrecisionDouble(&mut self, val: ::std::os::raw::c_uint) {
7422 unsafe {
7423 let val: u32 = ::std::mem::transmute(val);
7424 self._bitfield_1.set(18usize, 1u8, val as u64)
7425 }
7426 }
7427
7428 #[inline]
7429 pub unsafe fn fvarPatchPrecisionDouble_raw(this: *const Self) -> ::std::os::raw::c_uint {
7430 unsafe {
7431 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7432 ::std::ptr::addr_of!((*this)._bitfield_1),
7433 18usize,
7434 1u8,
7435 ) as u32)
7436 }
7437 }
7438
7439 #[inline]
7440 pub unsafe fn set_fvarPatchPrecisionDouble_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7441 unsafe {
7442 let val: u32 = ::std::mem::transmute(val);
7443 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7444 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7445 18usize,
7446 1u8,
7447 val as u64,
7448 )
7449 }
7450 }
7451
7452 #[inline]
7453 pub fn generateFVarLegacyLinearPatches(&self) -> ::std::os::raw::c_uint {
7454 unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) }
7455 }
7456
7457 #[inline]
7458 pub fn set_generateFVarLegacyLinearPatches(&mut self, val: ::std::os::raw::c_uint) {
7459 unsafe {
7460 let val: u32 = ::std::mem::transmute(val);
7461 self._bitfield_1.set(19usize, 1u8, val as u64)
7462 }
7463 }
7464
7465 #[inline]
7466 pub unsafe fn generateFVarLegacyLinearPatches_raw(this: *const Self) -> ::std::os::raw::c_uint {
7467 unsafe {
7468 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7469 ::std::ptr::addr_of!((*this)._bitfield_1),
7470 19usize,
7471 1u8,
7472 ) as u32)
7473 }
7474 }
7475
7476 #[inline]
7477 pub unsafe fn set_generateFVarLegacyLinearPatches_raw(
7478 this: *mut Self,
7479 val: ::std::os::raw::c_uint,
7480 ) {
7481 unsafe {
7482 let val: u32 = ::std::mem::transmute(val);
7483 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7484 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7485 19usize,
7486 1u8,
7487 val as u64,
7488 )
7489 }
7490 }
7491
7492 #[inline]
7493 pub fn generateLegacySharpCornerPatches(&self) -> ::std::os::raw::c_uint {
7494 unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
7495 }
7496
7497 #[inline]
7498 pub fn set_generateLegacySharpCornerPatches(&mut self, val: ::std::os::raw::c_uint) {
7499 unsafe {
7500 let val: u32 = ::std::mem::transmute(val);
7501 self._bitfield_1.set(20usize, 1u8, val as u64)
7502 }
7503 }
7504
7505 #[inline]
7506 pub unsafe fn generateLegacySharpCornerPatches_raw(
7507 this: *const Self,
7508 ) -> ::std::os::raw::c_uint {
7509 unsafe {
7510 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7511 ::std::ptr::addr_of!((*this)._bitfield_1),
7512 20usize,
7513 1u8,
7514 ) as u32)
7515 }
7516 }
7517
7518 #[inline]
7519 pub unsafe fn set_generateLegacySharpCornerPatches_raw(
7520 this: *mut Self,
7521 val: ::std::os::raw::c_uint,
7522 ) {
7523 unsafe {
7524 let val: u32 = ::std::mem::transmute(val);
7525 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7526 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7527 20usize,
7528 1u8,
7529 val as u64,
7530 )
7531 }
7532 }
7533
7534 #[inline]
7535 pub fn new_bitfield_1(
7536 generateAllLevels: ::std::os::raw::c_uint,
7537 includeBaseLevelIndices: ::std::os::raw::c_uint,
7538 includeFVarBaseLevelIndices: ::std::os::raw::c_uint,
7539 triangulateQuads: ::std::os::raw::c_uint,
7540 useSingleCreasePatch: ::std::os::raw::c_uint,
7541 useInfSharpPatch: ::std::os::raw::c_uint,
7542 maxIsolationLevel: ::std::os::raw::c_uint,
7543 endCapType: ::std::os::raw::c_uint,
7544 shareEndCapPatchPoints: ::std::os::raw::c_uint,
7545 generateVaryingTables: ::std::os::raw::c_uint,
7546 generateVaryingLocalPoints: ::std::os::raw::c_uint,
7547 generateFVarTables: ::std::os::raw::c_uint,
7548 patchPrecisionDouble: ::std::os::raw::c_uint,
7549 fvarPatchPrecisionDouble: ::std::os::raw::c_uint,
7550 generateFVarLegacyLinearPatches: ::std::os::raw::c_uint,
7551 generateLegacySharpCornerPatches: ::std::os::raw::c_uint,
7552 ) -> __BindgenBitfieldUnit<[u8; 3usize]> {
7553 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
7554 __bindgen_bitfield_unit.set(0usize, 1u8, {
7555 let generateAllLevels: u32 = unsafe { ::std::mem::transmute(generateAllLevels) };
7556 generateAllLevels as u64
7557 });
7558 __bindgen_bitfield_unit.set(1usize, 1u8, {
7559 let includeBaseLevelIndices: u32 =
7560 unsafe { ::std::mem::transmute(includeBaseLevelIndices) };
7561 includeBaseLevelIndices as u64
7562 });
7563 __bindgen_bitfield_unit.set(2usize, 1u8, {
7564 let includeFVarBaseLevelIndices: u32 =
7565 unsafe { ::std::mem::transmute(includeFVarBaseLevelIndices) };
7566 includeFVarBaseLevelIndices as u64
7567 });
7568 __bindgen_bitfield_unit.set(3usize, 1u8, {
7569 let triangulateQuads: u32 = unsafe { ::std::mem::transmute(triangulateQuads) };
7570 triangulateQuads as u64
7571 });
7572 __bindgen_bitfield_unit.set(4usize, 1u8, {
7573 let useSingleCreasePatch: u32 = unsafe { ::std::mem::transmute(useSingleCreasePatch) };
7574 useSingleCreasePatch as u64
7575 });
7576 __bindgen_bitfield_unit.set(5usize, 1u8, {
7577 let useInfSharpPatch: u32 = unsafe { ::std::mem::transmute(useInfSharpPatch) };
7578 useInfSharpPatch as u64
7579 });
7580 __bindgen_bitfield_unit.set(6usize, 4u8, {
7581 let maxIsolationLevel: u32 = unsafe { ::std::mem::transmute(maxIsolationLevel) };
7582 maxIsolationLevel as u64
7583 });
7584 __bindgen_bitfield_unit.set(10usize, 3u8, {
7585 let endCapType: u32 = unsafe { ::std::mem::transmute(endCapType) };
7586 endCapType as u64
7587 });
7588 __bindgen_bitfield_unit.set(13usize, 1u8, {
7589 let shareEndCapPatchPoints: u32 =
7590 unsafe { ::std::mem::transmute(shareEndCapPatchPoints) };
7591 shareEndCapPatchPoints as u64
7592 });
7593 __bindgen_bitfield_unit.set(14usize, 1u8, {
7594 let generateVaryingTables: u32 =
7595 unsafe { ::std::mem::transmute(generateVaryingTables) };
7596 generateVaryingTables as u64
7597 });
7598 __bindgen_bitfield_unit.set(15usize, 1u8, {
7599 let generateVaryingLocalPoints: u32 =
7600 unsafe { ::std::mem::transmute(generateVaryingLocalPoints) };
7601 generateVaryingLocalPoints as u64
7602 });
7603 __bindgen_bitfield_unit.set(16usize, 1u8, {
7604 let generateFVarTables: u32 = unsafe { ::std::mem::transmute(generateFVarTables) };
7605 generateFVarTables as u64
7606 });
7607 __bindgen_bitfield_unit.set(17usize, 1u8, {
7608 let patchPrecisionDouble: u32 = unsafe { ::std::mem::transmute(patchPrecisionDouble) };
7609 patchPrecisionDouble as u64
7610 });
7611 __bindgen_bitfield_unit.set(18usize, 1u8, {
7612 let fvarPatchPrecisionDouble: u32 =
7613 unsafe { ::std::mem::transmute(fvarPatchPrecisionDouble) };
7614 fvarPatchPrecisionDouble as u64
7615 });
7616 __bindgen_bitfield_unit.set(19usize, 1u8, {
7617 let generateFVarLegacyLinearPatches: u32 =
7618 unsafe { ::std::mem::transmute(generateFVarLegacyLinearPatches) };
7619 generateFVarLegacyLinearPatches as u64
7620 });
7621 __bindgen_bitfield_unit.set(20usize, 1u8, {
7622 let generateLegacySharpCornerPatches: u32 =
7623 unsafe { ::std::mem::transmute(generateLegacySharpCornerPatches) };
7624 generateLegacySharpCornerPatches as u64
7625 });
7626 __bindgen_bitfield_unit
7627 }
7628}
7629#[doc = " \\brief Obsolete internal struct not intended for public use -- due to\n be deprecated."]
7630#[repr(C)]
7631#[repr(align(4))]
7632#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7633pub struct OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag {
7634 pub _bitfield_align_1: [u8; 0],
7635 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
7636 pub __bindgen_padding_0: u8,
7637}
7638unsafe extern "C" {
7639 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far17PatchTableFactory12PatchFaceTag5clearEv"]
7640 pub fn OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag_clear(
7641 this: *mut OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag,
7642 );
7643}
7644unsafe extern "C" {
7645 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far17PatchTableFactory12PatchFaceTag36assignBoundaryPropertiesFromEdgeMaskEi"]
7646 pub fn OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag_assignBoundaryPropertiesFromEdgeMask(
7647 this: *mut OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag,
7648 boundaryEdgeMask: ::std::os::raw::c_int,
7649 );
7650}
7651unsafe extern "C" {
7652 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far17PatchTableFactory12PatchFaceTag38assignBoundaryPropertiesFromVertexMaskEi"]
7653 pub fn OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag_assignBoundaryPropertiesFromVertexMask(
7654 this: *mut OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag,
7655 boundaryVertexMask: ::std::os::raw::c_int,
7656 );
7657}
7658unsafe extern "C" {
7659 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far17PatchTableFactory12PatchFaceTag38assignTransitionPropertiesFromEdgeMaskEi"]
7660 pub fn OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag_assignTransitionPropertiesFromEdgeMask(
7661 this: *mut OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag,
7662 boundaryVertexMask: ::std::os::raw::c_int,
7663 );
7664}
7665impl OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag {
7666 #[inline]
7667 pub fn _hasPatch(&self) -> ::std::os::raw::c_uint {
7668 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
7669 }
7670
7671 #[inline]
7672 pub fn set__hasPatch(&mut self, val: ::std::os::raw::c_uint) {
7673 unsafe {
7674 let val: u32 = ::std::mem::transmute(val);
7675 self._bitfield_1.set(0usize, 1u8, val as u64)
7676 }
7677 }
7678
7679 #[inline]
7680 pub unsafe fn _hasPatch_raw(this: *const Self) -> ::std::os::raw::c_uint {
7681 unsafe {
7682 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7683 ::std::ptr::addr_of!((*this)._bitfield_1),
7684 0usize,
7685 1u8,
7686 ) as u32)
7687 }
7688 }
7689
7690 #[inline]
7691 pub unsafe fn set__hasPatch_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7692 unsafe {
7693 let val: u32 = ::std::mem::transmute(val);
7694 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7695 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7696 0usize,
7697 1u8,
7698 val as u64,
7699 )
7700 }
7701 }
7702
7703 #[inline]
7704 pub fn _isRegular(&self) -> ::std::os::raw::c_uint {
7705 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
7706 }
7707
7708 #[inline]
7709 pub fn set__isRegular(&mut self, val: ::std::os::raw::c_uint) {
7710 unsafe {
7711 let val: u32 = ::std::mem::transmute(val);
7712 self._bitfield_1.set(1usize, 1u8, val as u64)
7713 }
7714 }
7715
7716 #[inline]
7717 pub unsafe fn _isRegular_raw(this: *const Self) -> ::std::os::raw::c_uint {
7718 unsafe {
7719 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7720 ::std::ptr::addr_of!((*this)._bitfield_1),
7721 1usize,
7722 1u8,
7723 ) as u32)
7724 }
7725 }
7726
7727 #[inline]
7728 pub unsafe fn set__isRegular_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7729 unsafe {
7730 let val: u32 = ::std::mem::transmute(val);
7731 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7732 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7733 1usize,
7734 1u8,
7735 val as u64,
7736 )
7737 }
7738 }
7739
7740 #[inline]
7741 pub fn _transitionMask(&self) -> ::std::os::raw::c_uint {
7742 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 4u8) as u32) }
7743 }
7744
7745 #[inline]
7746 pub fn set__transitionMask(&mut self, val: ::std::os::raw::c_uint) {
7747 unsafe {
7748 let val: u32 = ::std::mem::transmute(val);
7749 self._bitfield_1.set(2usize, 4u8, val as u64)
7750 }
7751 }
7752
7753 #[inline]
7754 pub unsafe fn _transitionMask_raw(this: *const Self) -> ::std::os::raw::c_uint {
7755 unsafe {
7756 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7757 ::std::ptr::addr_of!((*this)._bitfield_1),
7758 2usize,
7759 4u8,
7760 ) as u32)
7761 }
7762 }
7763
7764 #[inline]
7765 pub unsafe fn set__transitionMask_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7766 unsafe {
7767 let val: u32 = ::std::mem::transmute(val);
7768 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7769 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7770 2usize,
7771 4u8,
7772 val as u64,
7773 )
7774 }
7775 }
7776
7777 #[inline]
7778 pub fn _boundaryMask(&self) -> ::std::os::raw::c_uint {
7779 unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 4u8) as u32) }
7780 }
7781
7782 #[inline]
7783 pub fn set__boundaryMask(&mut self, val: ::std::os::raw::c_uint) {
7784 unsafe {
7785 let val: u32 = ::std::mem::transmute(val);
7786 self._bitfield_1.set(6usize, 4u8, val as u64)
7787 }
7788 }
7789
7790 #[inline]
7791 pub unsafe fn _boundaryMask_raw(this: *const Self) -> ::std::os::raw::c_uint {
7792 unsafe {
7793 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7794 ::std::ptr::addr_of!((*this)._bitfield_1),
7795 6usize,
7796 4u8,
7797 ) as u32)
7798 }
7799 }
7800
7801 #[inline]
7802 pub unsafe fn set__boundaryMask_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7803 unsafe {
7804 let val: u32 = ::std::mem::transmute(val);
7805 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7806 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7807 6usize,
7808 4u8,
7809 val as u64,
7810 )
7811 }
7812 }
7813
7814 #[inline]
7815 pub fn _boundaryIndex(&self) -> ::std::os::raw::c_uint {
7816 unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 2u8) as u32) }
7817 }
7818
7819 #[inline]
7820 pub fn set__boundaryIndex(&mut self, val: ::std::os::raw::c_uint) {
7821 unsafe {
7822 let val: u32 = ::std::mem::transmute(val);
7823 self._bitfield_1.set(10usize, 2u8, val as u64)
7824 }
7825 }
7826
7827 #[inline]
7828 pub unsafe fn _boundaryIndex_raw(this: *const Self) -> ::std::os::raw::c_uint {
7829 unsafe {
7830 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7831 ::std::ptr::addr_of!((*this)._bitfield_1),
7832 10usize,
7833 2u8,
7834 ) as u32)
7835 }
7836 }
7837
7838 #[inline]
7839 pub unsafe fn set__boundaryIndex_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7840 unsafe {
7841 let val: u32 = ::std::mem::transmute(val);
7842 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7843 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7844 10usize,
7845 2u8,
7846 val as u64,
7847 )
7848 }
7849 }
7850
7851 #[inline]
7852 pub fn _boundaryCount(&self) -> ::std::os::raw::c_uint {
7853 unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 3u8) as u32) }
7854 }
7855
7856 #[inline]
7857 pub fn set__boundaryCount(&mut self, val: ::std::os::raw::c_uint) {
7858 unsafe {
7859 let val: u32 = ::std::mem::transmute(val);
7860 self._bitfield_1.set(12usize, 3u8, val as u64)
7861 }
7862 }
7863
7864 #[inline]
7865 pub unsafe fn _boundaryCount_raw(this: *const Self) -> ::std::os::raw::c_uint {
7866 unsafe {
7867 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7868 ::std::ptr::addr_of!((*this)._bitfield_1),
7869 12usize,
7870 3u8,
7871 ) as u32)
7872 }
7873 }
7874
7875 #[inline]
7876 pub unsafe fn set__boundaryCount_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7877 unsafe {
7878 let val: u32 = ::std::mem::transmute(val);
7879 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7880 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7881 12usize,
7882 3u8,
7883 val as u64,
7884 )
7885 }
7886 }
7887
7888 #[inline]
7889 pub fn _hasBoundaryEdge(&self) -> ::std::os::raw::c_uint {
7890 unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 3u8) as u32) }
7891 }
7892
7893 #[inline]
7894 pub fn set__hasBoundaryEdge(&mut self, val: ::std::os::raw::c_uint) {
7895 unsafe {
7896 let val: u32 = ::std::mem::transmute(val);
7897 self._bitfield_1.set(15usize, 3u8, val as u64)
7898 }
7899 }
7900
7901 #[inline]
7902 pub unsafe fn _hasBoundaryEdge_raw(this: *const Self) -> ::std::os::raw::c_uint {
7903 unsafe {
7904 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7905 ::std::ptr::addr_of!((*this)._bitfield_1),
7906 15usize,
7907 3u8,
7908 ) as u32)
7909 }
7910 }
7911
7912 #[inline]
7913 pub unsafe fn set__hasBoundaryEdge_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7914 unsafe {
7915 let val: u32 = ::std::mem::transmute(val);
7916 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7917 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7918 15usize,
7919 3u8,
7920 val as u64,
7921 )
7922 }
7923 }
7924
7925 #[inline]
7926 pub fn _isSingleCrease(&self) -> ::std::os::raw::c_uint {
7927 unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
7928 }
7929
7930 #[inline]
7931 pub fn set__isSingleCrease(&mut self, val: ::std::os::raw::c_uint) {
7932 unsafe {
7933 let val: u32 = ::std::mem::transmute(val);
7934 self._bitfield_1.set(18usize, 1u8, val as u64)
7935 }
7936 }
7937
7938 #[inline]
7939 pub unsafe fn _isSingleCrease_raw(this: *const Self) -> ::std::os::raw::c_uint {
7940 unsafe {
7941 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
7942 ::std::ptr::addr_of!((*this)._bitfield_1),
7943 18usize,
7944 1u8,
7945 ) as u32)
7946 }
7947 }
7948
7949 #[inline]
7950 pub unsafe fn set__isSingleCrease_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
7951 unsafe {
7952 let val: u32 = ::std::mem::transmute(val);
7953 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
7954 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
7955 18usize,
7956 1u8,
7957 val as u64,
7958 )
7959 }
7960 }
7961
7962 #[inline]
7963 pub fn new_bitfield_1(
7964 _hasPatch: ::std::os::raw::c_uint,
7965 _isRegular: ::std::os::raw::c_uint,
7966 _transitionMask: ::std::os::raw::c_uint,
7967 _boundaryMask: ::std::os::raw::c_uint,
7968 _boundaryIndex: ::std::os::raw::c_uint,
7969 _boundaryCount: ::std::os::raw::c_uint,
7970 _hasBoundaryEdge: ::std::os::raw::c_uint,
7971 _isSingleCrease: ::std::os::raw::c_uint,
7972 ) -> __BindgenBitfieldUnit<[u8; 3usize]> {
7973 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
7974 __bindgen_bitfield_unit.set(0usize, 1u8, {
7975 let _hasPatch: u32 = unsafe { ::std::mem::transmute(_hasPatch) };
7976 _hasPatch as u64
7977 });
7978 __bindgen_bitfield_unit.set(1usize, 1u8, {
7979 let _isRegular: u32 = unsafe { ::std::mem::transmute(_isRegular) };
7980 _isRegular as u64
7981 });
7982 __bindgen_bitfield_unit.set(2usize, 4u8, {
7983 let _transitionMask: u32 = unsafe { ::std::mem::transmute(_transitionMask) };
7984 _transitionMask as u64
7985 });
7986 __bindgen_bitfield_unit.set(6usize, 4u8, {
7987 let _boundaryMask: u32 = unsafe { ::std::mem::transmute(_boundaryMask) };
7988 _boundaryMask as u64
7989 });
7990 __bindgen_bitfield_unit.set(10usize, 2u8, {
7991 let _boundaryIndex: u32 = unsafe { ::std::mem::transmute(_boundaryIndex) };
7992 _boundaryIndex as u64
7993 });
7994 __bindgen_bitfield_unit.set(12usize, 3u8, {
7995 let _boundaryCount: u32 = unsafe { ::std::mem::transmute(_boundaryCount) };
7996 _boundaryCount as u64
7997 });
7998 __bindgen_bitfield_unit.set(15usize, 3u8, {
7999 let _hasBoundaryEdge: u32 = unsafe { ::std::mem::transmute(_hasBoundaryEdge) };
8000 _hasBoundaryEdge as u64
8001 });
8002 __bindgen_bitfield_unit.set(18usize, 1u8, {
8003 let _isSingleCrease: u32 = unsafe { ::std::mem::transmute(_isSingleCrease) };
8004 _isSingleCrease as u64
8005 });
8006 __bindgen_bitfield_unit
8007 }
8008
8009 #[inline]
8010 pub unsafe fn clear(&mut self) {
8011 OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag_clear(self)
8012 }
8013
8014 #[inline]
8015 pub unsafe fn assignBoundaryPropertiesFromEdgeMask(
8016 &mut self,
8017 boundaryEdgeMask: ::std::os::raw::c_int,
8018 ) {
8019 OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag_assignBoundaryPropertiesFromEdgeMask(
8020 self,
8021 boundaryEdgeMask,
8022 )
8023 }
8024
8025 #[inline]
8026 pub unsafe fn assignBoundaryPropertiesFromVertexMask(
8027 &mut self,
8028 boundaryVertexMask: ::std::os::raw::c_int,
8029 ) {
8030 OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag_assignBoundaryPropertiesFromVertexMask(
8031 self,
8032 boundaryVertexMask,
8033 )
8034 }
8035
8036 #[inline]
8037 pub unsafe fn assignTransitionPropertiesFromEdgeMask(
8038 &mut self,
8039 boundaryVertexMask: ::std::os::raw::c_int,
8040 ) {
8041 OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchFaceTag_assignTransitionPropertiesFromEdgeMask(
8042 self,
8043 boundaryVertexMask,
8044 )
8045 }
8046}
8047pub type OpenSubdiv_v3_7_0_Far_PatchTableFactory_PatchTagVector = u8;
8048unsafe extern "C" {
8049 #[doc = " \\brief Instantiates a PatchTable from a client-provided TopologyRefiner.\n\n A PatchTable can be constructed from a TopologyRefiner that has been\n either adaptively or uniformly refined. In both cases, the resulting\n patches reference vertices in the various refined levels by index,\n and those indices accumulate with the levels in different ways.\n\n For adaptively refined patches, patches are defined at different levels,\n including the base level, so the indices of patch vertices include\n vertices from all levels. A sparse set of patches can be created by\n restricting the patches generated to those descending from a given set\n of faces at the base level. This sparse set of base faces is expected\n to be a subset of the faces that were adaptively refined in the given\n TopologyRefiner, otherwise results are undefined.\n\n For uniformly refined patches, all patches are completely defined within\n the last level. There is often no use for intermediate levels and they\n can usually be ignored. Indices of patch vertices might therefore be\n expected to be defined solely within the last level. While this is true\n for face-varying patches, for historical reasons it is not the case for\n vertex and varying patches. Indices for vertex and varying patches include\n the base level in addition to the last level while indices for face-varying\n patches include only the last level.\n\n @param refiner TopologyRefiner from which to generate patches\n\n @param options Options controlling the creation of the table\n\n @param selectedFaces Only create patches for the given set of base faces.\n\n @return A new instance of PatchTable\n"]
8050 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Far17PatchTableFactory6CreateERKNS1_15TopologyRefinerENS2_7OptionsENS0_3Vtr10ConstArrayIiEE"]
8051 pub fn OpenSubdiv_v3_7_0_Far_PatchTableFactory_Create(
8052 refiner: *const OpenSubdiv_v3_7_0_Far_TopologyRefiner,
8053 options: OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options,
8054 selectedFaces: OpenSubdiv_v3_7_0_Far_ConstIndexArray,
8055 ) -> *mut OpenSubdiv_v3_7_0_Far_PatchTable;
8056}
8057impl OpenSubdiv_v3_7_0_Far_PatchTableFactory {
8058 #[inline]
8059 pub unsafe fn Create(
8060 refiner: *const OpenSubdiv_v3_7_0_Far_TopologyRefiner,
8061 options: OpenSubdiv_v3_7_0_Far_PatchTableFactory_Options,
8062 selectedFaces: OpenSubdiv_v3_7_0_Far_ConstIndexArray,
8063 ) -> *mut OpenSubdiv_v3_7_0_Far_PatchTable {
8064 OpenSubdiv_v3_7_0_Far_PatchTableFactory_Create(refiner, options, selectedFaces)
8065 }
8066}
8067#[doc = "\n @brief Simple class defining the 2D parameterization of a face\n\n Parameterization is a simple class that provides information about the\n parameterization of a face in a local (u,v) coordinate system. It is\n defined by the size of a face (i.e. its number of vertices) and the\n subdivision scheme that determines its limit surface.\n\n As an example of how the subdivision scheme is essential in determining\n the Parameterization, consider the case of a triangle. A triangle is\n regular for the Loop scheme and so has a very simple parameterization\n as a triangular patch. But for the Catmull-Clark scheme, a triangle is\n an irregular face that must first be subdivided -- making its limit\n surface a piecewise collection of quadrilateral patches.\n"]
8068#[repr(C)]
8069#[derive(Debug, Hash, PartialEq, Eq)]
8070pub struct OpenSubdiv_v3_7_0_Bfr_Parameterization {
8071 pub _type: ::std::os::raw::c_uchar,
8072 pub _uDim: ::std::os::raw::c_uchar,
8073 pub _faceSize: ::std::os::raw::c_ushort,
8074}
8075#[doc = "< Quadrilateral"]
8076pub const OpenSubdiv_v3_7_0_Bfr_Parameterization_Type_QUAD:
8077 OpenSubdiv_v3_7_0_Bfr_Parameterization_Type = 0;
8078#[doc = "< Triangle"]
8079pub const OpenSubdiv_v3_7_0_Bfr_Parameterization_Type_TRI:
8080 OpenSubdiv_v3_7_0_Bfr_Parameterization_Type = 1;
8081#[doc = "< Partitioned into quadrilateral sub-faces"]
8082pub const OpenSubdiv_v3_7_0_Bfr_Parameterization_Type_QUAD_SUBFACES:
8083 OpenSubdiv_v3_7_0_Bfr_Parameterization_Type = 2;
8084#[doc = "\n @brief Enumerated type for the different kinds of Parameterizations.\n\n The three kinds of parameterizations defined are: quadrilateral,\n triangle and quadrangulated sub-faces. This is not intended for\n common use, but is publicly available for situations when it is\n necessary to distinguish:\n"]
8085pub type OpenSubdiv_v3_7_0_Bfr_Parameterization_Type = ::std::os::raw::c_uint;
8086unsafe extern "C" {
8087 #[doc = " @brief Primary constructor with subdivision scheme and face size"]
8088 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Bfr16ParameterizationC1ENS0_3Sdc10SchemeTypeEi"]
8089 pub fn OpenSubdiv_v3_7_0_Bfr_Parameterization_Parameterization(
8090 this: *mut OpenSubdiv_v3_7_0_Bfr_Parameterization,
8091 scheme: OpenSubdiv_v3_7_0_Sdc_SchemeType,
8092 faceSize: ::std::os::raw::c_int,
8093 );
8094}
8095impl OpenSubdiv_v3_7_0_Bfr_Parameterization {
8096 #[inline]
8097 pub unsafe fn new(
8098 scheme: OpenSubdiv_v3_7_0_Sdc_SchemeType,
8099 faceSize: ::std::os::raw::c_int,
8100 ) -> Self {
8101 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
8102 OpenSubdiv_v3_7_0_Bfr_Parameterization_Parameterization(
8103 __bindgen_tmp.as_mut_ptr(),
8104 scheme,
8105 faceSize,
8106 );
8107 __bindgen_tmp.assume_init()
8108 }
8109}
8110#[repr(C)]
8111#[derive(Debug, Copy, Clone)]
8112pub struct OpenSubdiv_v3_7_0_Bfr_PatchTree {
8113 _unused: [u8; 0],
8114}
8115pub type OpenSubdiv_v3_7_0_Bfr_internal_IrregularPatchType = OpenSubdiv_v3_7_0_Bfr_PatchTree;
8116pub type OpenSubdiv_v3_7_0_Bfr_internal_IrregularPatchSharedPtr = __BindgenOpaqueArray<u64, 2usize>;
8117#[repr(C)]
8118pub struct OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData {
8119 pub _cvIndices: OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData_CVIndexArray,
8120 pub _param: OpenSubdiv_v3_7_0_Bfr_Parameterization,
8121 pub _bitfield_align_1: [u8; 0],
8122 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
8123 pub _regPatchType: ::std::os::raw::c_uchar,
8124 pub _regPatchMask: ::std::os::raw::c_uchar,
8125 pub _irregPatch: OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData_IrregPatchPtr,
8126}
8127pub type OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData_Index = ::std::os::raw::c_int;
8128pub type OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData_IrregPatchType =
8129 OpenSubdiv_v3_7_0_Bfr_internal_IrregularPatchType;
8130pub type OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData_IrregPatchPtr =
8131 OpenSubdiv_v3_7_0_Bfr_internal_IrregularPatchSharedPtr;
8132pub type OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData_CVIndexArray =
8133 __BindgenOpaqueArray<u64, 13usize>;
8134unsafe extern "C" {
8135 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Bfr8internal11SurfaceData10invalidateEv"]
8136 pub fn OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData_invalidate(
8137 this: *mut OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData,
8138 );
8139}
8140unsafe extern "C" {
8141 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Bfr8internal11SurfaceDataC1Ev"]
8142 pub fn OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData_SurfaceData(
8143 this: *mut OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData,
8144 );
8145}
8146impl OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData {
8147 #[inline]
8148 pub fn _isValid(&self) -> ::std::os::raw::c_uchar {
8149 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
8150 }
8151
8152 #[inline]
8153 pub fn set__isValid(&mut self, val: ::std::os::raw::c_uchar) {
8154 unsafe {
8155 let val: u8 = ::std::mem::transmute(val);
8156 self._bitfield_1.set(0usize, 1u8, val as u64)
8157 }
8158 }
8159
8160 #[inline]
8161 pub unsafe fn _isValid_raw(this: *const Self) -> ::std::os::raw::c_uchar {
8162 unsafe {
8163 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8164 ::std::ptr::addr_of!((*this)._bitfield_1),
8165 0usize,
8166 1u8,
8167 ) as u8)
8168 }
8169 }
8170
8171 #[inline]
8172 pub unsafe fn set__isValid_raw(this: *mut Self, val: ::std::os::raw::c_uchar) {
8173 unsafe {
8174 let val: u8 = ::std::mem::transmute(val);
8175 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8176 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
8177 0usize,
8178 1u8,
8179 val as u64,
8180 )
8181 }
8182 }
8183
8184 #[inline]
8185 pub fn _isDouble(&self) -> ::std::os::raw::c_uchar {
8186 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
8187 }
8188
8189 #[inline]
8190 pub fn set__isDouble(&mut self, val: ::std::os::raw::c_uchar) {
8191 unsafe {
8192 let val: u8 = ::std::mem::transmute(val);
8193 self._bitfield_1.set(1usize, 1u8, val as u64)
8194 }
8195 }
8196
8197 #[inline]
8198 pub unsafe fn _isDouble_raw(this: *const Self) -> ::std::os::raw::c_uchar {
8199 unsafe {
8200 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8201 ::std::ptr::addr_of!((*this)._bitfield_1),
8202 1usize,
8203 1u8,
8204 ) as u8)
8205 }
8206 }
8207
8208 #[inline]
8209 pub unsafe fn set__isDouble_raw(this: *mut Self, val: ::std::os::raw::c_uchar) {
8210 unsafe {
8211 let val: u8 = ::std::mem::transmute(val);
8212 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8213 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
8214 1usize,
8215 1u8,
8216 val as u64,
8217 )
8218 }
8219 }
8220
8221 #[inline]
8222 pub fn _isRegular(&self) -> ::std::os::raw::c_uchar {
8223 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
8224 }
8225
8226 #[inline]
8227 pub fn set__isRegular(&mut self, val: ::std::os::raw::c_uchar) {
8228 unsafe {
8229 let val: u8 = ::std::mem::transmute(val);
8230 self._bitfield_1.set(2usize, 1u8, val as u64)
8231 }
8232 }
8233
8234 #[inline]
8235 pub unsafe fn _isRegular_raw(this: *const Self) -> ::std::os::raw::c_uchar {
8236 unsafe {
8237 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8238 ::std::ptr::addr_of!((*this)._bitfield_1),
8239 2usize,
8240 1u8,
8241 ) as u8)
8242 }
8243 }
8244
8245 #[inline]
8246 pub unsafe fn set__isRegular_raw(this: *mut Self, val: ::std::os::raw::c_uchar) {
8247 unsafe {
8248 let val: u8 = ::std::mem::transmute(val);
8249 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8250 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
8251 2usize,
8252 1u8,
8253 val as u64,
8254 )
8255 }
8256 }
8257
8258 #[inline]
8259 pub fn _isLinear(&self) -> ::std::os::raw::c_uchar {
8260 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
8261 }
8262
8263 #[inline]
8264 pub fn set__isLinear(&mut self, val: ::std::os::raw::c_uchar) {
8265 unsafe {
8266 let val: u8 = ::std::mem::transmute(val);
8267 self._bitfield_1.set(3usize, 1u8, val as u64)
8268 }
8269 }
8270
8271 #[inline]
8272 pub unsafe fn _isLinear_raw(this: *const Self) -> ::std::os::raw::c_uchar {
8273 unsafe {
8274 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8275 ::std::ptr::addr_of!((*this)._bitfield_1),
8276 3usize,
8277 1u8,
8278 ) as u8)
8279 }
8280 }
8281
8282 #[inline]
8283 pub unsafe fn set__isLinear_raw(this: *mut Self, val: ::std::os::raw::c_uchar) {
8284 unsafe {
8285 let val: u8 = ::std::mem::transmute(val);
8286 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8287 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
8288 3usize,
8289 1u8,
8290 val as u64,
8291 )
8292 }
8293 }
8294
8295 #[inline]
8296 pub fn new_bitfield_1(
8297 _isValid: ::std::os::raw::c_uchar,
8298 _isDouble: ::std::os::raw::c_uchar,
8299 _isRegular: ::std::os::raw::c_uchar,
8300 _isLinear: ::std::os::raw::c_uchar,
8301 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
8302 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
8303 __bindgen_bitfield_unit.set(0usize, 1u8, {
8304 let _isValid: u8 = unsafe { ::std::mem::transmute(_isValid) };
8305 _isValid as u64
8306 });
8307 __bindgen_bitfield_unit.set(1usize, 1u8, {
8308 let _isDouble: u8 = unsafe { ::std::mem::transmute(_isDouble) };
8309 _isDouble as u64
8310 });
8311 __bindgen_bitfield_unit.set(2usize, 1u8, {
8312 let _isRegular: u8 = unsafe { ::std::mem::transmute(_isRegular) };
8313 _isRegular as u64
8314 });
8315 __bindgen_bitfield_unit.set(3usize, 1u8, {
8316 let _isLinear: u8 = unsafe { ::std::mem::transmute(_isLinear) };
8317 _isLinear as u64
8318 });
8319 __bindgen_bitfield_unit
8320 }
8321
8322 #[inline]
8323 pub unsafe fn invalidate(&mut self) {
8324 OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData_invalidate(self)
8325 }
8326
8327 #[inline]
8328 pub unsafe fn new() -> Self {
8329 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
8330 OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData_SurfaceData(__bindgen_tmp.as_mut_ptr());
8331 __bindgen_tmp.assume_init()
8332 }
8333}
8334#[doc = "\n @brief Encapsulates the limit surface for a face of a mesh\n\n The Surface class encapsulates the limit surface for a face of a mesh\n for any data interpolation type (vertex, varying and face-varying) and\n provides the public interface for its evaluation. Surface is a class\n template parameterized to support evaluation in single or double\n precision.\n\n @tparam REAL Floating point precision (float or double only)\n\n Instances of Surface are created or initialized by a subclass of the\n SurfaceFactory. Since existing instances can be re-initialized, they\n should be tested for validity after such re-initialization.\n\n All Surfaces are assigned a Parameterization based on the subdivision\n scheme and the size of the face, which can then be used for evaluation\n and tessellation of the surface.\n"]
8335#[repr(C)]
8336pub struct OpenSubdiv_v3_7_0_Bfr_Surface {
8337 pub _data: OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData,
8338}
8339#[doc = " @brief Simple struct defining the size and stride of points in\n arrays."]
8340#[repr(C)]
8341#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8342pub struct OpenSubdiv_v3_7_0_Bfr_Surface_PointDescriptor {
8343 pub size: ::std::os::raw::c_int,
8344 pub stride: ::std::os::raw::c_int,
8345}
8346#[doc = " @brief Integer type representing a mesh index"]
8347pub type OpenSubdiv_v3_7_0_Bfr_Surface_Index = ::std::os::raw::c_int;
8348pub type OpenSubdiv_v3_7_0_Bfr_Surface_IndexArray =
8349 OpenSubdiv_v3_7_0_Vtr_ConstArray<::std::os::raw::c_int>;
8350#[repr(C)]
8351#[derive(Debug, Copy, Clone)]
8352pub struct OpenSubdiv_v3_7_0_Bfr_VertexDescriptor {
8353 _unused: [u8; 0],
8354}
8355#[repr(C)]
8356pub struct OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter__bindgen_vtable(::std::os::raw::c_void);
8357#[doc = "\n @brief Abstract interface adapting SurfaceFactory to a connected mesh\n representation\n"]
8358#[repr(C)]
8359#[derive(Debug, Hash, PartialEq, Eq)]
8360pub struct OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter {
8361 pub vtable_: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter__bindgen_vtable,
8362}
8363#[doc = " @brief Integer type representing a mesh index"]
8364pub type OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index = ::std::os::raw::c_int;
8365#[doc = " @brief Type used to identify and specify face-varying primvars\n\n A face-varying ID is used to specify face-varying primvars for\n evaluation so that they can be identified by the subclass for\n the mesh. It can be assigned as either a positive integer ID\n or pointer, with the subclass determining its interpretation.\n\n Often only one face-varying primvar is of interest, so a default\n can be assigned to the factory to avoid repeated specification.\n"]
8366pub type OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_FVarID = ::std::os::raw::c_long;
8367#[repr(C)]
8368#[derive(Debug, Copy, Clone)]
8369pub struct OpenSubdiv_v3_7_0_Bfr_FaceTopology {
8370 _unused: [u8; 0],
8371}
8372#[repr(C)]
8373#[derive(Debug, Copy, Clone)]
8374pub struct OpenSubdiv_v3_7_0_Bfr_FaceSurface {
8375 _unused: [u8; 0],
8376}
8377#[doc = "\n @brief Base class providing initialization of a Surface for each face\n of a mesh\n\n SurfaceFactory is an abstract class that provides the majority of\n the implementation and the interface for a factory that initializes\n instances of Surface for the faces of a mesh.\n\n A subclass of SurfaceFactory is written to support a specific type\n of connected mesh. The public interface of SurfaceFactory is both\n inherited by and extended by the subclasses. Expected extensions to\n the interface include one or more constructors (i.e. given a specific\n instance of the subclass' mesh type) as well as other methods that\n may involve the mesh's data types (primvars) in their native form.\n\n By inheriting the SurfaceFactoryMeshAdapter interface, SurfaceFactory\n requires its subclasses to implement the small suite of pure\n virtual methods to complete the factory's implementation for the\n subclass' mesh type. These methods provide the base factory with\n topological information about faces of that mesh -- from which it\n creates instances of Surface defining their limit surface.\n\n The SurfaceFactory inherits rather than contains SurfaceFactoryMeshAdapter\n as instances of SurfaceFactoryMeshAdapter serve no purpose on their own,\n and the interface between the two is designed with the specific needs\n of the SurfaceFactory. When customizing a subclass of SurfaceFactory\n for a particular mesh type, this inheritance also avoids the need to\n coordinate the subclass of SurfaceFactory with the separate subclass\n of SurfaceFactoryMeshAdapter.\n\n It must be emphasized that a subclass of SurfaceFactory is written to\n support a specific type of \"connected\" mesh -- not simply a container\n of data defining a mesh. The SurfaceFactoryMeshAdapter interface describes\n the complete topological neighborhood around a specific face, and\n without any connectivity between mesh components (e.g. given a vertex,\n what are its incident faces?), satisfying these methods will be\n impossible, or, at best, extremely inefficient.\n\n Ultimately a subclass of SurfaceFactory is expected to be a lightweight\n interface to a connected mesh -- lightweight in terms of both time and\n memory usage. It's construction is expected to be trivial, after which\n it can quickly and efficiently provide a Surface for one or more faces\n of a mesh for immediate evaluation. So construction of an instance of\n a subclass should involve no heavy pre-processing -- the greater the\n overhead of a subclass constructor, the more it violates the intention\n of the base class as a lightweight interface.\n\n Instances of SurfaceFactory are initialized with a set of Options that\n form part of the state of the factory and remain fixed for its lifetime.\n Such options are intended to ensure that the instances of Surface that\n it creates are consistent, as well as to enable/disable or otherwise\n manage caching for construction efficiency -- either internally or\n between itself and other factories (advanced).\n"]
8378#[repr(C)]
8379#[derive(Debug, Hash, PartialEq, Eq)]
8380pub struct OpenSubdiv_v3_7_0_Bfr_SurfaceFactory {
8381 pub _base: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter,
8382 pub _subdivScheme: OpenSubdiv_v3_7_0_Sdc_SchemeType,
8383 pub _subdivOptions: OpenSubdiv_v3_7_0_Sdc_Options,
8384 pub _factoryOptions: OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_Options,
8385 pub _bitfield_align_1: [u8; 0],
8386 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
8387 pub _regFaceSize: ::std::os::raw::c_int,
8388 pub _topologyCache: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache,
8389}
8390#[doc = "\n @brief Simple set of options assigned to instances of SurfaceFactory\n\n The Options class is a simple container specifying options for the\n construction of the SurfaceFactory to be applied during its lifetime.\n\n These options currently include choices to identify a default\n face-varying ID, to control caching behavior (on or off, use of\n external vs internal cache), and to control the accuracy of the\n resulting limit surface representations.\n"]
8391#[repr(C)]
8392#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8393pub struct OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_Options {
8394 pub _dfltFVarID: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_FVarID,
8395 pub _externCache: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache,
8396 pub _bitfield_align_1: [u8; 0],
8397 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
8398 pub _approxLevelSmooth: ::std::os::raw::c_uchar,
8399 pub _approxLevelSharp: ::std::os::raw::c_uchar,
8400}
8401impl OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_Options {
8402 #[inline]
8403 pub fn _enableCache(&self) -> ::std::os::raw::c_uchar {
8404 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
8405 }
8406
8407 #[inline]
8408 pub fn set__enableCache(&mut self, val: ::std::os::raw::c_uchar) {
8409 unsafe {
8410 let val: u8 = ::std::mem::transmute(val);
8411 self._bitfield_1.set(0usize, 1u8, val as u64)
8412 }
8413 }
8414
8415 #[inline]
8416 pub unsafe fn _enableCache_raw(this: *const Self) -> ::std::os::raw::c_uchar {
8417 unsafe {
8418 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8419 ::std::ptr::addr_of!((*this)._bitfield_1),
8420 0usize,
8421 1u8,
8422 ) as u8)
8423 }
8424 }
8425
8426 #[inline]
8427 pub unsafe fn set__enableCache_raw(this: *mut Self, val: ::std::os::raw::c_uchar) {
8428 unsafe {
8429 let val: u8 = ::std::mem::transmute(val);
8430 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8431 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
8432 0usize,
8433 1u8,
8434 val as u64,
8435 )
8436 }
8437 }
8438
8439 #[inline]
8440 pub fn new_bitfield_1(
8441 _enableCache: ::std::os::raw::c_uchar,
8442 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
8443 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
8444 __bindgen_bitfield_unit.set(0usize, 1u8, {
8445 let _enableCache: u8 = unsafe { ::std::mem::transmute(_enableCache) };
8446 _enableCache as u64
8447 });
8448 __bindgen_bitfield_unit
8449 }
8450}
8451#[repr(C)]
8452#[derive(Debug, Copy, Clone)]
8453pub struct OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_SurfaceSet {
8454 _unused: [u8; 0],
8455}
8456pub type OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_SurfaceType =
8457 OpenSubdiv_v3_7_0_Bfr_internal_SurfaceData;
8458unsafe extern "C" {
8459 #[doc = " @brief Return if a specified face has a limit surface\n\n This method determines if a face has an associated limit surface,\n and so supports initialization of Surface for evaluation. This\n is usually the case, except when the face is tagged as a hole, or\n due to the use of uncommon boundary interpolation options (i.e.\n Sdc::Options::VTX_BOUNDARY_NONE). The test of a hole is trivial,\n but the boundary test is not when such uncommon options are used.\n"]
8460 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr14SurfaceFactory19FaceHasLimitSurfaceEi"]
8461 pub fn OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_FaceHasLimitSurface(
8462 this: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactory,
8463 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8464 ) -> bool;
8465}
8466unsafe extern "C" {
8467 #[doc = " @brief Return the Parameterization of a face with a limit surface\n\n This method simply returns the Parameterization of the specified\n face. It is presumed the face has an existing limit surface and\n so is a quick and simple accessor.\n"]
8468 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr14SurfaceFactory23GetFaceParameterizationEi"]
8469 pub fn OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_GetFaceParameterization(
8470 this: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactory,
8471 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8472 ) -> OpenSubdiv_v3_7_0_Bfr_Parameterization;
8473}
8474unsafe extern "C" {
8475 #[doc = " @brief Subclass to identify an internal cache for use by base class"]
8476 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Bfr14SurfaceFactory16setInternalCacheEPNS1_19SurfaceFactoryCacheE"]
8477 pub fn OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_setInternalCache(
8478 this: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactory,
8479 cache: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache,
8480 );
8481}
8482unsafe extern "C" {
8483 #[doc = "\n @brief Constructor to be used by subclasses\n\n Construction requires specification of the subdivision scheme and\n options associated with the mesh (as is the case with other classes\n in Far). These will typically reflect the settings in the mesh but\n can also be used to override them -- as determined by the subclass.\n Common uses of overrides are to assign a subdivision scheme to a\n simple polygonal mesh, or to change the face-varying interpolation\n for the faster linear interpolation of UVs.\n"]
8484 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Bfr14SurfaceFactoryC2ENS0_3Sdc10SchemeTypeERKNS3_7OptionsERKNS2_7OptionsE"]
8485 pub fn OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_SurfaceFactory(
8486 this: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactory,
8487 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
8488 schemeOptions: *const OpenSubdiv_v3_7_0_Sdc_Options,
8489 limitOptions: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_Options,
8490 );
8491}
8492impl OpenSubdiv_v3_7_0_Bfr_SurfaceFactory {
8493 #[inline]
8494 pub fn _linearScheme(&self) -> ::std::os::raw::c_uint {
8495 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
8496 }
8497
8498 #[inline]
8499 pub fn set__linearScheme(&mut self, val: ::std::os::raw::c_uint) {
8500 unsafe {
8501 let val: u32 = ::std::mem::transmute(val);
8502 self._bitfield_1.set(0usize, 1u8, val as u64)
8503 }
8504 }
8505
8506 #[inline]
8507 pub unsafe fn _linearScheme_raw(this: *const Self) -> ::std::os::raw::c_uint {
8508 unsafe {
8509 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8510 ::std::ptr::addr_of!((*this)._bitfield_1),
8511 0usize,
8512 1u8,
8513 ) as u32)
8514 }
8515 }
8516
8517 #[inline]
8518 pub unsafe fn set__linearScheme_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
8519 unsafe {
8520 let val: u32 = ::std::mem::transmute(val);
8521 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8522 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
8523 0usize,
8524 1u8,
8525 val as u64,
8526 )
8527 }
8528 }
8529
8530 #[inline]
8531 pub fn _linearFVarInterp(&self) -> ::std::os::raw::c_uint {
8532 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
8533 }
8534
8535 #[inline]
8536 pub fn set__linearFVarInterp(&mut self, val: ::std::os::raw::c_uint) {
8537 unsafe {
8538 let val: u32 = ::std::mem::transmute(val);
8539 self._bitfield_1.set(1usize, 1u8, val as u64)
8540 }
8541 }
8542
8543 #[inline]
8544 pub unsafe fn _linearFVarInterp_raw(this: *const Self) -> ::std::os::raw::c_uint {
8545 unsafe {
8546 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8547 ::std::ptr::addr_of!((*this)._bitfield_1),
8548 1usize,
8549 1u8,
8550 ) as u32)
8551 }
8552 }
8553
8554 #[inline]
8555 pub unsafe fn set__linearFVarInterp_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
8556 unsafe {
8557 let val: u32 = ::std::mem::transmute(val);
8558 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8559 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
8560 1usize,
8561 1u8,
8562 val as u64,
8563 )
8564 }
8565 }
8566
8567 #[inline]
8568 pub fn _testNeighborhoodForLimit(&self) -> ::std::os::raw::c_uint {
8569 unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
8570 }
8571
8572 #[inline]
8573 pub fn set__testNeighborhoodForLimit(&mut self, val: ::std::os::raw::c_uint) {
8574 unsafe {
8575 let val: u32 = ::std::mem::transmute(val);
8576 self._bitfield_1.set(2usize, 1u8, val as u64)
8577 }
8578 }
8579
8580 #[inline]
8581 pub unsafe fn _testNeighborhoodForLimit_raw(this: *const Self) -> ::std::os::raw::c_uint {
8582 unsafe {
8583 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8584 ::std::ptr::addr_of!((*this)._bitfield_1),
8585 2usize,
8586 1u8,
8587 ) as u32)
8588 }
8589 }
8590
8591 #[inline]
8592 pub unsafe fn set__testNeighborhoodForLimit_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
8593 unsafe {
8594 let val: u32 = ::std::mem::transmute(val);
8595 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8596 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
8597 2usize,
8598 1u8,
8599 val as u64,
8600 )
8601 }
8602 }
8603
8604 #[inline]
8605 pub fn _rejectSmoothBoundariesForLimit(&self) -> ::std::os::raw::c_uint {
8606 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
8607 }
8608
8609 #[inline]
8610 pub fn set__rejectSmoothBoundariesForLimit(&mut self, val: ::std::os::raw::c_uint) {
8611 unsafe {
8612 let val: u32 = ::std::mem::transmute(val);
8613 self._bitfield_1.set(3usize, 1u8, val as u64)
8614 }
8615 }
8616
8617 #[inline]
8618 pub unsafe fn _rejectSmoothBoundariesForLimit_raw(this: *const Self) -> ::std::os::raw::c_uint {
8619 unsafe {
8620 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8621 ::std::ptr::addr_of!((*this)._bitfield_1),
8622 3usize,
8623 1u8,
8624 ) as u32)
8625 }
8626 }
8627
8628 #[inline]
8629 pub unsafe fn set__rejectSmoothBoundariesForLimit_raw(
8630 this: *mut Self,
8631 val: ::std::os::raw::c_uint,
8632 ) {
8633 unsafe {
8634 let val: u32 = ::std::mem::transmute(val);
8635 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8636 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
8637 3usize,
8638 1u8,
8639 val as u64,
8640 )
8641 }
8642 }
8643
8644 #[inline]
8645 pub fn _rejectIrregularFacesForLimit(&self) -> ::std::os::raw::c_uint {
8646 unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
8647 }
8648
8649 #[inline]
8650 pub fn set__rejectIrregularFacesForLimit(&mut self, val: ::std::os::raw::c_uint) {
8651 unsafe {
8652 let val: u32 = ::std::mem::transmute(val);
8653 self._bitfield_1.set(4usize, 1u8, val as u64)
8654 }
8655 }
8656
8657 #[inline]
8658 pub unsafe fn _rejectIrregularFacesForLimit_raw(this: *const Self) -> ::std::os::raw::c_uint {
8659 unsafe {
8660 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8661 ::std::ptr::addr_of!((*this)._bitfield_1),
8662 4usize,
8663 1u8,
8664 ) as u32)
8665 }
8666 }
8667
8668 #[inline]
8669 pub unsafe fn set__rejectIrregularFacesForLimit_raw(
8670 this: *mut Self,
8671 val: ::std::os::raw::c_uint,
8672 ) {
8673 unsafe {
8674 let val: u32 = ::std::mem::transmute(val);
8675 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8676 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
8677 4usize,
8678 1u8,
8679 val as u64,
8680 )
8681 }
8682 }
8683
8684 #[inline]
8685 pub fn new_bitfield_1(
8686 _linearScheme: ::std::os::raw::c_uint,
8687 _linearFVarInterp: ::std::os::raw::c_uint,
8688 _testNeighborhoodForLimit: ::std::os::raw::c_uint,
8689 _rejectSmoothBoundariesForLimit: ::std::os::raw::c_uint,
8690 _rejectIrregularFacesForLimit: ::std::os::raw::c_uint,
8691 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
8692 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
8693 __bindgen_bitfield_unit.set(0usize, 1u8, {
8694 let _linearScheme: u32 = unsafe { ::std::mem::transmute(_linearScheme) };
8695 _linearScheme as u64
8696 });
8697 __bindgen_bitfield_unit.set(1usize, 1u8, {
8698 let _linearFVarInterp: u32 = unsafe { ::std::mem::transmute(_linearFVarInterp) };
8699 _linearFVarInterp as u64
8700 });
8701 __bindgen_bitfield_unit.set(2usize, 1u8, {
8702 let _testNeighborhoodForLimit: u32 =
8703 unsafe { ::std::mem::transmute(_testNeighborhoodForLimit) };
8704 _testNeighborhoodForLimit as u64
8705 });
8706 __bindgen_bitfield_unit.set(3usize, 1u8, {
8707 let _rejectSmoothBoundariesForLimit: u32 =
8708 unsafe { ::std::mem::transmute(_rejectSmoothBoundariesForLimit) };
8709 _rejectSmoothBoundariesForLimit as u64
8710 });
8711 __bindgen_bitfield_unit.set(4usize, 1u8, {
8712 let _rejectIrregularFacesForLimit: u32 =
8713 unsafe { ::std::mem::transmute(_rejectIrregularFacesForLimit) };
8714 _rejectIrregularFacesForLimit as u64
8715 });
8716 __bindgen_bitfield_unit
8717 }
8718
8719 #[inline]
8720 pub unsafe fn FaceHasLimitSurface(
8721 &self,
8722 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8723 ) -> bool {
8724 OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_FaceHasLimitSurface(self, faceIndex)
8725 }
8726
8727 #[inline]
8728 pub unsafe fn GetFaceParameterization(
8729 &self,
8730 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8731 ) -> OpenSubdiv_v3_7_0_Bfr_Parameterization {
8732 OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_GetFaceParameterization(self, faceIndex)
8733 }
8734
8735 #[inline]
8736 pub unsafe fn setInternalCache(
8737 &mut self,
8738 cache: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache,
8739 ) {
8740 OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_setInternalCache(self, cache)
8741 }
8742
8743 #[inline]
8744 pub unsafe fn new(
8745 schemeType: OpenSubdiv_v3_7_0_Sdc_SchemeType,
8746 schemeOptions: *const OpenSubdiv_v3_7_0_Sdc_Options,
8747 limitOptions: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_Options,
8748 ) -> Self {
8749 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
8750 OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_SurfaceFactory(
8751 __bindgen_tmp.as_mut_ptr(),
8752 schemeType,
8753 schemeOptions,
8754 limitOptions,
8755 );
8756 __bindgen_tmp.assume_init()
8757 }
8758}
8759unsafe extern "C" {
8760 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Bfr14SurfaceFactoryD1Ev"]
8761 pub fn OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_SurfaceFactory_destructor(
8762 this: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactory,
8763 );
8764}
8765#[repr(C)]
8766pub struct OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache__bindgen_vtable(::std::os::raw::c_void);
8767#[doc = "\n @brief Container used internally by SurfaceFactory to store reusable\n information\n\n SurfaceFactoryCache is a container for storing/caching instances of\n the internal representation of complex patches used by SurfaceFactory\n so that they can be quickly identified and retrieved for reuse.\n\n It is intended for internal use by SurfaceFactory. Public access is\n available but limited to construction only -- allowing an instance to\n be reused by assigning it to more than one SurfaceFactory.\n"]
8768#[repr(C)]
8769pub struct OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache {
8770 pub vtable_: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache__bindgen_vtable,
8771 pub _map: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_MapType,
8772}
8773pub type OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_KeyType = ::std::os::raw::c_ulong;
8774pub type OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_DataType =
8775 OpenSubdiv_v3_7_0_Bfr_internal_IrregularPatchSharedPtr;
8776#[doc = " @endcond PROTECTED"]
8777pub type OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_MapType = __BindgenOpaqueArray<u64, 6usize>;
8778unsafe extern "C" {
8779 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr19SurfaceFactoryCache4findERKm"]
8780 pub fn OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_find(
8781 this: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache,
8782 key: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_KeyType,
8783 ) -> OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_DataType;
8784}
8785unsafe extern "C" {
8786 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Bfr19SurfaceFactoryCache3addERKmRKSt10shared_ptrIKNS1_9PatchTreeEE"]
8787 pub fn OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_add(
8788 this: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache,
8789 key: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_KeyType,
8790 data: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_DataType,
8791 ) -> OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_DataType;
8792}
8793unsafe extern "C" {
8794 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Bfr19SurfaceFactoryCacheC1Ev"]
8795 pub fn OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_SurfaceFactoryCache(
8796 this: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache,
8797 );
8798}
8799impl OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache {
8800 #[inline]
8801 pub unsafe fn find(
8802 &self,
8803 key: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_KeyType,
8804 ) -> OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_DataType {
8805 OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_find(self, key)
8806 }
8807
8808 #[inline]
8809 pub unsafe fn add(
8810 &mut self,
8811 key: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_KeyType,
8812 data: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_DataType,
8813 ) -> OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_DataType {
8814 OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_add(self, key, data)
8815 }
8816
8817 #[inline]
8818 pub unsafe fn new() -> Self {
8819 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
8820 OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_SurfaceFactoryCache(__bindgen_tmp.as_mut_ptr());
8821 __bindgen_tmp.assume_init()
8822 }
8823}
8824unsafe extern "C" {
8825 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Bfr19SurfaceFactoryCacheD1Ev"]
8826 pub fn OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_SurfaceFactoryCache_destructor(
8827 this: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache,
8828 );
8829}
8830unsafe extern "C" {
8831 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr19SurfaceFactoryCache4FindERKm"]
8832 pub fn OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_Find(
8833 this: *mut ::std::os::raw::c_void,
8834 key: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_KeyType,
8835 ) -> OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_DataType;
8836}
8837unsafe extern "C" {
8838 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Bfr19SurfaceFactoryCache3AddERKmRKSt10shared_ptrIKNS1_9PatchTreeEE"]
8839 pub fn OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_Add(
8840 this: *mut ::std::os::raw::c_void,
8841 key: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_KeyType,
8842 data: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_DataType,
8843 ) -> OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache_DataType;
8844}
8845#[doc = "\n @brief Template for declaring thread-safe subclasses of SurfaceFactoryCache\n\n SurfaceFactoryCacheThreaded extends SurfaceFactoryCache by protecting\n access to the cache to ensure thread-safe operation. A mutex type and\n associated locks are specified to declare a subclass with appropriately\n protected read and write access.\n\n @tparam MUTEX_TYPE A mutex type with supported lock guards\n @tparam READ_LOCK_GUARD_TYPE A scoped lock guard allowing potentially\n shared access for read operations.\n @tparam WRITE_LOCK_GUARD_TYPE A scoped lock guard allowing exclusive\n access for write operations.\n"]
8846#[repr(C)]
8847pub struct OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCacheThreaded<MUTEX_TYPE> {
8848 pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<MUTEX_TYPE>>,
8849 pub _base: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryCache,
8850 #[doc = " @endcond PROTECTED"]
8851 pub _mutex: MUTEX_TYPE,
8852}
8853#[doc = "\n @brief Intermediate subclass of SurfaceFactory with Far::TopologyRefiner\n as the mesh\n\n RefinerSurfaceFactoryBase is an intermediate subclass of SurfaceFactory\n using Far::TopologyRefiner as the connected mesh representation.\n\n The SurfaceFactoryMeshAdapter interface for TopologyRefiner is provided\n in full, along with some public extensions specific to TopologyRefiner.\n\n Additional caching expectations of SurfaceFactory are NOT specified\n here. These are deferred to subclasses to implement different behaviors\n of the factory's internal caching. A template for such subclasses is\n additionally provided -- allowing clients desiring a thread-safe cache\n to simply declare a subclass for a preferred thread-safe type.\n"]
8854#[repr(C)]
8855#[derive(Debug, Hash, PartialEq, Eq)]
8856pub struct OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase {
8857 pub _base: OpenSubdiv_v3_7_0_Bfr_SurfaceFactory,
8858 pub _mesh: *const OpenSubdiv_v3_7_0_Far_TopologyRefiner,
8859 pub _numFaces: ::std::os::raw::c_int,
8860 pub _numFVarChannels: ::std::os::raw::c_int,
8861}
8862unsafe extern "C" {
8863 #[doc = " @name Construction and initialization\n\n Construction and initialization\n"]
8864 #[link_name = "\u{1}_ZN10OpenSubdiv6v3_7_03Bfr25RefinerSurfaceFactoryBaseC1ERKNS0_3Far15TopologyRefinerERKNS1_14SurfaceFactory7OptionsE"]
8865 pub fn OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase_RefinerSurfaceFactoryBase(
8866 this: *mut OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase,
8867 mesh: *const OpenSubdiv_v3_7_0_Far_TopologyRefiner,
8868 options: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_Options,
8869 );
8870}
8871impl OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase {
8872 #[inline]
8873 pub unsafe fn new(
8874 mesh: *const OpenSubdiv_v3_7_0_Far_TopologyRefiner,
8875 options: *const OpenSubdiv_v3_7_0_Bfr_SurfaceFactory_Options,
8876 ) -> Self {
8877 let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
8878 OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase_RefinerSurfaceFactoryBase(
8879 __bindgen_tmp.as_mut_ptr(),
8880 mesh,
8881 options,
8882 );
8883 __bindgen_tmp.assume_init()
8884 }
8885}
8886unsafe extern "C" {
8887 #[doc = " @cond PROTECTED"]
8888 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr25RefinerSurfaceFactoryBase10isFaceHoleEi"]
8889 pub fn OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase_isFaceHole(
8890 this: *mut ::std::os::raw::c_void,
8891 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8892 ) -> bool;
8893}
8894unsafe extern "C" {
8895 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr25RefinerSurfaceFactoryBase11getFaceSizeEi"]
8896 pub fn OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase_getFaceSize(
8897 this: *mut ::std::os::raw::c_void,
8898 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8899 ) -> ::std::os::raw::c_int;
8900}
8901unsafe extern "C" {
8902 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr25RefinerSurfaceFactoryBase20getFaceVertexIndicesEiPi"]
8903 pub fn OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase_getFaceVertexIndices(
8904 this: *mut ::std::os::raw::c_void,
8905 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8906 vertexIndices: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8907 ) -> ::std::os::raw::c_int;
8908}
8909unsafe extern "C" {
8910 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr25RefinerSurfaceFactoryBase23getFaceFVarValueIndicesEilPi"]
8911 pub fn OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase_getFaceFVarValueIndices(
8912 this: *mut ::std::os::raw::c_void,
8913 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8914 fvarID: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_FVarID,
8915 fvarValueIndices: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8916 ) -> ::std::os::raw::c_int;
8917}
8918unsafe extern "C" {
8919 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr25RefinerSurfaceFactoryBase28populateFaceVertexDescriptorEiiPNS1_16VertexDescriptorE"]
8920 pub fn OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase_populateFaceVertexDescriptor(
8921 this: *mut ::std::os::raw::c_void,
8922 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8923 faceVertex: ::std::os::raw::c_int,
8924 vertexDescriptor: *mut OpenSubdiv_v3_7_0_Bfr_VertexDescriptor,
8925 ) -> ::std::os::raw::c_int;
8926}
8927unsafe extern "C" {
8928 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr25RefinerSurfaceFactoryBase38getFaceVertexIncidentFaceVertexIndicesEiiPi"]
8929 pub fn OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase_getFaceVertexIncidentFaceVertexIndices(
8930 this: *mut ::std::os::raw::c_void,
8931 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8932 faceVertex: ::std::os::raw::c_int,
8933 vertexIndices: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8934 ) -> ::std::os::raw::c_int;
8935}
8936unsafe extern "C" {
8937 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr25RefinerSurfaceFactoryBase41getFaceVertexIncidentFaceFVarValueIndicesEiilPi"]
8938 pub fn OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase_getFaceVertexIncidentFaceFVarValueIndices(
8939 this: *mut ::std::os::raw::c_void,
8940 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8941 faceVertex: ::std::os::raw::c_int,
8942 fvarID: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_FVarID,
8943 fvarValueIndices: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8944 ) -> ::std::os::raw::c_int;
8945}
8946unsafe extern "C" {
8947 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr25RefinerSurfaceFactoryBase41getFaceNeighborhoodVertexIndicesIfRegularEiPi"]
8948 pub fn OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase_getFaceNeighborhoodVertexIndicesIfRegular(
8949 this: *mut ::std::os::raw::c_void,
8950 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8951 vertexIndices: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8952 ) -> bool;
8953}
8954unsafe extern "C" {
8955 #[link_name = "\u{1}_ZNK10OpenSubdiv6v3_7_03Bfr25RefinerSurfaceFactoryBase44getFaceNeighborhoodFVarValueIndicesIfRegularEilPi"]
8956 pub fn OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase_getFaceNeighborhoodFVarValueIndicesIfRegular(
8957 this: *mut ::std::os::raw::c_void,
8958 faceIndex: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8959 fvarID: OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_FVarID,
8960 fvarValueIndices: *mut OpenSubdiv_v3_7_0_Bfr_SurfaceFactoryMeshAdapter_Index,
8961 ) -> bool;
8962}
8963#[doc = " @brief Template for concrete subclasses of RefinerSurfaceFactoryBase\n\n This class template is used to declare concrete subclasses of\n RefinerSurfaceFactoryBase with the additional support of an internal\n cache used by the base class. With an instance of a thread-safe\n subclass of SurfaceFactoryCache declared as a member, the resulting\n factory will be thread-safe.\n\n @tparam CACHE_TYPE A subclass of SurfaceFactoryCache\n\n Note a default template parameter uses the base SurfaceFactoryCache\n for convenience, but which is not thread-safe.\n"]
8964#[repr(C)]
8965#[derive(Debug, Hash, PartialEq, Eq)]
8966pub struct OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactory<CACHE_TYPE> {
8967 pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<CACHE_TYPE>>,
8968 pub _base: OpenSubdiv_v3_7_0_Bfr_RefinerSurfaceFactoryBase,
8969 pub _localCache: CACHE_TYPE,
8970}