当前位置: 首页>>代码示例>>Java>>正文


Java Joint.create方法代码示例

本文整理汇总了Java中org.jbox2d.dynamics.joints.Joint.create方法的典型用法代码示例。如果您正苦于以下问题:Java Joint.create方法的具体用法?Java Joint.create怎么用?Java Joint.create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.jbox2d.dynamics.joints.Joint的用法示例。


在下文中一共展示了Joint.create方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createJoint

import org.jbox2d.dynamics.joints.Joint; //导入方法依赖的package包/类
/**
 * create a joint to constrain bodies together. No reference to the definition is retained. This
 * may cause the connected bodies to cease colliding.
 * 
 * @warning This function is locked during callbacks.
 * @param def
 * @return
 */
public Joint createJoint(JointDef def) {
  assert (isLocked() == false);
  if (isLocked()) {
    return null;
  }

  Joint j = Joint.create(this, def);

  // Connect to the world list.
  j.m_prev = null;
  j.m_next = m_jointList;
  if (m_jointList != null) {
    m_jointList.m_prev = j;
  }
  m_jointList = j;
  ++m_jointCount;

  // Connect to the bodies' doubly linked lists.
  j.m_edgeA.joint = j;
  j.m_edgeA.other = j.getBodyB();
  j.m_edgeA.prev = null;
  j.m_edgeA.next = j.getBodyA().m_jointList;
  if (j.getBodyA().m_jointList != null) {
    j.getBodyA().m_jointList.prev = j.m_edgeA;
  }
  j.getBodyA().m_jointList = j.m_edgeA;

  j.m_edgeB.joint = j;
  j.m_edgeB.other = j.getBodyA();
  j.m_edgeB.prev = null;
  j.m_edgeB.next = j.getBodyB().m_jointList;
  if (j.getBodyB().m_jointList != null) {
    j.getBodyB().m_jointList.prev = j.m_edgeB;
  }
  j.getBodyB().m_jointList = j.m_edgeB;

  Body bodyA = def.bodyA;
  Body bodyB = def.bodyB;

  // If the joint prevents collisions, then flag any contacts for filtering.
  if (def.collideConnected == false) {
    ContactEdge edge = bodyB.getContactList();
    while (edge != null) {
      if (edge.other == bodyA) {
        // Flag the contact for filtering at the next time step (where either
        // body is awake).
        edge.contact.flagForFiltering();
      }

      edge = edge.next;
    }
  }

  // Note: creating a joint doesn't wake the bodies.

  return j;
}
 
开发者ID:jfcameron,项目名称:G2Dj,代码行数:66,代码来源:World.java

示例2: createJoint

import org.jbox2d.dynamics.joints.Joint; //导入方法依赖的package包/类
/**
 * create a joint to constrain bodies together. No reference to the definition
 * is retained. This may cause the connected bodies to cease colliding.
 * 
 * @warning This function is locked during callbacks.
 * @param def
 * @return
 */
public Joint createJoint(JointDef def) {
	assert (isLocked() == false);
	if (isLocked()) {
		return null;
	}
	
	Joint j = Joint.create(this, def);
	
	// Connect to the world list.
	j.m_prev = null;
	j.m_next = m_jointList;
	if (m_jointList != null) {
		m_jointList.m_prev = j;
	}
	m_jointList = j;
	++m_jointCount;
	
	// Connect to the bodies' doubly linked lists.
	j.m_edgeA.joint = j;
	j.m_edgeA.other = j.m_bodyB;
	j.m_edgeA.prev = null;
	j.m_edgeA.next = j.m_bodyA.m_jointList;
	if (j.m_bodyA.m_jointList != null) {
		j.m_bodyA.m_jointList.prev = j.m_edgeA;
	}
	j.m_bodyA.m_jointList = j.m_edgeA;
	
	j.m_edgeB.joint = j;
	j.m_edgeB.other = j.m_bodyA;
	j.m_edgeB.prev = null;
	j.m_edgeB.next = j.m_bodyB.m_jointList;
	if (j.m_bodyB.m_jointList != null) {
		j.m_bodyB.m_jointList.prev = j.m_edgeB;
	}
	j.m_bodyB.m_jointList = j.m_edgeB;
	
	Body bodyA = def.bodyA;
	Body bodyB = def.bodyB;
	
	// If the joint prevents collisions, then flag any contacts for filtering.
	if (def.collideConnected == false) {
		ContactEdge edge = bodyB.getContactList();
		while (edge != null) {
			if (edge.other == bodyA) {
				// Flag the contact for filtering at the next time step (where either
				// body is awake).
				edge.contact.flagForFiltering();
			}
			
			edge = edge.next;
		}
	}
	
	// Note: creating a joint doesn't wake the bodies.
	
	return j;
}
 
开发者ID:mleoking,项目名称:PhET,代码行数:66,代码来源:World.java


注:本文中的org.jbox2d.dynamics.joints.Joint.create方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。