The Floor
The floor is made of tiles created with my ColouredTiles
class, and axis labels made with the Java 3D Text2D
utility class. Figure 15-5 shows the floor branch, previously hidden inside a "Floor Branch" box in Figure 15-3.
Figure 15-5. Floor branch of the scene graph
The floor subgraph is constructed with an instance of my CheckerFloor
class and made available via the getBG()
method:
sceneBG.addChild( new CheckerFloor().getBG() ); // add the floor
The CheckerFloor()
constructor uses nested for
loops to initialize two ArrayList
s. The blueCoords
list contains all the coordinates for the blue tiles, and greenCoords
holds the coordinates for the green tiles. Once the ArrayList
s are filled, they are passed to ColouredTiles
objects, along with the color that should be used to render the tiles. A ColouredTiles
object is a subclass of Shape3D
, so can be added directly to the floor's graph:
floorBG.addChild( new ColouredTiles(blueCoords, blue) ); floorBG.addChild( new ColouredTiles(greenCoords, green) );
The red square at the origin (visible in Figure 15-1) is made in a similar way:
Point3f p1 = new Point3f(-0.25f, 0.01f, 0.25f); Point3f p2 = new Point3f(0.25f, 0.01f, 0.25f); Point3f p3 = new Point3f(0.25f, 0.01f, -0.25f); Point3f p4 = new Point3f(-0.25f, 0.01f, -0.25f); ArrayList oCoords = new ArrayList(); oCoords.add(p1); oCoords.add(p2); oCoords.add(p3); oCoords.add(p4); floorBG.addChild( ...
Get Killer Game Programming in Java now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.