public Body(Cluster p)
		{
			_native = btSoftBody_Body_new3(p._native);
		}
		public static Vector3 ClusterVelocity(Cluster cluster, Vector3 rpos)
		{
			Vector3 value;
			btSoftBody_clusterVelocity(cluster._native, ref rpos, out value);
			return value;
		}
		public static void ClusterVImpulse(Cluster cluster, Vector3 rpos, Vector3 impulse)
		{
			btSoftBody_clusterVImpulse(cluster._native, ref rpos, ref impulse);
		}
		public static void ClusterImpulse(Cluster cluster, Vector3 rpos, Impulse impulse)
		{
			btSoftBody_clusterImpulse(cluster._native, ref rpos, impulse._native);
		}
		public static Vector3 ClusterCom(Cluster cluster)
		{
			Vector3 value;
			btSoftBody_clusterCom2(cluster._native, out value);
			return value;
		}
		public static void ClusterAImpulse(Cluster cluster, Impulse impulse)
		{
			btSoftBody_clusterAImpulse(cluster._native, impulse._native);
		}
        public void AppendLinearJoint(LinearJoint.Specs specs, Cluster body0, Body body1)
		{
			btSoftBody_appendLinearJoint4(_native, specs._native, body0._native, body1._native);
		}
        public void AppendAngularJoint(AngularJoint.Specs specs, Cluster body0, Body body1)
		{
            StoreAngularJointControlRef(specs);
			btSoftBody_appendAngularJoint4(_native, specs._native, body0._native, body1._native);
		}