<?xml version="1.0" encoding="UTF-8" ?>
<class name="CSGTorus3D" inherits="CSGPrimitive3D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
	<brief_description>
		A CSG Torus shape.
	</brief_description>
	<description>
		This node allows you to create a torus for use with the CSG system.
		[b]Note:[/b] CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a [MeshInstance3D] with a [PrimitiveMesh]. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
	</description>
	<tutorials>
		<link title="Prototyping levels with CSG">$DOCS_URL/tutorials/3d/csg_tools.html</link>
	</tutorials>
	<members>
		<member name="inner_radius" type="float" setter="set_inner_radius" getter="get_inner_radius" default="0.5">
			The inner radius of the torus.
		</member>
		<member name="material" type="Material" setter="set_material" getter="get_material">
			The material used to render the torus.
		</member>
		<member name="outer_radius" type="float" setter="set_outer_radius" getter="get_outer_radius" default="1.0">
			The outer radius of the torus.
		</member>
		<member name="ring_sides" type="int" setter="set_ring_sides" getter="get_ring_sides" default="6">
			The number of edges each ring of the torus is constructed of.
		</member>
		<member name="sides" type="int" setter="set_sides" getter="get_sides" default="8">
			The number of slices the torus is constructed of.
		</member>
		<member name="smooth_faces" type="bool" setter="set_smooth_faces" getter="get_smooth_faces" default="true">
			If [code]true[/code] the normals of the torus are set to give a smooth effect making the torus seem rounded. If [code]false[/code] the torus will have a flat shaded look.
		</member>
	</members>
</class>