Creating the Scene
The novel parts of the scene creation carried out by WrapLathe3D are located in addLatheShapes(), which generates the lathe shapes on the checkerboard:
TextureLoader texLd3 = new TextureLoader("textures/water.jpg", null);
Texture waterTex = texLd3.getTexture();
double xsIn15[] = {0, 0.1, 0.7, 0};
double ysIn15[] = {0, 0.1, 1.5, 2};
LatheShape3D ls2 = new LatheShape3D( xsIn15, ysIn15, waterTex);
displayLathe(ls2, -3.5f, -5.0f, "drip");This particular bit of code produces the water globule, shown in Figure 17-3.

Figure 17-3. Water globule
The coordinates for the lathe curve are supplied as two arrays: one for the x-values and one for the y-values. Figure 17-4 shows the four coordinates plotted against the x- and y-axes.

Figure 17-4. Coordinates for the water globule
Tip
These coordinates are ordered by increasing the y-value, indicated by the numbered circles in the figure.
The x- and y-values must be greater than or equal to 0, and the first y-value must be
0. These restrictions simplify the calculation of the shape's height, which is used when mapping a texture over the shape's surface. Since the shape always starts at 0 on the y-axis, and there are no negative values, the shape's height is the largest y-value. An x-value may use a negative sign, but this has a special ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access