public void addCubeReferencedAtCenter(double lengthX, double widthY, double heightZ) { RigidBodyTransformGenerator transformGeneratorTwo = new RigidBodyTransformGenerator(transformGenerator); transformGeneratorTwo.set(transformGenerator); transformGeneratorTwo.translate(0.0, 0.0, heightZ / 2.0); addRectangle(transformGeneratorTwo, lengthX, widthY); transformGeneratorTwo.translate(0.0, 0.0, -heightZ); addRectangle(transformGeneratorTwo, lengthX, widthY); transformGeneratorTwo.set(transformGenerator); transformGeneratorTwo.rotate(Math.PI / 2.0, Axis.Y); transformGeneratorTwo.translate(0.0, 0.0, lengthX / 2.0); addRectangle(transformGeneratorTwo, heightZ, widthY); transformGeneratorTwo.translate(0.0, 0.0, -lengthX); addRectangle(transformGeneratorTwo, heightZ, widthY); transformGeneratorTwo.set(transformGenerator); transformGeneratorTwo.rotate(Math.PI / 2.0, Axis.X); transformGeneratorTwo.translate(0.0, 0.0, widthY / 2.0); addRectangle(transformGeneratorTwo, lengthX, heightZ); transformGeneratorTwo.translate(0.0, 0.0, -widthY); addRectangle(transformGeneratorTwo, lengthX, heightZ); }
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); }
public void addCubeReferencedAtCenter(double lengthX, double widthY, double heightZ) { RigidBodyTransformGenerator transformGeneratorTwo = new RigidBodyTransformGenerator(transformGenerator); transformGeneratorTwo.set(transformGenerator); transformGeneratorTwo.translate(0.0, 0.0, heightZ / 2.0); addRectangle(transformGeneratorTwo, lengthX, widthY); transformGeneratorTwo.translate(0.0, 0.0, -heightZ); transformGeneratorTwo.rotate(Math.PI, Axis.Y); addRectangle(transformGeneratorTwo, lengthX, widthY); transformGeneratorTwo.rotate(Math.PI, Axis.Y); transformGeneratorTwo.set(transformGenerator); transformGeneratorTwo.rotate(Math.PI / 2.0, Axis.Y); transformGeneratorTwo.translate(0.0, 0.0, lengthX / 2.0); addRectangle(transformGeneratorTwo, heightZ, widthY); transformGeneratorTwo.translate(0.0, 0.0, -lengthX); transformGeneratorTwo.rotate(Math.PI, Axis.Y); addRectangle(transformGeneratorTwo, heightZ, widthY); transformGeneratorTwo.rotate(Math.PI, Axis.Y); transformGeneratorTwo.set(transformGenerator); transformGeneratorTwo.rotate(Math.PI / 2.0, Axis.X); transformGeneratorTwo.translate(0.0, 0.0, widthY / 2.0); addRectangle(transformGeneratorTwo, lengthX, heightZ); transformGeneratorTwo.translate(0.0, 0.0, -widthY); transformGeneratorTwo.rotate(Math.PI, Axis.X); addRectangle(transformGeneratorTwo, lengthX, heightZ); transformGeneratorTwo.rotate(Math.PI, Axis.X); }