/*
 * @return [Boolean]
 */
static mrb_value
arbiter_is_first_contact(mrb_state* mrb, mrb_value self)
{
  cpArbiter* arbiter;
  arbiter = mrb_cp_get_arbiter_ptr(mrb, self);
  return mrb_bool_value(cpArbiterIsFirstContact(arbiter));
}
Example #2
0
//----------------------------------------------------------------//
static int _cpCollisionBeginFunc ( cpArbiter* arb, cpSpace* space, void *data ) {
	UNUSED ( space );
	
	if ( cpArbiterIsFirstContact ( arb )) {
		return _cpCollisionFunc ( arb, data, MOAICpSpace::BEGIN, true );
	}
	return true;
}
Example #3
0
void
cpArbiterApplyCachedImpulse(cpArbiter *arb, cpFloat dt_coef)
{
	if(cpArbiterIsFirstContact(arb)) return;

	cpBody *a = arb->body_a;
	cpBody *b = arb->body_b;

	for(int i=0; i<arb->numContacts; i++){
		cpContact *con = &arb->contacts[i];
		cpVect j = cpvrotate(con->n, cpv(con->jnAcc, con->jtAcc));
		apply_impulses(a, b, con->r1, con->r2, cpvmult(j, dt_coef));
	}
}
Example #4
0
static World_CollisionInfo _collisionInfoForArbiter(cpArbiter *aArbiter)
{
    cpBody *bodyA, *bodyB;
    cpArbiterGetBodies(aArbiter, &bodyA, &bodyB);
    WorldEntity_t *a = bodyA->data;
    dynamo_assert(a != NULL, "Incomplete collision");
    WorldEntity_t *b = bodyB->data;
    dynamo_assert(b != NULL, "Incomplete collision");

    cpContactPointSet cpPointSet = cpArbiterGetContactPointSet(aArbiter);
    World_ContactPointSet pointSet = *(World_ContactPointSet *)&cpPointSet;
    return (World_CollisionInfo) {
        a, b,
        cpArbiterIsFirstContact(aArbiter),
        pointSet,
        aArbiter
    };
}
Example #5
0
bool cArbiter::IsFirstContact() {
	return 0 != cpArbiterIsFirstContact( mArbiter );
}
JNIEXPORT jboolean JNICALL Java_com_wiyun_engine_chipmunk_Arbiter_isFirstContact
  (JNIEnv * env, jobject thiz) {
	cpArbiter* arb = (cpArbiter*)env->GetIntField(thiz, g_fid_Arbiter_mPointer);
	return cpArbiterIsFirstContact(arb) == 1;
}
Example #7
0
static int cpArbiter_isFirstContact(lua_State *L) {
    cpArbiter *arb = toarbiter(L);
    lua_pushboolean(L, cpArbiterIsFirstContact(arb));
    return 1;
}
Example #8
0
int modArbiterIsFirstContact(INSTANCE * my, int * params){
    return cpArbiterIsFirstContact((cpArbiter *)params[0]);
}