PAL is built on top of an abstract pluggable factory. (See abstract factory pattern from wikipedia). A factory simply allows the creation of an object without specifying the exact class of object that will be created. In this way we can ask the PAL factory to create a "Box" object, and it will decide whether to create an ODE Box or a Bullet Box.
To tell PAL which physics engine you wish to use you must first call
PF->SelectEngine()
and pass in the name of the physics engine you wish to use.
After that you can create any object you want by calling the appropriate method. In this case: PF->CreateBox()
. Alternatively, you can create it directly via the name the object provided to the factory: PF->CreateObject("palBox")
.
To simplify the use of the abstract pluggable factory a set of macros are provided that are discussed in more detail here. This information is important if you wish to extend PAL's functionality (discussed here), or wish to work with the underlying physics engine directly via PAL.
^ topTo install PAL you will need to compile it for your compiler and operating system. If you are using windows then you just need to run the "configure.exe" in the base PAL directory. (See Windows install instructions)
For other systems, for example Linux, BSD or Mac OS X you need to download premake, and edit the premake_generic.lua file. (See Generic install instructions)
^ topOverview: Contains a comparison and evaluation of several physics engines, and a description of the PAL architecture.
Abstract: We present a qualitative evaluation of a number of free publicly available physics engines for simulation systems and game development. A brief overview of the aspects of a physics engine is presented accompanied by a comparison of the capabilities of each physics engine. Aspects that are investigated the accuracy and computational efficiency of the integrator properties, material properties, stacks, links, and collision detection system.
SubSim: An autonomous underwater vehicle simulation packageOverview: Contains a decription of PAL hydrodynamics, buoyancy, actuators and sensors.
Abstract: This article describes the design and modeling of an autonomous underwater vehicle (AUV), together with a simulation system for AUVs with arbitrary propulsion and sensor systems. The use of a simulation system allows to rapidly test AUV designs, e.g. different propulsion systems or different sensor configurations. Different AUV designs can be compared re. their suitability for a given task before they even have been built. Therefore, the use of a simulation system can advance and speed up the design process of an AUV.