Физика пули (ammo.js в asm.js), как получить силу удара при столкновении

Так что мне удалось заставить работать обнаружение столкновений в ammo.js так же, как в Physijs. Вот код, который работает

var i,
    dp = this.dispatcher,
    num = dp.getNumManifolds(),
    manifold, num_contacts, j, pt;

for (i = 0; i < num; i++) {
    manifold = dp.getManifoldByIndexInternal(i);

    num_contacts = manifold.getNumContacts();
    if (num_contacts === 0) {
        continue;
    }

    for (j = 0; j < num_contacts; j++) {
        pt = manifold.getContactPoint(j);

        //console.log('body 1: ', manifold.getBody0());
        //console.log('body 2: ', manifold.getBody1());

        console.log('COLLISION DETECTED!');
        // HERE: how to get impact force details?
        // pt.getAppliedImpulse() is not working
    }
}

На некоторых форумах нашел, что эта функция дает информацию о силе удара:

getAppliedImpulse()

но в ammo.js такой функции нет. Я искал код, и его там нет. Может API новее или подход к чтению силы совсем другой?

Изменить:

Вот мои самодельные боеприпасы с getAppliedImpulse() и включенными многими важными функциями. https://github.com/DVLP/ammo.js/tree/master/builds


person Pawel    schedule 13.08.2015    source источник
comment
Я не знаю ammo.js, но знаю физику; сила и импульс — разные вещи.   -  person Beta    schedule 14.08.2015


Ответы (1)


Добавьте описание привязки к ammo.idl и перестройте файл ammo.js.

interface btManifoldPoint {
    ...
    [Const] double getAppliedImpulse();
}
person zakki    schedule 17.08.2015
comment
Спасибо, это правильный ответ, который я тоже понял. К сожалению, я не могу собрать ammo.js в Windows, что является известной проблемой. Также я не перехожу на Mac, как другие разработчики интерфейса/JavaScript. Может быть, я возьму запасной, чтобы собрать патроны, лол. - person Pawel; 17.08.2015
comment
Вот моя вилка боеприпасов (построена) с включенной этой опцией, если у кого-то есть такая же потребность github.com/DVLP/ammo.js/tree/master/builds - person Pawel; 25.10.2015