From 0a4c086739dd0097f5d999ed51c9686fa02402d2 Mon Sep 17 00:00:00 2001 From: kl-botsu Date: Fri, 16 Aug 2024 17:31:33 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20khonsula?= =?UTF-8?q?bs/FunnyBones@92ccdb64188fbe5a0e33af19078054f4b7f966fc=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/funnybones/enum.BoneEnd.html | 14 +-- main/funnybones/enum.BoneKind.html | 12 +-- main/funnybones/index.html | 2 +- main/funnybones/struct.Bone.html | 16 ++-- main/funnybones/struct.BoneAxis.html | 14 +-- main/funnybones/struct.BoneId.html | 20 ++--- main/funnybones/struct.Joint.html | 16 ++-- main/funnybones/struct.JointId.html | 16 ++-- main/funnybones/struct.LabeledBoneKind.html | 4 +- main/funnybones/struct.Rotation.html | 20 ++--- main/funnybones/struct.Skeleton.html | 22 ++--- main/funnybones/struct.Vector.html | 20 ++--- main/search-index.js | 2 +- .../funnybones/funnybones-desc-0-.js | 2 +- main/src/funnybones/lib.rs.html | 86 +++++++++++++++++-- 15 files changed, 170 insertions(+), 96 deletions(-) diff --git a/main/funnybones/enum.BoneEnd.html b/main/funnybones/enum.BoneEnd.html index 6247a05..c6edddd 100644 --- a/main/funnybones/enum.BoneEnd.html +++ b/main/funnybones/enum.BoneEnd.html @@ -1,16 +1,16 @@ -BoneEnd in funnybones - Rust

Enum funnybones::BoneEnd

source ·
pub enum BoneEnd {
+BoneEnd in funnybones - Rust

Enum funnybones::BoneEnd

source ·
pub enum BoneEnd {
     A,
     B,
 }
Expand description

A specific end of a Bone.

Variants§

§

A

The first end of a bone.

§

B

The second end of a bone.

-

Implementations§

source§

impl BoneEnd

source

pub const fn inverse(self) -> Self

Returns the opposite end of self.

-

Trait Implementations§

source§

impl Clone for BoneEnd

source§

fn clone(&self) -> BoneEnd

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BoneEnd

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BoneEnd

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for BoneEnd

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Implementations§

source§

impl BoneEnd

source

pub const fn inverse(self) -> Self

Returns the opposite end of self.

+

Trait Implementations§

source§

impl Clone for BoneEnd

source§

fn clone(&self) -> BoneEnd

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BoneEnd

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BoneEnd

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for BoneEnd

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for BoneEnd

source§

fn eq(&self, other: &BoneEnd) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl Serialize for BoneEnd

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for BoneEnd

source§

impl Eq for BoneEnd

source§

impl StructuralPartialEq for BoneEnd

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for BoneEnd

source§

fn eq(&self, other: &BoneEnd) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl Serialize for BoneEnd

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for BoneEnd

source§

impl Eq for BoneEnd

source§

impl StructuralPartialEq for BoneEnd

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, diff --git a/main/funnybones/enum.BoneKind.html b/main/funnybones/enum.BoneKind.html index 6e2f899..5944d2e 100644 --- a/main/funnybones/enum.BoneKind.html +++ b/main/funnybones/enum.BoneKind.html @@ -1,4 +1,4 @@ -BoneKind in funnybones - Rust

Enum funnybones::BoneKind

source ·
pub enum BoneKind {
+BoneKind in funnybones - Rust

Enum funnybones::BoneKind

source ·
pub enum BoneKind {
     Rigid {
         length: f32,
     },
@@ -18,11 +18,11 @@
 skeleton.

§inverse: bool

The bend of the simulated joint always goes in one of two directions. This boolean toggles which direction the bend goes in.

-

Implementations§

source§

impl BoneKind

source

pub fn with_label(self, label: impl Into<String>) -> LabeledBoneKind

Attaches a label to this bone when pushed into a skeleton.

-

Trait Implementations§

source§

impl Clone for BoneKind

source§

fn clone(&self) -> BoneKind

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BoneKind

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BoneKind

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<BoneKind> for LabeledBoneKind

source§

fn from(kind: BoneKind) -> Self

Converts to this type from the input type.
source§

impl PartialEq for BoneKind

source§

fn eq(&self, other: &BoneKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl Serialize for BoneKind

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for BoneKind

source§

impl StructuralPartialEq for BoneKind

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where +

Implementations§

source§

impl BoneKind

source

pub fn with_label(self, label: impl Into<String>) -> LabeledBoneKind

Attaches a label to this bone when pushed into a skeleton.

+

Trait Implementations§

source§

impl Clone for BoneKind

source§

fn clone(&self) -> BoneKind

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BoneKind

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BoneKind

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<BoneKind> for LabeledBoneKind

source§

fn from(kind: BoneKind) -> Self

Converts to this type from the input type.
source§

impl PartialEq for BoneKind

source§

fn eq(&self, other: &BoneKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl Serialize for BoneKind

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for BoneKind

source§

impl StructuralPartialEq for BoneKind

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, diff --git a/main/funnybones/index.html b/main/funnybones/index.html index 45c1238..c55c9ce 100644 --- a/main/funnybones/index.html +++ b/main/funnybones/index.html @@ -1,4 +1,4 @@ -funnybones - Rust

Crate funnybones

source ·
Expand description
+funnybones - Rust

Crate funnybones

source ·
Expand description

FunnyBones is considered experimental and unsupported crate version diff --git a/main/funnybones/struct.Bone.html b/main/funnybones/struct.Bone.html index d3a7fef..5091069 100644 --- a/main/funnybones/struct.Bone.html +++ b/main/funnybones/struct.Bone.html @@ -1,15 +1,15 @@ -Bone in funnybones - Rust

Struct funnybones::Bone

source ·
pub struct Bone { /* private fields */ }
Expand description

A bone in a Skeleton.

-

Implementations§

source§

impl Bone

source

pub fn set_desired_end(&mut self, end: Option<Vector>)

Sets the location to aim the end of this bone towards.

+Bone in funnybones - Rust

Struct funnybones::Bone

source ·
pub struct Bone { /* private fields */ }
Expand description

A bone in a Skeleton.

+

Implementations§

source§

impl Bone

source

pub fn set_desired_end(&mut self, end: Option<Vector>)

Sets the location to aim the end of this bone towards.

The end of the bone that is aimed is the end that is furthest from the root of the skeleton.

This setting only impacts BoneKind::Jointed bones.

-
source

pub const fn desired_end(&self) -> Option<Vector>

Returns the location this bone is being aimed towards.

-
source

pub const fn start(&self) -> Vector

Returns the solved start position of this bone.

-
source

pub const fn end(&self) -> Vector

Returns the solved end position of this bone.

-
source

pub const fn solved_joint(&self) -> Option<Vector>

If this is a BoneKind::Jointed bone, returns the solved position of +

source

pub const fn desired_end(&self) -> Option<Vector>

Returns the location this bone is being aimed towards.

+
source

pub const fn start(&self) -> Vector

Returns the solved start position of this bone.

+
source

pub const fn end(&self) -> Vector

Returns the solved end position of this bone.

+
source

pub const fn solved_joint(&self) -> Option<Vector>

If this is a BoneKind::Jointed bone, returns the solved position of the joint.

-
source

pub fn label(&self) -> &str

Returns the label this bone was created with.

-

Trait Implementations§

source§

impl Debug for Bone

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Serialize for Bone

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where +

source

pub fn label(&self) -> &str

Returns the label this bone was created with.

+

Trait Implementations§

source§

impl Debug for Bone

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Serialize for Bone

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl Freeze for Bone

§

impl RefUnwindSafe for Bone

§

impl Send for Bone

§

impl Sync for Bone

§

impl Unpin for Bone

§

impl UnwindSafe for Bone

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, diff --git a/main/funnybones/struct.BoneAxis.html b/main/funnybones/struct.BoneAxis.html index 2ba4c8d..f3f4dcd 100644 --- a/main/funnybones/struct.BoneAxis.html +++ b/main/funnybones/struct.BoneAxis.html @@ -1,16 +1,16 @@ -BoneAxis in funnybones - Rust

Struct funnybones::BoneAxis

source ·
pub struct BoneAxis {
+BoneAxis in funnybones - Rust

Struct funnybones::BoneAxis

source ·
pub struct BoneAxis {
     pub bone: BoneId,
     pub end: BoneEnd,
 }
Expand description

A specific end of a specific bone.

Fields§

§bone: BoneId

The unique id of the bone of this axis.

§end: BoneEnd

The end of the bone being referenced.

-

Implementations§

source§

impl BoneAxis

source

pub const fn inverse(self) -> Self

Returns the opposite axis on the same bone.

-

Trait Implementations§

source§

impl Clone for BoneAxis

source§

fn clone(&self) -> BoneAxis

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BoneAxis

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BoneAxis

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for BoneAxis

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Implementations§

source§

impl BoneAxis

source

pub const fn inverse(self) -> Self

Returns the opposite axis on the same bone.

+

Trait Implementations§

source§

impl Clone for BoneAxis

source§

fn clone(&self) -> BoneAxis

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BoneAxis

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BoneAxis

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for BoneAxis

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for BoneAxis

source§

fn eq(&self, other: &BoneAxis) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl Serialize for BoneAxis

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for BoneAxis

source§

impl Eq for BoneAxis

source§

impl StructuralPartialEq for BoneAxis

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for BoneAxis

source§

fn eq(&self, other: &BoneAxis) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl Serialize for BoneAxis

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for BoneAxis

source§

impl Eq for BoneAxis

source§

impl StructuralPartialEq for BoneAxis

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, diff --git a/main/funnybones/struct.BoneId.html b/main/funnybones/struct.BoneId.html index 15263cd..4091196 100644 --- a/main/funnybones/struct.BoneId.html +++ b/main/funnybones/struct.BoneId.html @@ -1,18 +1,18 @@ -BoneId in funnybones - Rust

Struct funnybones::BoneId

source ·
pub struct BoneId(/* private fields */);
Expand description

The unique ID of a Bone in a Skeleton.

-

Implementations§

source§

impl BoneId

source

pub const fn axis_a(self) -> BoneAxis

Returns the first axis of this bone.

-
source

pub const fn axis_b(self) -> BoneAxis

Returns the second axis of this bone.

-

Trait Implementations§

source§

impl Clone for BoneId

source§

fn clone(&self) -> BoneId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BoneId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BoneId

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for BoneId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +BoneId in funnybones - Rust

Struct funnybones::BoneId

source ·
pub struct BoneId(/* private fields */);
Expand description

The unique ID of a Bone in a Skeleton.

+

Implementations§

source§

impl BoneId

source

pub const fn axis_a(self) -> BoneAxis

Returns the first axis of this bone.

+
source

pub const fn axis_b(self) -> BoneAxis

Returns the second axis of this bone.

+

Trait Implementations§

source§

impl Clone for BoneId

source§

fn clone(&self) -> BoneId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BoneId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BoneId

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for BoneId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Index<BoneId> for Skeleton

§

type Output = Bone

The returned type after indexing.
source§

fn index(&self, index: BoneId) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl IndexMut<BoneId> for Skeleton

source§

fn index_mut(&mut self, index: BoneId) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl Ord for BoneId

source§

fn cmp(&self, other: &BoneId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Index<BoneId> for Skeleton

§

type Output = Bone

The returned type after indexing.
source§

fn index(&self, index: BoneId) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl IndexMut<BoneId> for Skeleton

source§

fn index_mut(&mut self, index: BoneId) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl Ord for BoneId

source§

fn cmp(&self, other: &BoneId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for BoneId

source§

fn eq(&self, other: &BoneId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl PartialOrd for BoneId

source§

fn partial_cmp(&self, other: &BoneId) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for BoneId

source§

fn eq(&self, other: &BoneId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl PartialOrd for BoneId

source§

fn partial_cmp(&self, other: &BoneId) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
source§

impl Serialize for BoneId

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for BoneId

source§

impl Eq for BoneId

source§

impl StructuralPartialEq for BoneId

Auto Trait Implementations§

§

impl Freeze for BoneId

§

impl RefUnwindSafe for BoneId

§

impl Send for BoneId

§

impl Sync for BoneId

§

impl Unpin for BoneId

§

impl UnwindSafe for BoneId

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where +the >= operator. Read more

source§

impl Serialize for BoneId

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for BoneId

source§

impl Eq for BoneId

source§

impl StructuralPartialEq for BoneId

Auto Trait Implementations§

§

impl Freeze for BoneId

§

impl RefUnwindSafe for BoneId

§

impl Send for BoneId

§

impl Sync for BoneId

§

impl Unpin for BoneId

§

impl UnwindSafe for BoneId

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, diff --git a/main/funnybones/struct.Joint.html b/main/funnybones/struct.Joint.html index 00b1104..5921a74 100644 --- a/main/funnybones/struct.Joint.html +++ b/main/funnybones/struct.Joint.html @@ -1,17 +1,17 @@ -Joint in funnybones - Rust

Struct funnybones::Joint

source ·
pub struct Joint { /* private fields */ }
Expand description

A connection between two bones.

-

Implementations§

source§

impl Joint

source

pub const fn new(angle: Rotation, bone_a: BoneAxis, bone_b: BoneAxis) -> Self

Returns a new joint formed by joining bone_a and bone_b at angle.

-
source

pub fn with_label(self, label: impl Into<String>) -> Self

Labels this joint and returns self.

-
source

pub fn label(&self) -> &str

Returns the label of this joint.

-
source

pub fn other_axis(&self, axis: BoneAxis) -> BoneAxis

Given axis is one of the two connections in this joint, return the +Joint in funnybones - Rust

Struct funnybones::Joint

source ·
pub struct Joint { /* private fields */ }
Expand description

A connection between two bones.

+

Implementations§

source§

impl Joint

source

pub const fn new(angle: Rotation, bone_a: BoneAxis, bone_b: BoneAxis) -> Self

Returns a new joint formed by joining bone_a and bone_b at angle.

+
source

pub fn with_label(self, label: impl Into<String>) -> Self

Labels this joint and returns self.

+
source

pub fn label(&self) -> &str

Returns the label of this joint.

+
source

pub fn other_axis(&self, axis: BoneAxis) -> BoneAxis

Given axis is one of the two connections in this joint, return the other axis.

§Panics

This function has a debug assertion that ensures that axis is one of the bones in this joint.

-
source

pub fn set_angle(&mut self, angle: Rotation)

Sets the angle to form between these joints.

+
source

pub fn set_angle(&mut self, angle: Rotation)

Sets the angle to form between these joints.

This setting is ignored if the bone furthest from the root of the joint is a BoneKind::Jointed bone.

-
source

pub const fn angle(&self) -> Rotation

Returns the rotation of this joint.

-

Trait Implementations§

source§

impl Debug for Joint

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Serialize for Joint

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where +

source

pub const fn angle(&self) -> Rotation

Returns the rotation of this joint.

+

Trait Implementations§

source§

impl Debug for Joint

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Serialize for Joint

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl Freeze for Joint

§

impl RefUnwindSafe for Joint

§

impl Send for Joint

§

impl Sync for Joint

§

impl Unpin for Joint

§

impl UnwindSafe for Joint

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, diff --git a/main/funnybones/struct.JointId.html b/main/funnybones/struct.JointId.html index c993535..772401c 100644 --- a/main/funnybones/struct.JointId.html +++ b/main/funnybones/struct.JointId.html @@ -1,16 +1,16 @@ -JointId in funnybones - Rust

Struct funnybones::JointId

source ·
pub struct JointId(/* private fields */);
Expand description

The unique ID of a Joint in a Skeleton.

-

Trait Implementations§

source§

impl Clone for JointId

source§

fn clone(&self) -> JointId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for JointId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for JointId

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for JointId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +JointId in funnybones - Rust

Struct funnybones::JointId

source ·
pub struct JointId(/* private fields */);
Expand description

The unique ID of a Joint in a Skeleton.

+

Trait Implementations§

source§

impl Clone for JointId

source§

fn clone(&self) -> JointId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for JointId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for JointId

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for JointId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Index<JointId> for Skeleton

§

type Output = Joint

The returned type after indexing.
source§

fn index(&self, index: JointId) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl IndexMut<JointId> for Skeleton

source§

fn index_mut(&mut self, index: JointId) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl Ord for JointId

source§

fn cmp(&self, other: &JointId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Index<JointId> for Skeleton

§

type Output = Joint

The returned type after indexing.
source§

fn index(&self, index: JointId) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl IndexMut<JointId> for Skeleton

source§

fn index_mut(&mut self, index: JointId) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl Ord for JointId

source§

fn cmp(&self, other: &JointId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for JointId

source§

fn eq(&self, other: &JointId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl PartialOrd for JointId

source§

fn partial_cmp(&self, other: &JointId) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for JointId

source§

fn eq(&self, other: &JointId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl PartialOrd for JointId

source§

fn partial_cmp(&self, other: &JointId) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
source§

impl Serialize for JointId

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for JointId

source§

impl Eq for JointId

source§

impl StructuralPartialEq for JointId

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where +the >= operator. Read more

source§

impl Serialize for JointId

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for JointId

source§

impl Eq for JointId

source§

impl StructuralPartialEq for JointId

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, diff --git a/main/funnybones/struct.LabeledBoneKind.html b/main/funnybones/struct.LabeledBoneKind.html index 398716e..96c9531 100644 --- a/main/funnybones/struct.LabeledBoneKind.html +++ b/main/funnybones/struct.LabeledBoneKind.html @@ -1,10 +1,10 @@ -LabeledBoneKind in funnybones - Rust

Struct funnybones::LabeledBoneKind

source ·
pub struct LabeledBoneKind {
+LabeledBoneKind in funnybones - Rust

Struct funnybones::LabeledBoneKind

source ·
pub struct LabeledBoneKind {
     pub kind: BoneKind,
     pub label: String,
 }
Expand description

A BoneKind with an associated label.

Fields§

§kind: BoneKind

The bone to create.

§label: String

The label of the bone.

-

Trait Implementations§

source§

impl From<BoneKind> for LabeledBoneKind

source§

fn from(kind: BoneKind) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where +

Trait Implementations§

source§

impl From<BoneKind> for LabeledBoneKind

source§

fn from(kind: BoneKind) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, diff --git a/main/funnybones/struct.Rotation.html b/main/funnybones/struct.Rotation.html index 24c6abf..51793b5 100644 --- a/main/funnybones/struct.Rotation.html +++ b/main/funnybones/struct.Rotation.html @@ -1,19 +1,19 @@ -Rotation in funnybones - Rust

Struct funnybones::Rotation

source ·
pub struct Rotation { /* private fields */ }
Expand description

A value representing a rotation between no rotation and a full rotation.

-

Implementations§

source§

impl Rotation

source

pub fn radians(radians: f32) -> Self

Returns a rotation representing the given radians.

-
source

pub fn degrees(degrees: f32) -> Self

Returns a rotation representing the given degrees.

-
source

pub fn to_degrees(self) -> f32

Returns this rotation represented in degrees.

+Rotation in funnybones - Rust

Struct funnybones::Rotation

source ·
pub struct Rotation { /* private fields */ }
Expand description

A value representing a rotation between no rotation and a full rotation.

+

Implementations§

source§

impl Rotation

source

pub fn radians(radians: f32) -> Self

Returns a rotation representing the given radians.

+
source

pub fn degrees(degrees: f32) -> Self

Returns a rotation representing the given degrees.

+
source

pub fn to_degrees(self) -> f32

Returns this rotation represented in degrees.

This value will always be greater than or equal to 0 and will always be less than 360.0.

-
source

pub const fn to_radians(self) -> f32

Returns this rotation represented in radians.

+
source

pub const fn to_radians(self) -> f32

Returns this rotation represented in radians.

This value will always be greater than or equal to 0 and will always be less than .

-

Trait Implementations§

source§

impl Add for Rotation

§

type Output = Rotation

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl Clone for Rotation

source§

fn clone(&self) -> Rotation

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Rotation

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Rotation

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Rotation

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Rotation

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl LinearInterpolate for Rotation

source§

fn lerp(&self, target: &Self, percent: f32) -> Self

Interpolate linearly between self and target using percent.
source§

impl Neg for Rotation

§

type Output = Rotation

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl PartialEq for Rotation

source§

fn eq(&self, other: &Rotation) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl PartialOrd for Rotation

source§

fn partial_cmp(&self, other: &Rotation) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the +

Trait Implementations§

source§

impl Add for Rotation

§

type Output = Rotation

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl Clone for Rotation

source§

fn clone(&self) -> Rotation

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Rotation

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Rotation

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Rotation

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Rotation

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl LinearInterpolate for Rotation

source§

fn lerp(&self, target: &Self, percent: f32) -> Self

Interpolate linearly between self and target using percent.
source§

impl Neg for Rotation

§

type Output = Rotation

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl PartialEq for Rotation

source§

fn eq(&self, other: &Rotation) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl PartialOrd for Rotation

source§

fn partial_cmp(&self, other: &Rotation) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
source§

impl PercentBetween for Rotation

source§

fn percent_between(&self, min: &Self, max: &Self) -> ZeroToOne

Return the percentage that self is between min and max.
source§

impl Serialize for Rotation

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Sub for Rotation

§

type Output = Rotation

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl Copy for Rotation

source§

impl StructuralPartialEq for Rotation

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where +the >= operator. Read more

source§

impl PercentBetween for Rotation

source§

fn percent_between(&self, min: &Self, max: &Self) -> ZeroToOne

Return the percentage that self is between min and max.
source§

impl Serialize for Rotation

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Sub for Rotation

§

type Output = Rotation

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl Copy for Rotation

source§

impl StructuralPartialEq for Rotation

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, diff --git a/main/funnybones/struct.Skeleton.html b/main/funnybones/struct.Skeleton.html index c1b4bc3..1950bec 100644 --- a/main/funnybones/struct.Skeleton.html +++ b/main/funnybones/struct.Skeleton.html @@ -1,19 +1,21 @@ -Skeleton in funnybones - Rust

Struct funnybones::Skeleton

source ·
pub struct Skeleton { /* private fields */ }
Expand description

A collection of Bones. connected by Joints.

-

Implementations§

source§

impl Skeleton

source

pub fn push_bone(&mut self, bone: impl Into<LabeledBoneKind>) -> BoneId

Creates a new Bone into the skeleton. Returns the unique id of the +Skeleton in funnybones - Rust

Struct funnybones::Skeleton

source ·
pub struct Skeleton { /* private fields */ }
Expand description

A collection of Bones. connected by Joints.

+

Implementations§

source§

impl Skeleton

source

pub fn push_bone(&mut self, bone: impl Into<LabeledBoneKind>) -> BoneId

Creates a new Bone into the skeleton. Returns the unique id of the created bone.

The first bone pushed is considered the root of the skeleton. All other bones must be connected to the root directly or indirectly through Joints.

-
source

pub fn push_joint(&mut self, joint: Joint) -> JointId

Creates a new Joint in the skeleton, connecting two bones together +

source

pub fn push_joint(&mut self, joint: Joint) -> JointId

Creates a new Joint in the skeleton, connecting two bones together by their axis. Returns the unique id of the created joint.

-
source

pub fn set_translation(&mut self, translation: Vector)

Sets a translation to be applied to the entire skeleton.

-
source

pub fn translation(&self) -> Vector

Returns the translation applied to the entire skeleton.

-
source

pub fn set_rotation(&mut self, rotation: Rotation)

Sets a base rotation to apply to the entire skeleton.

-
source

pub fn rotation(&self) -> Rotation

Returns the base rotation being applied to the entire skeleton.

-
source

pub fn solve(&mut self)

Updates the solved positions of all bones in this skeleton that are +

source

pub fn find_joint_by_label(&self, label: &str) -> Option<JointId>

Finds an existing Joint by its label.

+
source

pub fn find_bone_by_label(&self, label: &str) -> Option<BoneId>

Finds an existing Bone by its label.

+
source

pub fn set_translation(&mut self, translation: Vector)

Sets a translation to be applied to the entire skeleton.

+
source

pub fn translation(&self) -> Vector

Returns the translation applied to the entire skeleton.

+
source

pub fn set_rotation(&mut self, rotation: Rotation)

Sets a base rotation to apply to the entire skeleton.

+
source

pub fn rotation(&self) -> Rotation

Returns the base rotation being applied to the entire skeleton.

+
source

pub fn solve(&mut self)

Updates the solved positions of all bones in this skeleton that are connected either directly or indirectly to the root bone via Joints.

-

Trait Implementations§

source§

impl Debug for Skeleton

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Skeleton

source§

fn default() -> Skeleton

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Skeleton

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Index<BoneId> for Skeleton

§

type Output = Bone

The returned type after indexing.
source§

fn index(&self, index: BoneId) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl Index<JointId> for Skeleton

§

type Output = Joint

The returned type after indexing.
source§

fn index(&self, index: JointId) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl IndexMut<BoneId> for Skeleton

source§

fn index_mut(&mut self, index: BoneId) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl IndexMut<JointId> for Skeleton

source§

fn index_mut(&mut self, index: JointId) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl Serialize for Skeleton

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where +

Trait Implementations§

source§

impl Debug for Skeleton

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Skeleton

source§

fn default() -> Skeleton

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Skeleton

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Index<BoneId> for Skeleton

§

type Output = Bone

The returned type after indexing.
source§

fn index(&self, index: BoneId) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl Index<JointId> for Skeleton

§

type Output = Joint

The returned type after indexing.
source§

fn index(&self, index: JointId) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl IndexMut<BoneId> for Skeleton

source§

fn index_mut(&mut self, index: BoneId) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl IndexMut<JointId> for Skeleton

source§

fn index_mut(&mut self, index: JointId) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl Serialize for Skeleton

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, diff --git a/main/funnybones/struct.Vector.html b/main/funnybones/struct.Vector.html index e6cd628..a8046c0 100644 --- a/main/funnybones/struct.Vector.html +++ b/main/funnybones/struct.Vector.html @@ -1,20 +1,20 @@ -Vector in funnybones - Rust

Struct funnybones::Vector

source ·
pub struct Vector {
+Vector in funnybones - Rust

Struct funnybones::Vector

source ·
pub struct Vector {
     pub x: f32,
     pub y: f32,
 }
Expand description

A two dimensionsional offset/measurement.

Fields§

§x: f32

The x-axis component of this vector.

§y: f32

The y-axis component of this vector.

-

Implementations§

source§

impl Vector

source

pub const fn new(x: f32, y: f32) -> Self

Returns a new vector from the x and y values.

-
source

pub fn magnitude(&self) -> f32

Returns the magnitude of this vector.

-
source

pub fn map(self, f: impl FnMut(f32) -> f32) -> Self

Returns the result of mapping x and y to f.

-

Trait Implementations§

source§

impl Clone for Vector

source§

fn clone(&self) -> Vector

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Vector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Vector

source§

fn default() -> Vector

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Vector

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl FromComponents<f32> for Vector

source§

fn from_components(components: (f32, f32)) -> Self

Returns a new instance from the 2d vector components provided.
§

fn from_vec<Type>(other: Type) -> Self
where +

Implementations§

source§

impl Vector

source

pub const fn new(x: f32, y: f32) -> Self

Returns a new vector from the x and y values.

+
source

pub fn magnitude(&self) -> f32

Returns the magnitude of this vector.

+
source

pub fn map(self, f: impl FnMut(f32) -> f32) -> Self

Returns the result of mapping x and y to f.

+

Trait Implementations§

source§

impl Clone for Vector

source§

fn clone(&self) -> Vector

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Vector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Vector

source§

fn default() -> Vector

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Vector

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl FromComponents<f32> for Vector

source§

fn from_components(components: (f32, f32)) -> Self

Returns a new instance from the 2d vector components provided.
§

fn from_vec<Type>(other: Type) -> Self
where Type: IntoComponents<Unit>,

Converts this type to another type using [FromComponents] and -[IntoComponents].
source§

impl IntoComponents<f32> for Vector

source§

fn into_components(self) -> (f32, f32)

Extracts this type’s 2d vector components.
§

fn to_vec<Type>(self) -> Type
where +[IntoComponents].

source§

impl IntoComponents<f32> for Vector

source§

fn into_components(self) -> (f32, f32)

Extracts this type’s 2d vector components.
§

fn to_vec<Type>(self) -> Type
where Type: FromComponents<Unit>,

Converts this type to another type using [FromComponents] and -[IntoComponents].
source§

impl PartialEq for Vector

source§

fn eq(&self, other: &Vector) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl Serialize for Vector

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Sub for Vector

§

type Output = Vector

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl Copy for Vector

source§

impl StructuralPartialEq for Vector

Auto Trait Implementations§

§

impl Freeze for Vector

§

impl RefUnwindSafe for Vector

§

impl Send for Vector

§

impl Sync for Vector

§

impl Unpin for Vector

§

impl UnwindSafe for Vector

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where +[IntoComponents].

source§

impl PartialEq for Vector

source§

fn eq(&self, other: &Vector) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl Serialize for Vector

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Sub for Vector

§

type Output = Vector

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl Copy for Vector

source§

impl StructuralPartialEq for Vector

Auto Trait Implementations§

§

impl Freeze for Vector

§

impl RefUnwindSafe for Vector

§

impl Send for Vector

§

impl Sync for Vector

§

impl Unpin for Vector

§

impl UnwindSafe for Vector

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, diff --git a/main/search-index.js b/main/search-index.js index 03a2453..91665d5 100644 --- a/main/search-index.js +++ b/main/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["funnybones",{"t":"PPFFGFGFFPFPFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOO","n":["A","B","Bone","BoneAxis","BoneEnd","BoneId","BoneKind","Joint","JointId","Jointed","LabeledBoneKind","Rigid","Rotation","Skeleton","Vector","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","add","angle","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","axis_a","axis_b","bone","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","compare","compare","compare","compare","components_from","components_from","components_from","components_from","components_from","components_from","components_from","components_from","components_from","components_from","components_from","default","default","default","degrees","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","desired_end","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","end","end","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_components","from_parts","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","hash","hash","hash","hash","index","index","index_mut","index_mut","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","into","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_color","into_color","into_color","into_color","into_color","into_color","into_color","into_color","into_color","into_color","into_color","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_components","into_components","into_components","into_components","into_components","into_components","into_components","into_components","into_parts","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","inverse","inverse","kind","label","label","label","lerp","magnitude","map","neg","new","new","other_axis","partial_cmp","partial_cmp","partial_cmp","percent_between","push_bone","push_joint","radians","rotation","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_angle","set_desired_end","set_rotation","set_translation","solve","solved_joint","start","sub","sub","to_degrees","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_radians","to_smolstr","to_string","translation","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","with_label","with_label","x","y","end_length","inverse","length","start_length"],"q":[[0,"funnybones"],[616,"funnybones::BoneKind"],[620,"palette::chromatic_adaptation"],[621,"core::any"],[622,"palette::cam16::parameters"],[623,"intentional::cast"],[624,"core::cmp"],[625,"core::result"],[626,"serde::de"],[627,"core::option"],[628,"core::fmt"],[629,"cushy::context"],[630,"core::hash"],[631,"alloc::boxed"],[632,"alloc::sync"],[633,"alloc::rc"],[634,"cushy::value"],[635,"core::ops::function"],[636,"cushy::animation"],[637,"core::convert"],[638,"serde::ser"],[639,"smol_str"],[640,"alloc::string"],[641,"palette::convert::try_from_into_color"]],"i":[14,14,0,0,0,0,0,0,0,12,0,12,0,0,0,29,11,2,12,17,8,22,3,7,13,14,2,3,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,7,7,8,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,11,2,12,8,7,13,14,11,2,12,8,7,13,14,11,11,2,2,12,12,8,8,7,7,13,13,14,14,7,13,7,7,13,13,29,11,2,12,17,8,22,3,7,13,14,11,2,17,2,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,11,2,12,17,8,7,13,14,22,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,22,8,11,2,12,8,7,13,14,8,8,8,7,7,7,13,13,13,14,14,14,11,2,2,2,12,17,8,22,3,7,13,14,29,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,11,2,29,11,2,12,17,8,22,3,7,13,14,8,7,13,14,17,17,17,17,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,11,11,2,12,8,7,13,14,2,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,29,11,11,2,2,12,12,17,17,8,8,22,22,3,3,7,7,13,13,14,14,8,14,29,22,3,29,2,11,11,2,11,3,3,2,7,13,2,17,17,2,17,11,2,12,17,8,22,3,7,13,14,3,22,17,17,17,22,22,11,2,2,11,2,12,8,7,13,14,2,2,2,17,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,29,11,2,12,17,8,22,3,7,13,14,12,3,11,11,47,47,48,47],"f":"```````````````{eg{}{{b{c}}}{}}0000000000{{dd}c{}}{{{h{f}}}d}{ce{}{}}0000000000{{}c{}}0000000000{h{{h{j}}}}0000000000{{{h{l}}}{{h{lj}}}}0000000000{nA`}0`{h{{h{c}}}{}}0000000000{{{h{l}}}{{h{lc}}}{}}0000000000{{{Ab{c}}}e{}{}}0000000000{{}e{}{{Ad{c}}}}000000000077777777777{{{h{Af}}}Af}{{{h{d}}}d}{{{h{Ah}}}Ah}{{{h{A`}}}A`}{{{h{n}}}n}{{{h{Aj}}}Aj}{{{h{Al}}}Al}{{h{h{lc}}}An{}}000000{hAn}0000000000000{{{h{n}}{h{n}}}B`}{{{h{Aj}}{h{Aj}}}B`}{{h{h{c}}}B`{}}000{ce{}{}}0000000000{{}Af}{{}d}{{}Bb}{Bdd}{Bf{{h{c}}}{}}0000000000{Bf{{h{lc}}}{}}0000000000{c{{Bh{Af}}}Bj}{c{{Bh{d}}}Bj}{c{{Bh{Ah}}}Bj}{c{{Bh{Bb}}}Bj}{c{{Bh{A`}}}Bj}{c{{Bh{n}}}Bj}{c{{Bh{Aj}}}Bj}{c{{Bh{Al}}}Bj}{{{h{Bl}}}{{Bn{Af}}}}{h{{h{c}}}{}}0000000000{BfAn}0000000000{{{h{Bl}}}Af}`{{{h{Af}}{h{Af}}}C`}{{{h{d}}{h{d}}}C`}{{{h{Ah}}{h{Ah}}}C`}{{{h{A`}}{h{A`}}}C`}{{{h{n}}{h{n}}}C`}{{{h{Aj}}{h{Aj}}}C`}{{{h{Al}}{h{Al}}}C`}{{h{h{c}}}C`{}}00000000000{{{h{Af}}{h{lCb}}}Cd}{{{h{d}}{h{lCb}}}Cd}0{{h{h{Cf}}{h{lCb}}}{{Bh{AnCh}}}}{{{h{Ah}}{h{lCb}}}Cd}{{{h{Bb}}{h{lCb}}}Cd}{{{h{A`}}{h{lCb}}}Cd}{{{h{Bl}}{h{lCb}}}Cd}{{{h{f}}{h{lCb}}}Cd}{{{h{n}}{h{lCb}}}Cd}{{{h{Aj}}{h{lCb}}}Cd}{{{h{Al}}{h{lCb}}}Cd}{cc{}}{AhCj}11111111111111111111111111111111{{{Cl{BdBd}}}Af}{Bnc{}}{ce{}{}}0000000000{{{h{A`}}{h{lc}}}AnCn}{{{h{n}}{h{lc}}}AnCn}{{{h{Aj}}{h{lc}}}AnCn}{{{h{Al}}{h{lc}}}AnCn}{{{h{Bb}}Aj}{{h{c}}}{}}{{{h{Bb}}n}{{h{c}}}{}}{{{h{lBb}}Aj}{{h{lc}}}{}}{{{h{lBb}}n}{{h{lc}}}{}}{{}Bf}0000000000{{}c{}}000000000000000000000{{{D`{c}}}{{D`{j}}}{}}0000000000{{{Db{c}}}{{Db{j}}}{}}0000000000{{{Dd{c}}}{{Dd{j}}}{}}0000000000{{{Ab{c}}}e{}{}}00000000004444444444444444444444{{}{{Cl{cc}}}{}}{Af{{Cl{BdBd}}}}111111{{}{{Cl{Bn}}}}{{}{{Df{c}}}{}}000000000088888888888{{}{{Dh{{Bn{c}}}}}{}}{{}{{Dh{c}}}{}}01011001100110010110{A`A`}{AlAl}`{{{h{Bl}}}{{h{Dj}}}}{{{h{f}}}{{h{Dj}}}}`{{{h{d}}{h{d}}Bd}d}{{{h{Af}}}Bd}{{Afc}Af{{Dn{Bd}{{Dl{Bd}}}}}}{dc{}}{{BdBd}Af}{{dA`A`}f}{{{h{f}}A`}A`}{{{h{d}}{h{d}}}{{Bn{B`}}}}{{{h{n}}{h{n}}}{{Bn{B`}}}}{{{h{Aj}}{h{Aj}}}{{Bn{B`}}}}{{{h{d}}{h{d}}{h{d}}}E`}{{{h{lBb}}c}n{{Eb{Cj}}}}{{{h{lBb}}f}Aj}{Bdd}{{{h{Bb}}}d}{{{h{Af}}c}BhEd}{{{h{d}}c}BhEd}{{{h{Ah}}c}BhEd}{{{h{Bb}}c}BhEd}{{{h{A`}}c}BhEd}{{{h{Bl}}c}BhEd}{{{h{f}}c}BhEd}{{{h{n}}c}BhEd}{{{h{Aj}}c}BhEd}{{{h{Al}}c}BhEd}{{{h{lf}}d}An}{{{h{lBl}}{Bn{Af}}}An}{{{h{lBb}}d}An}{{{h{lBb}}Af}An}{{{h{lBb}}}An}{{{h{Bl}}}{{Bn{Af}}}}{{{h{Bl}}}Af}{{AfAf}c{}}{{dd}c{}}{dBd}{hc{}}0000001{hEf}{hEh}{{{h{Bb}}}Af}{{}{{Bh{c}}}{}}0000000000{c{{Bh{e}}}{}{}}000000000011111111111{{}{{Bh{c{Ej{c}}}}}{}}0000000000{hEl}0000000000{ce{}{}}0000000000{{}c{}}0000000000{h{{Bn{{h{c}}}}}{}}0000000000{{Ahc}Cj{{Eb{Eh}}}}{{fc}f{{Eb{Eh}}}}``````","D":"In","p":[[10,"TransformMatrix",620],[5,"Rotation",0],[5,"Joint",0],[1,"reference"],[10,"Any",621],[0,"mut"],[5,"BoneId",0],[5,"BoneAxis",0],[5,"BakedParameters",622],[10,"CastFrom",623],[5,"Vector",0],[6,"BoneKind",0],[5,"JointId",0],[6,"BoneEnd",0],[1,"unit"],[6,"Ordering",624],[5,"Skeleton",0],[1,"f32"],[1,"usize"],[6,"Result",625],[10,"Deserializer",626],[5,"Bone",0],[6,"Option",627],[1,"bool"],[5,"Formatter",628],[8,"Result",628],[5,"WidgetContext",629],[5,"Error",628],[5,"LabeledBoneKind",0],[1,"tuple"],[10,"Hasher",630],[5,"Box",631],[5,"Arc",632],[5,"Rc",633],[6,"ReadOnly",634],[6,"Value",634],[1,"str"],[17,"Output"],[10,"FnMut",635],[5,"ZeroToOne",636],[10,"Into",637],[10,"Serializer",638],[5,"SmolStr",639],[5,"String",640],[5,"OutOfBounds",641],[5,"TypeId",621],[15,"Jointed",616],[15,"Rigid",616]],"r":[],"b":[[254,"impl-Debug-for-Rotation"],[255,"impl-Display-for-Rotation"],[316,"impl-Index%3CJointId%3E-for-Skeleton"],[317,"impl-Index%3CBoneId%3E-for-Skeleton"],[318,"impl-IndexMut%3CJointId%3E-for-Skeleton"],[319,"impl-IndexMut%3CBoneId%3E-for-Skeleton"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAB0CEQAQAAsAHQArAEwAZgC0AB0A0wAVAOsAHgALAQAAFgE1AFcBgQDfAQAA4gEAAOYBAwDuAQkA/wEBAAICBgAKAgEADQJXAA=="}]\ +["funnybones",{"t":"PPFFGFGFFPFPFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOO","n":["A","B","Bone","BoneAxis","BoneEnd","BoneId","BoneKind","Joint","JointId","Jointed","LabeledBoneKind","Rigid","Rotation","Skeleton","Vector","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","adapt_into_using","add","angle","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_from","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","arrays_into","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","axis_a","axis_b","bone","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cam16_into_unclamped","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","cast_into","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","compare","compare","compare","compare","components_from","components_from","components_from","components_from","components_from","components_from","components_from","components_from","components_from","components_from","components_from","default","default","default","degrees","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","desired_end","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","end","end","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","find_bone_by_label","find_joint_by_label","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_angle","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_cast","from_components","from_parts","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","from_stimulus","hash","hash","hash","hash","index","index","index_mut","index_mut","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","into","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_angle","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_cam16_unclamped","into_color","into_color","into_color","into_color","into_color","into_color","into_color","into_color","into_color","into_color","into_color","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_color_unclamped","into_components","into_components","into_components","into_components","into_components","into_components","into_components","into_components","into_parts","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_read_only","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_stimulus","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","inverse","inverse","kind","label","label","label","lerp","magnitude","map","neg","new","new","other_axis","partial_cmp","partial_cmp","partial_cmp","percent_between","push_bone","push_joint","radians","rotation","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_angle","set_desired_end","set_rotation","set_translation","solve","solved_joint","start","sub","sub","to_degrees","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_radians","to_smolstr","to_string","translation","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_components_into","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","try_into_color","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_from","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","uints_into","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","with_label","with_label","x","y","end_length","inverse","length","start_length"],"q":[[0,"funnybones"],[618,"funnybones::BoneKind"],[622,"palette::chromatic_adaptation"],[623,"core::any"],[624,"palette::cam16::parameters"],[625,"intentional::cast"],[626,"core::cmp"],[627,"core::result"],[628,"serde::de"],[629,"core::option"],[630,"core::fmt"],[631,"cushy::context"],[632,"core::hash"],[633,"alloc::boxed"],[634,"alloc::sync"],[635,"alloc::rc"],[636,"cushy::value"],[637,"core::ops::function"],[638,"cushy::animation"],[639,"core::convert"],[640,"serde::ser"],[641,"smol_str"],[642,"alloc::string"],[643,"palette::convert::try_from_into_color"]],"i":[14,14,0,0,0,0,0,0,0,12,0,12,0,0,0,30,11,2,12,17,8,22,3,7,13,14,2,3,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,7,7,8,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,11,2,12,8,7,13,14,11,2,12,8,7,13,14,11,11,2,2,12,12,8,8,7,7,13,13,14,14,7,13,7,7,13,13,30,11,2,12,17,8,22,3,7,13,14,11,2,17,2,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,11,2,12,17,8,7,13,14,22,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,22,8,11,2,12,8,7,13,14,8,8,8,7,7,7,13,13,13,14,14,14,17,17,11,2,2,2,12,17,8,22,3,7,13,14,30,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,11,2,30,11,2,12,17,8,22,3,7,13,14,8,7,13,14,17,17,17,17,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,11,11,2,12,8,7,13,14,2,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,30,11,11,2,2,12,12,17,17,8,8,22,22,3,3,7,7,13,13,14,14,8,14,30,22,3,30,2,11,11,2,11,3,3,2,7,13,2,17,17,2,17,11,2,12,17,8,22,3,7,13,14,3,22,17,17,17,22,22,11,2,2,11,2,12,8,7,13,14,2,2,2,17,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,30,11,2,12,17,8,22,3,7,13,14,12,3,11,11,47,47,48,47],"f":"```````````````{eg{}{{b{c}}}{}}0000000000{{dd}c{}}{{{h{f}}}d}{ce{}{}}0000000000{{}c{}}0000000000{h{{h{j}}}}0000000000{{{h{l}}}{{h{lj}}}}0000000000{nA`}0`{h{{h{c}}}{}}0000000000{{{h{l}}}{{h{lc}}}{}}0000000000{{{Ab{c}}}e{}{}}0000000000{{}e{}{{Ad{c}}}}000000000077777777777{{{h{Af}}}Af}{{{h{d}}}d}{{{h{Ah}}}Ah}{{{h{A`}}}A`}{{{h{n}}}n}{{{h{Aj}}}Aj}{{{h{Al}}}Al}{{h{h{lc}}}An{}}000000{hAn}0000000000000{{{h{n}}{h{n}}}B`}{{{h{Aj}}{h{Aj}}}B`}{{h{h{c}}}B`{}}000{ce{}{}}0000000000{{}Af}{{}d}{{}Bb}{Bdd}{Bf{{h{c}}}{}}0000000000{Bf{{h{lc}}}{}}0000000000{c{{Bh{Af}}}Bj}{c{{Bh{d}}}Bj}{c{{Bh{Ah}}}Bj}{c{{Bh{Bb}}}Bj}{c{{Bh{A`}}}Bj}{c{{Bh{n}}}Bj}{c{{Bh{Aj}}}Bj}{c{{Bh{Al}}}Bj}{{{h{Bl}}}{{Bn{Af}}}}{h{{h{c}}}{}}0000000000{BfAn}0000000000{{{h{Bl}}}Af}`{{{h{Af}}{h{Af}}}C`}{{{h{d}}{h{d}}}C`}{{{h{Ah}}{h{Ah}}}C`}{{{h{A`}}{h{A`}}}C`}{{{h{n}}{h{n}}}C`}{{{h{Aj}}{h{Aj}}}C`}{{{h{Al}}{h{Al}}}C`}{{h{h{c}}}C`{}}00000000000{{{h{Bb}}{h{Cb}}}{{Bn{n}}}}{{{h{Bb}}{h{Cb}}}{{Bn{Aj}}}}{{{h{Af}}{h{lCd}}}Cf}{{{h{d}}{h{lCd}}}Cf}0{{h{h{Ch}}{h{lCd}}}{{Bh{AnCj}}}}{{{h{Ah}}{h{lCd}}}Cf}{{{h{Bb}}{h{lCd}}}Cf}{{{h{A`}}{h{lCd}}}Cf}{{{h{Bl}}{h{lCd}}}Cf}{{{h{f}}{h{lCd}}}Cf}{{{h{n}}{h{lCd}}}Cf}{{{h{Aj}}{h{lCd}}}Cf}{{{h{Al}}{h{lCd}}}Cf}{cc{}}{AhCl}11111111111111111111111111111111{{{Cn{BdBd}}}Af}{Bnc{}}{ce{}{}}0000000000{{{h{A`}}{h{lc}}}AnD`}{{{h{n}}{h{lc}}}AnD`}{{{h{Aj}}{h{lc}}}AnD`}{{{h{Al}}{h{lc}}}AnD`}{{{h{Bb}}Aj}{{h{c}}}{}}{{{h{Bb}}n}{{h{c}}}{}}{{{h{lBb}}n}{{h{lc}}}{}}{{{h{lBb}}Aj}{{h{lc}}}{}}{{}Bf}0000000000{{}c{}}000000000000000000000{{{Db{c}}}{{Db{j}}}{}}0000000000{{{Dd{c}}}{{Dd{j}}}{}}0000000000{{{Df{c}}}{{Df{j}}}{}}0000000000{{{Ab{c}}}e{}{}}00000000004444444444444444444444{Af{{Cn{BdBd}}}}{{}{{Cn{cc}}}{}}000000{{}{{Cn{Bn}}}}{{}{{Dh{c}}}{}}000000000088888888888{{}{{Dj{c}}}{}}{{}{{Dj{{Bn{c}}}}}{}}01100110101001101001{A`A`}{AlAl}`{{{h{Bl}}}{{h{Cb}}}}{{{h{f}}}{{h{Cb}}}}`{{{h{d}}{h{d}}Bd}d}{{{h{Af}}}Bd}{{Afc}Af{{Dn{Bd}{{Dl{Bd}}}}}}{dc{}}{{BdBd}Af}{{dA`A`}f}{{{h{f}}A`}A`}{{{h{d}}{h{d}}}{{Bn{B`}}}}{{{h{n}}{h{n}}}{{Bn{B`}}}}{{{h{Aj}}{h{Aj}}}{{Bn{B`}}}}{{{h{d}}{h{d}}{h{d}}}E`}{{{h{lBb}}c}n{{Eb{Cl}}}}{{{h{lBb}}f}Aj}{Bdd}{{{h{Bb}}}d}{{{h{Af}}c}BhEd}{{{h{d}}c}BhEd}{{{h{Ah}}c}BhEd}{{{h{Bb}}c}BhEd}{{{h{A`}}c}BhEd}{{{h{Bl}}c}BhEd}{{{h{f}}c}BhEd}{{{h{n}}c}BhEd}{{{h{Aj}}c}BhEd}{{{h{Al}}c}BhEd}{{{h{lf}}d}An}{{{h{lBl}}{Bn{Af}}}An}{{{h{lBb}}d}An}{{{h{lBb}}Af}An}{{{h{lBb}}}An}{{{h{Bl}}}{{Bn{Af}}}}{{{h{Bl}}}Af}{{AfAf}c{}}{{dd}c{}}{dBd}{hc{}}0000001{hEf}{hEh}{{{h{Bb}}}Af}{{}{{Bh{c}}}{}}0000000000{c{{Bh{e}}}{}{}}000000000011111111111{{}{{Bh{c{Ej{c}}}}}{}}0000000000{hEl}0000000000{ce{}{}}0000000000{{}c{}}0000000000{h{{Bn{{h{c}}}}}{}}0000000000{{Ahc}Cl{{Eb{Eh}}}}{{fc}f{{Eb{Eh}}}}``````","D":"Jb","p":[[10,"TransformMatrix",622],[5,"Rotation",0],[5,"Joint",0],[1,"reference"],[10,"Any",623],[0,"mut"],[5,"BoneId",0],[5,"BoneAxis",0],[5,"BakedParameters",624],[10,"CastFrom",625],[5,"Vector",0],[6,"BoneKind",0],[5,"JointId",0],[6,"BoneEnd",0],[1,"unit"],[6,"Ordering",626],[5,"Skeleton",0],[1,"f32"],[1,"usize"],[6,"Result",627],[10,"Deserializer",628],[5,"Bone",0],[6,"Option",629],[1,"bool"],[1,"str"],[5,"Formatter",630],[8,"Result",630],[5,"WidgetContext",631],[5,"Error",630],[5,"LabeledBoneKind",0],[1,"tuple"],[10,"Hasher",632],[5,"Box",633],[5,"Arc",634],[5,"Rc",635],[6,"ReadOnly",636],[6,"Value",636],[17,"Output"],[10,"FnMut",637],[5,"ZeroToOne",638],[10,"Into",639],[10,"Serializer",640],[5,"SmolStr",641],[5,"String",642],[5,"OutOfBounds",643],[5,"TypeId",623],[15,"Jointed",618],[15,"Rigid",618]],"r":[],"b":[[256,"impl-Display-for-Rotation"],[257,"impl-Debug-for-Rotation"],[318,"impl-Index%3CJointId%3E-for-Skeleton"],[319,"impl-Index%3CBoneId%3E-for-Skeleton"],[320,"impl-IndexMut%3CBoneId%3E-for-Skeleton"],[321,"impl-IndexMut%3CJointId%3E-for-Skeleton"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAB0CEgAQAAsAHQArAEwAZgC0AB0A0wAVAOsAEgAAAQsADQEAABgBNQBZAYEA4QEAAOQBAADoAQMA8AEJAAECAQAEAgYADAIBAA8CVwA="}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/main/search.desc/funnybones/funnybones-desc-0-.js b/main/search.desc/funnybones/funnybones-desc-0-.js index 07ce6d3..64a6aff 100644 --- a/main/search.desc/funnybones/funnybones-desc-0-.js +++ b/main/search.desc/funnybones/funnybones-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("funnybones", 0, "FunnyBones is considered experimental and unsupported …\nThe first end of a bone.\nThe second end of a bone.\nA bone in a Skeleton.\nA specific end of a specific bone.\nA specific end of a Bone.\nThe unique ID of a Bone in a Skeleton.\nA representation of a bone structure inside of a Skeleton.\nA connection between two bones.\nThe unique ID of a Joint in a Skeleton.\nTwo bones connected with a joint that automatically …\nA BoneKind with an associated label.\nA single bone of a fixed length.\nA value representing a rotation between no rotation and a …\nA collection of Bones. connected by Joints.\nA two dimensionsional offset/measurement.\nReturns the rotation of this joint.\nReturns the first axis of this bone.\nReturns the second axis of this bone.\nThe unique id of the bone of this axis.\nReturns a rotation representing the given degrees.\nReturns the location this bone is being aimed towards.\nReturns the solved end position of this bone.\nThe end of the bone being referenced.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the opposite axis on the same bone.\nReturns the opposite end of self.\nThe bone to create.\nReturns the label this bone was created with.\nReturns the label of this joint.\nThe label of the bone.\nReturns the magnitude of this vector.\nReturns the result of mapping x and y to f.\nReturns a new vector from the x and y values.\nReturns a new joint formed by joining bone_a and bone_b at …\nGiven axis is one of the two connections in this joint, …\nCreates a new Bone into the skeleton. Returns the unique …\nCreates a new Joint in the skeleton, connecting two bones …\nReturns a rotation representing the given radians.\nReturns the base rotation being applied to the entire …\nSets the angle to form between these joints.\nSets the location to aim the end of this bone towards.\nSets a base rotation to apply to the entire skeleton.\nSets a translation to be applied to the entire skeleton.\nUpdates the solved positions of all bones in this skeleton …\nIf this is a BoneKind::Jointed bone, returns the solved …\nReturns the solved start position of this bone.\nReturns this rotation represented in degrees.\nReturns this rotation represented in radians.\nReturns the translation applied to the entire skeleton.\nAttaches a label to this bone when pushed into a skeleton.\nLabels this joint and returns self.\nThe x-axis component of this vector.\nThe y-axis component of this vector.\nThe length of the bone connected furthes from the root of …\nThe bend of the simulated joint always goes in one of two …\nThe length of the bone.\nThe length of the bone connected closest to the root of the") \ No newline at end of file +searchState.loadedDescShard("funnybones", 0, "FunnyBones is considered experimental and unsupported …\nThe first end of a bone.\nThe second end of a bone.\nA bone in a Skeleton.\nA specific end of a specific bone.\nA specific end of a Bone.\nThe unique ID of a Bone in a Skeleton.\nA representation of a bone structure inside of a Skeleton.\nA connection between two bones.\nThe unique ID of a Joint in a Skeleton.\nTwo bones connected with a joint that automatically …\nA BoneKind with an associated label.\nA single bone of a fixed length.\nA value representing a rotation between no rotation and a …\nA collection of Bones. connected by Joints.\nA two dimensionsional offset/measurement.\nReturns the rotation of this joint.\nReturns the first axis of this bone.\nReturns the second axis of this bone.\nThe unique id of the bone of this axis.\nReturns a rotation representing the given degrees.\nReturns the location this bone is being aimed towards.\nReturns the solved end position of this bone.\nThe end of the bone being referenced.\nFinds an existing Bone by its label.\nFinds an existing Joint by its label.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the opposite axis on the same bone.\nReturns the opposite end of self.\nThe bone to create.\nReturns the label this bone was created with.\nReturns the label of this joint.\nThe label of the bone.\nReturns the magnitude of this vector.\nReturns the result of mapping x and y to f.\nReturns a new vector from the x and y values.\nReturns a new joint formed by joining bone_a and bone_b at …\nGiven axis is one of the two connections in this joint, …\nCreates a new Bone into the skeleton. Returns the unique …\nCreates a new Joint in the skeleton, connecting two bones …\nReturns a rotation representing the given radians.\nReturns the base rotation being applied to the entire …\nSets the angle to form between these joints.\nSets the location to aim the end of this bone towards.\nSets a base rotation to apply to the entire skeleton.\nSets a translation to be applied to the entire skeleton.\nUpdates the solved positions of all bones in this skeleton …\nIf this is a BoneKind::Jointed bone, returns the solved …\nReturns the solved start position of this bone.\nReturns this rotation represented in degrees.\nReturns this rotation represented in radians.\nReturns the translation applied to the entire skeleton.\nAttaches a label to this bone when pushed into a skeleton.\nLabels this joint and returns self.\nThe x-axis component of this vector.\nThe y-axis component of this vector.\nThe length of the bone connected furthes from the root of …\nThe bend of the simulated joint always goes in one of two …\nThe length of the bone.\nThe length of the bone connected closest to the root of the") \ No newline at end of file diff --git a/main/src/funnybones/lib.rs.html b/main/src/funnybones/lib.rs.html index 67c125c..7f948d8 100644 --- a/main/src/funnybones/lib.rs.html +++ b/main/src/funnybones/lib.rs.html @@ -736,13 +736,50 @@ 736 737 738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774

#![doc = include_str!(".crate-docs.md")]
 
 use std::{
+    borrow::Borrow,
     collections::{HashMap, HashSet},
     f32::consts::PI,
     fmt::{Debug, Display},
-    ops::{Add, Index, IndexMut, Neg, Sub},
+    ops::{Add, Deref, Index, IndexMut, Neg, Sub},
     sync::Arc,
 };
 
@@ -964,6 +1001,29 @@
     }
 }
 
+#[derive(Clone, Eq, PartialEq, Hash, Debug)]
+struct ArcString(Arc<String>);
+
+impl PartialEq<str> for ArcString {
+    fn eq(&self, other: &str) -> bool {
+        &**self == other
+    }
+}
+
+impl Deref for ArcString {
+    type Target = str;
+
+    fn deref(&self) -> &Self::Target {
+        &self.0
+    }
+}
+
+impl Borrow<str> for ArcString {
+    fn borrow(&self) -> &str {
+        self
+    }
+}
+
 /// A collection of [`Bone`]s. connected by [`Joint`]s.
 #[derive(Default, Debug)]
 pub struct Skeleton {
@@ -972,8 +1032,8 @@
     joints: Vec<Joint>,
     connections: HashMap<BoneAxis, Vec<JointId>>,
     generation: usize,
-    bones_by_label: HashMap<Arc<String>, BoneId>,
-    joints_by_label: HashMap<Arc<String>, JointId>,
+    bones_by_label: HashMap<ArcString, BoneId>,
+    joints_by_label: HashMap<ArcString, JointId>,
 }
 
 impl Skeleton {
@@ -994,7 +1054,7 @@
         let label = if bone.label.is_empty() {
             None
         } else {
-            let label = Arc::new(bone.label);
+            let label = ArcString(Arc::new(bone.label));
             self.bones_by_label.insert(label.clone(), id);
             Some(label)
         };
@@ -1027,6 +1087,18 @@
         id
     }
 
+    /// Finds an existing [`Joint`] by its label.
+    #[must_use]
+    pub fn find_joint_by_label(&self, label: &str) -> Option<JointId> {
+        self.joints_by_label.get(label).copied()
+    }
+
+    /// Finds an existing [`Bone`] by its label.
+    #[must_use]
+    pub fn find_bone_by_label(&self, label: &str) -> Option<BoneId> {
+        self.bones_by_label.get(label).copied()
+    }
+
     /// Sets a translation to be applied to the entire skeleton.
     pub fn set_translation(&mut self, translation: Vector) {
         let bone = self.bones.first_mut().expect("root bone must be defined");
@@ -1283,7 +1355,7 @@
 #[derive(Debug)]
 pub struct Bone {
     generation: usize,
-    label: Option<Arc<String>>,
+    label: Option<ArcString>,
     kind: BoneKind,
     start: Vector,
     joint_pos: Option<Vector>,
@@ -1337,7 +1409,7 @@
 /// A connection between two bones.
 #[derive(Debug)]
 pub struct Joint {
-    label: Option<Arc<String>>,
+    label: Option<ArcString>,
     bone_a: BoneAxis,
     bone_b: BoneAxis,
     calculated_position: Vector,
@@ -1362,7 +1434,7 @@
     pub fn with_label(mut self, label: impl Into<String>) -> Self {
         let label = label.into();
         if !label.is_empty() {
-            self.label = Some(Arc::new(label));
+            self.label = Some(ArcString(Arc::new(label)));
         }
         self
     }