public void addRampReferencedAtBottomMiddle(double lengthX, double widthY, double heightZ)
{
RigidBodyTransformGenerator transformGeneratorTwo = new RigidBodyTransformGenerator(transformGenerator);
double slope = Math.atan2(heightZ, lengthX);
transformGeneratorTwo.set(transformGenerator);
transformGeneratorTwo.translate(lengthX / 2.0, 0.0, heightZ / 2.0);
transformGeneratorTwo.rotate(-slope, Axis.Y);
addRectangle(transformGeneratorTwo, EuclidGeometryTools.pythagorasGetHypotenuse(lengthX, heightZ), widthY);
ConvexPolygon2D leftSide = new ConvexPolygon2D();
leftSide.addVertex(0.0, 0.0);
leftSide.addVertex(- lengthX, 0.0);
leftSide.addVertex(- lengthX, heightZ);
leftSide.update();
ConvexPolygon2D rightSide = new ConvexPolygon2D();
rightSide.addVertex(0.0, 0.0);
rightSide.addVertex(lengthX, 0.0);
rightSide.addVertex(lengthX, heightZ);
rightSide.update();
transformGeneratorTwo.set(transformGenerator);
transformGeneratorTwo.translate(0.0, 0.5 * widthY, 0.0);
transformGeneratorTwo.rotate(0.5 * Math.PI, Axis.X);
transformGeneratorTwo.rotate(Math.PI, Axis.Y);
addPolygon(transformGeneratorTwo, leftSide);
transformGeneratorTwo.set(transformGenerator);
transformGeneratorTwo.translate(0.0, -0.5 * widthY, 0.0);
transformGeneratorTwo.rotate(0.5 * Math.PI, Axis.X);
addPolygon(transformGeneratorTwo, rightSide);
}