// @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.PrimMesher.Coord`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.Coord` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.Coord.X`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Coord.X`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Coord.Y`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Coord.Y`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Coord.Z`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Coord.Z`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.Coord.#ctor(System.Single,System.Single,System.Single)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord(System.Single x, System.Single y, System.Single z)`.
/// Mapping contract: ownership `owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Coord.Cross(LibreMetaverse.PrimMesher.Coord,LibreMetaverse.PrimMesher.Coord)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.Coord.Cross(LibreMetaverse.PrimMesher.Coord c1, LibreMetaverse.PrimMesher.Coord c2)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Coord.Invert`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.Coord.Invert()`.
/// Mapping contract: ownership `mutable_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Coord.Length`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Coord.Length()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Coord.Normalize`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.Coord.Normalize()`.
/// Mapping contract: ownership `mutable_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Coord.ToString`.
///
/// C# signature: `System.String LibreMetaverse.PrimMesher.Coord.ToString()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Coord.op_Addition(LibreMetaverse.PrimMesher.Coord,LibreMetaverse.PrimMesher.Coord)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.Coord.op_Addition(LibreMetaverse.PrimMesher.Coord v, LibreMetaverse.PrimMesher.Coord a)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Coord.op_Multiply(LibreMetaverse.PrimMesher.Coord,LibreMetaverse.PrimMesher.Coord)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.Coord.op_Multiply(LibreMetaverse.PrimMesher.Coord v, LibreMetaverse.PrimMesher.Coord m)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `infallible_placeholder`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Coord.op_Multiply(LibreMetaverse.PrimMesher.Coord,LibreMetaverse.PrimMesher.Quat)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.Coord.op_Multiply(LibreMetaverse.PrimMesher.Coord v, LibreMetaverse.PrimMesher.Quat q)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `infallible_placeholder`; overload `descriptive_overload_name`; kind `method`.
pub use crate::prim_mesher::Coord;

/// C# type: `T:LibreMetaverse.PrimMesher.Face`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.Face` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.Face.n1`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Face.n1`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Face.n2`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Face.n2`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Face.n3`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Face.n3`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Face.primFace`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Face.primFace`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Face.uv1`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Face.uv1`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Face.uv2`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Face.uv2`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Face.uv3`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Face.uv3`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Face.v1`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Face.v1`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Face.v2`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Face.v2`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Face.v3`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Face.v3`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.Face.#ctor(System.Int32,System.Int32,System.Int32)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Face(System.Int32 v1, System.Int32 v2, System.Int32 v3)`.
/// Mapping contract: ownership `owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Face.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Face(System.Int32 v1, System.Int32 v2, System.Int32 v3, System.Int32 n1, System.Int32 n2, System.Int32 n3)`.
/// Mapping contract: ownership `owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Face.SurfaceNormal(System.Collections.Generic.List{LibreMetaverse.PrimMesher.Coord})`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.Face.SurfaceNormal(System.Collections.Generic.List<LibreMetaverse.PrimMesher.Coord> coordList)`.
/// Mapping contract: ownership `mutable_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::prim_mesher::Face;

/// C# type: `T:LibreMetaverse.PrimMesher.ObjMesh`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.ObjMesh` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.ObjMesh.meshName`.
///
/// C# signature: `System.String LibreMetaverse.PrimMesher.ObjMesh.meshName`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ObjMesh.numPrimFaces`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.ObjMesh.numPrimFaces`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ObjMesh.viewerPolygons`.
///
/// C# signature: `System.Collections.Generic.List<System.Collections.Generic.List<LibreMetaverse.PrimMesher.ViewerPolygon>> LibreMetaverse.PrimMesher.ObjMesh.viewerPolygons`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ObjMesh.viewerVertices`.
///
/// C# signature: `System.Collections.Generic.List<System.Collections.Generic.List<LibreMetaverse.PrimMesher.ViewerVertex>> LibreMetaverse.PrimMesher.ObjMesh.viewerVertices`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.ObjMesh.#ctor(System.IO.StreamReader)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.ObjMesh(System.IO.StreamReader sr)`.
/// Mapping contract: ownership `owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.ObjMesh.#ctor(System.String)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.ObjMesh(System.String path)`.
/// Mapping contract: ownership `owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.ObjMesh.GetVertexIndexer`.
///
/// C# signature: `LibreMetaverse.PrimMesher.VertexIndexer LibreMetaverse.PrimMesher.ObjMesh.GetVertexIndexer()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::obj_mesh::ObjMesh;

/// C# type: `T:LibreMetaverse.PrimMesher.Path`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.Path` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.Path.dimpleBegin`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.dimpleBegin`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.dimpleEnd`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.dimpleEnd`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.holeSizeX`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.holeSizeX`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.holeSizeY`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.holeSizeY`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.pathCutBegin`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.pathCutBegin`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.pathCutEnd`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.pathCutEnd`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.pathNodes`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.PathNode> LibreMetaverse.PrimMesher.Path.pathNodes`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.radius`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.radius`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.revolutions`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.revolutions`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.skew`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.skew`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.stepsPerRevolution`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Path.stepsPerRevolution`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.taperX`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.taperX`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.taperY`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.taperY`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.topShearX`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.topShearX`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.topShearY`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.topShearY`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.twistBegin`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.twistBegin`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Path.twistEnd`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Path.twistEnd`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.Path.#ctor`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Path()`.
/// Mapping contract: ownership `none`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Path.Create(LibreMetaverse.PrimMesher.PathType,System.Int32)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.Path.Create(LibreMetaverse.PrimMesher.PathType pathType, System.Int32 steps)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::prim_mesher::Path;

/// C# type: `T:LibreMetaverse.PrimMesher.PathNode`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.PathNode` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.PathNode.percentOfPath`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PathNode.percentOfPath`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PathNode.position`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.PathNode.position`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PathNode.rotation`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Quat LibreMetaverse.PrimMesher.PathNode.rotation`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PathNode.xScale`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PathNode.xScale`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PathNode.yScale`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PathNode.yScale`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
pub use crate::prim_mesher::PathNode;

/// C# type: `T:LibreMetaverse.PrimMesher.PathType`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.PathType` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum PathType {
    /// C# member: `F:LibreMetaverse.PrimMesher.PathType.Circular`.
    ///
    /// C# signature: `LibreMetaverse.PrimMesher.PathType LibreMetaverse.PrimMesher.PathType.Circular`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Circular = 1,
    /// C# member: `F:LibreMetaverse.PrimMesher.PathType.Flexible`.
    ///
    /// C# signature: `LibreMetaverse.PrimMesher.PathType LibreMetaverse.PrimMesher.PathType.Flexible`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Flexible = 2,
    /// C# member: `F:LibreMetaverse.PrimMesher.PathType.Linear`.
    ///
    /// C# signature: `LibreMetaverse.PrimMesher.PathType LibreMetaverse.PrimMesher.PathType.Linear`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Linear = 0,
}

/// C# type: `T:LibreMetaverse.PrimMesher.PrimMesh`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.PrimMesh` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.calcVertexNormals`.
///
/// C# signature: `System.Boolean LibreMetaverse.PrimMesher.PrimMesh.calcVertexNormals`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.coords`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.Coord> LibreMetaverse.PrimMesher.PrimMesh.coords`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.dimpleBegin`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.dimpleBegin`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.dimpleEnd`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.dimpleEnd`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.errorMessage`.
///
/// C# signature: `System.String LibreMetaverse.PrimMesher.PrimMesh.errorMessage`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.faces`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.Face> LibreMetaverse.PrimMesher.PrimMesh.faces`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.holeSizeX`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.holeSizeX`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.holeSizeY`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.holeSizeY`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.normals`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.Coord> LibreMetaverse.PrimMesher.PrimMesh.normals`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.numPrimFaces`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.PrimMesh.numPrimFaces`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.pathCutBegin`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.pathCutBegin`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.pathCutEnd`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.pathCutEnd`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.radius`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.radius`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.revolutions`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.revolutions`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.skew`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.skew`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.sphereMode`.
///
/// C# signature: `System.Boolean LibreMetaverse.PrimMesher.PrimMesh.sphereMode`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.stepsPerRevolution`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.PrimMesh.stepsPerRevolution`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.taperX`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.taperX`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.taperY`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.taperY`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.topShearX`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.topShearX`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.topShearY`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.PrimMesh.topShearY`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.twistBegin`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.PrimMesh.twistBegin`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.twistEnd`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.PrimMesh.twistEnd`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.viewerFaces`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.ViewerFace> LibreMetaverse.PrimMesher.PrimMesh.viewerFaces`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.PrimMesh.viewerMode`.
///
/// C# signature: `System.Boolean LibreMetaverse.PrimMesher.PrimMesh.viewerMode`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.PrimMesh.#ctor(System.Int32,System.Single,System.Single,System.Single,System.Int32)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.PrimMesh(System.Int32 sides, System.Single profileStart, System.Single profileEnd, System.Single hollow, System.Int32 hollowSides)`.
/// Mapping contract: ownership `owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.PrimMesh.AddPos(System.Single,System.Single,System.Single)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.PrimMesh.AddPos(System.Single x, System.Single y, System.Single z)`.
/// Mapping contract: ownership `mutable_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.PrimMesh.AddRot(LibreMetaverse.PrimMesher.Quat)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.PrimMesh.AddRot(LibreMetaverse.PrimMesher.Quat q)`.
/// Mapping contract: ownership `mutable_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.PrimMesh.CalcNormals`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.PrimMesh.CalcNormals()`.
/// Mapping contract: ownership `mutable_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.PrimMesh.Copy`.
///
/// C# signature: `LibreMetaverse.PrimMesher.PrimMesh LibreMetaverse.PrimMesher.PrimMesh.Copy()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.PrimMesh.DumpRaw(System.String,System.String,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.PrimMesh.DumpRaw(System.String path, System.String name, System.String title)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.PrimMesh.Extrude(LibreMetaverse.PrimMesher.PathType)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.PrimMesh.Extrude(LibreMetaverse.PrimMesher.PathType pathType)`.
/// Mapping contract: ownership `mutable_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.PrimMesh.GetVertexIndexer`.
///
/// C# signature: `LibreMetaverse.PrimMesher.VertexIndexer LibreMetaverse.PrimMesher.PrimMesh.GetVertexIndexer()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.PrimMesh.ParamsToDisplayString`.
///
/// C# signature: `System.String LibreMetaverse.PrimMesher.PrimMesh.ParamsToDisplayString()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.PrimMesh.Scale(System.Single,System.Single,System.Single)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.PrimMesh.Scale(System.Single x, System.Single y, System.Single z)`.
/// Mapping contract: ownership `mutable_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.PrimMesh.SurfaceNormal(System.Int32)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.PrimMesh.SurfaceNormal(System.Int32 faceIndex)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `P:LibreMetaverse.PrimMesher.PrimMesh.HasHollow`.
///
/// C# signature: `System.Boolean LibreMetaverse.PrimMesher.PrimMesh.HasHollow`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.PrimMesher.PrimMesh.HasProfileCut`.
///
/// C# signature: `System.Boolean LibreMetaverse.PrimMesher.PrimMesh.HasProfileCut`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.PrimMesher.PrimMesh.ProfileHollowFaceNumber`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.PrimMesh.ProfileHollowFaceNumber`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.PrimMesher.PrimMesh.ProfileOuterFaceNumber`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.PrimMesh.ProfileOuterFaceNumber`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
pub use crate::prim_mesher::PrimMesh;

/// C# type: `T:LibreMetaverse.PrimMesher.Profile`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.Profile` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.bottomFaceNumber`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Profile.bottomFaceNumber`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.calcVertexNormals`.
///
/// C# signature: `System.Boolean LibreMetaverse.PrimMesher.Profile.calcVertexNormals`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.coords`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.Coord> LibreMetaverse.PrimMesher.Profile.coords`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.cut1CoordIndices`.
///
/// C# signature: `System.Collections.Generic.List<System.Int32> LibreMetaverse.PrimMesher.Profile.cut1CoordIndices`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.cut2CoordIndices`.
///
/// C# signature: `System.Collections.Generic.List<System.Int32> LibreMetaverse.PrimMesher.Profile.cut2CoordIndices`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.cutNormal1`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.Profile.cutNormal1`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.cutNormal2`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.Profile.cutNormal2`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.errorMessage`.
///
/// C# signature: `System.String LibreMetaverse.PrimMesher.Profile.errorMessage`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.faceNormal`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.Profile.faceNormal`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.faceNumbers`.
///
/// C# signature: `System.Collections.Generic.List<System.Int32> LibreMetaverse.PrimMesher.Profile.faceNumbers`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.faceUVs`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.UVCoord> LibreMetaverse.PrimMesher.Profile.faceUVs`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.faces`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.Face> LibreMetaverse.PrimMesher.Profile.faces`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.hollowCoordIndices`.
///
/// C# signature: `System.Collections.Generic.List<System.Int32> LibreMetaverse.PrimMesher.Profile.hollowCoordIndices`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.hollowFaceNumber`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Profile.hollowFaceNumber`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.numHollowVerts`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Profile.numHollowVerts`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.numOuterVerts`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Profile.numOuterVerts`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.numPrimFaces`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Profile.numPrimFaces`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.outerCoordIndices`.
///
/// C# signature: `System.Collections.Generic.List<System.Int32> LibreMetaverse.PrimMesher.Profile.outerCoordIndices`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.outerFaceNumber`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.Profile.outerFaceNumber`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.us`.
///
/// C# signature: `System.Collections.Generic.List<System.Single> LibreMetaverse.PrimMesher.Profile.us`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Profile.vertexNormals`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.Coord> LibreMetaverse.PrimMesher.Profile.vertexNormals`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.#ctor`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Profile()`.
/// Mapping contract: ownership `none`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.#ctor(System.Int32,System.Single,System.Single,System.Single,System.Int32,System.Boolean,System.Boolean)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Profile(System.Int32 sides, System.Single profileStart, System.Single profileEnd, System.Single hollow, System.Int32 hollowSides, System.Boolean createFaces, System.Boolean calcVertexNormals)`.
/// Mapping contract: ownership `owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.AddPos(LibreMetaverse.PrimMesher.Coord)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.Profile.AddPos(LibreMetaverse.PrimMesher.Coord v)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.AddPos(System.Single,System.Single,System.Single)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.Profile.AddPos(System.Single x, System.Single y, System.Single z)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.AddRot(LibreMetaverse.PrimMesher.Quat)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.Profile.AddRot(LibreMetaverse.PrimMesher.Quat q)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.AddValue2FaceNormalIndices(System.Int32)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.Profile.AddValue2FaceNormalIndices(System.Int32 num)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.AddValue2FaceVertexIndices(System.Int32)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.Profile.AddValue2FaceVertexIndices(System.Int32 num)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.Copy`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Profile LibreMetaverse.PrimMesher.Profile.Copy()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.Copy(System.Boolean)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Profile LibreMetaverse.PrimMesher.Profile.Copy(System.Boolean needFaces)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.DumpRaw(System.String,System.String,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.Profile.DumpRaw(System.String path, System.String name, System.String title)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.FlipNormals`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.Profile.FlipNormals()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.MakeFaceUVs`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.Profile.MakeFaceUVs()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Profile.Scale(System.Single,System.Single)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.Profile.Scale(System.Single x, System.Single y)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::prim_mesher::Profile;

/// C# type: `T:LibreMetaverse.PrimMesher.Quat`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.Quat` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.Quat.W`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Quat.W`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Quat.X`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Quat.X`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Quat.Y`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Quat.Y`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.Quat.Z`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Quat.Z`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.Quat.#ctor(LibreMetaverse.PrimMesher.Coord,System.Single)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Quat(LibreMetaverse.PrimMesher.Coord axis, System.Single angle)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Quat.#ctor(System.Single,System.Single,System.Single,System.Single)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Quat(System.Single x, System.Single y, System.Single z, System.Single w)`.
/// Mapping contract: ownership `owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Quat.Length`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.Quat.Length()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Quat.Normalize`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Quat LibreMetaverse.PrimMesher.Quat.Normalize()`.
/// Mapping contract: ownership `mutable_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Quat.ToString`.
///
/// C# signature: `System.String LibreMetaverse.PrimMesher.Quat.ToString()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.Quat.op_Multiply(LibreMetaverse.PrimMesher.Quat,LibreMetaverse.PrimMesher.Quat)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Quat LibreMetaverse.PrimMesher.Quat.op_Multiply(LibreMetaverse.PrimMesher.Quat q1, LibreMetaverse.PrimMesher.Quat q2)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `method`.
pub use crate::prim_mesher::Quat;

/// C# type: `T:LibreMetaverse.PrimMesher.SculptMap`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.SculptMap` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.SculptMap.blueBytes`.
///
/// C# signature: `System.Byte[] LibreMetaverse.PrimMesher.SculptMap.blueBytes`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.SculptMap.greenBytes`.
///
/// C# signature: `System.Byte[] LibreMetaverse.PrimMesher.SculptMap.greenBytes`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.SculptMap.height`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.SculptMap.height`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.SculptMap.redBytes`.
///
/// C# signature: `System.Byte[] LibreMetaverse.PrimMesher.SculptMap.redBytes`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.SculptMap.width`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.SculptMap.width`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMap.#ctor`.
///
/// C# signature: `LibreMetaverse.PrimMesher.SculptMap()`.
/// Mapping contract: ownership `none`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMap.#ctor(LibreMetaverse.Imaging.ManagedImage,System.Int32)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.SculptMap(LibreMetaverse.Imaging.ManagedImage image, System.Int32 lod)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMap.ToRows(System.Boolean)`.
///
/// C# signature: `System.Collections.Generic.List<System.Collections.Generic.List<LibreMetaverse.PrimMesher.Coord>> LibreMetaverse.PrimMesher.SculptMap.ToRows(System.Boolean mirror)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::sculpt::SculptMap;

/// C# type: `T:LibreMetaverse.PrimMesher.SculptMesh`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.SculptMesh` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.SculptMesh.coords`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.Coord> LibreMetaverse.PrimMesher.SculptMesh.coords`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.SculptMesh.faces`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.Face> LibreMetaverse.PrimMesher.SculptMesh.faces`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.SculptMesh.normals`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.Coord> LibreMetaverse.PrimMesher.SculptMesh.normals`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.SculptMesh.uvs`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.UVCoord> LibreMetaverse.PrimMesher.SculptMesh.uvs`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.SculptMesh.viewerFaces`.
///
/// C# signature: `System.Collections.Generic.List<LibreMetaverse.PrimMesher.ViewerFace> LibreMetaverse.PrimMesher.SculptMesh.viewerFaces`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.#ctor(LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.PrimMesher.SculptMesh.SculptType,System.Int32,System.Boolean)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.SculptMesh(LibreMetaverse.Imaging.ManagedImage sculptImage, LibreMetaverse.PrimMesher.SculptMesh.SculptType sculptType, System.Int32 lod, System.Boolean viewerMode)`.
/// Mapping contract: ownership `owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.#ctor(LibreMetaverse.Imaging.ManagedImage,LibreMetaverse.PrimMesher.SculptMesh.SculptType,System.Int32,System.Boolean,System.Boolean,System.Boolean)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.SculptMesh(LibreMetaverse.Imaging.ManagedImage sculptImage, LibreMetaverse.PrimMesher.SculptMesh.SculptType sculptType, System.Int32 lod, System.Boolean viewerMode, System.Boolean mirror, System.Boolean invert)`.
/// Mapping contract: ownership `owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.#ctor(LibreMetaverse.PrimMesher.SculptMesh)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.SculptMesh(LibreMetaverse.PrimMesher.SculptMesh sm)`.
/// Mapping contract: ownership `owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.#ctor(System.Collections.Generic.List{System.Collections.Generic.List{LibreMetaverse.PrimMesher.Coord}},LibreMetaverse.PrimMesher.SculptMesh.SculptType,System.Boolean,System.Boolean,System.Boolean)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.SculptMesh(System.Collections.Generic.List<System.Collections.Generic.List<LibreMetaverse.PrimMesher.Coord>> rows, LibreMetaverse.PrimMesher.SculptMesh.SculptType sculptType, System.Boolean viewerMode, System.Boolean mirror, System.Boolean invert)`.
/// Mapping contract: ownership `owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.#ctor(System.Single[0:,0:],System.Single,System.Single,System.Single,System.Single,System.Boolean)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.SculptMesh(System.Single[,] zMap, System.Single xBegin, System.Single xEnd, System.Single yBegin, System.Single yEnd, System.Boolean viewerMode)`.
/// Mapping contract: ownership `owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.#ctor(System.String,LibreMetaverse.Imaging.ITextureCodec,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.SculptMesh(System.String fileName, LibreMetaverse.Imaging.ITextureCodec codec, System.Int32 sculptType, System.Int32 lod, System.Int32 viewerMode, System.Int32 mirror, System.Int32 invert)`.
/// Mapping contract: ownership `owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.AddPos(System.Single,System.Single,System.Single)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.SculptMesh.AddPos(System.Single x, System.Single y, System.Single z)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.AddRot(LibreMetaverse.PrimMesher.Quat)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.SculptMesh.AddRot(LibreMetaverse.PrimMesher.Quat q)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.Copy`.
///
/// C# signature: `LibreMetaverse.PrimMesher.SculptMesh LibreMetaverse.PrimMesher.SculptMesh.Copy()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.DumpRaw(System.String,System.String,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.SculptMesh.DumpRaw(System.String path, System.String name, System.String title)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.Scale(System.Single,System.Single,System.Single)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.SculptMesh.Scale(System.Single x, System.Single y, System.Single z)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.SculptMesh.SculptMeshFromFile(System.String,LibreMetaverse.Imaging.ITextureCodec,LibreMetaverse.PrimMesher.SculptMesh.SculptType,System.Int32,System.Boolean)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.SculptMesh LibreMetaverse.PrimMesher.SculptMesh.SculptMeshFromFile(System.String fileName, LibreMetaverse.Imaging.ITextureCodec codec, LibreMetaverse.PrimMesher.SculptMesh.SculptType sculptType, System.Int32 lod, System.Boolean viewerMode)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::sculpt::SculptMesh;

/// C# type: `T:LibreMetaverse.PrimMesher.SculptMesh.SculptType`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.SculptMesh.SculptType` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum SculptMeshSculptType {
    /// C# member: `F:LibreMetaverse.PrimMesher.SculptMesh.SculptType.cylinder`.
    ///
    /// C# signature: `LibreMetaverse.PrimMesher.SculptMesh.SculptType LibreMetaverse.PrimMesher.SculptMesh.SculptType.cylinder`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Cylinder = 4,
    /// C# member: `F:LibreMetaverse.PrimMesher.SculptMesh.SculptType.plane`.
    ///
    /// C# signature: `LibreMetaverse.PrimMesher.SculptMesh.SculptType LibreMetaverse.PrimMesher.SculptMesh.SculptType.plane`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Plane = 3,
    /// C# member: `F:LibreMetaverse.PrimMesher.SculptMesh.SculptType.sphere`.
    ///
    /// C# signature: `LibreMetaverse.PrimMesher.SculptMesh.SculptType LibreMetaverse.PrimMesher.SculptMesh.SculptType.sphere`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Sphere = 1,
    /// C# member: `F:LibreMetaverse.PrimMesher.SculptMesh.SculptType.torus`.
    ///
    /// C# signature: `LibreMetaverse.PrimMesher.SculptMesh.SculptType LibreMetaverse.PrimMesher.SculptMesh.SculptType.torus`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Torus = 2,
}

/// C# type: `T:LibreMetaverse.PrimMesher.UVCoord`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.UVCoord` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.UVCoord.U`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.UVCoord.U`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.UVCoord.V`.
///
/// C# signature: `System.Single LibreMetaverse.PrimMesher.UVCoord.V`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.UVCoord.#ctor(System.Single,System.Single)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.UVCoord(System.Single u, System.Single v)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.UVCoord.Flip`.
///
/// C# signature: `LibreMetaverse.PrimMesher.UVCoord LibreMetaverse.PrimMesher.UVCoord.Flip()`.
/// Mapping contract: ownership `mutable_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::prim_mesher::UVCoord;

/// C# type: `T:LibreMetaverse.PrimMesher.VertexIndexer`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.VertexIndexer` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.VertexIndexer.numPrimFaces`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.VertexIndexer.numPrimFaces`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.VertexIndexer.viewerPolygons`.
///
/// C# signature: `System.Collections.Generic.List<System.Collections.Generic.List<LibreMetaverse.PrimMesher.ViewerPolygon>> LibreMetaverse.PrimMesher.VertexIndexer.viewerPolygons`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.VertexIndexer.viewerVertices`.
///
/// C# signature: `System.Collections.Generic.List<System.Collections.Generic.List<LibreMetaverse.PrimMesher.ViewerVertex>> LibreMetaverse.PrimMesher.VertexIndexer.viewerVertices`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.VertexIndexer.#ctor`.
///
/// C# signature: `LibreMetaverse.PrimMesher.VertexIndexer()`.
/// Mapping contract: ownership `none`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.VertexIndexer.#ctor(LibreMetaverse.PrimMesher.PrimMesh)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.VertexIndexer(LibreMetaverse.PrimMesher.PrimMesh primMesh)`.
/// Mapping contract: ownership `owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
pub use crate::vertex_indexer::VertexIndexer;

/// C# type: `T:LibreMetaverse.PrimMesher.ViewerFace`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.ViewerFace` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.coordIndex1`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.ViewerFace.coordIndex1`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.coordIndex2`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.ViewerFace.coordIndex2`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.coordIndex3`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.ViewerFace.coordIndex3`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.n1`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.ViewerFace.n1`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.n2`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.ViewerFace.n2`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.n3`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.ViewerFace.n3`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.primFaceNumber`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.ViewerFace.primFaceNumber`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.uv1`.
///
/// C# signature: `LibreMetaverse.PrimMesher.UVCoord LibreMetaverse.PrimMesher.ViewerFace.uv1`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.uv2`.
///
/// C# signature: `LibreMetaverse.PrimMesher.UVCoord LibreMetaverse.PrimMesher.ViewerFace.uv2`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.uv3`.
///
/// C# signature: `LibreMetaverse.PrimMesher.UVCoord LibreMetaverse.PrimMesher.ViewerFace.uv3`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.v1`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.ViewerFace.v1`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.v2`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.ViewerFace.v2`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerFace.v3`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.ViewerFace.v3`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.ViewerFace.#ctor(System.Int32)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.ViewerFace(System.Int32 primFaceNumber)`.
/// Mapping contract: ownership `owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.ViewerFace.AddPos(System.Single,System.Single,System.Single)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.ViewerFace.AddPos(System.Single x, System.Single y, System.Single z)`.
/// Mapping contract: ownership `mutable_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.ViewerFace.AddRot(LibreMetaverse.PrimMesher.Quat)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.ViewerFace.AddRot(LibreMetaverse.PrimMesher.Quat q)`.
/// Mapping contract: ownership `mutable_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.ViewerFace.CalcSurfaceNormal`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.ViewerFace.CalcSurfaceNormal()`.
/// Mapping contract: ownership `mutable_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.PrimMesher.ViewerFace.Scale(System.Single,System.Single,System.Single)`.
///
/// C# signature: `System.Void LibreMetaverse.PrimMesher.ViewerFace.Scale(System.Single x, System.Single y, System.Single z)`.
/// Mapping contract: ownership `mutable_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::prim_mesher::ViewerFace;

/// C# type: `T:LibreMetaverse.PrimMesher.ViewerPolygon`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.ViewerPolygon` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerPolygon.v1`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.ViewerPolygon.v1`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerPolygon.v2`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.ViewerPolygon.v2`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerPolygon.v3`.
///
/// C# signature: `System.Int32 LibreMetaverse.PrimMesher.ViewerPolygon.v3`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.ViewerPolygon.#ctor(System.Int32,System.Int32,System.Int32)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.ViewerPolygon(System.Int32 v1, System.Int32 v2, System.Int32 v3)`.
/// Mapping contract: ownership `owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::vertex_indexer::ViewerPolygon;

/// C# type: `T:LibreMetaverse.PrimMesher.ViewerVertex`.
///
/// Native Rust mapping of C# `LibreMetaverse.PrimMesher.ViewerVertex` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerVertex.n`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.ViewerVertex.n`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerVertex.uv`.
///
/// C# signature: `LibreMetaverse.PrimMesher.UVCoord LibreMetaverse.PrimMesher.ViewerVertex.uv`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.PrimMesher.ViewerVertex.v`.
///
/// C# signature: `LibreMetaverse.PrimMesher.Coord LibreMetaverse.PrimMesher.ViewerVertex.v`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.PrimMesher.ViewerVertex.#ctor(LibreMetaverse.PrimMesher.Coord,LibreMetaverse.PrimMesher.Coord,LibreMetaverse.PrimMesher.UVCoord)`.
///
/// C# signature: `LibreMetaverse.PrimMesher.ViewerVertex(LibreMetaverse.PrimMesher.Coord coord, LibreMetaverse.PrimMesher.Coord normal, LibreMetaverse.PrimMesher.UVCoord uv)`.
/// Mapping contract: ownership `owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::vertex_indexer::ViewerVertex;
