mirror of
https://github.com/godotengine/godot.git
synced 2024-11-23 20:53:15 +00:00
Allow a top and bottom radius equal to 0 in CylinderMesh
The CylinderMesh generation code handles this special case and avoids generating the top and bottom faces if their radius is equal to 0. This improves performance by reducing the number of vertices to draw. If both values are set to 0, nothing will be visible but the mesh generation will still succeed. This also improves the CylinderMesh class documentation.
This commit is contained in:
parent
3cb153f746
commit
b4ed84ba2b
@ -4,7 +4,7 @@
|
||||
Class representing a cylindrical [PrimitiveMesh].
|
||||
</brief_description>
|
||||
<description>
|
||||
Class representing a cylindrical [PrimitiveMesh]. This class can be used to create cones by setting either the [member top_radius] or [member bottom_radius] properties to 0.0.
|
||||
Class representing a cylindrical [PrimitiveMesh]. This class can be used to create cones by setting either the [member top_radius] or [member bottom_radius] properties to [code]0.0[/code].
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
@ -12,19 +12,19 @@
|
||||
</methods>
|
||||
<members>
|
||||
<member name="bottom_radius" type="float" setter="set_bottom_radius" getter="get_bottom_radius" default="1.0">
|
||||
Bottom radius of the cylinder.
|
||||
Bottom radius of the cylinder. If set to [code]0.0[/code], the bottom faces will not be generated, resulting in a conic shape.
|
||||
</member>
|
||||
<member name="height" type="float" setter="set_height" getter="get_height" default="2.0">
|
||||
Full height of the cylinder.
|
||||
</member>
|
||||
<member name="radial_segments" type="int" setter="set_radial_segments" getter="get_radial_segments" default="64">
|
||||
Number of radial segments on the cylinder.
|
||||
Number of radial segments on the cylinder. Higher values result in a more detailed cylinder/cone at the cost of performance.
|
||||
</member>
|
||||
<member name="rings" type="int" setter="set_rings" getter="get_rings" default="4">
|
||||
Number of edge rings along the height of the cylinder.
|
||||
Number of edge rings along the height of the cylinder. Changing [member rings] does not have any visual impact unless a shader or procedural mesh tool is used to alter the vertex data. Higher values result in more subdivisions, which can be used to create smoother-looking effects with shaders or procedural mesh tools (at the cost of performance). When not altering the vertex data using a shader or procedural mesh tool, [member rings] should be kept to its default value.
|
||||
</member>
|
||||
<member name="top_radius" type="float" setter="set_top_radius" getter="get_top_radius" default="1.0">
|
||||
Top radius of the cylinder.
|
||||
Top radius of the cylinder. If set to [code]0.0[/code], the top faces will not be generated, resulting in a conic shape.
|
||||
</member>
|
||||
</members>
|
||||
<constants>
|
||||
|
@ -866,9 +866,9 @@ void CylinderMesh::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("set_rings", "rings"), &CylinderMesh::set_rings);
|
||||
ClassDB::bind_method(D_METHOD("get_rings"), &CylinderMesh::get_rings);
|
||||
|
||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "top_radius", PROPERTY_HINT_RANGE, "0.001,100.0,0.001,or_greater"), "set_top_radius", "get_top_radius");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "bottom_radius", PROPERTY_HINT_RANGE, "0.001,100.0,0.001,or_greater"), "set_bottom_radius", "get_bottom_radius");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "height", PROPERTY_HINT_RANGE, "0.001,100.0,0.001,or_greater"), "set_height", "get_height");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "top_radius", PROPERTY_HINT_RANGE, "0,100,0.001,or_greater"), "set_top_radius", "get_top_radius");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "bottom_radius", PROPERTY_HINT_RANGE, "0,100,0.001,or_greater"), "set_bottom_radius", "get_bottom_radius");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "height", PROPERTY_HINT_RANGE, "0.001,100,0.001,or_greater"), "set_height", "get_height");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "radial_segments", PROPERTY_HINT_RANGE, "1,100,1,or_greater"), "set_radial_segments", "get_radial_segments");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "rings", PROPERTY_HINT_RANGE, "1,100,1,or_greater"), "set_rings", "get_rings");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user