<?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.barslide" module="jit" category="Jitter Physics">
	<digest>
		A bar constraint in a physics world
	</digest>
	<description>
		The <o>jit.phys.barslide</o> object constrains attached <o>jit.phys.body</o> objects to rotate and translate around a single axis. Limits and motor forces can be specified for both the linear translation and angular rotation around the constraint. 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">
			Jitter
		</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="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="damping" get="1" set="1" type="float" size="1">
			<digest>
				Limit damping value
			</digest>
			<description>
				Limit damping value (default = 0.7).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Damping" />
			</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="linearposition" get="1" set="0" type="float" size="1">
			<digest>
				Linear position
			</digest>
			<description>
				Position of constraint along translate axis (default = 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Linear Position" />
			</attributelist>
		</attribute>
		<attribute name="lowerlimit_ang" get="1" set="1" type="float" size="1">
			<digest>
				Lower limit of rotation
			</digest>
			<description>
				The lower limit of allowed rotation around the bar axis in degrees (default = 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="1">
			<digest>
				Lower limit of translation
			</digest>
			<description>
				The lower limit of allowed translation along the bar axis (default = 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_ang" get="1" set="1" type="float" size="1">
			<digest>
				Maximum motor angular impulse
			</digest>
			<description>
				The maximum angular motor impulse (default 1.).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Motor Strength Angular" />
			</attributelist>
		</attribute>
		<attribute name="motorstrength_lin" get="1" set="1" type="float" size="1">
			<digest>
				Maximum motor linear impulse
			</digest>
			<description>
				The maximum linear motor impulse (default 1.).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Motor Strength Linear" />
			</attributelist>
		</attribute>
		<attribute name="motorvelocity_ang" get="1" set="1" type="float" size="1">
			<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="1">
			<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="restitution" get="1" set="1" type="float" size="1">
			<digest>
				Limit restitution value
			</digest>
			<description>
				Limit restitution value (default = 1.0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Restitution" />
			</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="softness" get="1" set="1" type="float" size="1">
			<digest>
				Limit softness value
			</digest>
			<description>
				Limit softness value (default = 1.0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Softness" />
			</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="1">
			<digest>
				Upper limit of rotation
			</digest>
			<description>
				The upper limit of allowed rotation in degrees around the bar axis (default = -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="1">
			<digest>
				Upper limit of translation
			</digest>
			<description>
				The upper limit of allowed translation along the bar axis (default = 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 bar constraint in a physics world" img="jit.phys.barslide.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.phys.world" />
		<seealso name="jit.phys.body" />
		<seealso name="jit.phys.conetwist" />
		<seealso name="jit.phys.hinge" />
		<seealso name="jit.phys.point2point" />
		<seealso name="jit.phys.6dof" />
	</seealsolist>
</c74object>
