engage/generated/root_motion/final_ik/
iksolverlimb.rs1#[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}