Design of Tibet Enhancements

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 Tibet Introductory Movie

The introductory movie subtree is shown in Figure 3. The SoSelection node allows selection of the SoFaceSet which is used to display the static picture and the running movie. Selecting the SoFaceSet once causes the movie to start playing. Selecting the SoFaceSet a second time causes the movie to stop and changes the main SoSwitch node's child to the Tibet room. The same SoFaceSet node is used by the static SoTexture2 jpeg picture and by the SoDMBufferTexture2 node that displays the movie. The code for this subtree is contained in the file tibet_movie.c++.

Figure 3:Nodes in tibet_movie.c++

Tibet Exhibit Windows

Most of the main Tibet room remains unchanged (see code for details). A major addition has been replacing static texture map displays with configurable exhibit windows that allow playing of movies, narration and slide shows. The code for each window is contained in its window file. For example, window 1 resides in tibet_w1.c++.

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 4a:Nodes in tibet_w1.c++

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.

Figure 4b:Nodes in tibet_w1.c++

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++.


Back

Table of Contents

Next