virtualx-engine/doc/classes/ImmediateGeometry.xml
Hugo Locurcio b087538119
Add an XML schema for documentation
This makes it easier to spot syntax errors when editing the
class reference. The schema is referenced locally so validation
can still work offline.

Each class XML's schema conformance is also checked on GitHub Actions.
2022-03-16 23:01:02 +01:00

92 lines
3.5 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="ImmediateGeometry" inherits="GeometryInstance" version="3.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Draws simple geometry from code.
</brief_description>
<description>
Draws simple geometry from code. Uses a drawing mode similar to OpenGL 1.x.
See also [ArrayMesh], [MeshDataTool] and [SurfaceTool] for procedural geometry generation.
[b]Note:[/b] ImmediateGeometry3D is best suited to small amounts of mesh data that change every frame. It will be slow when handling large amounts of mesh data. If mesh data doesn't change often, use [ArrayMesh], [MeshDataTool] or [SurfaceTool] instead.
[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive modes.
[b]Note:[/b] In case of missing points when handling large amounts of mesh data, try increasing its buffer size limit under [member ProjectSettings.rendering/limits/buffers/immediate_buffer_size_kb].
</description>
<tutorials>
</tutorials>
<methods>
<method name="add_sphere">
<return type="void" />
<argument index="0" name="lats" type="int" />
<argument index="1" name="lons" type="int" />
<argument index="2" name="radius" type="float" />
<argument index="3" name="add_uv" type="bool" default="true" />
<description>
Simple helper to draw an UV sphere with given latitude, longitude and radius.
</description>
</method>
<method name="add_vertex">
<return type="void" />
<argument index="0" name="position" type="Vector3" />
<description>
Adds a vertex in local coordinate space with the currently set color/uv/etc.
</description>
</method>
<method name="begin">
<return type="void" />
<argument index="0" name="primitive" type="int" enum="Mesh.PrimitiveType" />
<argument index="1" name="texture" type="Texture" default="null" />
<description>
Begin drawing (and optionally pass a texture override). When done call [method end]. For more information on how this works, search for [code]glBegin()[/code] and [code]glEnd()[/code] references.
For the type of primitive, see the [enum Mesh.PrimitiveType] enum.
</description>
</method>
<method name="clear">
<return type="void" />
<description>
Clears everything that was drawn using begin/end.
</description>
</method>
<method name="end">
<return type="void" />
<description>
Ends a drawing context and displays the results.
</description>
</method>
<method name="set_color">
<return type="void" />
<argument index="0" name="color" type="Color" />
<description>
The current drawing color.
</description>
</method>
<method name="set_normal">
<return type="void" />
<argument index="0" name="normal" type="Vector3" />
<description>
The next vertex's normal.
</description>
</method>
<method name="set_tangent">
<return type="void" />
<argument index="0" name="tangent" type="Plane" />
<description>
The next vertex's tangent (and binormal facing).
</description>
</method>
<method name="set_uv">
<return type="void" />
<argument index="0" name="uv" type="Vector2" />
<description>
The next vertex's UV.
</description>
</method>
<method name="set_uv2">
<return type="void" />
<argument index="0" name="uv" type="Vector2" />
<description>
The next vertex's second layer UV.
</description>
</method>
</methods>
<constants>
</constants>
</class>