Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
QTVRPanoAuthoring.h
#ifndef _QTVRPANOAUTHORING_ |
#define _QTVRPANOAUTHORING_ |
#define kPanoMediaType 'STpn' |
#define kPanDescType 'pano' |
#define kPanHeaderType 'pHdr' |
#if PRAGMA_ALIGN_SUPPORTED |
#pragma options align=mac68k |
#else |
WARNING: these structures must be aligned 68K |
#endif |
struct PanoramaDescription { |
long size; // Total size of PanoramaDescription |
long type; // must be 'pano' |
long reserved1; // must be zero |
long reserved2; // must be zero |
short majorVersion; // must be zero |
short minorVersion; // must be zero |
long sceneTrackID; // id of video track that contains panoramic scene |
long loResSceneTrackID; // id of video track that contains lo res panoramic scene |
long reserved3[6]; // must be zero |
long hotSpotTrackID; // id of video track that contains hotspot image |
long loResHotSpotTrackID; // id of video track that contains lo res hotspot image |
long reserved4[8]; // must be zero |
Fixed hPanStart; // horizontal pan range start angle (eg. 0) |
Fixed hPanEnd; // horizontal pan range end angle (eg. 360) |
Fixed vPanTop; // vertical pan range top angle(eg. 42.5) |
Fixed vPanBottom; // vertical pan range bottom angle (eg. -42.5) |
Fixed minimumZoom; // minimum zoom angle (eg. 5; use 0 for default)) |
Fixed maximumZoom; // maximum zoom angle (eg. 65; use 0 for default) |
// Info for highest res version of scene track |
long sceneSizeX; // pixel width of the panorama (eg. 768) |
long sceneSizeY; // pixel height of the panorama (eg. 2496) |
long numFrames; // number of diced frames (eg. 24) |
short reserved5; // must be zero |
short sceneNumFramesX; // diced frames wide (eg. 1) |
short sceneNumFramesY; // diced frames high (eg. 24) |
short sceneColorDepth; // bit depth of the scene track (eg. 32) |
// Info for highest res version of hotSpot track |
long hotSpotSizeX; // pixel width of the hot spot panorama (eg. 768) |
long hotSpotSizeY; // pixel height of the hot spot panorama (eg. 2496) |
short reserved6; // must be zero |
short hotSpotNumFramesX; // diced frames wide (eg. 1) |
short hotSpotNumFramesY; // diced frames high (eg. 24) |
short hotSpotColorDepth; // must be 8 |
}; |
typedef struct PanoramaDescription PanoramaDescription; |
typedef PanoramaDescription *PanoramaDescriptionPtr, **PanoramaDescriptionHandle; |
struct PanoSampleHeaderAtom { |
long size; |
OSType type; // must be 'pHdr' |
unsigned long nodeID; // corresponds to a node id in the idToTime table above |
Fixed defHPan; // default horizontal pan angle when displaying this node |
Fixed defVPan; // default vertical pan angle when displaying this node |
Fixed defZoom; // default zoom angle when displaying this node |
// constraints for this node; use zero for default |
Fixed minHPan; |
Fixed minVPan; |
Fixed minZoom; |
Fixed maxHPan; |
Fixed maxVPan; |
Fixed maxZoom; |
long reserved1; // must be zero |
long reserved2; // must be zero |
long nameStrOffset; // offset into string table atom |
long commentStrOffset; // offset into string table atom |
}; |
typedef struct PanoSampleHeaderAtom PanoSampleHeaderAtom; |
typedef PanoSampleHeaderAtom *PanoSampleHeaderAtomPtr, **PanoSampleHeaderAtomHandle; |
#if PRAGMA_ALIGN_SUPPORTED |
#pragma options align=reset |
#else |
WARNING: these structures must be aligned 68K |
#endif |
#endif |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14