Panorama tracks in cubic nodes
Specify special values in the pano sample data atom to provide compatibility back to QuickTime VR 2.2.
Overview
The media sample for a panorama track contains the pano sample atom container. For cubes, some of the fields in the pano sample data atom have special values, which provide compatibility back to QuickTime VR 2.2. The cubic projection engine ignores these fields. They allow one to view cubic movies in older versions of QuickTime VR using the cylindrical engine, although the view will be somewhat incorrect, and the top and bottom faces will not be visible. The special values are shown in the following table.
Field | Value |
|---|---|
|
|
|
|
| Frame width * |
| Frame height |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A 1 value in the flags field tells QuickTime VR 2.2 that the frames are not rotated. QuickTime VR 2.2 treats this as a four-frame horizontal cylinder. The panoType field (formerly reserved1) must be set to kQTVRCube ('cube') so that QuickTime VR 3.0 can recognize this panorama as a cube.
Since certain viewing fields in the pano sample data atom are being used for backward compatibility, a new atom must be added to indicate the proper viewing parameters for the cubic image. This atom is the cubic view atom (atom type 'cuvw'). The data structure of the cubic view atom is as follows:
struct QTVRCubicViewAtom {
Float32 minPan;
Float32 maxPan;
Float32 minTilt;
Float32 maxTilt;
Float32 minFieldOfView;
Float32 maxFieldOfView;
Float32 defaultPan;
Float32 defaultTilt;
Float32 defaultFieldOfView;
};
typedef struct QTVRCubicViewAtom QTVRCubicViewAtom;The fields are filled in as desired for the cubic image. This atom is ignored by older versions of QuickTime VR. Typical minimum and maximum field values are shown in the following table.
Field | Value |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
You add the cubic view atom to the pano sample atom container (after adding the pano sample data atom). Then use AddMediaSample to add the atom container to the panorama track.
See Also
Media data atom types
Sprite mediaSprite track propertiesSprite track media formatSprite media atom and data typesSprite button behaviorsQT atom container description keySprite media handler track properties QT atom container formatSprite media handler sample QT atom container formatsWired action grammarTween media3D mediaVR mediaNode parent atomNode location atom structureCustom cursor atom