There are 15 shapes. Five Rectangles, five Circles and five IndexedFaceSet2Ds arranged in 3 columns. There is but one Rectangle geometry, one Circle geometry, and one IndexedFaceSet2D geometry. However each shapes geometry is presented 5 different ways (the same ways for each type), using rotation, scale and center to affect the final shape.
Each shape has a small indicator circle to the right of it that has the isOver of a TouchSensor for the shape routed to the Material2D filled field for the circle indicator.
Hence each circle should fill only when the pointer is over the respective shape.
Snapshot of rendered output with pointer over the yellow rectangle so that its indicator circle is filled
from the isOver being routed from that TouchSensor.
![]() |