Implement avatar animation and skinning (#67)
Some checks failed
Native code generation / deterministic (push) Failing after 2m20s
Imaging and meshing gate / native (push) Failing after 1m25s
Native Rust workspace compile / compile (push) Failing after 56s

This commit is contained in:
2026-08-10 11:45:07 +00:00
parent b1f60db3d6
commit ed516a1a5d
13 changed files with 3458 additions and 423 deletions

View File

@@ -7,12 +7,18 @@ mod attention_catalog;
mod agent_manager;
mod agent_messages;
mod agent_movement;
mod animation;
#[path = "animesh.rs"]
mod animesh_runtime;
mod animesh_skinning;
mod appearance_baker;
mod appearance_manager;
mod asset_cache;
mod asset_manager;
mod asset_material;
mod asset_models;
mod avatar_manager;
mod avatar_rig;
mod baking_texture_provider;
mod bit_pack;
mod caps;
@@ -85,45 +91,41 @@ impl assets::OarFile {
#[allow(dead_code)]
impl animesh::AnimationTrack {
fn new(_animation_id: libremetaverse_types::UUID) -> Result<Self, Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Animesh.AnimationTrack.#ctor(LibreMetaverse.UUID)",
)
fn new(animation_id: libremetaverse_types::UUID) -> Result<Self, Error> {
Self::native_new(animation_id)
}
fn decode_rotation(
_value: libremetaverse_types::Vector3,
value: libremetaverse_types::Vector3,
) -> Result<libremetaverse_types::Quaternion, Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Animesh.AnimationTrack.DecodeRotation(LibreMetaverse.Vector3)",
)
Self::native_decode_rotation(value)
}
}
#[allow(clippy::unused_self, dead_code)]
#[allow(
clippy::needless_pass_by_value,
clippy::unnecessary_wraps,
clippy::unused_self,
dead_code
)]
impl animesh::AnimeshPlayer {
fn new(_object_id: libremetaverse_types::UUID) -> Result<Self, Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Animesh.AnimeshPlayer.#ctor(LibreMetaverse.UUID)",
)
fn new(object_id: libremetaverse_types::UUID) -> Result<Self, Error> {
Self::native_new(object_id)
}
fn get_or_add_track(
&mut self,
_animation_id: libremetaverse_types::UUID,
animation_id: libremetaverse_types::UUID,
) -> Result<std::sync::Arc<animesh::AnimationTrack>, Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Animesh.AnimeshPlayer.GetOrAddTrack(LibreMetaverse.UUID)",
)
self.native_get_or_add_track(animation_id)
}
fn retain_only(
&mut self,
_animation_ids: std::collections::HashSet<libremetaverse_types::UUID>,
animation_ids: std::collections::HashSet<libremetaverse_types::UUID>,
) -> Result<(), Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Animesh.AnimeshPlayer.RetainOnly(System.Collections.Generic.ISet{LibreMetaverse.UUID})",
)
self.native_retain_only(&animation_ids);
Ok(())
}
}