<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<!--This is an automatically generated file. DO NOT EDIT THIS FILE DIRECTLY. Rather, use the _ref.xml files found in the 'edits' folder.-->
<c74object name="jit.phys.6dof" module="jit" category="Jitter Physics">
	<digest>
		A six degrees of freedom constraint in a physics world
	</digest>
	<description>
		The <o>jit.phys.6dof</o> allows for linear and angular constraints of any of the three axes. Each axis can be either locked, free or limited. If only a single body is bound, it is constrained to a point in world space.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			TEXT_HERE
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				messages in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				connect to jit.phys.body 1
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				connect to jit.phys.body 2
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" type="OUTLET_TYPE">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--MESSAGES-->
	<methodlist>
		<method name="reset">
			<arglist />
			<digest>
				Return attached objects to original position and remove forces
			</digest>
			<description>
				Removes any current forces and returns the attached objects to their original position.
			</description>
		</method>
	</methodlist>
	<jittermethodlist>
		<jittermethod name="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="importattrs" />
		<jittermethod name="summary" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="bias" get="1" set="1" type="float" size="1">
			<digest>
				Magnitude of the limit's position correction
			</digest>
			<description>
				Sets the magnitude of the limit's position correction (i.e. ow strictly the position error is corrected). For most cases, this attribute value should not be greater than 1 (default = 0.3).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Bias" />
			</attributelist>
		</attribute>
		<attribute name="body1" get="1" set="1" type="symbol" size="1">
			<digest>
				First body to constrain
			</digest>
			<description>
				The name of the first <o>jit.phys.body</o> to constrain.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Body1" />
			</attributelist>
		</attribute>
		<attribute name="body2" get="1" set="1" type="symbol" size="1">
			<digest>
				Second body to constrain
			</digest>
			<description>
				The name of the second <o>jit.phys.body</o> to constrain.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Body2" />
			</attributelist>
		</attribute>
		<attribute name="collisions" get="1" set="1" type="int" size="1">
			<digest>
				Collision enable
			</digest>
			<description>
				Enables collisions between attached bodies (default = 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Collisions" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="enable" get="1" set="1" type="int" size="1">
			<digest>
				Enable simulation
			</digest>
			<description>
				Enable this constraint in the physics simulation (default = 1).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Enable" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="lowerlimit_ang" get="1" set="1" type="float" size="3">
			<digest>
				Lower limits of rotation
			</digest>
			<description>
				The lower limits of allowed rotation in degrees (default = 1 1 1). If lowerlimit is greater than upper limit, no limits are applied to the constraint axis.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Lower Limit Angular" />
			</attributelist>
		</attribute>
		<attribute name="lowerlimit_lin" get="1" set="1" type="float" size="3">
			<digest>
				Lower limits of translation
			</digest>
			<description>
				The lower limits of allowed translation (default = 0 0 0). If lowerlimit is greater than upper limit, no limits are applied to the constraint axis.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Lower Limit Linear" />
			</attributelist>
		</attribute>
		<attribute name="motorstrength" get="1" set="1" type="float" size="1">
			<digest>
				Maximum motor impulse
			</digest>
			<description>
				The maximum motor impulse (default 1.).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Motor Strength" />
			</attributelist>
		</attribute>
		<attribute name="motorvelocity_ang" get="1" set="1" type="float" size="3">
			<digest>
				Angular motor enable/velocity
			</digest>
			<description>
				Enables angular motor and specifies velocity desired in degrees per second (default = 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Motor Velocity Angular" />
			</attributelist>
		</attribute>
		<attribute name="motorvelocity_lin" get="1" set="1" type="float" size="3">
			<digest>
				Linear motor enable/velocity
			</digest>
			<description>
				Enables linear motor and specifies velocity desired in units per second (default = 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Motor Velocity Linear" />
			</attributelist>
		</attribute>
		<attribute name="position1" get="1" set="1" type="float" size="3">
			<digest>
				Pivot point of body1 as a 3D vector
			</digest>
			<description>
				The pivot point of body1 as a 3D vector relative to the body1 center of mass (default = 0 0 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Position1" />
			</attributelist>
		</attribute>
		<attribute name="position2" get="1" set="1" type="float" size="3">
			<digest>
				Pivot point of body2 as a 3D vector
			</digest>
			<description>
				The pivot point of body2 as a 3D vector relative to the body2 center of mass (default = 0 0 0). If body2 is blank, this is the worldspace position of the constraint.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Position2" />
			</attributelist>
		</attribute>
		<attribute name="quat1" get="1" set="1" type="float" size="4">
			<digest>
				Quaternion orientation of body1 relative to the constraint
			</digest>
			<description>
				The quaternion orientation of body1 relative to the constraint (default = 0 0 0 1).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Quat1" />
			</attributelist>
		</attribute>
		<attribute name="quat2" get="1" set="1" type="float" size="4">
			<digest>
				Quaternion orientation of body2 relative to the constraint
			</digest>
			<description>
				The quaternion orientation of body2 relative to the constraint (default = 0 0 0 1). If body2 is blank, this is the worldspace orientation of the constraint.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Quat2" />
			</attributelist>
		</attribute>
		<attribute name="relaxation" get="1" set="1" type="float" size="1">
			<digest>
				Rate that velocity errors are corrected by limits
			</digest>
			<description>
				The rate at which velocity errors are corrected by limits, effectively the strength of the limits (default = 1.0) . Lower values specify weaker limits. For most cases, the relaxation value should not be greater than 1.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Relaxation" />
			</attributelist>
		</attribute>
		<attribute name="rotate1" get="1" set="1" type="float" size="4">
			<digest>
				Rotation of body1 relative to the constraint
			</digest>
			<description>
				Rotation of body1 relative to the constraint (default = 0 0 0 1).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Rotate1" />
			</attributelist>
		</attribute>
		<attribute name="rotate2" get="1" set="1" type="float" size="4">
			<digest>
				Rotation of body2 relative to the constraint
			</digest>
			<description>
				Rotation of body2 relative to the constraint (default = 0 0 0 1). If body2 is blank, this is the worldspace orientation of the constraint.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Rotate2" />
			</attributelist>
		</attribute>
		<attribute name="rotatexyz1" get="1" set="1" type="float" size="3">
			<digest>
				Euler rotation of body1 relative to the constraint
			</digest>
			<description>
				Euler rotation of body1 relative to the constraint (default = 0 0 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Rotate XYZ 1" />
			</attributelist>
		</attribute>
		<attribute name="rotatexyz2" get="1" set="1" type="float" size="3">
			<digest>
				Euler rotation of body2 relative to the constraint
			</digest>
			<description>
				Euler rotation of body2 relative to the constraint (default = 0 0 0). If body2 is blank, this is the worldspace orientation of the constraint.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Rotate XYZ 2" />
			</attributelist>
		</attribute>
		<attribute name="spring_ang" get="1" set="1" type="int" size="3">
			<digest>
				Enable angular spring motor along axis
			</digest>
			<description>
				Enable angular spring motor along axis, if non-zero (default = 0 0 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Spring Angular" />
			</attributelist>
		</attribute>
		<attribute name="spring_lin" get="1" set="1" type="int" size="3">
			<digest>
				Enable linear spring motor along axis
			</digest>
			<description>
				Enable linear spring motor along axis, if non-zero (default = 0 0 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Spring Linear" />
			</attributelist>
		</attribute>
		<attribute name="springdamp_ang" get="1" set="1" type="float" size="3">
			<digest>
				Angular spring motor damping
			</digest>
			<description>
				Set the angular spring motor damping for each axis (default = 1 1 1).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Spring Damping Angular" />
			</attributelist>
		</attribute>
		<attribute name="springdamp_lin" get="1" set="1" type="float" size="3">
			<digest>
				Linear spring motor damping
			</digest>
			<description>
				Set the linear spring motor damping for each axis (default = 1 1 1).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Spring Damping Linear" />
			</attributelist>
		</attribute>
		<attribute name="springeq_ang" get="1" set="1" type="float" size="3">
			<digest>
				Angular spring motor equilibrium point
			</digest>
			<description>
				Set the angular spring motor equilibrium point for each axis, in degrees (default = 0 0 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Spring Equilibrium Angular" />
			</attributelist>
		</attribute>
		<attribute name="springeq_lin" get="1" set="1" type="float" size="3">
			<digest>
				Linear spring motor equilibrium point
			</digest>
			<description>
				Set the linear spring motor equilibrium point for each axis (default = 0 0 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Spring Equilibrium Linear" />
			</attributelist>
		</attribute>
		<attribute name="springstiff_ang" get="1" set="1" type="float" size="3">
			<digest>
				Angular spring motor stiffness
			</digest>
			<description>
				Set the angular spring motor stiffness for each axis (default = 0 0 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Spring Stiffness Angular" />
			</attributelist>
		</attribute>
		<attribute name="springstiff_lin" get="1" set="1" type="float" size="3">
			<digest>
				Linear spring motor stiffness
			</digest>
			<description>
				Set the linear spring motor stiffness for each axis (default = 0 0 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Spring Stiffness Linear" />
			</attributelist>
		</attribute>
		<attribute name="strength" get="1" set="1" type="float" size="1">
			<digest>
				Constraint strength value
			</digest>
			<description>
				Set the constraint strength (default = 0.2). Determines what proportion of the joint error will be fixed each simulation step. Values between 0.1 and 0.8 are recommended.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Strength" />
			</attributelist>
		</attribute>
		<attribute name="stretch" get="1" set="1" type="float" size="1">
			<digest>
				Constraint stretch value
			</digest>
			<description>
				Set the constraint stretch (default = 0.0). Setting to a positive value allows forces acting on rigid bodies to violate the constraint by an amount proportional to the stretch value.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Stretch" />
			</attributelist>
		</attribute>
		<attribute name="upperlimit_ang" get="1" set="1" type="float" size="3">
			<digest>
				Upper limit of rotation
			</digest>
			<description>
				The upper limits of allowed rotation in degrees (default = -1 -1 -1). If lowerlimit is greater than upper limit, no limits are applied to the constraint axis.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Upper Limit Angular" />
			</attributelist>
		</attribute>
		<attribute name="upperlimit_lin" get="1" set="1" type="float" size="3">
			<digest>
				Upper limit of translation
			</digest>
			<description>
				The upper limits of allowed translation (default = 0 0 0). If lowerlimit is greater than upper limit, no limits are applied to the constraint axis.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Upper Limit Linear" />
			</attributelist>
		</attribute>
		<attribute name="worldname" get="1" set="1" type="symbol" size="1">
			<digest>
				Name of the context the constraint is bound to
			</digest>
			<description>
				The name of a <o>jit.phys.world</o> context this constraint is bound to.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="World Name" />
			</attributelist>
		</attribute>
		<attribute name="worldpos" get="1" set="0" type="float" size="3">
			<digest>
				The derived world position
			</digest>
			<description>
				The derived constraint world position (default = 0 0 0)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="World Pos" />
			</attributelist>
		</attribute>
		<attribute name="worldquat" get="1" set="0" type="float" size="4">
			<digest>
				The derived world quaternion
			</digest>
			<description>
				The derived constraint world quaternion (default = 0 0 0 1)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="World Quat" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist />
	<!--EXAMPLE-->
	<examplelist>
		<example caption="A six degrees of freedom constraint in a physics world" img="jit.phys.6dof.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.phys.world" />
		<seealso name="jit.phys.body" />
		<seealso name="jit.phys.barslide" />
		<seealso name="jit.phys.conetwist" />
		<seealso name="jit.phys.hinge" />
		<seealso name="jit.phys.point2point" />
	</seealsolist>
</c74object>
