
The clients in this folder demonstrate how to use the FrameBufferPanel
class to write interactive GUI programs that use the renderer.

Most of the programs in this folder use a FrameBufferPanel as the only
GUI component in a JFrame window. These programs use keyboard, mouse,
window, and timer events for interactivity. This keeps the examples
simple.

The two programs
   InteractiveCube_R2.java
   InteractiveTriangle_R2.java
are the simplest examples. If you want to understand the structure
of the example clients, start with these two.

The program
   InteractiveModelsAll_R2.java
shows you an example of almost every Model built into the renderer. If
you just want to play around with the interactivity of these programs
and see what can be done, play with this one or with
   InteractiveModels_R2.java.

The program
   TwoInteractiveModels_R2.java
is a good example for seeing the difference between the two kinds
of pipelines, Pipeline.java and Pipeline2.java.


The seven programs called "ButtonsAndModels" combine a FrameBufferPanel
with other GUI components in a JFrame. These examples look more like
traditional interactive GUI programs.

The six programs
   ButtonsAndModels_v2a.java  (uses a private class)
   ButtonsAndModels_v2b.java  (uses a nested class)
   ButtonsAndModels_v2c.java  (uses an inner class)
   ButtonsAndModels_v2d.java  (uses an anonymous inner class)
   ButtonsAndModels_v2e.java  (uses two anonymous inner classes)
   ButtonsAndModels_v2f.java  (uses two lambda expressions)
all implement the exact same GUI program but they use several different
coding styles for writing the event handlers. Each coding style has
advantages and disadvantages. You will find all of them in common use.
I think the "nested class" style is the easiest to understand.
