diff options
Diffstat (limited to 'doc/classes/MeshDataTool.xml')
-rw-r--r-- | doc/classes/MeshDataTool.xml | 297 |
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 < 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> |