summaryrefslogtreecommitdiff
path: root/doc/classes/MeshDataTool.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/classes/MeshDataTool.xml')
-rw-r--r--doc/classes/MeshDataTool.xml297
1 files changed, 120 insertions, 177 deletions
diff --git a/doc/classes/MeshDataTool.xml b/doc/classes/MeshDataTool.xml
index dcc3bbf2a6..338deed0be 100644
--- a/doc/classes/MeshDataTool.xml
+++ b/doc/classes/MeshDataTool.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MeshDataTool" inherits="Reference" version="4.0">
+<class name="MeshDataTool" inherits="RefCounted" version="4.0">
<brief_description>
Helper tool to access and edit [Mesh] data.
</brief_description>
@@ -7,383 +7,326 @@
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 [method create_from_surface]. When you are finished editing the data commit the data to a mesh with [method commit_to_surface].
Below is an example of how MeshDataTool may be used.
- [codeblock]
+ [codeblocks]
+ [gdscript]
+ var mesh = ArrayMesh.new()
+ mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, BoxMesh.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)
- [/codeblock]
- See also [ArrayMesh], [ImmediateGeometry3D] and [SurfaceTool] for procedural geometry generation.
+ var mi = MeshInstance.new()
+ mi.mesh = mesh
+ add_child(mi)
+ [/gdscript]
+ [csharp]
+ var mesh = new ArrayMesh();
+ mesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, new BoxMesh().GetMeshArrays());
+ var mdt = new MeshDataTool();
+ mdt.CreateFromSurface(mesh, 0);
+ for (var i = 0; i &lt; mdt.GetVertexCount(); i++)
+ {
+ Vector3 vertex = mdt.GetVertex(i);
+ // In this example we extend the mesh by one unit, which results in separated faces as it is flat shaded.
+ vertex += mdt.GetVertexNormal(i);
+ // Save your change.
+ mdt.SetVertex(i, vertex);
+ }
+ mesh.SurfaceRemove(0);
+ mdt.CommitToSurface(mesh);
+ var mi = new MeshInstance();
+ mi.Mesh = mesh;
+ AddChild(mi);
+ [/csharp]
+ [/codeblocks]
+ See also [ArrayMesh], [ImmediateMesh] and [SurfaceTool] for procedural geometry generation.
[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive modes.
</description>
<tutorials>
</tutorials>
<methods>
<method name="clear">
- <return type="void">
- </return>
+ <return type="void" />
<description>
Clears all data currently in MeshDataTool.
</description>
</method>
<method name="commit_to_surface">
- <return type="int" enum="Error">
- </return>
- <argument index="0" name="mesh" type="ArrayMesh">
- </argument>
+ <return type="int" enum="Error" />
+ <argument index="0" name="mesh" type="ArrayMesh" />
<description>
Adds a new surface to specified [Mesh] with edited data.
</description>
</method>
<method name="create_from_surface">
- <return type="int" enum="Error">
- </return>
- <argument index="0" name="mesh" type="ArrayMesh">
- </argument>
- <argument index="1" name="surface" type="int">
- </argument>
+ <return type="int" enum="Error" />
+ <argument index="0" name="mesh" type="ArrayMesh" />
+ <argument index="1" name="surface" type="int" />
<description>
Uses specified surface of given [Mesh] to populate data for MeshDataTool.
Requires [Mesh] with primitive type [constant Mesh.PRIMITIVE_TRIANGLES].
</description>
</method>
<method name="get_edge_count" qualifiers="const">
- <return type="int">
- </return>
+ <return type="int" />
<description>
Returns the number of edges in this [Mesh].
</description>
</method>
<method name="get_edge_faces" qualifiers="const">
- <return type="PackedInt32Array">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="PackedInt32Array" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns array of faces that touch given edge.
</description>
</method>
<method name="get_edge_meta" qualifiers="const">
- <return type="Variant">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="Variant" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns meta information assigned to given edge.
</description>
</method>
<method name="get_edge_vertex" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="vertex" type="int">
- </argument>
+ <return type="int" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="vertex" type="int" />
<description>
Returns index of specified vertex connected to given edge.
Vertex argument can only be 0 or 1 because edges are comprised of two vertices.
</description>
</method>
<method name="get_face_count" qualifiers="const">
- <return type="int">
- </return>
+ <return type="int" />
<description>
Returns the number of faces in this [Mesh].
</description>
</method>
<method name="get_face_edge" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="edge" type="int">
- </argument>
+ <return type="int" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="edge" type="int" />
<description>
Returns specified edge associated with given face.
Edge argument must 2 or less because a face only has three edges.
</description>
</method>
<method name="get_face_meta" qualifiers="const">
- <return type="Variant">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="Variant" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns the metadata associated with the given face.
</description>
</method>
<method name="get_face_normal" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="Vector3" />
+ <argument index="0" name="idx" type="int" />
<description>
Calculates and returns the face normal of the given face.
</description>
</method>
<method name="get_face_vertex" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="vertex" type="int">
- </argument>
+ <return type="int" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="vertex" type="int" />
<description>
Returns the specified vertex of the given face.
Vertex argument must be 2 or less because faces contain three vertices.
</description>
</method>
<method name="get_format" qualifiers="const">
- <return type="int">
- </return>
+ <return type="int" />
<description>
- 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 [code]3[/code] because [constant ArrayMesh.ARRAY_FORMAT_VERTEX] is [code]1[/code] and [constant ArrayMesh.ARRAY_FORMAT_NORMAL] is [code]2[/code].
- See [enum ArrayMesh.ArrayFormat] for a list of format flags.
+ 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 [code]3[/code] because [constant Mesh.ARRAY_FORMAT_VERTEX] is [code]1[/code] and [constant Mesh.ARRAY_FORMAT_NORMAL] is [code]2[/code].
+ See [enum Mesh.ArrayFormat] for a list of format flags.
</description>
</method>
<method name="get_material" qualifiers="const">
- <return type="Material">
- </return>
+ <return type="Material" />
<description>
Returns the material assigned to the [Mesh].
</description>
</method>
<method name="get_vertex" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="Vector3" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns the vertex at given index.
</description>
</method>
<method name="get_vertex_bones" qualifiers="const">
- <return type="PackedInt32Array">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="PackedInt32Array" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns the bones of the given vertex.
</description>
</method>
<method name="get_vertex_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="Color" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns the color of the given vertex.
</description>
</method>
<method name="get_vertex_count" qualifiers="const">
- <return type="int">
- </return>
+ <return type="int" />
<description>
Returns the total number of vertices in [Mesh].
</description>
</method>
<method name="get_vertex_edges" qualifiers="const">
- <return type="PackedInt32Array">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="PackedInt32Array" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns an array of edges that share the given vertex.
</description>
</method>
<method name="get_vertex_faces" qualifiers="const">
- <return type="PackedInt32Array">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="PackedInt32Array" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns an array of faces that share the given vertex.
</description>
</method>
<method name="get_vertex_meta" qualifiers="const">
- <return type="Variant">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="Variant" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns the metadata associated with the given vertex.
</description>
</method>
<method name="get_vertex_normal" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="Vector3" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns the normal of the given vertex.
</description>
</method>
<method name="get_vertex_tangent" qualifiers="const">
- <return type="Plane">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="Plane" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns the tangent of the given vertex.
</description>
</method>
<method name="get_vertex_uv" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="Vector2" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns the UV of the given vertex.
</description>
</method>
<method name="get_vertex_uv2" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="Vector2" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns the UV2 of the given vertex.
</description>
</method>
<method name="get_vertex_weights" qualifiers="const">
- <return type="PackedFloat32Array">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
+ <return type="PackedFloat32Array" />
+ <argument index="0" name="idx" type="int" />
<description>
Returns bone weights of the given vertex.
</description>
</method>
<method name="set_edge_meta">
- <return type="void">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="meta" type="Variant">
- </argument>
+ <return type="void" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="meta" type="Variant" />
<description>
Sets the metadata of the given edge.
</description>
</method>
<method name="set_face_meta">
- <return type="void">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="meta" type="Variant">
- </argument>
+ <return type="void" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="meta" type="Variant" />
<description>
Sets the metadata of the given face.
</description>
</method>
<method name="set_material">
- <return type="void">
- </return>
- <argument index="0" name="material" type="Material">
- </argument>
+ <return type="void" />
+ <argument index="0" name="material" type="Material" />
<description>
Sets the material to be used by newly-constructed [Mesh].
</description>
</method>
<method name="set_vertex">
- <return type="void">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="vertex" type="Vector3">
- </argument>
+ <return type="void" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="vertex" type="Vector3" />
<description>
Sets the position of the given vertex.
</description>
</method>
<method name="set_vertex_bones">
- <return type="void">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="bones" type="PackedInt32Array">
- </argument>
+ <return type="void" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="bones" type="PackedInt32Array" />
<description>
Sets the bones of the given vertex.
</description>
</method>
<method name="set_vertex_color">
- <return type="void">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
+ <return type="void" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="color" type="Color" />
<description>
Sets the color of the given vertex.
</description>
</method>
<method name="set_vertex_meta">
- <return type="void">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="meta" type="Variant">
- </argument>
+ <return type="void" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="meta" type="Variant" />
<description>
Sets the metadata associated with the given vertex.
</description>
</method>
<method name="set_vertex_normal">
- <return type="void">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="normal" type="Vector3">
- </argument>
+ <return type="void" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="normal" type="Vector3" />
<description>
Sets the normal of the given vertex.
</description>
</method>
<method name="set_vertex_tangent">
- <return type="void">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="tangent" type="Plane">
- </argument>
+ <return type="void" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="tangent" type="Plane" />
<description>
Sets the tangent of the given vertex.
</description>
</method>
<method name="set_vertex_uv">
- <return type="void">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="uv" type="Vector2">
- </argument>
+ <return type="void" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="uv" type="Vector2" />
<description>
Sets the UV of the given vertex.
</description>
</method>
<method name="set_vertex_uv2">
- <return type="void">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="uv2" type="Vector2">
- </argument>
+ <return type="void" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="uv2" type="Vector2" />
<description>
Sets the UV2 of the given vertex.
</description>
</method>
<method name="set_vertex_weights">
- <return type="void">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="weights" type="PackedFloat32Array">
- </argument>
+ <return type="void" />
+ <argument index="0" name="idx" type="int" />
+ <argument index="1" name="weights" type="PackedFloat32Array" />
<description>
Sets the bone weights of the given vertex.
</description>