Implement quaternion and matrix geometry
This commit is contained in:
@@ -14,3 +14,10 @@ workspace = true
|
||||
getrandom = "0.4"
|
||||
md-5 = "0.10"
|
||||
uuid = { version = "1.18", features = ["v4"] }
|
||||
|
||||
[dev-dependencies]
|
||||
stats_alloc = "0.1.10"
|
||||
|
||||
[[bench]]
|
||||
name = "geometry"
|
||||
harness = false
|
||||
|
||||
65
crates/libremetaverse-types/benches/geometry.rs
Normal file
65
crates/libremetaverse-types/benches/geometry.rs
Normal file
@@ -0,0 +1,65 @@
|
||||
use std::alloc::System;
|
||||
use std::hint::black_box;
|
||||
use std::time::Instant;
|
||||
|
||||
use libremetaverse_types::{Matrix4, Quaternion, Vector3};
|
||||
use stats_alloc::{INSTRUMENTED_SYSTEM, Region, StatsAlloc};
|
||||
|
||||
#[global_allocator]
|
||||
static ALLOCATOR: &StatsAlloc<System> = &INSTRUMENTED_SYSTEM;
|
||||
|
||||
fn main() {
|
||||
const ITERATIONS: usize = 250_000;
|
||||
|
||||
let rotation = Quaternion::create_from_eulers_with_single_single_single(0.25, 0.5, 0.75)
|
||||
.expect("valid benchmark rotation");
|
||||
let matrix = Matrix4::mul_with_matrix4_matrix4(
|
||||
Matrix4::create_scale(Vector3 {
|
||||
x: 2.0,
|
||||
y: 3.0,
|
||||
z: 4.0,
|
||||
})
|
||||
.expect("valid benchmark scale"),
|
||||
Matrix4::create_translation(Vector3 {
|
||||
x: 10.0,
|
||||
y: 20.0,
|
||||
z: 30.0,
|
||||
})
|
||||
.expect("valid benchmark translation"),
|
||||
);
|
||||
|
||||
// Warm up runtime and formatting paths before entering the measured region.
|
||||
black_box(Matrix4::transform(matrix, rotation).expect("matrix transform"));
|
||||
black_box(
|
||||
Quaternion::slerp(Quaternion::identity(), rotation, 0.5).expect("quaternion interpolation"),
|
||||
);
|
||||
|
||||
let allocation_region = Region::new(ALLOCATOR);
|
||||
let started = Instant::now();
|
||||
let mut transformed = matrix;
|
||||
let mut interpolated = Quaternion::identity();
|
||||
for index in 0..ITERATIONS {
|
||||
let amount = f32::from(u8::try_from(index & 255).expect("masked benchmark index")) / 255.0;
|
||||
transformed = Matrix4::transform(black_box(transformed), black_box(rotation))
|
||||
.expect("matrix transform");
|
||||
interpolated = Quaternion::slerp(
|
||||
black_box(interpolated),
|
||||
black_box(rotation),
|
||||
black_box(amount),
|
||||
)
|
||||
.expect("quaternion interpolation");
|
||||
}
|
||||
let elapsed = started.elapsed();
|
||||
let allocation_stats = allocation_region.change();
|
||||
|
||||
black_box((transformed, interpolated));
|
||||
println!(
|
||||
"geometry hot paths: {ITERATIONS} iterations in {elapsed:?}, {} allocations, {} reallocations",
|
||||
allocation_stats.allocations, allocation_stats.reallocations
|
||||
);
|
||||
assert_eq!(
|
||||
(allocation_stats.allocations, allocation_stats.reallocations),
|
||||
(0, 0),
|
||||
"matrix transforms and quaternion interpolation must remain allocation-free"
|
||||
);
|
||||
}
|
||||
@@ -23,6 +23,8 @@ impl<T: std::io::Read + std::io::Write> ReadWrite for T {}
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum Object {
|
||||
Color4(crate::Color4),
|
||||
Matrix4(crate::Matrix4),
|
||||
Quaternion(crate::Quaternion),
|
||||
String(String),
|
||||
UUID(crate::UUID),
|
||||
Vector2(crate::Vector2),
|
||||
@@ -35,6 +37,8 @@ impl PartialEq for Object {
|
||||
fn eq(&self, other: &Self) -> bool {
|
||||
match (self, other) {
|
||||
(Self::Color4(lhs), Self::Color4(rhs)) => crate::Color4::eq(*lhs, *rhs),
|
||||
(Self::Matrix4(lhs), Self::Matrix4(rhs)) => crate::Matrix4::eq(*lhs, *rhs),
|
||||
(Self::Quaternion(lhs), Self::Quaternion(rhs)) => crate::Quaternion::eq(*lhs, *rhs),
|
||||
(Self::String(lhs), Self::String(rhs)) => lhs == rhs,
|
||||
(Self::UUID(lhs), Self::UUID(rhs)) => lhs == rhs,
|
||||
(Self::Vector2(lhs), Self::Vector2(rhs)) => crate::Vector2::eq(*lhs, *rhs),
|
||||
@@ -53,6 +57,8 @@ impl std::hash::Hash for Object {
|
||||
std::mem::discriminant(self).hash(state);
|
||||
match self {
|
||||
Self::Color4(value) => value.get_hash_code().hash(state),
|
||||
Self::Matrix4(value) => value.get_hash_code().hash(state),
|
||||
Self::Quaternion(value) => value.get_hash_code().hash(state),
|
||||
Self::String(value) => value.hash(state),
|
||||
Self::UUID(value) => value.hash(state),
|
||||
Self::Vector2(value) => value.get_hash_code().hash(state),
|
||||
@@ -80,6 +86,16 @@ impl From<crate::Color4> for Object {
|
||||
Self::Color4(value)
|
||||
}
|
||||
}
|
||||
impl From<crate::Matrix4> for Object {
|
||||
fn from(value: crate::Matrix4) -> Self {
|
||||
Self::Matrix4(value)
|
||||
}
|
||||
}
|
||||
impl From<crate::Quaternion> for Object {
|
||||
fn from(value: crate::Quaternion) -> Self {
|
||||
Self::Quaternion(value)
|
||||
}
|
||||
}
|
||||
impl From<crate::Vector2> for Object {
|
||||
fn from(value: crate::Vector2) -> Self {
|
||||
Self::Vector2(value)
|
||||
|
||||
@@ -1026,452 +1026,77 @@ pub enum Material {
|
||||
}
|
||||
|
||||
/// C# type: `T:LibreMetaverse.Matrix4`.
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
pub struct Matrix4 {
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M11`.
|
||||
pub m11: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M12`.
|
||||
pub m12: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M13`.
|
||||
pub m13: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M14`.
|
||||
pub m14: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M21`.
|
||||
pub m21: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M22`.
|
||||
pub m22: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M23`.
|
||||
pub m23: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M24`.
|
||||
pub m24: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M31`.
|
||||
pub m31: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M32`.
|
||||
pub m32: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M33`.
|
||||
pub m33: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M34`.
|
||||
pub m34: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M41`.
|
||||
pub m41: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M42`.
|
||||
pub m42: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M43`.
|
||||
pub m43: f32,
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M44`.
|
||||
pub m44: f32,
|
||||
}
|
||||
impl Matrix4 {
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.Identity`.
|
||||
pub fn identity() -> libremetaverse_types::Matrix4 {
|
||||
libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Matrix4.Identity")
|
||||
}
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.Zero`.
|
||||
pub fn zero() -> libremetaverse_types::Matrix4 {
|
||||
libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Matrix4.Zero")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.#ctor(LibreMetaverse.Matrix4)`.
|
||||
pub fn new_with_matrix4(m: libremetaverse_types::Matrix4) -> Result<Self, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.#ctor(LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.#ctor(System.Single,System.Single,System.Single)`.
|
||||
pub fn new_with_single_single_single(
|
||||
roll: f32,
|
||||
pitch: f32,
|
||||
yaw: f32,
|
||||
) -> Result<Self, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.#ctor(System.Single,System.Single,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)`.
|
||||
pub fn new_with_single_single_single_single_single_single_single_single_single_single_single_single_single_single_single_single(
|
||||
m11: f32,
|
||||
m12: f32,
|
||||
m13: f32,
|
||||
m14: f32,
|
||||
m21: f32,
|
||||
m22: f32,
|
||||
m23: f32,
|
||||
m24: f32,
|
||||
m31: f32,
|
||||
m32: f32,
|
||||
m33: f32,
|
||||
m34: f32,
|
||||
m41: f32,
|
||||
m42: f32,
|
||||
m43: f32,
|
||||
m44: f32,
|
||||
) -> Result<Self, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Add(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
pub fn add_with_matrix4_matrix4(
|
||||
matrix1: libremetaverse_types::Matrix4,
|
||||
matrix2: libremetaverse_types::Matrix4,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Add(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Adjoint(LibreMetaverse.Matrix4)`.
|
||||
pub fn adjoint(
|
||||
matrix: libremetaverse_types::Matrix4,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Adjoint(LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Adjoint3x3(LibreMetaverse.Matrix4)`.
|
||||
pub fn adjoint3x3(
|
||||
matrix: libremetaverse_types::Matrix4,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Adjoint3x3(LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateFromAxisAngle(LibreMetaverse.Vector3,System.Single)`.
|
||||
pub fn create_from_axis_angle(
|
||||
axis: libremetaverse_types::Vector3,
|
||||
angle: f32,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.CreateFromAxisAngle(LibreMetaverse.Vector3,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateFromEulers(System.Single,System.Single,System.Single)`.
|
||||
pub fn create_from_eulers(
|
||||
roll: f32,
|
||||
pitch: f32,
|
||||
yaw: f32,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.CreateFromEulers(System.Single,System.Single,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateFromQuaternion(LibreMetaverse.Quaternion)`.
|
||||
pub fn create_from_quaternion(
|
||||
quaternion: libremetaverse_types::Quaternion,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.CreateFromQuaternion(LibreMetaverse.Quaternion)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateLookAt(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
|
||||
pub fn create_look_at(
|
||||
camera_position: libremetaverse_types::Vector3,
|
||||
camera_target: libremetaverse_types::Vector3,
|
||||
camera_up_vector: libremetaverse_types::Vector3,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.CreateLookAt(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateRotationX(System.Single)`.
|
||||
pub fn create_rotation_x(radians: f32) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.CreateRotationX(System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateRotationY(System.Single)`.
|
||||
pub fn create_rotation_y(radians: f32) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.CreateRotationY(System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateRotationZ(System.Single)`.
|
||||
pub fn create_rotation_z(radians: f32) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.CreateRotationZ(System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateScale(LibreMetaverse.Vector3)`.
|
||||
pub fn create_scale(
|
||||
scale: libremetaverse_types::Vector3,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.CreateScale(LibreMetaverse.Vector3)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateTranslation(LibreMetaverse.Vector3)`.
|
||||
pub fn create_translation(
|
||||
position: libremetaverse_types::Vector3,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.CreateTranslation(LibreMetaverse.Vector3)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateWorld(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
|
||||
pub fn create_world(
|
||||
position: libremetaverse_types::Vector3,
|
||||
forward: libremetaverse_types::Vector3,
|
||||
up: libremetaverse_types::Vector3,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.CreateWorld(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Decompose(LibreMetaverse.Vector3@,LibreMetaverse.Quaternion@,LibreMetaverse.Vector3@)`.
|
||||
pub fn decompose(
|
||||
&mut self,
|
||||
scale: &mut libremetaverse_types::Vector3,
|
||||
rotation: &mut libremetaverse_types::Quaternion,
|
||||
translation: &mut libremetaverse_types::Vector3,
|
||||
) -> Result<bool, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Decompose(LibreMetaverse.Vector3@,LibreMetaverse.Quaternion@,LibreMetaverse.Vector3@)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Determinant`.
|
||||
pub fn determinant(&mut self) -> Result<f32, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Matrix4.Determinant")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Determinant3x3`.
|
||||
pub fn determinant3x3(&mut self) -> Result<f32, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Matrix4.Determinant3x3")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Divide(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
pub fn divide_with_matrix4_matrix4(
|
||||
matrix1: libremetaverse_types::Matrix4,
|
||||
matrix2: libremetaverse_types::Matrix4,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Divide(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Divide(LibreMetaverse.Matrix4,System.Single)`.
|
||||
pub fn divide_with_matrix4_single(
|
||||
matrix1: libremetaverse_types::Matrix4,
|
||||
divider: f32,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Divide(LibreMetaverse.Matrix4,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Equals(LibreMetaverse.Matrix4)`.
|
||||
pub fn equals_with_matrix4(&self, other: libremetaverse_types::Matrix4) -> bool {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Matrix4.Equals(LibreMetaverse.Matrix4)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Equals(System.Object)`.
|
||||
pub fn equals_with_object(&self, obj: Option<libremetaverse_types::compat::Object>) -> bool {
|
||||
libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Matrix4.Equals(System.Object)")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.GetEulerAngles(System.Single@,System.Single@,System.Single@)`.
|
||||
pub fn get_euler_angles(
|
||||
&self,
|
||||
roll: &mut f32,
|
||||
pitch: &mut f32,
|
||||
yaw: &mut f32,
|
||||
) -> Result<(), crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.GetEulerAngles(System.Single@,System.Single@,System.Single@)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.GetHashCode`.
|
||||
pub fn get_hash_code(&self) -> i32 {
|
||||
libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Matrix4.GetHashCode")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.GetQuaternion`.
|
||||
pub fn get_quaternion(&self) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Matrix4.GetQuaternion")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Inverse(LibreMetaverse.Matrix4)`.
|
||||
pub fn inverse(
|
||||
matrix: libremetaverse_types::Matrix4,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Inverse(LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Inverse3x3(LibreMetaverse.Matrix4)`.
|
||||
pub fn inverse3x3(
|
||||
matrix: libremetaverse_types::Matrix4,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Inverse3x3(LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Lerp(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4,System.Single)`.
|
||||
pub fn lerp(
|
||||
matrix1: libremetaverse_types::Matrix4,
|
||||
matrix2: libremetaverse_types::Matrix4,
|
||||
amount: f32,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Lerp(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Minor(LibreMetaverse.Matrix4,System.Int32,System.Int32)`.
|
||||
pub fn minor(
|
||||
matrix: libremetaverse_types::Matrix4,
|
||||
row: i32,
|
||||
col: i32,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Minor(LibreMetaverse.Matrix4,System.Int32,System.Int32)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Multiply(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
pub fn multiply_with_matrix4_matrix4(
|
||||
matrix1: libremetaverse_types::Matrix4,
|
||||
matrix2: libremetaverse_types::Matrix4,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Multiply(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Multiply(LibreMetaverse.Matrix4,System.Single)`.
|
||||
pub fn multiply_with_matrix4_single(
|
||||
matrix1: libremetaverse_types::Matrix4,
|
||||
scale_factor: f32,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Multiply(LibreMetaverse.Matrix4,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Negate(LibreMetaverse.Matrix4)`.
|
||||
pub fn negate(
|
||||
matrix: libremetaverse_types::Matrix4,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Negate(LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Subtract(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
pub fn subtract(
|
||||
matrix1: libremetaverse_types::Matrix4,
|
||||
matrix2: libremetaverse_types::Matrix4,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Subtract(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.ToString`.
|
||||
pub fn to_string(&self) -> String {
|
||||
libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Matrix4.ToString")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Trace`.
|
||||
pub fn trace(&mut self) -> Result<f32, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Matrix4.Trace")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Transform(LibreMetaverse.Matrix4,LibreMetaverse.Quaternion)`.
|
||||
pub fn transform(
|
||||
value: libremetaverse_types::Matrix4,
|
||||
rotation: libremetaverse_types::Quaternion,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Transform(LibreMetaverse.Matrix4,LibreMetaverse.Quaternion)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Transpose(LibreMetaverse.Matrix4)`.
|
||||
pub fn transpose(
|
||||
matrix: libremetaverse_types::Matrix4,
|
||||
) -> Result<libremetaverse_types::Matrix4, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Matrix4.Transpose(LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Addition(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
pub fn add_with_matrix4_matrix4_31d5e46d(
|
||||
left: libremetaverse_types::Matrix4,
|
||||
right: libremetaverse_types::Matrix4,
|
||||
) -> libremetaverse_types::Matrix4 {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Matrix4.op_Addition(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Division(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
pub fn div_with_matrix4_matrix4(
|
||||
left: libremetaverse_types::Matrix4,
|
||||
right: libremetaverse_types::Matrix4,
|
||||
) -> libremetaverse_types::Matrix4 {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Matrix4.op_Division(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Division(LibreMetaverse.Matrix4,System.Single)`.
|
||||
pub fn div_with_matrix4_single(
|
||||
matrix: libremetaverse_types::Matrix4,
|
||||
divider: f32,
|
||||
) -> libremetaverse_types::Matrix4 {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Matrix4.op_Division(LibreMetaverse.Matrix4,System.Single)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Equality(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
pub fn eq(left: libremetaverse_types::Matrix4, right: libremetaverse_types::Matrix4) -> bool {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Matrix4.op_Equality(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Inequality(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
pub fn ne(left: libremetaverse_types::Matrix4, right: libremetaverse_types::Matrix4) -> bool {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Matrix4.op_Inequality(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Multiply(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
pub fn mul_with_matrix4_matrix4(
|
||||
left: libremetaverse_types::Matrix4,
|
||||
right: libremetaverse_types::Matrix4,
|
||||
) -> libremetaverse_types::Matrix4 {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Matrix4.op_Multiply(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Multiply(LibreMetaverse.Matrix4,System.Single)`.
|
||||
pub fn mul_with_matrix4_single(
|
||||
left: libremetaverse_types::Matrix4,
|
||||
scalar: f32,
|
||||
) -> libremetaverse_types::Matrix4 {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Matrix4.op_Multiply(LibreMetaverse.Matrix4,System.Single)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Subtraction(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
pub fn sub(
|
||||
left: libremetaverse_types::Matrix4,
|
||||
right: libremetaverse_types::Matrix4,
|
||||
) -> libremetaverse_types::Matrix4 {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Matrix4.op_Subtraction(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_UnaryNegation(LibreMetaverse.Matrix4)`.
|
||||
pub fn neg(matrix: libremetaverse_types::Matrix4) -> libremetaverse_types::Matrix4 {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Matrix4.op_UnaryNegation(LibreMetaverse.Matrix4)"
|
||||
)
|
||||
}
|
||||
/// C# member: `P:LibreMetaverse.Matrix4.AtAxis`.
|
||||
pub fn at_axis(&self) -> libremetaverse_types::Vector3 {
|
||||
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Matrix4.AtAxis")
|
||||
}
|
||||
/// C# member: `P:LibreMetaverse.Matrix4.Item(System.Int32)`.
|
||||
pub fn item_with_int32(&self, row: i32) -> libremetaverse_types::Vector4 {
|
||||
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Matrix4.Item(System.Int32)")
|
||||
}
|
||||
/// C# member: `P:LibreMetaverse.Matrix4.Item(System.Int32,System.Int32)`.
|
||||
pub fn item_with_int32_int32(&self, row: i32, column: i32) -> f32 {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"P:LibreMetaverse.Matrix4.Item(System.Int32,System.Int32)"
|
||||
)
|
||||
}
|
||||
/// C# member: `P:LibreMetaverse.Matrix4.LeftAxis`.
|
||||
pub fn left_axis(&self) -> libremetaverse_types::Vector3 {
|
||||
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Matrix4.LeftAxis")
|
||||
}
|
||||
/// C# member: `P:LibreMetaverse.Matrix4.UpAxis`.
|
||||
pub fn up_axis(&self) -> libremetaverse_types::Vector3 {
|
||||
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Matrix4.UpAxis")
|
||||
}
|
||||
}
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.Identity`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M11`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M12`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M13`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M14`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M21`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M22`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M23`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M24`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M31`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M32`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M33`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M34`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M41`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M42`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M43`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.M44`.
|
||||
/// C# member: `F:LibreMetaverse.Matrix4.Zero`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.#ctor(LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.#ctor(System.Single,System.Single,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Add(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Adjoint(LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Adjoint3x3(LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateFromAxisAngle(LibreMetaverse.Vector3,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateFromEulers(System.Single,System.Single,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateFromQuaternion(LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateLookAt(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateRotationX(System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateRotationY(System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateRotationZ(System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateScale(LibreMetaverse.Vector3)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateTranslation(LibreMetaverse.Vector3)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.CreateWorld(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Decompose(LibreMetaverse.Vector3@,LibreMetaverse.Quaternion@,LibreMetaverse.Vector3@)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Determinant`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Determinant3x3`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Divide(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Divide(LibreMetaverse.Matrix4,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Equals(LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Equals(System.Object)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.GetEulerAngles(System.Single@,System.Single@,System.Single@)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.GetHashCode`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.GetQuaternion`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Inverse(LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Inverse3x3(LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Lerp(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Minor(LibreMetaverse.Matrix4,System.Int32,System.Int32)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Multiply(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Multiply(LibreMetaverse.Matrix4,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Negate(LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Subtract(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.ToString`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Trace`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Transform(LibreMetaverse.Matrix4,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.Transpose(LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Addition(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Division(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Division(LibreMetaverse.Matrix4,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Equality(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Inequality(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Multiply(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Multiply(LibreMetaverse.Matrix4,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_Subtraction(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Matrix4.op_UnaryNegation(LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `P:LibreMetaverse.Matrix4.AtAxis`.
|
||||
/// C# member: `P:LibreMetaverse.Matrix4.Item(System.Int32)`.
|
||||
/// C# member: `P:LibreMetaverse.Matrix4.Item(System.Int32,System.Int32)`.
|
||||
/// C# member: `P:LibreMetaverse.Matrix4.LeftAxis`.
|
||||
/// C# member: `P:LibreMetaverse.Matrix4.UpAxis`.
|
||||
pub use crate::geometry::Matrix4;
|
||||
|
||||
/// C# type: `T:LibreMetaverse.MruRemovalStrategy`1`.
|
||||
pub struct MruRemovalStrategy<TKey> {
|
||||
@@ -1974,361 +1599,56 @@ pub enum ProfileCurve {
|
||||
}
|
||||
|
||||
/// C# type: `T:LibreMetaverse.Quaternion`.
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
pub struct Quaternion {
|
||||
/// C# member: `F:LibreMetaverse.Quaternion.W`.
|
||||
pub w: f32,
|
||||
/// C# member: `F:LibreMetaverse.Quaternion.X`.
|
||||
pub x: f32,
|
||||
/// C# member: `F:LibreMetaverse.Quaternion.Y`.
|
||||
pub y: f32,
|
||||
/// C# member: `F:LibreMetaverse.Quaternion.Z`.
|
||||
pub z: f32,
|
||||
}
|
||||
impl Quaternion {
|
||||
/// C# member: `F:LibreMetaverse.Quaternion.Identity`.
|
||||
pub fn identity() -> libremetaverse_types::Quaternion {
|
||||
libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Quaternion.Identity")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.#ctor(LibreMetaverse.Vector3,System.Single)`.
|
||||
pub fn new_with_vector3_single(
|
||||
vector_part: libremetaverse_types::Vector3,
|
||||
scalar_part: f32,
|
||||
) -> Result<Self, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.#ctor(LibreMetaverse.Vector3,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.#ctor(System.Byte[],System.Int32,System.Boolean)`.
|
||||
pub fn new_with_bytes_int32_boolean(
|
||||
byte_array: Vec<u8>,
|
||||
pos: i32,
|
||||
normalized: bool,
|
||||
) -> Result<Self, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.#ctor(System.Byte[],System.Int32,System.Boolean)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.#ctor(System.Single,System.Single,System.Single)`.
|
||||
pub fn new_with_single_single_single(x: f32, y: f32, z: f32) -> Result<Self, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.#ctor(System.Single,System.Single,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.#ctor(System.Single,System.Single,System.Single,System.Single)`.
|
||||
pub fn new_with_single_single_single_single(
|
||||
x: f32,
|
||||
y: f32,
|
||||
z: f32,
|
||||
w: f32,
|
||||
) -> Result<Self, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.#ctor(System.Single,System.Single,System.Single,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Add(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
pub fn add_with_quaternion_quaternion(
|
||||
q1: libremetaverse_types::Quaternion,
|
||||
q2: libremetaverse_types::Quaternion,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.Add(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.ApproxEquals(LibreMetaverse.Quaternion,System.Single)`.
|
||||
pub fn approx_equals(
|
||||
&mut self,
|
||||
quat: libremetaverse_types::Quaternion,
|
||||
tolerance: f32,
|
||||
) -> Result<bool, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.ApproxEquals(LibreMetaverse.Quaternion,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Conjugate(LibreMetaverse.Quaternion)`.
|
||||
pub fn conjugate(
|
||||
quaternion: libremetaverse_types::Quaternion,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.Conjugate(LibreMetaverse.Quaternion)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.CreateFromAxisAngle(LibreMetaverse.Vector3,System.Single)`.
|
||||
pub fn create_from_axis_angle_with_vector3_single(
|
||||
axis: libremetaverse_types::Vector3,
|
||||
angle: f32,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.CreateFromAxisAngle(LibreMetaverse.Vector3,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.CreateFromAxisAngle(System.Single,System.Single,System.Single,System.Single)`.
|
||||
pub fn create_from_axis_angle_with_single_single_single_single(
|
||||
axis_x: f32,
|
||||
axis_y: f32,
|
||||
axis_z: f32,
|
||||
angle: f32,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.CreateFromAxisAngle(System.Single,System.Single,System.Single,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.CreateFromEulers(LibreMetaverse.Vector3)`.
|
||||
pub fn create_from_eulers_with_vector3(
|
||||
eulers: libremetaverse_types::Vector3,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.CreateFromEulers(LibreMetaverse.Vector3)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.CreateFromEulers(System.Single,System.Single,System.Single)`.
|
||||
pub fn create_from_eulers_with_single_single_single(
|
||||
roll: f32,
|
||||
pitch: f32,
|
||||
yaw: f32,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.CreateFromEulers(System.Single,System.Single,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.CreateFromRotationMatrix(LibreMetaverse.Matrix4)`.
|
||||
pub fn create_from_rotation_matrix(
|
||||
matrix: libremetaverse_types::Matrix4,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.CreateFromRotationMatrix(LibreMetaverse.Matrix4)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Divide(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
pub fn divide(
|
||||
q1: libremetaverse_types::Quaternion,
|
||||
q2: libremetaverse_types::Quaternion,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.Divide(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Dot(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
pub fn dot(
|
||||
q1: libremetaverse_types::Quaternion,
|
||||
q2: libremetaverse_types::Quaternion,
|
||||
) -> Result<f32, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.Dot(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Equals(LibreMetaverse.Quaternion)`.
|
||||
pub fn equals_with_quaternion(&self, other: libremetaverse_types::Quaternion) -> bool {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Quaternion.Equals(LibreMetaverse.Quaternion)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Equals(System.Object)`.
|
||||
pub fn equals_with_object(&self, obj: Option<libremetaverse_types::compat::Object>) -> bool {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Quaternion.Equals(System.Object)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.FromBytes(System.Byte[],System.Int32,System.Boolean)`.
|
||||
pub fn from_bytes(
|
||||
byte_array: Vec<u8>,
|
||||
pos: i32,
|
||||
normalized: bool,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.FromBytes(System.Byte[],System.Int32,System.Boolean)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.GetAxisAngle(LibreMetaverse.Vector3@,System.Single@)`.
|
||||
pub fn get_axis_angle(
|
||||
&self,
|
||||
axis: &mut libremetaverse_types::Vector3,
|
||||
angle: &mut f32,
|
||||
) -> Result<(), crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.GetAxisAngle(LibreMetaverse.Vector3@,System.Single@)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.GetBytes`.
|
||||
pub fn get_bytes(&self) -> Result<Vec<u8>, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.GetBytes")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.GetEulerAngles(System.Single@,System.Single@,System.Single@)`.
|
||||
pub fn get_euler_angles(
|
||||
&self,
|
||||
roll: &mut f32,
|
||||
pitch: &mut f32,
|
||||
yaw: &mut f32,
|
||||
) -> Result<(), crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.GetEulerAngles(System.Single@,System.Single@,System.Single@)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.GetHashCode`.
|
||||
pub fn get_hash_code(&self) -> i32 {
|
||||
libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Quaternion.GetHashCode")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Inverse(LibreMetaverse.Quaternion)`.
|
||||
pub fn inverse(
|
||||
quaternion: libremetaverse_types::Quaternion,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.Inverse(LibreMetaverse.Quaternion)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Length`.
|
||||
pub fn length(&mut self) -> Result<f32, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.Length")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.LengthSquared`.
|
||||
pub fn length_squared(&mut self) -> Result<f32, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.LengthSquared")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Multiply(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
pub fn multiply_with_quaternion_quaternion(
|
||||
a: libremetaverse_types::Quaternion,
|
||||
b: libremetaverse_types::Quaternion,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.Multiply(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Multiply(LibreMetaverse.Quaternion,System.Single)`.
|
||||
pub fn multiply_with_quaternion_single(
|
||||
quaternion: libremetaverse_types::Quaternion,
|
||||
scale_factor: f32,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.Multiply(LibreMetaverse.Quaternion,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Negate(LibreMetaverse.Quaternion)`.
|
||||
pub fn negate(
|
||||
quaternion: libremetaverse_types::Quaternion,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.Negate(LibreMetaverse.Quaternion)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Normalize(LibreMetaverse.Quaternion)`.
|
||||
pub fn normalize(
|
||||
q: libremetaverse_types::Quaternion,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.Normalize(LibreMetaverse.Quaternion)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Parse(System.String)`.
|
||||
pub fn parse(val: String) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.Parse(System.String)")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Slerp(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion,System.Single)`.
|
||||
pub fn slerp(
|
||||
q1: libremetaverse_types::Quaternion,
|
||||
q2: libremetaverse_types::Quaternion,
|
||||
amount: f32,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.Slerp(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion,System.Single)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Subtract(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
pub fn subtract(
|
||||
q1: libremetaverse_types::Quaternion,
|
||||
q2: libremetaverse_types::Quaternion,
|
||||
) -> Result<libremetaverse_types::Quaternion, crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.Subtract(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.ToBytes(System.Byte[],System.Int32)`.
|
||||
pub fn to_bytes(&self, dest: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
|
||||
libremetaverse_types::not_implemented(
|
||||
"M:LibreMetaverse.Quaternion.ToBytes(System.Byte[],System.Int32)",
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.ToEulerVector`.
|
||||
pub fn to_euler_vector(&self) -> Result<libremetaverse_types::Vector3, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.ToEulerVector")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.ToRawString`.
|
||||
pub fn to_raw_string(&self) -> Result<String, crate::Error> {
|
||||
libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.ToRawString")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.ToString`.
|
||||
pub fn to_string(&self) -> String {
|
||||
libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Quaternion.ToString")
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.TryParse(System.String,LibreMetaverse.Quaternion@)`.
|
||||
pub fn try_parse(val: String, result: &mut libremetaverse_types::Quaternion) -> bool {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Quaternion.TryParse(System.String,LibreMetaverse.Quaternion@)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Addition(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
pub fn add_with_quaternion_quaternion_b0243903(
|
||||
q1: libremetaverse_types::Quaternion,
|
||||
q2: libremetaverse_types::Quaternion,
|
||||
) -> libremetaverse_types::Quaternion {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Quaternion.op_Addition(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Division(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
pub fn div(
|
||||
q1: libremetaverse_types::Quaternion,
|
||||
q2: libremetaverse_types::Quaternion,
|
||||
) -> libremetaverse_types::Quaternion {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Quaternion.op_Division(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Equality(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
pub fn eq(q1: libremetaverse_types::Quaternion, q2: libremetaverse_types::Quaternion) -> bool {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Quaternion.op_Equality(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Inequality(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
pub fn ne(q1: libremetaverse_types::Quaternion, q2: libremetaverse_types::Quaternion) -> bool {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Quaternion.op_Inequality(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Multiply(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
pub fn mul_with_quaternion_quaternion(
|
||||
a: libremetaverse_types::Quaternion,
|
||||
b: libremetaverse_types::Quaternion,
|
||||
) -> libremetaverse_types::Quaternion {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Quaternion.op_Multiply(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Multiply(LibreMetaverse.Quaternion,System.Single)`.
|
||||
pub fn mul_with_quaternion_single(
|
||||
q: libremetaverse_types::Quaternion,
|
||||
scale_factor: f32,
|
||||
) -> libremetaverse_types::Quaternion {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Quaternion.op_Multiply(LibreMetaverse.Quaternion,System.Single)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Subtraction(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
pub fn sub(
|
||||
q1: libremetaverse_types::Quaternion,
|
||||
q2: libremetaverse_types::Quaternion,
|
||||
) -> libremetaverse_types::Quaternion {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Quaternion.op_Subtraction(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
|
||||
)
|
||||
}
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_UnaryNegation(LibreMetaverse.Quaternion)`.
|
||||
pub fn neg(q: libremetaverse_types::Quaternion) -> libremetaverse_types::Quaternion {
|
||||
libremetaverse_types::unimplemented_api!(
|
||||
"M:LibreMetaverse.Quaternion.op_UnaryNegation(LibreMetaverse.Quaternion)"
|
||||
)
|
||||
}
|
||||
}
|
||||
/// C# member: `F:LibreMetaverse.Quaternion.Identity`.
|
||||
/// C# member: `F:LibreMetaverse.Quaternion.W`.
|
||||
/// C# member: `F:LibreMetaverse.Quaternion.X`.
|
||||
/// C# member: `F:LibreMetaverse.Quaternion.Y`.
|
||||
/// C# member: `F:LibreMetaverse.Quaternion.Z`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.#ctor(LibreMetaverse.Vector3,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.#ctor(System.Byte[],System.Int32,System.Boolean)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.#ctor(System.Single,System.Single,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.#ctor(System.Single,System.Single,System.Single,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Add(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.ApproxEquals(LibreMetaverse.Quaternion,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Conjugate(LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.CreateFromAxisAngle(LibreMetaverse.Vector3,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.CreateFromAxisAngle(System.Single,System.Single,System.Single,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.CreateFromEulers(LibreMetaverse.Vector3)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.CreateFromEulers(System.Single,System.Single,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.CreateFromRotationMatrix(LibreMetaverse.Matrix4)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Divide(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Dot(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Equals(LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Equals(System.Object)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.FromBytes(System.Byte[],System.Int32,System.Boolean)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.GetAxisAngle(LibreMetaverse.Vector3@,System.Single@)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.GetBytes`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.GetEulerAngles(System.Single@,System.Single@,System.Single@)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.GetHashCode`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Inverse(LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Length`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.LengthSquared`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Multiply(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Multiply(LibreMetaverse.Quaternion,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Negate(LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Normalize(LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Parse(System.String)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Slerp(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.Subtract(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.ToBytes(System.Byte[],System.Int32)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.ToEulerVector`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.ToRawString`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.ToString`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.TryParse(System.String,LibreMetaverse.Quaternion@)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Addition(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Division(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Equality(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Inequality(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Multiply(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Multiply(LibreMetaverse.Quaternion,System.Single)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_Subtraction(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
|
||||
/// C# member: `M:LibreMetaverse.Quaternion.op_UnaryNegation(LibreMetaverse.Quaternion)`.
|
||||
pub use crate::geometry::Quaternion;
|
||||
|
||||
/// C# type: `T:LibreMetaverse.Ray`.
|
||||
/// C# member: `F:LibreMetaverse.Ray.Direction`.
|
||||
|
||||
1593
crates/libremetaverse-types/src/geometry.rs
Normal file
1593
crates/libremetaverse-types/src/geometry.rs
Normal file
File diff suppressed because it is too large
Load Diff
@@ -7,6 +7,7 @@ mod color4;
|
||||
pub mod compat;
|
||||
mod crc32;
|
||||
mod generated;
|
||||
mod geometry;
|
||||
mod math_compat;
|
||||
pub mod shim;
|
||||
mod uuid;
|
||||
|
||||
Reference in New Issue
Block a user