QTVRObjectAuthoring.h

#ifndef __QTVROBJECTAUTHORING__
#define __QTVROBJECTAUTHORING__
 
#ifndef __MOVIES__
#include <Movies.h>
#endif
 
#ifdef __cplusplus
extern "C" {
#endif
 
// Creator types
#define kQTVRPlayerCreatorType      'vrod'
#define kMoviePlayerCreatorType     'TVOD'
#define kControllerID               1
 
// QTVR Object types
enum {
    kBadObjectType          = 0,
    kStandardObject         = 1,    // "Object"          in Add Navigable Data dialog
    kOldNavigableMovieScene = 2,    // "Scene"           in Add Navigable Data dialog
    kObjectInScene          = 3     // "Object In Scene" in Add Navigable Data dialog
};
 
// File format for version 1.0.
#pragma options align=mac68k
typedef struct {
    short           versionNumber;      // Always 1
    short           numberOfColumns;    // Number of columns in movie
    short           numberOfRows;       // Number rows in movie
    short           reserved1;          // Zero
    short           loopSize;           // Number of frames shot at each position
    short           frameDuration;      // The duration of each frame
    short           movieType;          // kStandardObject, kObjectInScene, or kOldNavigableMovieScene
    short           loopTicks;          // Number of ticks before next frame of loop is displayed
    Fixed           fieldOfView;        // 180.0 for kStandardObject or kObjectInScene, actual degrees for kOldNavigableMovieScene.
    Fixed           startHPan;          // Start   horizontal pan angle in degrees
    Fixed           endHPan;            // End     horizontal pan angle in degrees
    Fixed           endVPan;            // End     vertical   pan angle in degrees
    Fixed           startVPan;          // Start   vertical   pan angle in degrees
    Fixed           initialHPan;        // Initial horizontal pan angle in degrees (poster view)
    Fixed           initialVPan;        // Initial vertical   pan angle in degrees (poster view)
    long            reserved2;          // Zero
} QTVRObjectFileFormat1x0Record, *QTVRObjectFileFormat1x0Ptr;
#pragma options align=reset
 
pascal OSErr SetQTVRObjectFileFormat1x0 (
                        Movie       movie,
                        short       movieResFref,
                        short       movieResID,
                        FSSpec      movieSFFile,
                        TimeValue   posterViewTime,
                        const QTVRObjectFileFormat1x0Ptr    fileFormatPtr);
                        
pascal OSErr GetQTVRObjectFileFormat1x0 (
                        Movie       movie,
                        QTVRObjectFileFormat1x0Ptr  fileFormatPtr);
                        
pascal OSErr DeleteQTVRObjectFileFormat1x0 (
                        Movie       movie,
                        short       movieResFref,
                        short       movieResID,
                        FSSpec      movieSFFile);
 
void ConvertTimeToPanUtil (TimeValue time, 
                            TimeValue frameDuration,
                            short numColumns,
                            short numRows,
                            short loopSize,
                            Fixed startHPan,
                            Fixed endHPan,
                            Fixed startVPan,
                            Fixed endVPan,
                            Fixed *hPan,
                            Fixed *vPan);
                            
OSErr StuffQTVRObjectFileFormat1x0 (short       movieType,
                                    TimeValue   frameDuration,
                                    short       numberOfColumns,
                                    short       numberOfRows,
                                    short       loopSize,
                                    short       loopTicks,
                                    Fixed       startHPan,
                                    Fixed       endHPan,
                                    Fixed       startVPan,
                                    Fixed       endVPan,
                                    Fixed       fieldOfView,
                                    Fixed       initialHPan,
                                    Fixed       initialVPan,
                                    QTVRObjectFileFormat1x0Ptr  fileFormatPtr);
 
#ifdef __cplusplus
}
#endif
 
#endif//__QTVROBJECTAUTHORING__