[][src]Struct gdnative::api::ArrayMesh

pub struct ArrayMesh { /* fields omitted */ }

core class ArrayMesh inherits Mesh (reference counted).

Official documentation

See the documentation of this class in the Godot engine's official documentation.

Memory management

The lifetime of this object is automatically managed through reference counting.

Class hierarchy

ArrayMesh inherits methods from:

Safety

All types in the Godot API have "interior mutability" in Rust parlance. To enforce that the official thread-safety guidelines are followed, the typestate pattern is used in the Ref and TRef smart pointers, and the Instance API. The typestate Access in these types tracks whether the access is unique, shared, or exclusive to the current thread. For more information, see the type-level documentation on Ref.

Implementations

impl ArrayMesh[src]

Constants

impl ArrayMesh[src]

pub fn new() -> Ref<ArrayMesh, Unique>[src]

Creates a new instance of this object.

This is a reference-counted type. The returned object is automatically managed by Ref.

pub fn add_blend_shape(&self, name: impl Into<GodotString>)[src]

Adds name for a blend shape that will be added with [method add_surface_from_arrays]. Must be called before surface is added.

pub fn add_surface_from_arrays(
    &self,
    primitive: i64,
    arrays: VariantArray<Shared>,
    blend_shapes: VariantArray<Shared>,
    compress_flags: i64
)
[src]

Creates a new surface.
				Surfaces are created to be rendered using a [code]primitive[/code], which may be any of the types defined in [enum Mesh.PrimitiveType]. (As a note, when using indices, it is recommended to only use points, lines or triangles.) [method Mesh.get_surface_count] will become the [code]surf_idx[/code] for this new surface.
				The [code]arrays[/code] argument is an array of arrays. See [enum ArrayType] for the values used in this array. For example, [code]arrays[0][/code] is the array of vertices. That first vertex sub-array is always required; the others are optional. Adding an index array puts this function into "index mode" where the vertex and other arrays become the sources of data and the index array defines the vertex order. All sub-arrays must have the same length as the vertex array or be empty, except for [constant ARRAY_INDEX] if it is used.
				Adding an index array puts this function into "index mode" where the vertex and other arrays become the sources of data, and the index array defines the order of the vertices.

Default Arguments

  • blend_shapes - [ ]
  • compress_flags - 97280

pub fn clear_blend_shapes(&self)[src]

Removes all blend shapes from this [ArrayMesh].

pub fn get_blend_shape_count(&self) -> i64[src]

Returns the number of blend shapes that the [ArrayMesh] holds.

pub fn blend_shape_mode(&self) -> BlendShapeMode[src]

Sets the blend shape mode to one of [enum Mesh.BlendShapeMode].

pub fn get_blend_shape_name(&self, index: i64) -> GodotString[src]

Returns the name of the blend shape at this index.

pub fn custom_aabb(&self) -> Aabb[src]

Overrides the [AABB] with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices.

pub fn lightmap_unwrap(
    &self,
    transform: Transform,
    texel_size: f64
) -> Result<(), GodotError>
[src]

Will perform a UV unwrap on the [ArrayMesh] to prepare the mesh for lightmapping.

pub fn regen_normalmaps(&self)[src]

Will regenerate normal maps for the [ArrayMesh].

pub fn set_blend_shape_mode(&self, mode: i64)[src]

Sets the blend shape mode to one of [enum Mesh.BlendShapeMode].

pub fn set_custom_aabb(&self, aabb: Aabb)[src]

Overrides the [AABB] with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices.

pub fn surface_find_by_name(&self, name: impl Into<GodotString>) -> i64[src]

Returns the index of the first surface with this name held within this [ArrayMesh]. If none are found, -1 is returned.

pub fn surface_get_array_index_len(&self, surf_idx: i64) -> i64[src]

Returns the length in indices of the index array in the requested surface (see [method add_surface_from_arrays]).

pub fn surface_get_array_len(&self, surf_idx: i64) -> i64[src]

Returns the length in vertices of the vertex array in the requested surface (see [method add_surface_from_arrays]).

pub fn surface_get_format(&self, surf_idx: i64) -> i64[src]

Returns the format mask of the requested surface (see [method add_surface_from_arrays]).

pub fn surface_get_name(&self, surf_idx: i64) -> GodotString[src]

Gets the name assigned to this surface.

pub fn surface_get_primitive_type(&self, surf_idx: i64) -> PrimitiveType[src]

Returns the primitive type of the requested surface (see [method add_surface_from_arrays]).

pub fn surface_remove(&self, surf_idx: i64)[src]

Removes a surface at position [code]surf_idx[/code], shifting greater surfaces one [code]surf_idx[/code] slot down.

pub fn surface_set_name(&self, surf_idx: i64, name: impl Into<GodotString>)[src]

Sets a name for a given surface.

pub fn surface_update_region(
    &self,
    surf_idx: i64,
    offset: i64,
    data: TypedArray<u8>
)
[src]

Updates a specified region of mesh arrays on the GPU.
				[b]Warning:[/b] Only use if you know what you are doing. You can easily cause crashes by calling this function with improper arguments.

Methods from Deref<Target = Mesh>

pub const ARRAY_BONES: i64[src]

pub const ARRAY_COLOR: i64[src]

pub const ARRAY_COMPRESS_BASE: i64[src]

pub const ARRAY_COMPRESS_BONES: i64[src]

pub const ARRAY_COMPRESS_COLOR: i64[src]

pub const ARRAY_COMPRESS_DEFAULT: i64[src]

pub const ARRAY_COMPRESS_INDEX: i64[src]

pub const ARRAY_COMPRESS_NORMAL: i64[src]

pub const ARRAY_COMPRESS_TANGENT: i64[src]

pub const ARRAY_COMPRESS_TEX_UV: i64[src]

pub const ARRAY_COMPRESS_TEX_UV2: i64[src]

pub const ARRAY_COMPRESS_VERTEX: i64[src]

pub const ARRAY_COMPRESS_WEIGHTS: i64[src]

pub const ARRAY_FLAG_USE_16_BIT_BONES: i64[src]

pub const ARRAY_FLAG_USE_2D_VERTICES: i64[src]

pub const ARRAY_FORMAT_BONES: i64[src]

pub const ARRAY_FORMAT_COLOR: i64[src]

pub const ARRAY_FORMAT_INDEX: i64[src]

pub const ARRAY_FORMAT_NORMAL: i64[src]

pub const ARRAY_FORMAT_TANGENT: i64[src]

pub const ARRAY_FORMAT_TEX_UV: i64[src]

pub const ARRAY_FORMAT_TEX_UV2: i64[src]

pub const ARRAY_FORMAT_VERTEX: i64[src]

pub const ARRAY_FORMAT_WEIGHTS: i64[src]

pub const ARRAY_INDEX: i64[src]

pub const ARRAY_MAX: i64[src]

pub const ARRAY_NORMAL: i64[src]

pub const ARRAY_TANGENT: i64[src]

pub const ARRAY_TEX_UV: i64[src]

pub const ARRAY_TEX_UV2: i64[src]

pub const ARRAY_VERTEX: i64[src]

pub const ARRAY_WEIGHTS: i64[src]

pub const BLEND_SHAPE_MODE_NORMALIZED: i64[src]

pub const BLEND_SHAPE_MODE_RELATIVE: i64[src]

pub const PRIMITIVE_LINES: i64[src]

pub const PRIMITIVE_LINE_LOOP: i64[src]

pub const PRIMITIVE_LINE_STRIP: i64[src]

pub const PRIMITIVE_POINTS: i64[src]

pub const PRIMITIVE_TRIANGLES: i64[src]

pub const PRIMITIVE_TRIANGLE_FAN: i64[src]

pub const PRIMITIVE_TRIANGLE_STRIP: i64[src]

pub fn create_convex_shape(&self) -> Option<Ref<Shape, Shared>>[src]

Calculate a [ConvexPolygonShape] from the mesh.

pub fn create_outline(&self, margin: f64) -> Option<Ref<Mesh, Shared>>[src]

Calculate an outline mesh at a defined offset (margin) from the original mesh.
				[b]Note:[/b] This method typically returns the vertices in reverse order (e.g. clockwise to counterclockwise).

pub fn create_trimesh_shape(&self) -> Option<Ref<Shape, Shared>>[src]

Calculate a [ConcavePolygonShape] from the mesh.

pub fn generate_triangle_mesh(&self) -> Option<Ref<TriangleMesh, Shared>>[src]

Generate a [TriangleMesh] from the mesh.

pub fn get_aabb(&self) -> Aabb[src]

Returns the smallest [AABB] enclosing this mesh in local space. Not affected by [code]custom_aabb[/code]. See also [method VisualInstance.get_transformed_aabb].
				[b]Note:[/b] This is only implemented for [ArrayMesh] and [PrimitiveMesh].

pub fn get_faces(&self) -> TypedArray<Vector3D<f32, UnknownUnit>>[src]

Returns all the vertices that make up the faces of the mesh. Each three vertices represent one triangle.

pub fn lightmap_size_hint(&self) -> Vector2D<f32, UnknownUnit>[src]

Sets a hint to be used for lightmap resolution in [BakedLightmap]. Overrides [member BakedLightmap.bake_default_texels_per_unit].

pub fn get_surface_count(&self) -> i64[src]

Returns the amount of surfaces that the [Mesh] holds.

pub fn set_lightmap_size_hint(&self, size: Vector2D<f32, UnknownUnit>)[src]

Sets a hint to be used for lightmap resolution in [BakedLightmap]. Overrides [member BakedLightmap.bake_default_texels_per_unit].

pub fn surface_get_arrays(&self, surf_idx: i64) -> VariantArray<Shared>[src]

Returns the arrays for the vertices, normals, uvs, etc. that make up the requested surface (see [method ArrayMesh.add_surface_from_arrays]).

pub fn surface_get_blend_shape_arrays(
    &self,
    surf_idx: i64
) -> VariantArray<Shared>
[src]

Returns the blend shape arrays for the requested surface.

pub fn surface_get_material(
    &self,
    surf_idx: i64
) -> Option<Ref<Material, Shared>>
[src]

Returns a [Material] in a given surface. Surface is rendered using this material.

pub fn surface_set_material(
    &self,
    surf_idx: i64,
    material: impl AsArg<Material>
)
[src]

Sets a [Material] for a given surface. Surface will be rendered using this material.

Trait Implementations

impl Debug for ArrayMesh[src]

impl Deref for ArrayMesh[src]

type Target = Mesh

The resulting type after dereferencing.

impl DerefMut for ArrayMesh[src]

impl GodotObject for ArrayMesh[src]

type RefKind = RefCounted

The memory management kind of this type. This modifies the behavior of the Ref smart pointer. See its type-level documentation for more information. Read more

impl Instanciable for ArrayMesh[src]

impl SubClass<Mesh> for ArrayMesh[src]

impl SubClass<Object> for ArrayMesh[src]

impl SubClass<Reference> for ArrayMesh[src]

impl SubClass<Resource> for ArrayMesh[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> SubClass<T> for T where
    T: GodotObject
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.