Crivvens! What is Beastie?
Beastie is a C++ based simplified collision detection library for the Ogre3D
graphics engine, and it is neatly packaged in a single header, beastie.h.
"Beastie" should be always pronounced in a Glaswegian accent.
It only detects collisions and does not respond to them as you would typically
encounter in a more fully featured physics engine or more advanced collision
However the detections are accurate and are optimised, building some response
code on top of beastie shouldn't be to difficult, an example of some of this
is in the "beastie.example.cpp" test application that can be found at the beastie
Beastie only uses Ogre as a dependency, and is developed with Ogre 1.7 in mind;
but should work with any 1.x version.
Beastie is released under the MIT licence.
Beastie only comes in one file "beastie.h", alternatively a complete Sample may be downloaded.
Beastie is hosted and versioned by GitHub.
Further Documentation and information can be found there.
Beastie is very simple to use, and requires the minimal amount of code to setup.
For example; this is how you would raycasting:
Code: Select all
beastie::collision_tree tree = OGRE_NEW collision_tree(); tree->createNode("tudorhouse.mesh", Ogre::Vector3(0,550,0); ray_query result; line ln(Ogre::Vector3(0,25000,0), Ogre::Vector3(0,-1,0), 25000); tree->intersect(ln, result);
Additionally Beastie comes with an example application, using the OgreBites sample
The example is a self-installing-when-compiled Ogre Sample. Simply compile the Sample
(in the visual studio directory) and it will copy itself and self-install it self into your Ogre
Samples folder. Run the SampleBrowser application and you'll find "Beastie Example" under
the "Collision Detection" section
Beastie will be worked upon the future. My rough To-do list is as follows:
- Bug fixes.
- Box v.s. Box and Plane intersection.
- Further optimisation of raycasting.
- Jacmoe has convinced me to incorporate the works of Paul Nettle; more specifically the
ellipsoid character controller.