Skip to main content

MotionStudy

Struct MotionStudy 

Source
pub struct MotionStudy {
    pub drivers: Vec<String>,
    pub keys: Vec<Vec<f64>>,
    pub frames: usize,
}
Expand description

Joint coordinates driven by a time table: their values at keyframes, and between two keyframes the straight line between them. A motion runs from its first keyframe’s time to its last’s, and is played, checked and exported at frames times evenly apart over that.

Fields§

§drivers: Vec<String>

The coordinates driven, by the names of their states: add_part(fore,m1).angle.

§keys: Vec<Vec<f64>>

The keyframes, each its time — in seconds — and then a value per driver, in its own units: degrees for an angle.

§frames: usize

How many frames it is played at, checked and exported at: at least two, its first keyframe and its last.

Implementations§

Source§

impl MotionStudy

Source

pub fn validate(&self) -> GeopResult<()>

Checks it is one: keyframes a time and a value for every driver each, later each than the one before, and frames enough to start and end.

Source

pub fn span(&self) -> (f64, f64)

When it starts and ends, in seconds.

Source

pub fn at(&self, t: f64) -> Vec<(String, f64)>

The value of each driver at the time t, by driver: between two keyframes on the line between them, before the first its first, and after the last its last.

Source

pub fn times(&self) -> Vec<f64>

The times of its frames: evenly apart from its start to its end.

Trait Implementations§

Source§

impl Clone for MotionStudy

Source§

fn clone(&self) -> MotionStudy

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for MotionStudy

Source§

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

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

impl<'de> Deserialize<'de> for MotionStudy

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 HasElements<MotionStudy> for MotionStudy

Source§

type Element<'a> = &'a MotionStudy

What an element resolves to: a borrow of it, or what it gives.
Source§

fn element(&self, name: &str) -> GeopResult<&MotionStudy>

The element name, or why there is none.
Source§

fn names_target(name: &str) -> bool

Whether the target named name could be one of this type: what tells a pick of an element of it from one of a target of another type with elements of the same kind (ElementReference::from_picked). The singleton’s name, for a singleton; any name, by default.
Source§

const SINGLETON: Option<&'static str> = None

The name of the one target of this type a part has, if it has only one — the topology, say: a reference into it is saved as the element’s name alone.
Source§

fn undefined() -> Option<&'static Self>

What the target reads as where no step made it, if it reads as anything then — the datums every part starts with. None by default: reading it fails.
Source§

impl Kind for MotionStudy

Read whole.

Source§

const NAME: &'static str = "motion"

The kind’s name, as a pick says what it picked: "edge".
Source§

impl PartialEq for MotionStudy

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for MotionStudy

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 StructuralPartialEq for MotionStudy

Source§

impl Target for MotionStudy

Each motion step’s own.

Source§

const CHAIN: bool = false

Whether several steps may produce a target of this type, each from what the steps before left (see crate::reader::Reader::previous): the model, the datums, the parameters’ values, the listings — what a program accumulates. A target that is not a chain — a sketch, a placed part — has one producer, and a second is an error naming both.
Source§

const KEEPER: Option<Keeper<Self>> = None

How its values are written to be kept between processes (see crate::kept): none for a target made again in every process — one that is cheap to make, or holds what cannot be written.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.