本文整理汇总了Java中com.badlogic.gdx.physics.bullet.collision.ClosestRayResultCallback.getHitPointWorld方法的典型用法代码示例。如果您正苦于以下问题:Java ClosestRayResultCallback.getHitPointWorld方法的具体用法?Java ClosestRayResultCallback.getHitPointWorld怎么用?Java ClosestRayResultCallback.getHitPointWorld使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.badlogic.gdx.physics.bullet.collision.ClosestRayResultCallback
的用法示例。
在下文中一共展示了ClosestRayResultCallback.getHitPointWorld方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: closestRayTest
import com.badlogic.gdx.physics.bullet.collision.ClosestRayResultCallback; //导入方法依赖的package包/类
public static Vector3 closestRayTest(btCollisionWorld world, ClosestRayResultCallback callback) {
callback.getRayFromWorld(rayFrom);
callback.getRayToWorld(rayTo);
callback.setCollisionObject(null);
callback.setClosestHitFraction(1f);
world.rayTest(rayFrom, rayTo, callback);
if (callback.hasHit()) {
callback.getHitPointWorld(tmp);
return tmp;
}
return null;
}
示例2: touchDown
import com.badlogic.gdx.physics.bullet.collision.ClosestRayResultCallback; //导入方法依赖的package包/类
@Override
public boolean touchDown (int screenX, int screenY, int pointer, int button) {
boolean result = false;
if (button == Buttons.LEFT) {
Ray ray = camera.getPickRay(screenX, screenY);
tmpV1.set(ray.direction).scl(10f).add(ray.origin);
ClosestRayResultCallback cb = new ClosestRayResultCallback(ray.origin, tmpV1);
world.collisionWorld.rayTest(ray.origin, tmpV1, cb);
if (cb.hasHit()) {
btRigidBody body = (btRigidBody)(cb.getCollisionObject());
if (body != null && !body.isStaticObject() && !body.isKinematicObject()) {
pickedBody = body;
body.setActivationState(Collision.DISABLE_DEACTIVATION);
cb.getHitPointWorld(tmpV);
tmpV.mul(body.getCenterOfMassTransform().inv());
pickConstraint = new btPoint2PointConstraint(body, tmpV);
btConstraintSetting setting = pickConstraint.getSetting();
setting.setImpulseClamp(30f);
setting.setTau(0.001f);
pickConstraint.setSetting(setting);
((btDynamicsWorld)world.collisionWorld).addConstraint(pickConstraint);
pickDistance = tmpV1.sub(camera.position).len();
result = true;
}
}
cb.dispose();
}
return result ? result : super.touchDown(screenX, screenY, pointer, button);
}