Я новичок в C++, поэтому извините, если я не использую терминологию.
Я пишу приложение в openframeworks, которое использует физическую библиотеку под названием ofxMSAPhysics. Для своих целей я создал собственный класс под названием «particle», который наследуется от класса MSAPhysics Particle3D.
Здесь я передаю указатель на свой пользовательский объект физическому движку:
particle * p = new particle(ofVec3f(getTokenCoors(index)));
physics.addParticle(p);
В моем пользовательском классе у меня есть общедоступный член, называемый collide, который я устанавливаю в true, когда одна частица сталкивается с другой. Для этого я переопределяю один из виртуальных методов Particle3D:
void collidedWithParticle(ParticleT *other, ofVec3f collisionForce) {
collide = true;
}
Теперь я хотел бы проверить, когда одна частица сталкивается с другой. physics.getParticle(i)
возвращает частицу из физического движка, но одного типа Particle3D
, а не моего пользовательского типа частиц. Поэтому, когда я перебираю частицы, возвращенные из getParticle()
, ни одна из них не содержит моей переменной "collide".
Есть ли способ получить доступ к моим пользовательским частицам после их добавления в движок?
Пожалуйста, дайте мне знать, если я могу что-то прояснить.
РЕДАКТИРОВАТЬ: collidedWithParticle() является виртуальным членом Particle3D. Я только что установил, что мой переопределенный метод сталкивается с истинным, чтобы увидеть, работает ли он.
Particle3D
? - person greatwolf   schedule 23.07.2013collidedWithParticle
виртуальной функцией-членомParticle3D
или она специфична дляparticle
? - person juanchopanza   schedule 23.07.2013bool
, возможно? - person greatwolf   schedule 23.07.2013