MeshDataTool
Helper tool to access and edit Mesh data.
Description
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 mdt = MeshDataTool.new() mdt.create_from_surface(mesh, 0) for i in range(mdt.get_vertex_count()): var vertex = mdt.get_vertex(i) ... mdt.set_vertex(i, vertex) mesh.surface_remove(0) mdt.commit_to_surface(mesh)
See also ArrayMesh, ImmediateGeometry and SurfaceTool for procedural geometry generation.
Note: Godot uses clockwise winding order for front faces of triangle primitive modes.
Methods
Method Descriptions
void clear ( )
Clears all data currently in MeshDataTool.
Error commit_to_surface ( ArrayMesh mesh )
Adds a new surface to specified Mesh with edited data.
Error create_from_surface ( ArrayMesh mesh, int surface )
Uses specified surface of given Mesh to populate data for MeshDataTool.
Requires Mesh with primitive type Mesh.PRIMITIVE_TRIANGLES.
int get_edge_count ( ) const
Returns the number of edges in this Mesh.
PoolIntArray get_edge_faces ( int idx ) const
Returns array of faces that touch given edge.
Variant get_edge_meta ( int idx ) const
Returns meta information assigned to given edge.
int get_edge_vertex ( int idx, int vertex ) const
Returns index of specified vertex connected to given edge.
Vertex argument can only be 0 or 1 because edges are comprised of two vertices.
int get_face_count ( ) const
Returns the number of faces in this Mesh.
int get_face_edge ( int idx, int edge ) const
Returns specified edge associated with given face.
Edge argument must 2 or less because a face only has three edges.
Variant get_face_meta ( int idx ) const
Returns the metadata associated with the given face.
Vector3 get_face_normal ( int idx ) const
Calculates and returns the face normal of the given face.
int get_face_vertex ( int idx, int vertex ) const
Returns the specified vertex of the given face.
Vertex argument must be 2 or less because faces contain three vertices.
int get_format ( ) const
Returns the Mesh's format. Format is an integer made up of Mesh format flags combined together. For example, a mesh containing both vertices and normals would return a format of 3
because ArrayMesh.ARRAY_FORMAT_VERTEX is 1
and ArrayMesh.ARRAY_FORMAT_NORMAL is 2
.
See ArrayFormat for a list of format flags.
Material get_material ( ) const
Returns the material assigned to the Mesh.
Vector3 get_vertex ( int idx ) const
Returns the vertex at given index.
PoolIntArray get_vertex_bones ( int idx ) const
Returns the bones of the given vertex.
Color get_vertex_color ( int idx ) const
Returns the color of the given vertex.
int get_vertex_count ( ) const
Returns the total number of vertices in Mesh.
PoolIntArray get_vertex_edges ( int idx ) const
Returns an array of edges that share the given vertex.
PoolIntArray get_vertex_faces ( int idx ) const
Returns an array of faces that share the given vertex.
Variant get_vertex_meta ( int idx ) const
Returns the metadata associated with the given vertex.
Vector3 get_vertex_normal ( int idx ) const
Returns the normal of the given vertex.
Plane get_vertex_tangent ( int idx ) const
Returns the tangent of the given vertex.
Vector2 get_vertex_uv ( int idx ) const
Returns the UV of the given vertex.
Vector2 get_vertex_uv2 ( int idx ) const
Returns the UV2 of the given vertex.
PoolRealArray get_vertex_weights ( int idx ) const
Returns bone weights of the given vertex.
void set_edge_meta ( int idx, Variant meta )
Sets the metadata of the given edge.
void set_face_meta ( int idx, Variant meta )
Sets the metadata of the given face.
void set_material ( Material material )
Sets the material to be used by newly-constructed Mesh.
void set_vertex ( int idx, Vector3 vertex )
Sets the position of the given vertex.
void set_vertex_bones ( int idx, PoolIntArray bones )
Sets the bones of the given vertex.
void set_vertex_color ( int idx, Color color )
Sets the color of the given vertex.
void set_vertex_meta ( int idx, Variant meta )
Sets the metadata associated with the given vertex.
void set_vertex_normal ( int idx, Vector3 normal )
Sets the normal of the given vertex.
void set_vertex_tangent ( int idx, Plane tangent )
Sets the tangent of the given vertex.
void set_vertex_uv ( int idx, Vector2 uv )
Sets the UV of the given vertex.
void set_vertex_uv2 ( int idx, Vector2 uv2 )
Sets the UV2 of the given vertex.
void set_vertex_weights ( int idx, PoolRealArray weights )
Sets the bone weights of the given vertex.
© 2014–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
https://docs.godotengine.org/en/3.2/classes/class_meshdatatool.html