<?xml version="1.0" encoding="UTF-8" ?>
<class name="LimitAngularVelocityModifier3D" inherits="SkeletonModifier3D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Limit bone rotation angular velocity.
	</brief_description>
	<description>
		This modifier limits bone rotation angular velocity by comparing poses between previous and current frame.
		You can add bone chains by specifying their root and end bones, then add the bones between them to a list. Modifier processes either that list or the bones excluding those in the list depending on the option [member exclude].
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="clear_chains">
			<return type="void" />
			<description>
				Clear all chains.
			</description>
		</method>
		<method name="get_end_bone" qualifiers="const">
			<return type="int" />
			<param index="0" name="index" type="int" />
			<description>
				Returns the end bone index of the bone chain.
			</description>
		</method>
		<method name="get_end_bone_name" qualifiers="const">
			<return type="String" />
			<param index="0" name="index" type="int" />
			<description>
				Returns the end bone name of the bone chain.
			</description>
		</method>
		<method name="get_root_bone" qualifiers="const">
			<return type="int" />
			<param index="0" name="index" type="int" />
			<description>
				Returns the root bone index of the bone chain.
			</description>
		</method>
		<method name="get_root_bone_name" qualifiers="const">
			<return type="String" />
			<param index="0" name="index" type="int" />
			<description>
				Returns the root bone name of the bone chain.
			</description>
		</method>
		<method name="reset">
			<return type="void" />
			<description>
				Sets the reference pose for angle comparison to the current pose with the influence of constraints removed. This function is automatically triggered when joints change or upon activation.
			</description>
		</method>
		<method name="set_end_bone">
			<return type="void" />
			<param index="0" name="index" type="int" />
			<param index="1" name="bone" type="int" />
			<description>
				Sets the end bone index of the bone chain.
			</description>
		</method>
		<method name="set_end_bone_name">
			<return type="void" />
			<param index="0" name="index" type="int" />
			<param index="1" name="bone_name" type="String" />
			<description>
				Sets the end bone name of the bone chain.
				[b]Note:[/b] End bone must be the root bone or a child of the root bone.
			</description>
		</method>
		<method name="set_root_bone">
			<return type="void" />
			<param index="0" name="index" type="int" />
			<param index="1" name="bone" type="int" />
			<description>
				Sets the root bone index of the bone chain.
			</description>
		</method>
		<method name="set_root_bone_name">
			<return type="void" />
			<param index="0" name="index" type="int" />
			<param index="1" name="bone_name" type="String" />
			<description>
				Sets the root bone name of the bone chain.
			</description>
		</method>
	</methods>
	<members>
		<member name="chain_count" type="int" setter="set_chain_count" getter="get_chain_count" default="0">
			The number of chains.
		</member>
		<member name="exclude" type="bool" setter="set_exclude" getter="is_exclude" default="false">
			If [code]true[/code], the modifier processes bones not included in the bone list.
			If [code]false[/code], the bones processed by the modifier are equal to the bone list.
		</member>
		<member name="joint_count" type="int" setter="" getter="_get_joint_count" default="0">
			The number of joints in the list which created by chains dynamically.
		</member>
		<member name="max_angular_velocity" type="float" setter="set_max_angular_velocity" getter="get_max_angular_velocity" default="6.2831855">
			The maximum angular velocity per second.
		</member>
	</members>
</class>
