コード例 #1
0
static void
EstimateCrushing(cpBody *body, cpArbiter *arb, struct CrushingContext *context)
{
	cpVect j = cpArbiterTotalImpulseWithFriction(arb);
	context->magnitudeSum += cpvlength(j);
	context->vectorSum = cpvadd(context->vectorSum, j);
}
コード例 #2
0
ファイル: ContactGraph.c プロジェクト: Anaxim/chipmunk
static void
update(cpSpace *space)
{
	int steps = 1;
	cpFloat dt = 1.0f/60.0f/(cpFloat)steps;
	
	for(int i=0; i<steps; i++){
		cpSpaceStep(space, dt);
	}
	
	ChipmunkDemoPrintString("Place objects on the scale to weigh them. The ball marks the shapes it's sitting on.\n");
	
	// Sum the total impulse applied to the scale from all collision pairs in the contact graph.
	// If your compiler supports blocks, your life is a little easier.
	// You can use the "Block" versions of the functions without needing the callbacks above.
	#if USE_BLOCKS
		__block cpVect impulseSum = cpvzero;
		cpBodyEachArbiter_b(scaleStaticBody, ^(cpArbiter *arb){
			impulseSum = cpvadd(impulseSum, cpArbiterTotalImpulseWithFriction(arb));
		});
コード例 #3
0
ファイル: carbiter.cpp プロジェクト: dogtwelve/eepp
cVect cArbiter::TotalImpulseWithFriction() {
	return tovect( cpArbiterTotalImpulseWithFriction( mArbiter ) );
}
コード例 #4
0
JNIEXPORT jfloat JNICALL Java_com_wiyun_engine_chipmunk_Arbiter_getTotalImpulseWithFrictionY
  (JNIEnv * env, jobject thiz) {
	cpArbiter* arb = (cpArbiter*)env->GetIntField(thiz, g_fid_Arbiter_mPointer);
	cpVect v = cpArbiterTotalImpulseWithFriction(arb);
	return v.y;
}
コード例 #5
0
ファイル: ContactGraph.c プロジェクト: Anaxim/chipmunk
static void
ScaleIterator(cpBody *body, cpArbiter *arb, cpVect *sum)
{
	(*sum) = cpvadd(*sum, cpArbiterTotalImpulseWithFriction(arb));
}
コード例 #6
0
ファイル: wrapper.c プロジェクト: Et999/Hipmunk
void wrArbiterTotalImpulseWithFriction(cpArbiter *arb, cpVect *ret) {
    *ret = cpArbiterTotalImpulseWithFriction(arb);
}
コード例 #7
0
ファイル: cpArbiter-lua.c プロジェクト: balijanos/rpi64
static int cpArbiter_totalImpulseWithFriction(lua_State *L) {
    cpArbiter *arb = toarbiter(L);
    push_cpVect(L, cpArbiterTotalImpulseWithFriction(arb));
    return 2;
}
コード例 #8
0
ファイル: arbitros.c プロジェクト: segafan/bennugd-monolithic
int modArbiterTotalImpulseWithFriction(INSTANCE * my, int * params){
    cpVect v=cpArbiterTotalImpulseWithFriction((cpArbiter *)params[0]);
    *(float*)params[1]=v.x;
    *(float*)params[2]=v.y;
    return 1;
}