Skip to main content

Puppet

Struct Puppet 

Source
pub struct Puppet {
    pub meta: Meta,
    pub physics: Physics,
    pub nodes: Node,
    pub params: HashMap<u32, Param>,
    pub automation: Automation,
    pub animations: HashMap<String, Animation>,
    pub groups: Vec<Group>,
    pub vendors: Vec<VendorData>,
    pub textures: Vec<Texture>,
}
Expand description

Root structure of the Inochi2D puppet model. Contains metadata, physics, node tree, animation parameters and visual organization.

Fields§

§meta: Meta

Creator, version and rights information.

§physics: Physics

Global physics configuration (gravity, scale).

§nodes: Node

Hierarchical node tree (root + recursive children).

§params: HashMap<u32, Param>

Animatable parameters that control the puppet (sliders/dials).

§automation: Automation

Parameter automation tracks (not implemented in this model).

§animations: HashMap<String, Animation>

Pre-recorded animation clips.

§groups: Vec<Group>

Node groups for visual organization in the editor. The folders/hierarchies you see in the editor UI.

§vendors: Vec<VendorData>

Extra vendor extension data.

§textures: Vec<Texture>

List of textures.

Implementations§

Source§

impl Puppet

Source

pub fn open<P>(path: P) -> Result<Self>
where P: AsRef<Path>,

Load a puppet from a file.

Examples found in repository?
examples/parsing.rs (line 10)
3fn main() -> std::io::Result<()> {
4    let time = std::time::Instant::now();
5
6    let path = std::env::args()
7        .nth(1)
8        .expect("\n ✦ Usage: parsing <.inx/.inp file>\n\n ✦ Example: parsing ArchChan.inx\n");
9
10    let puppet = Puppet::open(path)?;
11    
12    let time = time.elapsed();
13    
14    println!("\nMeta: {:#?}", puppet.meta);
15
16    println!("\nNodes Hierarchy:");
17    let mut tab = String::new();
18    recursive_nodes(&puppet.nodes, &mut tab);
19
20    println!("\nParams: {}", puppet.params.len());
21
22    println!("\nAnimations: {}", puppet.animations.len());
23
24    // puppet.save(format!("{}_serialized.inx", path))?;
25
26    println!("\nDone: {:?}", time);
27    Ok(())
28}
Source

pub fn from_bytes(bytes: &[u8]) -> Result<Self>

Load a puppet from in-memory bytes.

Source§

impl Puppet

Source

pub fn to_bytes(&self) -> Vec<u8>

Source

pub fn write_to<W: Write>(&self, w: &mut W) -> Result<()>

Source

pub fn save<P: AsRef<Path>>(&self, path: P) -> Result<()>

Trait Implementations§

Source§

impl Debug for Puppet

Source§

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

Formats the value using the given formatter. Read more

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> 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, 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.