cpContactInit(cpContact con, cpVect p, cpVect n, double dist, cpHashValue hash) { con.p = p; con.n = n; con.dist = dist; con.jnAcc = 0.0f; con.jtAcc = 0.0f; con.jBias = 0.0f; con.hash = hash; return con; }
cpSpaceHashInsert(cpSpaceHash *hash, object obj, cpHashValue hashid) { cpHandle *hand = (cpHandle *)cpHashSetInsert(hash.handleSet, hashid, obj, hash, (cpHashSetTransFunc)handleSetTrans); hashHandle(hash, hand, hash.spatialIndex.bbfunc(obj)); }
cpSpaceHashRemove(cpSpaceHash *hash, object obj, cpHashValue hashid) { cpHandle *hand = (cpHandle *)cpHashSetRemove(hash.handleSet, hashid, obj); if(hand){ hand.obj = null; cpHandleRelease(hand, hash.pooledHandles); } }
hash_func(cpHashValue x, cpHashValue y, cpHashValue n) { return (x*1640531513ul ^ y*2654435789ul) % n; }