Skip to main content

engage/generated/root_motion/final_ik/
iksolverfabrik.rs

1// @generated by il2cpp-bindgen — do not edit by hand.
2
3#[cfg(feature = "root_motion-final_ik-iksolverfabrik-types")]
4mod __types {
5    #[allow(unused_imports)] use ::unity::prelude::*;
6
7    use super::*;
8    use crate::{
9        root_motion::final_ik::{
10            iksolver::{IIKSolver, IKSolver},
11            iksolverheuristic::{IIKSolverHeuristic, IKSolverHeuristic},
12        },
13        system::object::{IObject, Object},
14    };
15
16    #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/root_motion/final_ik/iksolverfabrik/IKSolverFABRIK.md"))]
17    #[::unity::class(namespace = "RootMotion.FinalIK", name = "IKSolverFABRIK")]
18    #[parent(crate::root_motion::final_ik::iksolverheuristic::IKSolverHeuristic)]
19    pub struct IKSolverFABRIK {
20        #[offset(136)]
21        #[rename(name = "OnPreIteration")]
22        pub on_pre_iteration: crate::root_motion::final_ik::iksolver::IKSolver_IterationDelegate,
23        #[offset(144)]
24        #[rename(name = "limitedBones")]
25        pub limited_bones: ::unity::Array<bool>,
26        #[offset(152)]
27        #[rename(name = "solverLocalPositions")]
28        pub solver_local_positions: ::unity::Array<crate::unity_engine::vector3::Vector3>,
29    }
30}
31
32#[cfg(feature = "root_motion-final_ik-iksolverfabrik-types")]
33pub use __types::*;
34
35#[cfg(feature = "root_motion-final_ik-iksolverfabrik")]
36pub trait IIKSolverFABRIKMethods: IIKSolverFABRIK {
37    #[doc = "`SolveForward(crate::unity_engine::vector3::Vector3)` overload"]
38    fn solve_forward(self, position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>) -> () {
39        unsafe {
40            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
41            ::unity::il2cpp_call!((::unity::module_base()+0x3c29a50usize)as*mut u8,();
42(IKSolverFABRIK)__receiver,(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(position))
43        }
44    }
45    #[doc = "`SolveBackward(crate::unity_engine::vector3::Vector3)` overload"]
46    fn solve_backward(self, position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>) -> () {
47        unsafe {
48            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
49            ::unity::il2cpp_call!((::unity::module_base()+0x3c2a030usize)as*mut u8,();
50(IKSolverFABRIK)__receiver,(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(position))
51        }
52    }
53    #[doc = "`GetIKPosition()` overload"]
54    fn get_ik_position(self) -> crate::unity_engine::vector3::Vector3 {
55        unsafe {
56            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
57            {
58                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
59                let __vi = *__vt.get(5usize).unwrap_or_else(|| {
60                    panic!(
61                        "unity: virtual slot {}
62 out of range (vtable len {}
63) on the runtime class behind {}
64 (method `{}
65`)",
66                        5usize,
67                        __vt.len(),
68                        <IKSolverFABRIK as ::unity::ClassIdentity>::NAME,
69                        "GetIKPosition",
70                    )
71                });
72                let __inner: extern "C" fn(IKSolverFABRIK, ::unity::OptionalMethod) -> crate::unity_engine::vector3::Vector3 =
73                    ::core::mem::transmute(__vi.method_ptr);
74                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
75                __inner(__receiver, __mi)
76            }
77        }
78    }
79    #[doc = "`OnInitiate()` overload"]
80    fn on_initiate(self) -> () {
81        unsafe {
82            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
83            {
84                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
85                let __vi = *__vt.get(10usize).unwrap_or_else(|| {
86                    panic!(
87                        "unity: virtual slot {}
88 out of range (vtable len {}
89) on the runtime class behind {}
90 (method `{}
91`)",
92                        10usize,
93                        __vt.len(),
94                        <IKSolverFABRIK as ::unity::ClassIdentity>::NAME,
95                        "OnInitiate",
96                    )
97                });
98                let __inner: extern "C" fn(IKSolverFABRIK, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__vi.method_ptr);
99                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
100                __inner(__receiver, __mi)
101            }
102        }
103    }
104    #[doc = "`OnUpdate()` overload"]
105    fn on_update(self) -> () {
106        unsafe {
107            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
108            {
109                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
110                let __vi = *__vt.get(11usize).unwrap_or_else(|| {
111                    panic!(
112                        "unity: virtual slot {}
113 out of range (vtable len {}
114) on the runtime class behind {}
115 (method `{}
116`)",
117                        11usize,
118                        __vt.len(),
119                        <IKSolverFABRIK as ::unity::ClassIdentity>::NAME,
120                        "OnUpdate",
121                    )
122                });
123                let __inner: extern "C" fn(IKSolverFABRIK, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__vi.method_ptr);
124                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
125                __inner(__receiver, __mi)
126            }
127        }
128    }
129    #[doc = "`get_boneLengthCanBeZero()` overload"]
130    fn get_bone_length_can_be_zero(self) -> bool {
131        unsafe {
132            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
133            {
134                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
135                let __vi = *__vt.get(13usize).unwrap_or_else(|| {
136                    panic!(
137                        "unity: virtual slot {}
138 out of range (vtable len {}
139) on the runtime class behind {}
140 (method `{}
141`)",
142                        13usize,
143                        __vt.len(),
144                        <IKSolverFABRIK as ::unity::ClassIdentity>::NAME,
145                        "get_boneLengthCanBeZero",
146                    )
147                });
148                let __inner: extern "C" fn(IKSolverFABRIK, ::unity::OptionalMethod) -> bool = ::core::mem::transmute(__vi.method_ptr);
149                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
150                __inner(__receiver, __mi)
151            }
152        }
153    }
154    #[doc = "`SolveJoint(crate::unity_engine::vector3::Vector3, crate::unity_engine::vector3::Vector3, f32)` overload"]
155    fn solve_joint(
156        self,
157        pos1: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
158        pos2: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
159        length: impl ::core::convert::Into<f32>,
160    ) -> crate::unity_engine::vector3::Vector3 {
161        unsafe {
162            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
163            ::unity::il2cpp_call!((::unity::module_base()+0x3c2aa10usize)as*mut u8,crate::unity_engine::vector3::Vector3;
164(IKSolverFABRIK)__receiver,(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(pos1),(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(pos2),(f32)::core::convert::Into::into(length))
165        }
166    }
167    #[doc = "`OnPreSolve()` overload"]
168    fn on_pre_solve(self) -> () {
169        unsafe {
170            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
171            ::unity::il2cpp_call!((::unity::module_base()+0x3c29b30usize)as*mut u8,();
172(IKSolverFABRIK)__receiver)
173        }
174    }
175    #[doc = "`OnPostSolve()` overload"]
176    fn on_post_solve(self) -> () {
177        unsafe {
178            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
179            ::unity::il2cpp_call!((::unity::module_base()+0x3c2a160usize)as*mut u8,();
180(IKSolverFABRIK)__receiver)
181        }
182    }
183    #[doc = "`Solve(crate::unity_engine::vector3::Vector3)` overload"]
184    fn solve(self, target_position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>) -> () {
185        unsafe {
186            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
187            ::unity::il2cpp_call!((::unity::module_base()+0x3c2a990usize)as*mut u8,();
188(IKSolverFABRIK)__receiver,(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(target_position))
189        }
190    }
191    #[doc = "`ForwardReach(crate::unity_engine::vector3::Vector3)` overload"]
192    fn forward_reach(self, position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>) -> () {
193        unsafe {
194            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
195            ::unity::il2cpp_call!((::unity::module_base()+0x3c29e50usize)as*mut u8,();
196(IKSolverFABRIK)__receiver,(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(position))
197        }
198    }
199    #[doc = "`SolverMove(i32, crate::unity_engine::vector3::Vector3)` overload"]
200    fn solver_move(self, index: impl ::core::convert::Into<i32>, offset: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>) -> () {
201        unsafe {
202            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
203            ::unity::il2cpp_call!((::unity::module_base()+0x3c2b150usize)as*mut u8,();
204(IKSolverFABRIK)__receiver,(i32)::core::convert::Into::into(index),(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(offset))
205        }
206    }
207    #[doc = "`SolverRotate(i32, crate::unity_engine::quaternion::Quaternion, bool)` overload"]
208    fn solver_rotate(
209        self,
210        index: impl ::core::convert::Into<i32>,
211        rotation: impl ::core::convert::Into<crate::unity_engine::quaternion::Quaternion>,
212        recursive: impl ::core::convert::Into<bool>,
213    ) -> () {
214        unsafe {
215            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
216            ::unity::il2cpp_call!((::unity::module_base()+0x3c2b1c0usize)as*mut u8,();
217(IKSolverFABRIK)__receiver,(i32)::core::convert::Into::into(index),(crate::unity_engine::quaternion::Quaternion)::core::convert::Into::into(rotation),(bool)::core::convert::Into::into(recursive))
218        }
219    }
220    #[doc = "`SolverRotateChildren(i32, crate::unity_engine::quaternion::Quaternion)` overload"]
221    fn solver_rotate_children(
222        self,
223        index: impl ::core::convert::Into<i32>,
224        rotation: impl ::core::convert::Into<crate::unity_engine::quaternion::Quaternion>,
225    ) -> () {
226        unsafe {
227            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
228            ::unity::il2cpp_call!((::unity::module_base()+0x3c2b2b0usize)as*mut u8,();
229(IKSolverFABRIK)__receiver,(i32)::core::convert::Into::into(index),(crate::unity_engine::quaternion::Quaternion)::core::convert::Into::into(rotation))
230        }
231    }
232    #[doc = "`SolverMoveChildrenAroundPoint(i32, crate::unity_engine::quaternion::Quaternion)` overload"]
233    fn solver_move_children_around_point(
234        self,
235        index: impl ::core::convert::Into<i32>,
236        rotation: impl ::core::convert::Into<crate::unity_engine::quaternion::Quaternion>,
237    ) -> () {
238        unsafe {
239            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
240            ::unity::il2cpp_call!((::unity::module_base()+0x3c2b370usize)as*mut u8,();
241(IKSolverFABRIK)__receiver,(i32)::core::convert::Into::into(index),(crate::unity_engine::quaternion::Quaternion)::core::convert::Into::into(rotation))
242        }
243    }
244    #[doc = "`GetParentSolverRotation(i32)` overload"]
245    fn get_parent_solver_rotation(self, index: impl ::core::convert::Into<i32>) -> crate::unity_engine::quaternion::Quaternion {
246        unsafe {
247            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
248            ::unity::il2cpp_call!((::unity::module_base()+0x3c2a4c0usize)as*mut u8,crate::unity_engine::quaternion::Quaternion;
249(IKSolverFABRIK)__receiver,(i32)::core::convert::Into::into(index))
250        }
251    }
252    #[doc = "`GetParentSolverPosition(i32)` overload"]
253    fn get_parent_solver_position(self, index: impl ::core::convert::Into<i32>) -> crate::unity_engine::vector3::Vector3 {
254        unsafe {
255            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
256            ::unity::il2cpp_call!((::unity::module_base()+0x3c2a5e0usize)as*mut u8,crate::unity_engine::vector3::Vector3;
257(IKSolverFABRIK)__receiver,(i32)::core::convert::Into::into(index))
258        }
259    }
260    #[doc = "`GetLimitedRotation(i32, crate::unity_engine::quaternion::Quaternion, *mutbool)` overload"]
261    fn get_limited_rotation(
262        self,
263        index: impl ::core::convert::Into<i32>,
264        q: impl ::core::convert::Into<crate::unity_engine::quaternion::Quaternion>,
265    ) -> (crate::unity_engine::quaternion::Quaternion, bool) {
266        unsafe {
267            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
268            let mut __out_0 = ::core::mem::MaybeUninit::<bool>::uninit();
269            let __ret = {
270                ::unity::il2cpp_call!((::unity::module_base()+0x3c2b490usize)as*mut u8,crate::unity_engine::quaternion::Quaternion;
271(IKSolverFABRIK)__receiver,(i32)::core::convert::Into::into(index),(crate::unity_engine::quaternion::Quaternion)::core::convert::Into::into(q),(*mut bool)__out_0.as_mut_ptr())
272            };
273            (__ret, __out_0.assume_init())
274        }
275    }
276    #[doc = "`LimitForward(i32, i32)` overload"]
277    fn limit_forward(self, rotate_bone: impl ::core::convert::Into<i32>, limit_bone: impl ::core::convert::Into<i32>) -> () {
278        unsafe {
279            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
280            ::unity::il2cpp_call!((::unity::module_base()+0x3c2ac20usize)as*mut u8,();
281(IKSolverFABRIK)__receiver,(i32)::core::convert::Into::into(rotate_bone),(i32)::core::convert::Into::into(limit_bone))
282        }
283    }
284    #[doc = "`BackwardReach(crate::unity_engine::vector3::Vector3)` overload"]
285    fn backward_reach(self, position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>) -> () {
286        unsafe {
287            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
288            ::unity::il2cpp_call!((::unity::module_base()+0x3c2a150usize)as*mut u8,();
289(IKSolverFABRIK)__receiver,(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(position))
290        }
291    }
292    #[doc = "`BackwardReachUnlimited(crate::unity_engine::vector3::Vector3)` overload"]
293    fn backward_reach_unlimited(self, position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>) -> () {
294        unsafe {
295            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
296            ::unity::il2cpp_call!((::unity::module_base()+0x3c2ba80usize)as*mut u8,();
297(IKSolverFABRIK)__receiver,(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(position))
298        }
299    }
300    #[doc = "`BackwardReachLimited(crate::unity_engine::vector3::Vector3)` overload"]
301    fn backward_reach_limited(self, position: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>) -> () {
302        unsafe {
303            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
304            ::unity::il2cpp_call!((::unity::module_base()+0x3c2b5d0usize)as*mut u8,();
305(IKSolverFABRIK)__receiver,(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(position))
306        }
307    }
308    #[doc = "`MapToSolverPositions()` overload"]
309    fn map_to_solver_positions(self) -> () {
310        unsafe {
311            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
312            ::unity::il2cpp_call!((::unity::module_base()+0x3c2aa90usize)as*mut u8,();
313(IKSolverFABRIK)__receiver)
314        }
315    }
316    #[doc = "`MapToSolverPositionsLimited()` overload"]
317    fn map_to_solver_positions_limited(self) -> () {
318        unsafe {
319            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
320            ::unity::il2cpp_call!((::unity::module_base()+0x3c2ab70usize)as*mut u8,();
321(IKSolverFABRIK)__receiver)
322        }
323    }
324    #[doc = "`.ctor()` overload"]
325    fn ctor(self) -> () {
326        unsafe {
327            let __receiver = <IKSolverFABRIK as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
328            ::unity::il2cpp_call!((::unity::module_base()+0x3c2bba0usize)as*mut u8,();
329(IKSolverFABRIK)__receiver)
330        }
331    }
332}
333
334#[cfg(feature = "root_motion-final_ik-iksolverfabrik")]
335impl<__T: IIKSolverFABRIK> IIKSolverFABRIKMethods for __T {}
336
337#[cfg(feature = "root_motion-final_ik-iksolverfabrik")]
338impl IKSolverFABRIK {
339    pub fn solve_forward_method_info() -> &'static ::unity::il2cpp::MethodInfo {
340        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
341    }
342
343    pub fn solve_backward_method_info() -> &'static ::unity::il2cpp::MethodInfo {
344        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
345    }
346
347    pub fn get_ik_position_method_info() -> &'static ::unity::il2cpp::MethodInfo {
348        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[2]
349    }
350
351    pub fn on_initiate_method_info() -> &'static ::unity::il2cpp::MethodInfo {
352        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[3]
353    }
354
355    pub fn on_update_method_info() -> &'static ::unity::il2cpp::MethodInfo {
356        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[4]
357    }
358
359    pub fn get_bone_length_can_be_zero_method_info() -> &'static ::unity::il2cpp::MethodInfo {
360        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[5]
361    }
362
363    pub fn solve_joint_method_info() -> &'static ::unity::il2cpp::MethodInfo {
364        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[6]
365    }
366
367    pub fn on_pre_solve_method_info() -> &'static ::unity::il2cpp::MethodInfo {
368        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[7]
369    }
370
371    pub fn on_post_solve_method_info() -> &'static ::unity::il2cpp::MethodInfo {
372        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[8]
373    }
374
375    pub fn solve_method_info() -> &'static ::unity::il2cpp::MethodInfo {
376        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[9]
377    }
378
379    pub fn forward_reach_method_info() -> &'static ::unity::il2cpp::MethodInfo {
380        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[10]
381    }
382
383    pub fn solver_move_method_info() -> &'static ::unity::il2cpp::MethodInfo {
384        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[11]
385    }
386
387    pub fn solver_rotate_method_info() -> &'static ::unity::il2cpp::MethodInfo {
388        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[12]
389    }
390
391    pub fn solver_rotate_children_method_info() -> &'static ::unity::il2cpp::MethodInfo {
392        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[13]
393    }
394
395    pub fn solver_move_children_around_point_method_info() -> &'static ::unity::il2cpp::MethodInfo {
396        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[14]
397    }
398
399    pub fn get_parent_solver_rotation_method_info() -> &'static ::unity::il2cpp::MethodInfo {
400        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[15]
401    }
402
403    pub fn get_parent_solver_position_method_info() -> &'static ::unity::il2cpp::MethodInfo {
404        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[16]
405    }
406
407    pub fn get_limited_rotation_method_info() -> &'static ::unity::il2cpp::MethodInfo {
408        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[17]
409    }
410
411    pub fn limit_forward_method_info() -> &'static ::unity::il2cpp::MethodInfo {
412        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[18]
413    }
414
415    pub fn backward_reach_method_info() -> &'static ::unity::il2cpp::MethodInfo {
416        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[19]
417    }
418
419    pub fn backward_reach_unlimited_method_info() -> &'static ::unity::il2cpp::MethodInfo {
420        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[20]
421    }
422
423    pub fn backward_reach_limited_method_info() -> &'static ::unity::il2cpp::MethodInfo {
424        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[21]
425    }
426
427    pub fn map_to_solver_positions_method_info() -> &'static ::unity::il2cpp::MethodInfo {
428        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[22]
429    }
430
431    pub fn map_to_solver_positions_limited_method_info() -> &'static ::unity::il2cpp::MethodInfo {
432        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[23]
433    }
434
435    pub fn ctor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
436        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[24]
437    }
438}
439
440#[cfg(feature = "root_motion-final_ik-iksolverfabrik")]
441impl IKSolverFABRIK {
442    #[doc = "Direct (non-virtual) call to `IKSolverFABRIK`'s own `GetIKPosition`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
443    pub unsafe fn get_ik_position(this: impl ::core::convert::Into<::unity::IlInstance>) -> crate::unity_engine::vector3::Vector3 {
444        let __mi = Self::get_ik_position_method_info();
445        let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> crate::unity_engine::vector3::Vector3 =
446            ::core::mem::transmute(__mi.method_ptr);
447        __inner(this.into(), ::core::option::Option::None)
448    }
449
450    #[doc = "Direct (non-virtual) call to `IKSolverFABRIK`'s own `OnInitiate`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
451    pub unsafe fn on_initiate(this: impl ::core::convert::Into<::unity::IlInstance>) -> () {
452        let __mi = Self::on_initiate_method_info();
453        let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__mi.method_ptr);
454        __inner(this.into(), ::core::option::Option::None)
455    }
456
457    #[doc = "Direct (non-virtual) call to `IKSolverFABRIK`'s own `OnUpdate`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
458    pub unsafe fn on_update(this: impl ::core::convert::Into<::unity::IlInstance>) -> () {
459        let __mi = Self::on_update_method_info();
460        let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__mi.method_ptr);
461        __inner(this.into(), ::core::option::Option::None)
462    }
463
464    #[doc = "Direct (non-virtual) call to `IKSolverFABRIK`'s own `get_boneLengthCanBeZero`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
465    pub unsafe fn get_bone_length_can_be_zero(this: impl ::core::convert::Into<::unity::IlInstance>) -> bool {
466        let __mi = Self::get_bone_length_can_be_zero_method_info();
467        let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> bool = ::core::mem::transmute(__mi.method_ptr);
468        __inner(this.into(), ::core::option::Option::None)
469    }
470}
471
472#[cfg(feature = "root_motion-final_ik-iksolverfabrik")]
473impl IKSolverFABRIK {
474    #[doc = "`.ctor()` — no args"]
475    pub fn new() -> Self {
476        let this = <Self as ::unity::FromIlInstance>::instantiate().unwrap_or_else(|| {
477            panic!(
478                "{}
479::{}
480 failed to instantiate",
481                ::core::stringify!(IKSolverFABRIK),
482                ::core::stringify!(new),
483            )
484        });
485        <Self as IIKSolverFABRIKMethods>::ctor(this);
486        this
487    }
488}
489
490#[cfg(feature = "root_motion-final_ik-iksolverfabrik")]
491#[doc(hidden)]
492pub mod prelude {
493    pub use super::{IIKSolverFABRIK, IIKSolverFABRIKMethods, IKSolverFABRIK};
494    #[cfg(feature = "root_motion-final_ik-iksolver")]
495    pub use crate::root_motion::final_ik::iksolver::IIKSolverMethods;
496    #[cfg(feature = "root_motion-final_ik-iksolverheuristic")]
497    pub use crate::root_motion::final_ik::iksolverheuristic::IIKSolverHeuristicMethods;
498    #[cfg(feature = "system-object")]
499    pub use crate::system::object::IObjectMethods;
500    pub use crate::{
501        root_motion::final_ik::{
502            iksolver::{IIKSolver, IKSolver},
503            iksolverheuristic::{IIKSolverHeuristic, IKSolverHeuristic},
504        },
505        system::object::IObject,
506    };
507}