<?xml version="1.0" encoding="UTF-8" ?>
<class name="VisibleOnScreenNotifier3D" inherits="VisualInstance3D" api_type="core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		A box-shaped region of 3D space that detects whether it is visible on screen.
	</brief_description>
	<description>
		[VisibleOnScreenNotifier3D] represents a box-shaped region of 3D space. When any part of this region becomes visible on screen or in a [Camera3D]'s view, it will emit a [signal screen_entered] signal, and likewise it will emit a [signal screen_exited] signal when no part of it remains visible.
		If you want a node to be enabled automatically when this region is visible on screen, use [VisibleOnScreenEnabler3D].
		[b]Note:[/b] [VisibleOnScreenNotifier3D] uses an approximate heuristic that doesn't take walls and other occlusion into account, unless occlusion culling is used. It also won't function unless [member Node3D.visible] is set to [code]true[/code].
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="is_on_screen" qualifiers="const">
			<return type="bool" />
			<description>
				Returns [code]true[/code] if the bounding box is on the screen.
				[b]Note:[/b] It takes one frame for the [VisibleOnScreenNotifier3D]'s visibility to be assessed once added to the scene tree, so this method will always return [code]false[/code] right after it is instantiated.
			</description>
		</method>
	</methods>
	<members>
		<member name="aabb" type="AABB" setter="set_aabb" getter="get_aabb" default="AABB(-1, -1, -1, 2, 2, 2)">
			The [VisibleOnScreenNotifier3D]'s bounding box.
		</member>
	</members>
	<signals>
		<signal name="screen_entered">
			<description>
				Emitted when the [VisibleOnScreenNotifier3D] enters the screen.
			</description>
		</signal>
		<signal name="screen_exited">
			<description>
				Emitted when the [VisibleOnScreenNotifier3D] exits the screen.
			</description>
		</signal>
	</signals>
</class>
