Skip to main content

engage/generated/root_motion/final_ik/
iksolverlimb.rs

1// @generated by il2cpp-bindgen — do not edit by hand.
2
3#[cfg(feature = "root_motion-final_ik-iksolverlimb-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            iksolvertrigonometric::{IIKSolverTrigonometric, IKSolverTrigonometric},
12        },
13        system::{
14            object::{IObject, Object},
15            r#enum::{Enum, IEnum},
16            valuetype::{IValueType, ValueType},
17        },
18    };
19
20    #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/root_motion/final_ik/iksolverlimb/IKSolverLimb_AxisDirection.md"))]
21    #[repr(C)]
22    #[derive(::core::clone::Clone, ::core::marker::Copy)]
23    pub struct IKSolverLimb_AxisDirection {
24        pub direction: crate::unity_engine::vector3::Vector3,
25        pub axis: crate::unity_engine::vector3::Vector3,
26        pub dot: f32,
27    }
28    impl ::unity::ClassIdentity for IKSolverLimb_AxisDirection {
29        const NAME: &'static str = "IKSolverLimb.AxisDirection";
30        const NAMESPACE: &'static str = "RootMotion.FinalIK";
31
32        fn class() -> ::unity::Class {
33            static CACHE: ::std::sync::OnceLock<::unity::Class> = ::std::sync::OnceLock::new();
34            *CACHE.get_or_init(|| ::unity::Class::lookup(Self::NAMESPACE, Self::NAME))
35        }
36    }
37    impl ::unity::IlType for IKSolverLimb_AxisDirection {
38        fn il_type() -> &'static ::unity::il2cpp::Il2CppType {
39            &<Self as ::unity::ClassIdentity>::class().raw()._1.byval_arg
40        }
41    }
42
43    #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/root_motion/final_ik/iksolverlimb/IKSolverLimb.md"))]
44    #[::unity::class(namespace = "RootMotion.FinalIK", name = "IKSolverLimb")]
45    #[parent(crate::root_motion::final_ik::iksolvertrigonometric::IKSolverTrigonometric)]
46    pub struct IKSolverLimb {
47        #[offset(168)]
48        #[rename(name = "goal")]
49        pub goal: crate::unity_engine::avatarikgoal::AvatarIKGoal,
50        #[offset(172)]
51        #[rename(name = "bendModifier")]
52        pub bend_modifier: crate::root_motion::final_ik::iksolverlimb::IKSolverLimb_BendModifier,
53        #[offset(176)]
54        #[rename(name = "maintainRotationWeight")]
55        pub maintain_rotation_weight: f32,
56        #[offset(180)]
57        #[rename(name = "bendModifierWeight")]
58        pub bend_modifier_weight: f32,
59        #[offset(184)]
60        #[rename(name = "bendGoal")]
61        pub bend_goal: crate::unity_engine::transform::Transform,
62        #[offset(192)]
63        #[rename(name = "maintainBendFor1Frame")]
64        pub maintain_bend_for1_frame: bool,
65        #[offset(193)]
66        #[rename(name = "maintainRotationFor1Frame")]
67        pub maintain_rotation_for1_frame: bool,
68        #[offset(196)]
69        #[rename(name = "defaultRootRotation")]
70        pub default_root_rotation: crate::unity_engine::quaternion::Quaternion,
71        #[offset(212)]
72        #[rename(name = "parentDefaultRotation")]
73        pub parent_default_rotation: crate::unity_engine::quaternion::Quaternion,
74        #[offset(228)]
75        #[rename(name = "bone3RotationBeforeSolve")]
76        pub bone3_rotation_before_solve: crate::unity_engine::quaternion::Quaternion,
77        #[offset(244)]
78        #[rename(name = "maintainRotation")]
79        pub maintain_rotation_field: crate::unity_engine::quaternion::Quaternion,
80        #[offset(260)]
81        #[rename(name = "bone3DefaultRotation")]
82        pub bone3_default_rotation: crate::unity_engine::quaternion::Quaternion,
83        #[offset(276)]
84        #[rename(name = "_bendNormal")]
85        pub bend_normal: crate::unity_engine::vector3::Vector3,
86        #[offset(288)]
87        #[rename(name = "animationNormal")]
88        pub animation_normal: crate::unity_engine::vector3::Vector3,
89        #[offset(304)]
90        #[rename(name = "axisDirectionsLeft")]
91        pub axis_directions_left: ::unity::Array<crate::root_motion::final_ik::iksolverlimb::IKSolverLimb_AxisDirection>,
92        #[offset(312)]
93        #[rename(name = "axisDirectionsRight")]
94        pub axis_directions_right: ::unity::Array<crate::root_motion::final_ik::iksolverlimb::IKSolverLimb_AxisDirection>,
95    }
96
97    #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/root_motion/final_ik/iksolverlimb/IKSolverLimb_BendModifier.md"))]
98    #[repr(C)]
99    #[derive(::core::clone::Clone, ::core::marker::Copy, ::core::fmt::Debug, ::core::cmp::PartialEq, ::core::cmp::Eq)]
100    pub struct IKSolverLimb_BendModifier {
101        pub value: i32,
102    }
103    impl ::unity::ClassIdentity for IKSolverLimb_BendModifier {
104        const NAME: &'static str = "IKSolverLimb.BendModifier";
105        const NAMESPACE: &'static str = "RootMotion.FinalIK";
106
107        fn class() -> ::unity::Class {
108            static CACHE: ::std::sync::OnceLock<::unity::Class> = ::std::sync::OnceLock::new();
109            *CACHE.get_or_init(|| ::unity::Class::lookup(Self::NAMESPACE, Self::NAME))
110        }
111    }
112    impl ::unity::IlType for IKSolverLimb_BendModifier {
113        fn il_type() -> &'static ::unity::il2cpp::Il2CppType {
114            &<Self as ::unity::ClassIdentity>::class().raw()._1.byval_arg
115        }
116    }
117    impl IKSolverLimb_BendModifier {
118        pub fn animation() -> Self {
119            Self { value: 0 }
120        }
121
122        pub fn target() -> Self {
123            Self { value: 1 }
124        }
125
126        pub fn parent() -> Self {
127            Self { value: 2 }
128        }
129
130        pub fn arm() -> Self {
131            Self { value: 3 }
132        }
133
134        pub fn goal() -> Self {
135            Self { value: 4 }
136        }
137    }
138}
139
140#[cfg(feature = "root_motion-final_ik-iksolverlimb-types")]
141pub use __types::*;
142
143#[cfg(feature = "root_motion-final_ik-iksolverlimb")]
144impl IKSolverLimb_AxisDirection {
145    #[doc = "`.ctor(crate::unity_engine::vector3::Vector3, crate::unity_engine::vector3::Vector3)` overload"]
146    pub fn ctor(
147        &mut self,
148        direction: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
149        axis: impl ::core::convert::Into<crate::unity_engine::vector3::Vector3>,
150    ) -> () {
151        unsafe {
152            ::unity::il2cpp_call!((::unity::module_base()+0x2af2090usize)as*mut u8,();
153(*mut IKSolverLimb_AxisDirection)self as*mut IKSolverLimb_AxisDirection,(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(direction),(crate::unity_engine::vector3::Vector3)::core::convert::Into::into(axis))
154        }
155    }
156}
157
158#[cfg(feature = "root_motion-final_ik-iksolverlimb")]
159impl IKSolverLimb_AxisDirection {
160    pub fn ctor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
161        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
162    }
163}
164
165#[cfg(feature = "root_motion-final_ik-iksolverlimb")]
166pub trait IIKSolverLimbMethods: IIKSolverLimb {
167    #[doc = "`MaintainRotation()` overload"]
168    fn maintain_rotation(self) -> () {
169        unsafe {
170            let __receiver = <IKSolverLimb as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
171            ::unity::il2cpp_call!((::unity::module_base()+0x3c32cf0usize)as*mut u8,();
172(IKSolverLimb)__receiver)
173        }
174    }
175    #[doc = "`MaintainBend()` overload"]
176    fn maintain_bend(self) -> () {
177        unsafe {
178            let __receiver = <IKSolverLimb as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
179            ::unity::il2cpp_call!((::unity::module_base()+0x3c32d40usize)as*mut u8,();
180(IKSolverLimb)__receiver)
181        }
182    }
183    #[doc = "`OnInitiateVirtual()` overload"]
184    fn on_initiate_virtual(self) -> () {
185        unsafe {
186            let __receiver = <IKSolverLimb as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
187            {
188                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
189                let __vi = *__vt.get(12usize).unwrap_or_else(|| {
190                    panic!(
191                        "unity: virtual slot {}
192 out of range (vtable len {}
193) on the runtime class behind {}
194 (method `{}
195`)",
196                        12usize,
197                        __vt.len(),
198                        <IKSolverLimb as ::unity::ClassIdentity>::NAME,
199                        "OnInitiateVirtual",
200                    )
201                });
202                let __inner: extern "C" fn(IKSolverLimb, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__vi.method_ptr);
203                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
204                __inner(__receiver, __mi)
205            }
206        }
207    }
208    #[doc = "`OnUpdateVirtual()` overload"]
209    fn on_update_virtual(self) -> () {
210        unsafe {
211            let __receiver = <IKSolverLimb as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
212            {
213                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
214                let __vi = *__vt.get(13usize).unwrap_or_else(|| {
215                    panic!(
216                        "unity: virtual slot {}
217 out of range (vtable len {}
218) on the runtime class behind {}
219 (method `{}
220`)",
221                        13usize,
222                        __vt.len(),
223                        <IKSolverLimb as ::unity::ClassIdentity>::NAME,
224                        "OnUpdateVirtual",
225                    )
226                });
227                let __inner: extern "C" fn(IKSolverLimb, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__vi.method_ptr);
228                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
229                __inner(__receiver, __mi)
230            }
231        }
232    }
233    #[doc = "`OnPostSolveVirtual()` overload"]
234    fn on_post_solve_virtual(self) -> () {
235        unsafe {
236            let __receiver = <IKSolverLimb as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
237            {
238                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
239                let __vi = *__vt.get(14usize).unwrap_or_else(|| {
240                    panic!(
241                        "unity: virtual slot {}
242 out of range (vtable len {}
243) on the runtime class behind {}
244 (method `{}
245`)",
246                        14usize,
247                        __vt.len(),
248                        <IKSolverLimb as ::unity::ClassIdentity>::NAME,
249                        "OnPostSolveVirtual",
250                    )
251                });
252                let __inner: extern "C" fn(IKSolverLimb, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__vi.method_ptr);
253                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
254                __inner(__receiver, __mi)
255            }
256        }
257    }
258    #[doc = "`.ctor()` overload"]
259    fn ctor(self) -> () {
260        unsafe {
261            let __receiver = <IKSolverLimb as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
262            ::unity::il2cpp_call!((::unity::module_base()+0x3c33bc0usize)as*mut u8,();
263(IKSolverLimb)__receiver)
264        }
265    }
266    #[doc = "`.ctor(crate::unity_engine::avatarikgoal::AvatarIKGoal)` overload"]
267    fn ctor_2(self, goal: impl ::core::convert::Into<crate::unity_engine::avatarikgoal::AvatarIKGoal>) -> () {
268        unsafe {
269            let __receiver = <IKSolverLimb as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
270            ::unity::il2cpp_call!((::unity::module_base()+0x3c33d50usize)as*mut u8,();
271(IKSolverLimb)__receiver,(crate::unity_engine::avatarikgoal::AvatarIKGoal)::core::convert::Into::into(goal))
272        }
273    }
274    #[doc = "`get_axisDirections()` overload"]
275    fn get_axis_directions(self) -> ::unity::Array<crate::root_motion::final_ik::iksolverlimb::IKSolverLimb_AxisDirection> {
276        unsafe {
277            let __receiver = <IKSolverLimb as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
278            ::unity::il2cpp_call!((::unity::module_base()+0x3c33df0usize)as*mut u8, ::unity::Array<crate::root_motion::final_ik::iksolverlimb::IKSolverLimb_AxisDirection> ;
279(IKSolverLimb)__receiver)
280        }
281    }
282    #[doc = "`StoreAxisDirections(*mut::unity::Array<crate::root_motion::final_ik::iksolverlimb::IKSolverLimb_AxisDirection>)` overload"]
283    fn store_axis_directions(self) -> ::unity::Array<crate::root_motion::final_ik::iksolverlimb::IKSolverLimb_AxisDirection> {
284        unsafe {
285            let __receiver = <IKSolverLimb as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
286            let mut __out_0 =
287                ::core::mem::MaybeUninit::<::unity::Array<crate::root_motion::final_ik::iksolverlimb::IKSolverLimb_AxisDirection>>::uninit();
288            ::unity::il2cpp_call!((::unity::module_base()+0x3c33020usize)as*mut u8,();
289(IKSolverLimb)__receiver,(*mut::unity::Array<crate::root_motion::final_ik::iksolverlimb::IKSolverLimb_AxisDirection>)__out_0.as_mut_ptr());
290            __out_0.assume_init()
291        }
292    }
293    #[doc = "`GetModifiedBendNormal()` overload"]
294    fn get_modified_bend_normal(self) -> crate::unity_engine::vector3::Vector3 {
295        unsafe {
296            let __receiver = <IKSolverLimb as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
297            ::unity::il2cpp_call!((::unity::module_base()+0x3c33320usize)as*mut u8,crate::unity_engine::vector3::Vector3;
298(IKSolverLimb)__receiver)
299        }
300    }
301}
302
303#[cfg(feature = "root_motion-final_ik-iksolverlimb")]
304impl<__T: IIKSolverLimb> IIKSolverLimbMethods for __T {}
305
306#[cfg(feature = "root_motion-final_ik-iksolverlimb")]
307impl IKSolverLimb {
308    pub fn maintain_rotation_method_info() -> &'static ::unity::il2cpp::MethodInfo {
309        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
310    }
311
312    pub fn maintain_bend_method_info() -> &'static ::unity::il2cpp::MethodInfo {
313        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
314    }
315
316    pub fn on_initiate_virtual_method_info() -> &'static ::unity::il2cpp::MethodInfo {
317        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[2]
318    }
319
320    pub fn on_update_virtual_method_info() -> &'static ::unity::il2cpp::MethodInfo {
321        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[3]
322    }
323
324    pub fn on_post_solve_virtual_method_info() -> &'static ::unity::il2cpp::MethodInfo {
325        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[4]
326    }
327
328    pub fn ctor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
329        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[5]
330    }
331
332    pub fn ctor_2_method_info() -> &'static ::unity::il2cpp::MethodInfo {
333        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[6]
334    }
335
336    pub fn get_axis_directions_method_info() -> &'static ::unity::il2cpp::MethodInfo {
337        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[7]
338    }
339
340    pub fn store_axis_directions_method_info() -> &'static ::unity::il2cpp::MethodInfo {
341        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[8]
342    }
343
344    pub fn get_modified_bend_normal_method_info() -> &'static ::unity::il2cpp::MethodInfo {
345        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[9]
346    }
347}
348
349#[cfg(feature = "root_motion-final_ik-iksolverlimb")]
350impl IKSolverLimb {
351    #[doc = "Direct (non-virtual) call to `IKSolverLimb`'s own `OnInitiateVirtual`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
352    pub unsafe fn on_initiate_virtual(this: impl ::core::convert::Into<::unity::IlInstance>) -> () {
353        let __mi = Self::on_initiate_virtual_method_info();
354        let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__mi.method_ptr);
355        __inner(this.into(), ::core::option::Option::None)
356    }
357
358    #[doc = "Direct (non-virtual) call to `IKSolverLimb`'s own `OnUpdateVirtual`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
359    pub unsafe fn on_update_virtual(this: impl ::core::convert::Into<::unity::IlInstance>) -> () {
360        let __mi = Self::on_update_virtual_method_info();
361        let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__mi.method_ptr);
362        __inner(this.into(), ::core::option::Option::None)
363    }
364
365    #[doc = "Direct (non-virtual) call to `IKSolverLimb`'s own `OnPostSolveVirtual`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
366    pub unsafe fn on_post_solve_virtual(this: impl ::core::convert::Into<::unity::IlInstance>) -> () {
367        let __mi = Self::on_post_solve_virtual_method_info();
368        let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__mi.method_ptr);
369        __inner(this.into(), ::core::option::Option::None)
370    }
371}
372
373#[cfg(feature = "root_motion-final_ik-iksolverlimb")]
374impl IKSolverLimb {
375    #[doc = "`.ctor()` — no args"]
376    pub fn new() -> Self {
377        let this = <Self as ::unity::FromIlInstance>::instantiate().unwrap_or_else(|| {
378            panic!(
379                "{}
380::{}
381 failed to instantiate",
382                ::core::stringify!(IKSolverLimb),
383                ::core::stringify!(new),
384            )
385        });
386        <Self as IIKSolverLimbMethods>::ctor(this);
387        this
388    }
389
390    #[doc = "`.ctor(crate::unity_engine::avatarikgoal::AvatarIKGoal)` — overload selector"]
391    pub fn new_2(goal: crate::unity_engine::avatarikgoal::AvatarIKGoal) -> Self {
392        let this = <Self as ::unity::FromIlInstance>::instantiate().unwrap_or_else(|| {
393            panic!(
394                "{}
395::{}
396 failed to instantiate",
397                ::core::stringify!(IKSolverLimb),
398                ::core::stringify!(new_2),
399            )
400        });
401        <Self as IIKSolverLimbMethods>::ctor_2(this, goal);
402        this
403    }
404}
405
406#[cfg(feature = "root_motion-final_ik-iksolverlimb")]
407#[doc(hidden)]
408pub mod prelude {
409    pub use super::{IIKSolverLimb, IIKSolverLimbMethods, IKSolverLimb, IKSolverLimb_AxisDirection, IKSolverLimb_BendModifier};
410    #[cfg(feature = "root_motion-final_ik-iksolver")]
411    pub use crate::root_motion::final_ik::iksolver::IIKSolverMethods;
412    #[cfg(feature = "root_motion-final_ik-iksolvertrigonometric")]
413    pub use crate::root_motion::final_ik::iksolvertrigonometric::IIKSolverTrigonometricMethods;
414    #[cfg(feature = "system-object")]
415    pub use crate::system::object::IObjectMethods;
416    #[cfg(feature = "system-enum")]
417    pub use crate::system::r#enum::IEnumMethods;
418    #[cfg(feature = "system-valuetype")]
419    pub use crate::system::valuetype::IValueTypeMethods;
420    pub use crate::{
421        root_motion::final_ik::{
422            iksolver::{IIKSolver, IKSolver},
423            iksolvertrigonometric::{IIKSolverTrigonometric, IKSolverTrigonometric},
424        },
425        system::{object::IObject, r#enum::IEnum, valuetype::IValueType},
426    };
427}