From: <ah...@un...> - 2009-11-06 02:44:19
|
Hi again, I think it would be possible to switch between Bullet and ODE at runtime. I actually had that idea floating around in my head, but one of our goals is to make Simspark work on systems that have Bullet xor ODE installed. To enable switching at runtime, both OdeBox and BulletBox (and all the other specific classes) had to be compiled, and that obviously only works if both Bullet and ODE are installed. Maybe that would be tolerable, but once you add more physics engines (that might cost money) this would become a massive problem. I currently plan to decide on which engine to use at compile time and then hide the other engine[s] from the compiler with defines to make it work. I do, however, have very limited knowledge of C++ (they teach Java at the university of Koblenz), so if there is a way to enable switching at runtime while still making it work on systems that have only one of the engines installed, I just dont know about it. We do, however, not plan to make different versions. Naming the current simulator OdeSimspark and making a separate BulletSimspark based on that would be way easier than what I am currently doing. Not having different Simspark versions for every engine is the whole point of the abstract physics layer. To Ben: The design is not completely final. I think the Material is not a class in the current version (at least I haven't seen it). We will, however, add other classes to the layout if it proves to be necessary or at least reasonable. Outsourcing material properties to a separate class could be a good idea, and I'll keep it in mind. To Hedayat: I already had some "fun" with the Touchperceptorhandler yesterday. After changing the layout of oxygen, it wouldn't compile anymore. After 1-2 hours, I decided to just leave it for now and commented it out of CMakeLists. It's pointless to make it work right now, especially because I'll probably change oxygen's layout another 20 times until I'm done ;) Tending to the plugins when oxygen is final and I have a better understanding of Simspark and the physics engines seems to be a way better idea. When I get to it, I'll probably create an abstract layer on top of the ODE-specific plugins as well (that's what I tried to do with the Touchperceptorhandler yesterday, anyway). Andreas |