:github_url: hide .. Generated automatically by doc/tools/makerst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the MeshDataTool.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_MeshDataTool: MeshDataTool ============ **Inherits:** :ref:`Reference` **<** :ref:`Object` **Category:** Core Brief Description ----------------- Helper tool to access and edit :ref:`Mesh` data. Methods ------- +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`clear` **(** **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Error` | :ref:`commit_to_surface` **(** :ref:`ArrayMesh` mesh **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Error` | :ref:`create_from_surface` **(** :ref:`ArrayMesh` mesh, :ref:`int` surface **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_edge_count` **(** **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PoolIntArray` | :ref:`get_edge_faces` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_edge_meta` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_edge_vertex` **(** :ref:`int` idx, :ref:`int` vertex **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_face_count` **(** **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_face_edge` **(** :ref:`int` idx, :ref:`int` edge **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_face_meta` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`get_face_normal` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_face_vertex` **(** :ref:`int` idx, :ref:`int` vertex **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_format` **(** **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Material` | :ref:`get_material` **(** **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`get_vertex` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PoolIntArray` | :ref:`get_vertex_bones` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Color` | :ref:`get_vertex_color` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_vertex_count` **(** **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PoolIntArray` | :ref:`get_vertex_edges` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PoolIntArray` | :ref:`get_vertex_faces` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_vertex_meta` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`get_vertex_normal` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Plane` | :ref:`get_vertex_tangent` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_vertex_uv` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_vertex_uv2` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PoolRealArray` | :ref:`get_vertex_weights` **(** :ref:`int` idx **)** const | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_edge_meta` **(** :ref:`int` idx, :ref:`Variant` meta **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_face_meta` **(** :ref:`int` idx, :ref:`Variant` meta **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_material` **(** :ref:`Material` material **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_vertex` **(** :ref:`int` idx, :ref:`Vector3` vertex **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_vertex_bones` **(** :ref:`int` idx, :ref:`PoolIntArray` bones **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_vertex_color` **(** :ref:`int` idx, :ref:`Color` color **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_vertex_meta` **(** :ref:`int` idx, :ref:`Variant` meta **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_vertex_normal` **(** :ref:`int` idx, :ref:`Vector3` normal **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_vertex_tangent` **(** :ref:`int` idx, :ref:`Plane` tangent **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_vertex_uv` **(** :ref:`int` idx, :ref:`Vector2` uv **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_vertex_uv2` **(** :ref:`int` idx, :ref:`Vector2` uv2 **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_vertex_weights` **(** :ref:`int` idx, :ref:`PoolRealArray` weights **)** | +-------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Description ----------- The MeshDataTool provides access to individual vertices in a :ref:`Mesh`. It allows users to read and edit vertex data of meshes. It also creates an array of faces and edges. To use the MeshDataTool, load a mesh with :ref:`create_from_surface`. When you are finished editing the data commit the data to a mesh with :ref:`commit_to_surface`. Below is an example of how the 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) Method Descriptions ------------------- .. _class_MeshDataTool_method_clear: - void **clear** **(** **)** Clears all data currently in MeshDataTool. ---- .. _class_MeshDataTool_method_commit_to_surface: - :ref:`Error` **commit_to_surface** **(** :ref:`ArrayMesh` mesh **)** Adds a new surface to specified :ref:`Mesh` with edited data. ---- .. _class_MeshDataTool_method_create_from_surface: - :ref:`Error` **create_from_surface** **(** :ref:`ArrayMesh` mesh, :ref:`int` surface **)** Uses specified surface of given :ref:`Mesh` to populate data for MeshDataTool. Requires :ref:`Mesh` with primitive type :ref:`Mesh.PRIMITIVE_TRIANGLES`. ---- .. _class_MeshDataTool_method_get_edge_count: - :ref:`int` **get_edge_count** **(** **)** const Returns the number of edges in this :ref:`Mesh`. ---- .. _class_MeshDataTool_method_get_edge_faces: - :ref:`PoolIntArray` **get_edge_faces** **(** :ref:`int` idx **)** const Returns array of faces that touch given edge. ---- .. _class_MeshDataTool_method_get_edge_meta: - :ref:`Variant` **get_edge_meta** **(** :ref:`int` idx **)** const Returns meta information assigned to given edge. ---- .. _class_MeshDataTool_method_get_edge_vertex: - :ref:`int` **get_edge_vertex** **(** :ref:`int` idx, :ref:`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. ---- .. _class_MeshDataTool_method_get_face_count: - :ref:`int` **get_face_count** **(** **)** const Returns the number of faces in this :ref:`Mesh`. ---- .. _class_MeshDataTool_method_get_face_edge: - :ref:`int` **get_face_edge** **(** :ref:`int` idx, :ref:`int` edge **)** const Returns specified edge associated with given face. Edge argument must 2 or less because a face only has three edges. ---- .. _class_MeshDataTool_method_get_face_meta: - :ref:`Variant` **get_face_meta** **(** :ref:`int` idx **)** const Returns meta data associated with given face. ---- .. _class_MeshDataTool_method_get_face_normal: - :ref:`Vector3` **get_face_normal** **(** :ref:`int` idx **)** const Calculates and returns face normal of given face. ---- .. _class_MeshDataTool_method_get_face_vertex: - :ref:`int` **get_face_vertex** **(** :ref:`int` idx, :ref:`int` vertex **)** const Returns specified vertex of given face. Vertex argument must be 2 or less because faces contain three vertices. ---- .. _class_MeshDataTool_method_get_format: - :ref:`int` **get_format** **(** **)** const Returns format of :ref:`Mesh`. Format is an integer made up of :ref:`Mesh` format flags combined together. For example, a mesh containing both vertices and normals would return a format of ``3`` because :ref:`ArrayMesh.ARRAY_FORMAT_VERTEX` is ``1`` and :ref:`ArrayMesh.ARRAY_FORMAT_NORMAL` is ``2``. For list of format flags see :ref:`ArrayFormat`. ---- .. _class_MeshDataTool_method_get_material: - :ref:`Material` **get_material** **(** **)** const Returns material assigned to the :ref:`Mesh`. ---- .. _class_MeshDataTool_method_get_vertex: - :ref:`Vector3` **get_vertex** **(** :ref:`int` idx **)** const Returns the vertex at given index. ---- .. _class_MeshDataTool_method_get_vertex_bones: - :ref:`PoolIntArray` **get_vertex_bones** **(** :ref:`int` idx **)** const Returns the bones of the given vertex. ---- .. _class_MeshDataTool_method_get_vertex_color: - :ref:`Color` **get_vertex_color** **(** :ref:`int` idx **)** const Returns the color of the given vertex. ---- .. _class_MeshDataTool_method_get_vertex_count: - :ref:`int` **get_vertex_count** **(** **)** const Returns the total number of vertices in :ref:`Mesh`. ---- .. _class_MeshDataTool_method_get_vertex_edges: - :ref:`PoolIntArray` **get_vertex_edges** **(** :ref:`int` idx **)** const Returns array of edges that share given vertex. ---- .. _class_MeshDataTool_method_get_vertex_faces: - :ref:`PoolIntArray` **get_vertex_faces** **(** :ref:`int` idx **)** const Returns array of faces that share given vertex. ---- .. _class_MeshDataTool_method_get_vertex_meta: - :ref:`Variant` **get_vertex_meta** **(** :ref:`int` idx **)** const Returns meta data associated with given vertex. ---- .. _class_MeshDataTool_method_get_vertex_normal: - :ref:`Vector3` **get_vertex_normal** **(** :ref:`int` idx **)** const Returns normal of given vertex. ---- .. _class_MeshDataTool_method_get_vertex_tangent: - :ref:`Plane` **get_vertex_tangent** **(** :ref:`int` idx **)** const Returns tangent of given vertex. ---- .. _class_MeshDataTool_method_get_vertex_uv: - :ref:`Vector2` **get_vertex_uv** **(** :ref:`int` idx **)** const Returns UV of given vertex. ---- .. _class_MeshDataTool_method_get_vertex_uv2: - :ref:`Vector2` **get_vertex_uv2** **(** :ref:`int` idx **)** const Returns UV2 of given vertex. ---- .. _class_MeshDataTool_method_get_vertex_weights: - :ref:`PoolRealArray` **get_vertex_weights** **(** :ref:`int` idx **)** const Returns bone weights of given vertex. ---- .. _class_MeshDataTool_method_set_edge_meta: - void **set_edge_meta** **(** :ref:`int` idx, :ref:`Variant` meta **)** Sets the meta data of given edge. ---- .. _class_MeshDataTool_method_set_face_meta: - void **set_face_meta** **(** :ref:`int` idx, :ref:`Variant` meta **)** Sets the meta data of given face. ---- .. _class_MeshDataTool_method_set_material: - void **set_material** **(** :ref:`Material` material **)** Sets the material to be used by newly constructed :ref:`Mesh`. ---- .. _class_MeshDataTool_method_set_vertex: - void **set_vertex** **(** :ref:`int` idx, :ref:`Vector3` vertex **)** Sets the position of given vertex. ---- .. _class_MeshDataTool_method_set_vertex_bones: - void **set_vertex_bones** **(** :ref:`int` idx, :ref:`PoolIntArray` bones **)** Sets the bones of given vertex. ---- .. _class_MeshDataTool_method_set_vertex_color: - void **set_vertex_color** **(** :ref:`int` idx, :ref:`Color` color **)** Sets the color of given vertex. ---- .. _class_MeshDataTool_method_set_vertex_meta: - void **set_vertex_meta** **(** :ref:`int` idx, :ref:`Variant` meta **)** Sets the meta data associated with given vertex. ---- .. _class_MeshDataTool_method_set_vertex_normal: - void **set_vertex_normal** **(** :ref:`int` idx, :ref:`Vector3` normal **)** Sets the normal of given vertex. ---- .. _class_MeshDataTool_method_set_vertex_tangent: - void **set_vertex_tangent** **(** :ref:`int` idx, :ref:`Plane` tangent **)** Sets the tangent of given vertex. ---- .. _class_MeshDataTool_method_set_vertex_uv: - void **set_vertex_uv** **(** :ref:`int` idx, :ref:`Vector2` uv **)** Sets the UV of given vertex. ---- .. _class_MeshDataTool_method_set_vertex_uv2: - void **set_vertex_uv2** **(** :ref:`int` idx, :ref:`Vector2` uv2 **)** Sets the UV2 of given vertex. ---- .. _class_MeshDataTool_method_set_vertex_weights: - void **set_vertex_weights** **(** :ref:`int` idx, :ref:`PoolRealArray` weights **)** Sets the bone weights of given vertex.