MeshDataTool

Inherits: Reference < Object

Herramienta de ayuda para acceder y editar los datos de la Mesh.

Descripción

MeshDataTool provides access to individual vertices in a Mesh. It allows users to read and edit vertex data of meshes. It also creates an array of faces and edges.

To use MeshDataTool, load a mesh with create_from_surface. When you are finished editing the data commit the data to a mesh with commit_to_surface.

Below is an example of how MeshDataTool may be used.

var mesh = ArrayMesh.new()
mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, CubeMesh.new().get_mesh_arrays())
var mdt = MeshDataTool.new()
mdt.create_from_surface(mesh, 0)
for i in range(mdt.get_vertex_count()):
    var vertex = mdt.get_vertex(i)
    # In this example we extend the mesh by one unit, which results in separated faces as it is flat shaded.
    vertex += mdt.get_vertex_normal(i)
    # Save your change.
    mdt.set_vertex(i, vertex)
mesh.surface_remove(0)
mdt.commit_to_surface(mesh)
var mi = MeshInstance.new()
mi.mesh = mesh
add_child(mi)

See also ArrayMesh, ImmediateGeometry and SurfaceTool for procedural geometry generation.

Note: Godot uses clockwise winding order for front faces of triangle primitive modes.

Métodos

void

clear ( )

Error

commit_to_surface ( ArrayMesh mesh )

Error

create_from_surface ( ArrayMesh mesh, int surface )

int

get_edge_count ( ) const

PoolIntArray

get_edge_faces ( int idx ) const

Variant

get_edge_meta ( int idx ) const

int

get_edge_vertex ( int idx, int vertex ) const

int

get_face_count ( ) const

int

get_face_edge ( int idx, int edge ) const

Variant

get_face_meta ( int idx ) const

Vector3

get_face_normal ( int idx ) const

int

get_face_vertex ( int idx, int vertex ) const

int

get_format ( ) const

Material

get_material ( ) const

Vector3

get_vertex ( int idx ) const

PoolIntArray

get_vertex_bones ( int idx ) const

Color

get_vertex_color ( int idx ) const

int

get_vertex_count ( ) const

PoolIntArray

get_vertex_edges ( int idx ) const

PoolIntArray

get_vertex_faces ( int idx ) const

Variant

get_vertex_meta ( int idx ) const

Vector3

get_vertex_normal ( int idx ) const

Plane

get_vertex_tangent ( int idx ) const

Vector2

get_vertex_uv ( int idx ) const

Vector2

get_vertex_uv2 ( int idx ) const

PoolRealArray

get_vertex_weights ( int idx ) const

void

set_edge_meta ( int idx, Variant meta )

void

set_face_meta ( int idx, Variant meta )

void

set_material ( Material material )

void

set_vertex ( int idx, Vector3 vertex )

void

set_vertex_bones ( int idx, PoolIntArray bones )

void

set_vertex_color ( int idx, Color color )

void

set_vertex_meta ( int idx, Variant meta )

void

set_vertex_normal ( int idx, Vector3 normal )

void

set_vertex_tangent ( int idx, Plane tangent )

void

set_vertex_uv ( int idx, Vector2 uv )

void

set_vertex_uv2 ( int idx, Vector2 uv2 )

void

set_vertex_weights ( int idx, PoolRealArray weights )

Descripciones de Métodos

  • void clear ( )

Borra todos los datos que actualmente están en la MeshDataTool.


Añade una nueva superficie a la Mesh especificada con datos editados.


Utiliza la superficie especificada de la Mesh dada para poblar los datos de la MeshDataTool.

Requiere Mesh con el tipo primitivo Mesh.PRIMITIVE_TRIANGLES.


  • int get_edge_count ( ) const

Devuelve el número de bordes en esta Mesh.


Devuelve el conjunto de rostros que tocan el borde dado.


Devuelve la meta información asignada a un borde dado.


  • int get_edge_vertex ( int idx, int vertex ) const

Devuelve el índice de un vértice específico conectado a un borde determinado.

El argumento de vértice sólo puede ser 0 o 1 porque los bordes están compuestos por dos vértices.


  • int get_face_count ( ) const

Devuelve el número de caras en esta Mesh.


  • int get_face_edge ( int idx, int edge ) const

Devuelve un borde específico asociado a una cara determinada.

El argumento de borde debe ser 2 o menos porque una cara sólo tiene tres bordes.


Devuelve los metadatos asociados con la cara dada.


Calcula y devuelve la cara normal de la cara dada.


  • int get_face_vertex ( int idx, int vertex ) const

Devuelve el vértice especificado de la cara dada.

El argumento del vértice debe ser 2 o menos porque las caras contienen tres vértices.


  • int get_format ( ) const

Devuelve el formato de la Mesh. El formato es un entero compuesto de banderas de formato Mesh combinadas entre sí. Por ejemplo, una malla que contiene tanto vértices como normales devolvería un formato de 3 porque ArrayMesh.ARRAY_FORMAT_VERTEX es 1 y ArrayMesh.ARRAY_FORMAT_NORMAL es 2.

Ver ArrayFormat para una lista de flags de formato.


Devuelve el material asignado a la Mesh.


Devuelve el vértice en un índice determinado.


Devuelve los huesos del vértice dado.


  • Color get_vertex_color ( int idx ) const

Devuelve el color del vértice dado.


  • int get_vertex_count ( ) const

Devuelve el número total de vértices en Mesh.


Devuelve un array de bordes que comparten el vértice dado.


Devuelve un array de caras que comparten el vértice dado.


Devuelve los metadatos asociados con el vértice dado.


Devuelve la normal del vértice dado.


  • Plane get_vertex_tangent ( int idx ) const

Devuelve la tangente del vértice dado.


Devuelve el UV del vértice dado.


Devuelve el UV2 del vértice dado.


Devuelve los pesos del hueso del vértice dado.


Establece los metadatos del borde dado.


Establece los metadatos de la cara dada.


  • void set_material ( Material material )

Establece el material a ser usado por la Mesh recién construida.


Establece la posición del vértice dado.


Establece los huesos del vértice dado.


  • void set_vertex_color ( int idx, Color color )

Establece el color del vértice dado.


Establece los metadatos asociados con el vértice dado.


  • void set_vertex_normal ( int idx, Vector3 normal )

Establece la normal del vértice dado.


  • void set_vertex_tangent ( int idx, Plane tangent )

Establece la tangente del vértice dado.


Establece el UV del vértice dado.


Establece el UV2 del vértice dado.


Establece los pesos del hueso del vértice dado.