Trait SmplModel

Source
pub trait SmplModel<B: Backend>:
    Send
    + Sync
    + 'static
    + Any
    + DynClone {
Show 22 methods // Required methods fn smpl_type(&self) -> SmplType; fn gender(&self) -> Gender; fn forward( &self, options: &SmplOptions, betas: &Betas, pose_raw: &Pose, expression: Option<&Expression>, ) -> SmplOutputDynamic<B>; fn create_body_with_uv( &self, smpl_output: &SmplOutputDynamic<B>, ) -> SmplOutputDynamic<B>; fn get_face_model(&self) -> &dyn FaceModel<B>; fn betas2verts(&self, betas: &Betas) -> Tensor<B, 2, Float>; fn verts2joints( &self, verts_t_pose: Tensor<B, 2, Float>, ) -> Tensor<B, 2, Float>; fn compute_pose_correctives(&self, pose: &Pose) -> Tensor<B, 2, Float>; fn compute_pose_feature(&self, pose: &Pose) -> Array1<f32>; fn apply_pose( &self, verts_t_pose: &Tensor<B, 2, Float>, normals: Option<&Tensor<B, 2, Float>>, tangents: Option<&Tensor<B, 2, Float>>, joints: &Tensor<B, 2, Float>, lbs_weights: &Tensor<B, 2, Float>, pose: &Pose, ) -> (Tensor<B, 2, Float>, Option<Tensor<B, 2, Float>>, Option<Tensor<B, 2, Float>>, Tensor<B, 2, Float>); fn faces(&self) -> &Tensor<B, 2, Int>; fn faces_uv(&self) -> &Tensor<B, 2, Int>; fn uv(&self) -> &Tensor<B, 2, Float>; fn lbs_weights(&self) -> Tensor<B, 2, Float>; fn lbs_weights_split(&self) -> Tensor<B, 2, Float>; fn idx_split_2_merged(&self) -> Tensor<B, 1, Int>; fn idx_split_2_merged_vec(&self) -> &Vec<usize>; fn set_pose_dirs(&mut self, posedirs: Tensor<B, 2, Float>); fn get_pose_dirs(&self) -> Tensor<B, 2, Float>; fn get_expression_dirs(&self) -> Option<Tensor<B, 2, Float>>; fn clone_dyn(&self) -> Box<dyn SmplModel<B>>; fn as_any(&self) -> &dyn Any;
}
Expand description

Trait for a Smpl based model. Smpl-rs expects all Smpl models to implement this.

Required Methods§

Source

fn smpl_type(&self) -> SmplType

Source

fn gender(&self) -> Gender

Source

fn forward( &self, options: &SmplOptions, betas: &Betas, pose_raw: &Pose, expression: Option<&Expression>, ) -> SmplOutputDynamic<B>

Source

fn create_body_with_uv( &self, smpl_output: &SmplOutputDynamic<B>, ) -> SmplOutputDynamic<B>

Source

fn get_face_model(&self) -> &dyn FaceModel<B>

Source

fn betas2verts(&self, betas: &Betas) -> Tensor<B, 2, Float>

Source

fn verts2joints(&self, verts_t_pose: Tensor<B, 2, Float>) -> Tensor<B, 2, Float>

Source

fn compute_pose_correctives(&self, pose: &Pose) -> Tensor<B, 2, Float>

Source

fn compute_pose_feature(&self, pose: &Pose) -> Array1<f32>

Source

fn apply_pose( &self, verts_t_pose: &Tensor<B, 2, Float>, normals: Option<&Tensor<B, 2, Float>>, tangents: Option<&Tensor<B, 2, Float>>, joints: &Tensor<B, 2, Float>, lbs_weights: &Tensor<B, 2, Float>, pose: &Pose, ) -> (Tensor<B, 2, Float>, Option<Tensor<B, 2, Float>>, Option<Tensor<B, 2, Float>>, Tensor<B, 2, Float>)

Source

fn faces(&self) -> &Tensor<B, 2, Int>

Source

fn faces_uv(&self) -> &Tensor<B, 2, Int>

Source

fn uv(&self) -> &Tensor<B, 2, Float>

Source

fn lbs_weights(&self) -> Tensor<B, 2, Float>

Source

fn lbs_weights_split(&self) -> Tensor<B, 2, Float>

Source

fn idx_split_2_merged(&self) -> Tensor<B, 1, Int>

Source

fn idx_split_2_merged_vec(&self) -> &Vec<usize>

Source

fn set_pose_dirs(&mut self, posedirs: Tensor<B, 2, Float>)

Source

fn get_pose_dirs(&self) -> Tensor<B, 2, Float>

Source

fn get_expression_dirs(&self) -> Option<Tensor<B, 2, Float>>

Source

fn clone_dyn(&self) -> Box<dyn SmplModel<B>>

Source

fn as_any(&self) -> &dyn Any

Trait Implementations§

Source§

impl<B: Backend> Clone for Box<dyn SmplModel<B>>

Source§

fn clone(&self) -> Box<dyn SmplModel<B>>

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more

Implementors§