Translate imaging and meshing parity tests

This commit is contained in:
2026-08-08 19:20:59 +02:00
parent 21bbdab9ab
commit 7691d54a5d
12 changed files with 2737 additions and 1432 deletions

View File

@@ -169,6 +169,14 @@ SUPPORT_TYPES = {
}
MEMBER_RETURN_OVERRIDES = {
"M:LibreMetaverse.Caps.Capabilities": "Vec<String>",
"M:LibreMetaverse.PrimMesher.PrimMesh.GetVertexIndexer": (
"Option<libremetaverse_prim_mesher::VertexIndexer>"
),
}
MEMBER_TYPE_OVERRIDES = {
"F:LibreMetaverse.PrimMesher.VertexIndexer.viewerPolygons": (
"Vec<Option<Vec<libremetaverse_prim_mesher::ViewerPolygon>>>"
),
}
MEMBER_SIGNATURE_OVERRIDES = {
"M:LibreMetaverse.AssetManager.#ctor(LibreMetaverse.GridClient)": (
@@ -203,6 +211,29 @@ MEMBER_SIGNATURE_OVERRIDES = {
"Option<libremetaverse_types::compat::CancellationToken>) -> Result<bool, crate::Error>",
"shared_self,owned,optional_owned",
),
"M:LibreMetaverse.Rendering.IRendering.TransformTexCoords(System.Collections.Generic.List{LibreMetaverse.Rendering.Vertex},LibreMetaverse.Vector3,LibreMetaverse.Primitive.TextureEntryFace,LibreMetaverse.Vector3)": (
"pub fn transform_tex_coords(&self, vertices: &mut Vec<libremetaverse::rendering::Vertex>, "
"center: libremetaverse_types::Vector3, te_face: libremetaverse::PrimitiveTextureEntryFace, "
"prim_scale: libremetaverse_types::Vector3) -> Result<(), crate::Error>",
"shared_self,mutable_borrow,owned,owned,owned",
),
"M:LibreMetaverse.Rendering.MeshFoundry.TerrainMesh(System.Single[0:,0:],System.Single,System.Single,System.Single,System.Single)": (
"pub fn terrain_mesh(&self, z_map: Vec<Vec<f32>>, x_begin: f32, x_end: f32, "
"y_begin: f32, y_end: f32) -> Result<libremetaverse::rendering::Face, crate::Error>",
"shared_self,owned,owned,owned,owned,owned",
),
"M:LibreMetaverse.Rendering.MeshFoundry.TransformTexCoords(System.Collections.Generic.List{LibreMetaverse.Rendering.Vertex},LibreMetaverse.Vector3,LibreMetaverse.Primitive.TextureEntryFace,LibreMetaverse.Vector3)": (
"pub fn transform_tex_coords(&self, vertices: &mut Vec<libremetaverse::rendering::Vertex>, "
"center: libremetaverse_types::Vector3, te_face: libremetaverse::PrimitiveTextureEntryFace, "
"prim_scale: libremetaverse_types::Vector3) -> Result<(), crate::Error>",
"shared_self,mutable_borrow,owned,owned,owned",
),
"M:LibreMetaverse.Rendering.SimpleRenderer.TransformTexCoords(System.Collections.Generic.List{LibreMetaverse.Rendering.Vertex},LibreMetaverse.Vector3,LibreMetaverse.Primitive.TextureEntryFace,LibreMetaverse.Vector3)": (
"pub fn transform_tex_coords(&self, vertices: &mut Vec<libremetaverse::rendering::Vertex>, "
"center: libremetaverse_types::Vector3, te_face: libremetaverse::PrimitiveTextureEntryFace, "
"prim_scale: libremetaverse_types::Vector3) -> Result<(), crate::Error>",
"shared_self,mutable_borrow,owned,owned,owned",
),
}
PROPERTY_SIGNATURE_OVERRIDES = {
"P:LibreMetaverse.GridClient.Self": (
@@ -620,6 +651,26 @@ def method_receiver(owner: dict, item: dict) -> tuple[str, str]:
("Apply", "Decode", "Encode", "Set")
):
return "&mut self", "mutable_self"
if owner["doc_id"] == "T:LibreMetaverse.Imaging.ManagedImage" and item["name"] in {
"Clear",
"ConvertChannels",
"ResizeBilinear",
"ResizeNearestNeighbor",
}:
return "&mut self", "mutable_self"
if owner["doc_id"] == "T:LibreMetaverse.PrimMesher.PrimMesh" and item["name"] in {
"AddPos",
"AddRot",
"CalcNormals",
"Extrude",
"Scale",
}:
return "&mut self", "mutable_self"
if owner["doc_id"] in {
"T:LibreMetaverse.PrimMesher.Coord",
"T:LibreMetaverse.PrimMesher.Quat",
} and item["name"] == "Length":
return "&self", "shared_self"
if owner["doc_id"] == "T:LibreMetaverse.BitPack" and item["name"].startswith(("Pack", "Unpack")):
return "&mut self", "mutable_self"
if (
@@ -687,7 +738,9 @@ def member_signature(mapper: Mapper, owner: dict, item: dict, rust_name: str) ->
asyncness = "sync"
error_model = "infallible_placeholder"
if kind in {"field", "constant", "enum_value"}:
value_type = mapper.type(item["type"], item.get("nullability"), generics)
value_type = MEMBER_TYPE_OVERRIDES.get(
item["doc_id"], mapper.type(item["type"], item.get("nullability"), generics)
)
if item["doc_id"] in BOXED_FIELD_IDS:
value_type = (
f"Option<Box<{value_type[7:-1]}>>"