Complete Rust API and migration documentation (#102)
Some checks failed
Native code generation / deterministic (push) Failing after 2m5s
Concurrency and resource soak audit / soak (push) Failing after 6m22s
Documentation / documentation (push) Failing after 1m25s
Imaging and meshing gate / native (push) Failing after 2m47s
JPEG 2000 feature / linux (push) Successful in 3m54s
Release platform and feature matrix / audit (push) Successful in 37s
Native Rust workspace compile / compile (push) Failing after 1m14s
Skia feature / linux (push) Successful in 30m46s
Dependency and supply-chain audit / audit (push) Failing after 8m56s
Release platform and feature matrix / matrix (false, linux-stable-minimal, x86_64-unknown-linux-gnu, stable) (push) Failing after 9m16s
Release platform and feature matrix / matrix (false, macos-stable-portable, x86_64-apple-darwin, stable) (push) Failing after 1m20s
Release platform and feature matrix / matrix (false, windows-stable-portable, x86_64-pc-windows-gnu, stable) (push) Failing after 1m18s
Release platform and feature matrix / matrix (true, linux-stable-default, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-features, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-release-surface, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-msrv-portable, x86_64-unknown-linux-gnu, 1.96.0) (push) Has been cancelled

This commit is contained in:
2026-08-12 00:24:06 +00:00
parent 3db144da63
commit 5eb3f01122
37 changed files with 133519 additions and 48 deletions

View File

@@ -6,13 +6,24 @@
#![allow(non_snake_case)]
/// C# type: `T:LibreMetaverse.Rendering.MeshFoundry`.
///
/// Native Rust mapping of C# `LibreMetaverse.Rendering.MeshFoundry` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
pub use crate::mesh_foundry::MeshFoundry;
impl MeshFoundry {
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.#ctor`.
///
/// C# signature: `LibreMetaverse.Rendering.MeshFoundry()`.
/// Mapping contract: ownership `none`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub fn new() -> Result<Self, crate::Error> {
Self::native_new()
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)`.
///
/// C# signature: `LibreMetaverse.Rendering.FacetedMesh LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMesh(LibreMetaverse.Primitive prim, LibreMetaverse.Rendering.DetailLevel lod)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub fn generate_faceted_mesh(
&self,
prim: libremetaverse::Primitive,
@@ -21,6 +32,10 @@ impl MeshFoundry {
self.native_generate_faceted_mesh(prim, lod)
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive,System.Byte[])`.
///
/// C# signature: `LibreMetaverse.Rendering.FacetedMesh LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive prim, System.Byte[] meshData)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
pub fn generate_faceted_mesh_mesh_with_primitive_bytes(
&self,
prim: libremetaverse::Primitive,
@@ -33,6 +48,10 @@ impl MeshFoundry {
)
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive,System.Byte[],LibreMetaverse.Rendering.DetailLevel)`.
///
/// C# signature: `LibreMetaverse.Rendering.FacetedMesh LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive prim, System.Byte[] meshData, LibreMetaverse.Rendering.DetailLevel lod)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
pub fn generate_faceted_mesh_mesh_with_primitive_bytes_detail_level(
&self,
prim: libremetaverse::Primitive,
@@ -42,6 +61,10 @@ impl MeshFoundry {
self.native_generate_faceted_mesh_mesh(prim, mesh_data, lod)
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)`.
///
/// C# signature: `LibreMetaverse.Rendering.FacetedMesh LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedSculptMesh(LibreMetaverse.Primitive prim, LibreMetaverse.Imaging.ManagedImage sculptTexture, LibreMetaverse.Rendering.DetailLevel lod)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub fn generate_faceted_sculpt_mesh(
&self,
prim: libremetaverse::Primitive,
@@ -51,6 +74,10 @@ impl MeshFoundry {
self.native_generate_faceted_sculpt_mesh(prim, sculpt_texture, lod)
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)`.
///
/// C# signature: `LibreMetaverse.Rendering.SimpleMesh LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMesh(LibreMetaverse.Primitive prim, LibreMetaverse.Rendering.DetailLevel lod)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub fn generate_simple_mesh(
&self,
prim: libremetaverse::Primitive,
@@ -59,6 +86,10 @@ impl MeshFoundry {
self.native_generate_simple_mesh(prim, lod, false)
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMeshWithNormals(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)`.
///
/// C# signature: `LibreMetaverse.Rendering.SimpleMesh LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMeshWithNormals(LibreMetaverse.Primitive prim, LibreMetaverse.Rendering.DetailLevel lod)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub fn generate_simple_mesh_with_normals(
&self,
prim: libremetaverse::Primitive,
@@ -67,6 +98,10 @@ impl MeshFoundry {
self.native_generate_simple_mesh(prim, lod, true)
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)`.
///
/// C# signature: `LibreMetaverse.Rendering.SimpleMesh LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleSculptMesh(LibreMetaverse.Primitive prim, LibreMetaverse.Imaging.ManagedImage sculptTexture, LibreMetaverse.Rendering.DetailLevel lod)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub fn generate_simple_sculpt_mesh(
&self,
prim: libremetaverse::Primitive,
@@ -76,6 +111,10 @@ impl MeshFoundry {
self.native_generate_simple_sculpt_mesh(prim, sculpt_texture, lod)
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive,System.Byte[])`.
///
/// C# signature: `System.Collections.Generic.List<System.Collections.Generic.List<LibreMetaverse.Vector3>> LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive prim, System.Byte[] compressedMeshData)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
pub fn mesh_sub_mesh_as_convex_hulls_with_primitive_bytes(
&self,
prim: libremetaverse::Primitive,
@@ -84,6 +123,10 @@ impl MeshFoundry {
self.native_mesh_sub_mesh_as_convex_hulls(prim, compressed_mesh_data, None)
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive,System.Byte[],System.Collections.Generic.List{LibreMetaverse.Vector3}@)`.
///
/// C# signature: `System.Collections.Generic.List<System.Collections.Generic.List<LibreMetaverse.Vector3>> LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive prim, System.Byte[] compressedMeshData, out System.Collections.Generic.List<LibreMetaverse.Vector3>& boundingHull)`.
/// Mapping contract: ownership `shared_self,owned,owned,mutable_output`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
pub fn mesh_sub_mesh_as_convex_hulls_with_primitive_bytes_list(
&self,
prim: libremetaverse::Primitive,
@@ -93,6 +136,10 @@ impl MeshFoundry {
self.native_mesh_sub_mesh_as_convex_hulls(prim, compressed_mesh_data, Some(bounding_hull))
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsSimpleMesh(LibreMetaverse.Primitive,System.Byte[])`.
///
/// C# signature: `LibreMetaverse.Rendering.SimpleMesh LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsSimpleMesh(LibreMetaverse.Primitive prim, System.Byte[] compressedMeshData)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub fn mesh_sub_mesh_as_simple_mesh(
&self,
prim: libremetaverse::Primitive,
@@ -101,6 +148,10 @@ impl MeshFoundry {
self.native_mesh_sub_mesh_as_simple_mesh(prim, compressed_mesh_data)
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.TerrainMesh(System.Single[0:,0:],System.Single,System.Single,System.Single,System.Single)`.
///
/// C# signature: `LibreMetaverse.Rendering.Face LibreMetaverse.Rendering.MeshFoundry.TerrainMesh(System.Single[,] zMap, System.Single xBegin, System.Single xEnd, System.Single yBegin, System.Single yEnd)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub fn terrain_mesh(
&self,
z_map: Vec<Vec<f32>>,
@@ -112,6 +163,10 @@ impl MeshFoundry {
self.native_terrain_mesh(z_map, x_begin, x_end, y_begin, y_end)
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.TransformTexCoords(System.Collections.Generic.List{LibreMetaverse.Rendering.Vertex},LibreMetaverse.Vector3,LibreMetaverse.Primitive.TextureEntryFace,LibreMetaverse.Vector3)`.
///
/// C# signature: `System.Void LibreMetaverse.Rendering.MeshFoundry.TransformTexCoords(System.Collections.Generic.List<LibreMetaverse.Rendering.Vertex> vertices, LibreMetaverse.Vector3 center, LibreMetaverse.Primitive.TextureEntryFace teFace, LibreMetaverse.Vector3 primScale)`.
/// Mapping contract: ownership `shared_self,mutable_borrow,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub fn transform_tex_coords(
&self,
vertices: &mut Vec<libremetaverse::rendering::Vertex>,
@@ -122,6 +177,10 @@ impl MeshFoundry {
self.native_transform_tex_coords(vertices, center, te_face, prim_scale)
}
/// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.UnpackMesh(System.Byte[])`.
///
/// C# signature: `LibreMetaverse.StructuredData.OSDMap LibreMetaverse.Rendering.MeshFoundry.UnpackMesh(System.Byte[] assetData)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub fn unpack_mesh(
&self,
asset_data: Vec<u8>,

View File

@@ -1,4 +1,8 @@
//! Bounded native prim, sculpt, terrain, and LLSD mesh-asset rendering.
//! Bounded native prim, sculpt, terrain, and `LLSD` mesh-asset rendering.
//!
//! `MeshFoundry` consumes public meshing/imaging abstractions and produces checked
//! render meshes without a graphics API. The crate `README` documents topology,
//! material, coordinate, allocation, and migration behavior.
extern crate self as libremetaverse_rendering_mesh_foundry;