<?xml version="1.0" encoding="UTF-8" ?>
<class name="ArrayOccluder3D" inherits="Occluder3D" api_type="core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		3D polygon shape for use with occlusion culling in [OccluderInstance3D].
	</brief_description>
	<description>
		[ArrayOccluder3D] stores an arbitrary 3D polygon shape that can be used by the engine's occlusion culling system. This is analogous to [ArrayMesh], but for occluders.
		See [OccluderInstance3D]'s documentation for instructions on setting up occlusion culling.
	</description>
	<tutorials>
		<link title="Occlusion culling">$DOCS_URL/tutorials/3d/occlusion_culling.html</link>
	</tutorials>
	<methods>
		<method name="set_arrays">
			<return type="void" />
			<param index="0" name="vertices" type="PackedVector3Array" />
			<param index="1" name="indices" type="PackedInt32Array" />
			<description>
				Sets [member indices] and [member vertices], while updating the final occluder only once after both values are set.
			</description>
		</method>
	</methods>
	<members>
		<member name="indices" type="PackedInt32Array" setter="set_indices" getter="get_indices" default="PackedInt32Array()">
			The occluder's index position. Indices determine which points from the [member vertices] array should be drawn, and in which order.
			[b]Note:[/b] The occluder is always updated after setting this value. If creating occluders procedurally, consider using [method set_arrays] instead to avoid updating the occluder twice when it's created.
		</member>
		<member name="vertices" type="PackedVector3Array" setter="set_vertices" getter="get_vertices" default="PackedVector3Array()">
			The occluder's vertex positions in local 3D coordinates.
			[b]Note:[/b] The occluder is always updated after setting this value. If creating occluders procedurally, consider using [method set_arrays] instead to avoid updating the occluder twice when it's created.
		</member>
	</members>
</class>
