The file tibet.c++ (and auxillary files) was a stand alone project that has been adapted to fit into the overall Virtual Tour of China project. A separate step was added between the introduction screen and the actual Tibetan room. Also, static displays were changed to displays that allow video, slides, and narration.
The top node is a SoGroup node with a SoDirectionalLight and SoSwitch attached as shown in Figure 4a. The light node ensures that the exhibit is well lighted. The SoSwitch changes between a static picture, a movie display, and a slide show display with optional narration. The SoGroups and SoSeparators change the selectable text depending on which diplay is being used.
Figure 4b shows a typical display grouping of text. The text is SoText2 type and is selectable. The movie only has "Done" as a selectable command, the slide show has "Narration" and "Next" as available events, and the original static picture has "Movie" and "Slide Show" as selectable text. All subtrees have a label defined by a separator, material and transform. The text is positioned above the SoFaceSet display. The actual selectable text is attached below a SoSelection node along with its transform, material (all black in this case), the text, and an invisible (transparent) cube placed over the text to make it easier to pick with the mouse pointer.
The callback function for each selectable text is responsible for changing the texture map, starting/stopping a movie, or sending a narration file to the audio player. These functions are also in tibet_w1.c++.