// @generated by tools/generate_api_shims.py; do not edit by hand.
#![allow(clippy::missing_errors_doc)]
#![allow(clippy::must_use_candidate)]
#![allow(clippy::all, clippy::pedantic, dead_code, unused_variables)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]

/// C# type: `T:LibreMetaverse.Rendering.MeshFoundry`.
pub struct MeshFoundry;
impl MeshFoundry {
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Rendering.MeshFoundry.#ctor")
    }
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)`.
    pub fn generate_faceted_mesh(
        &self,
        prim: libremetaverse::Primitive,
        lod: libremetaverse::rendering::DetailLevel,
    ) -> Result<Option<libremetaverse::rendering::FacetedMesh>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)",
        )
    }
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive,System.Byte[])`.
    pub fn generate_faceted_mesh_mesh_with_primitive_bytes(
        &self,
        prim: libremetaverse::Primitive,
        mesh_data: Vec<u8>,
    ) -> Result<Option<libremetaverse::rendering::FacetedMesh>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive,System.Byte[])",
        )
    }
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive,System.Byte[],LibreMetaverse.Rendering.DetailLevel)`.
    pub fn generate_faceted_mesh_mesh_with_primitive_bytes_detail_level(
        &self,
        prim: libremetaverse::Primitive,
        mesh_data: Vec<u8>,
        lod: libremetaverse::rendering::DetailLevel,
    ) -> Result<Option<libremetaverse::rendering::FacetedMesh>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedMeshMesh(LibreMetaverse.Primitive,System.Byte[],LibreMetaverse.Rendering.DetailLevel)",
        )
    }
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)`.
    pub fn generate_faceted_sculpt_mesh(
        &self,
        prim: libremetaverse::Primitive,
        sculpt_texture: libremetaverse_imaging::ManagedImage,
        lod: libremetaverse::rendering::DetailLevel,
    ) -> Result<Option<libremetaverse::rendering::FacetedMesh>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.GenerateFacetedSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)",
        )
    }
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)`.
    pub fn generate_simple_mesh(
        &self,
        prim: libremetaverse::Primitive,
        lod: libremetaverse::rendering::DetailLevel,
    ) -> Result<Option<libremetaverse::rendering::SimpleMesh>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMesh(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)",
        )
    }
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMeshWithNormals(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)`.
    pub fn generate_simple_mesh_with_normals(
        &self,
        prim: libremetaverse::Primitive,
        lod: libremetaverse::rendering::DetailLevel,
    ) -> Result<Option<libremetaverse::rendering::SimpleMesh>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleMeshWithNormals(LibreMetaverse.Primitive,LibreMetaverse.Rendering.DetailLevel)",
        )
    }
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)`.
    pub fn generate_simple_sculpt_mesh(
        &self,
        prim: libremetaverse::Primitive,
        sculpt_texture: libremetaverse_imaging::ManagedImage,
        lod: libremetaverse::rendering::DetailLevel,
    ) -> Result<Option<libremetaverse::rendering::SimpleMesh>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.GenerateSimpleSculptMesh(LibreMetaverse.Primitive,LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.Rendering.DetailLevel)",
        )
    }
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive,System.Byte[])`.
    pub fn mesh_sub_mesh_as_convex_hulls_with_primitive_bytes(
        &self,
        prim: libremetaverse::Primitive,
        compressed_mesh_data: Vec<u8>,
    ) -> Result<Vec<Vec<libremetaverse_types::Vector3>>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive,System.Byte[])",
        )
    }
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive,System.Byte[],System.Collections.Generic.List{LibreMetaverse.Vector3}@)`.
    pub fn mesh_sub_mesh_as_convex_hulls_with_primitive_bytes_list(
        &self,
        prim: libremetaverse::Primitive,
        compressed_mesh_data: Vec<u8>,
        bounding_hull: &mut Vec<libremetaverse_types::Vector3>,
    ) -> Result<Vec<Vec<libremetaverse_types::Vector3>>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsConvexHulls(LibreMetaverse.Primitive,System.Byte[],System.Collections.Generic.List{LibreMetaverse.Vector3}@)",
        )
    }
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsSimpleMesh(LibreMetaverse.Primitive,System.Byte[])`.
    pub fn mesh_sub_mesh_as_simple_mesh(
        &self,
        prim: libremetaverse::Primitive,
        compressed_mesh_data: Vec<u8>,
    ) -> Result<Option<libremetaverse::rendering::SimpleMesh>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.MeshSubMeshAsSimpleMesh(LibreMetaverse.Primitive,System.Byte[])",
        )
    }
    /// C# member: `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> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.TerrainMesh(System.Single[0:,0:],System.Single,System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `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> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.TransformTexCoords(System.Collections.Generic.List{LibreMetaverse.Rendering.Vertex},LibreMetaverse.Vector3,LibreMetaverse.Primitive.TextureEntryFace,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Rendering.MeshFoundry.UnpackMesh(System.Byte[])`.
    pub fn unpack_mesh(
        &self,
        asset_data: Vec<u8>,
    ) -> Result<Option<libremetaverse_structured_data::OSDMap>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Rendering.MeshFoundry.UnpackMesh(System.Byte[])",
        )
    }
}
impl libremetaverse::rendering::IRendering for MeshFoundry {}
