private void attachTestObject(Mesh mesh, Vector3f position, float mass) {
        Material material = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
        material.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg"));
        Geometry g = new Geometry("mesh", mesh);
        g.scale(scaleMod);
        g.setLocalTranslation(position);
        g.setMaterial(material);

        GImpactCollisionShape shape = new GImpactCollisionShape(mesh);
        shape.setScale(new Vector3f(scaleMod, scaleMod, scaleMod));
        RigidBodyControl control = new RigidBodyControl(shape, mass);
        g.addControl(control);
        addObject(g);
    }
This test demonstrates various GImpactCollisionShapes colliding against two identical curved surfaces. The
left surface is a MeshCollisionShape, right surface is another GImpactCollisionShape. An ideal result is
for all objects to land and change to a blue colored mesh indicating they are inactive. Falling through the
floor, or never going inactive (bouncing forever) are failure conditions.
<p>
Observations as of June 2019 (JME v3.3.0-alpha2):
<ol>
<li>
With default starting parameters, Native Bullet should pass the test parameters above. JBullet fails due to
the rocket/MeshCollisionShape never going inactive.
</li>
<li>
Native Bullet behaves better than JBullet. JBullet sometimes allows objects to "gain too much energy" after
a collision, such as the rocket or teapot. Native also does this, to a lesser degree. This generally
appears to happen at larger object scales.
</li>
<li>
JBullet allows some objects to get "stuck" inside the floor, which usually results in a fall-through
eventually, generally a larger scales for this test.
</li>
<li>
Some shapes such as PQTorus and signpost never go inactive at larger scales for both Native and JBullet (test
at 1.5 and 1.9 scale)
</li>
</ol>

@author lou
jme3-examples/src/main/java/jme3test/bullet/shape/TestGimpactShape.java