The problem is to build a polygonal mesh from a triangle list efficiently. A solution is important specially when building or testing physics engines. The method below shows a possible solution. This can be done without needing the additional storage and processing cost of keeping a list of half-edges for a given face during its addition which would be linked at the end of the addition in that case.
I’ve added two joint types to Bounce Lite. Ball-in-socket, and revolute with angle limits. Bounce Lite is available at its repository: here. There is a video below showing how five revolute joints can be used to simulate a small ragdoll.
I’m happy for distributing Bounce Lite, a portable 3D physics engine for games:
Bounce Lite is available at its GitHub repository. It is the second physics engine that I (Irlan) have written and the first that is publically distributed.