3D Graphics Programming with QuickDraw 3D

9 Summary of Camera Objects

9 C Summary

9 Constants

Camera Types

#define kQ3CameraTypeOrthographic             Q3_OBJECT_TYPE('o','r','t','h')
#define kQ3CameraTypeViewAngleAspect             Q3_OBJECT_TYPE('v','a','n','a')
#define kQ3CameraTypeViewPlane             Q3_OBJECT_TYPE('v','w','p','l')

9 Data Types

Camera Placement Structure

typedef struct TQ3CameraPlacement {
 TQ3Point3D         cameraLocation;
 TQ3Point3D         pointOfInterest;
 TQ3Vector3D         upVector;
} TQ3CameraPlacement;

Camera Range Structure

typedef struct TQ3CameraRange {
 float         hither;
 float         yon;
} TQ3CameraRange;

Camera View Port

typedef struct TQ3CameraViewPort {
 TQ3Point2D         origin;
 float         width;
 float         height;
} TQ3CameraViewPort;

Camera Data Structure

typedef struct TQ3CameraData {
 TQ3CameraPlacement         placement;
 TQ3CameraRange         range;
 TQ3CameraViewPort         viewPort;
} TQ3CameraData;

Orthographic Camera Data Structure

typedef struct TQ3OrthographicCameraData {
 TQ3CameraData         cameraData;
 float         left;
 float         top;
 float         right;
 float         bottom;
} TQ3OrthographicCameraData;

View Plane Camera Data Structure

typedef struct TQ3ViewPlaneCameraData {
 TQ3CameraData         cameraData;
 float         viewPlane;
 float         halfWidthAtViewPlane;
 float         halfHeightAtViewPlane;
 float         centerXOnViewPlane;
 float         centerYOnViewPlane;
} TQ3ViewPlaneCameraData;

Aspect Ratio Camera Data Structure

typedef struct TQ3ViewAngleAspectCameraData {
 TQ3CameraData         cameraData;
 float         fov;
 float         aspectRatioXToY;
} TQ3ViewAngleAspectCameraData;

9 Camera Objects Routines

Managing Cameras

TQ3ObjectType Q3Camera_GetType (TQ3CameraObject camera);
TQ3Status Q3Camera_GetData (TQ3CameraObject camera, 
TQ3CameraData *cameraData);
TQ3Status Q3Camera_SetData (TQ3CameraObject camera, 
const TQ3CameraData *cameraData);
TQ3Status Q3Camera_GetPlacement (
TQ3CameraObject camera, 
TQ3CameraPlacement *placement);
TQ3Status Q3Camera_SetPlacement (
TQ3CameraObject camera, 
const TQ3CameraPlacement *placement);
TQ3Status Q3Camera_GetRange (TQ3CameraObject camera, 
TQ3CameraRange *range);
TQ3Status Q3Camera_SetRange (TQ3CameraObject camera, 
const TQ3CameraRange *range);
TQ3Status Q3Camera_GetViewPort (TQ3CameraObject camera, 
TQ3CameraViewPort *viewPort);
TQ3Status Q3Camera_SetViewPort (TQ3CameraObject camera, 
const TQ3CameraViewPort *viewPort);
TQ3Status Q3Camera_GetWorldToView (
TQ3CameraObject camera, 
TQ3Matrix4x4 *worldToView);
TQ3Status Q3Camera_GetViewToFrustum (
TQ3CameraObject camera, 
TQ3Matrix4x4 *viewToFrustum);
TQ3Status Q3Camera_GetWorldToFrustum (
TQ3CameraObject camera, 
TQ3Matrix4x4 *worldToFrustum);

Managing Orthographic Cameras

TQ3CameraObject Q3OrthographicCamera_New (
const TQ3OrthographicCameraData *orthographicData);
TQ3Status Q3OrthographicCamera_GetData (
TQ3CameraObject camera, 
TQ3OrthographicCameraData *cameraData);
TQ3Status Q3OrthographicCamera_SetData (
TQ3CameraObject camera, 
const TQ3OrthographicCameraData *cameraData);
TQ3Status Q3OrthographicCamera_GetLeft (
TQ3CameraObject camera, float *left);
TQ3Status Q3OrthographicCamera_SetLeft (
TQ3CameraObject camera, float left);
TQ3Status Q3OrthographicCamera_GetTop (
TQ3CameraObject camera, float *top);
TQ3Status Q3OrthographicCamera_SetTop (
TQ3CameraObject camera, float top);
TQ3Status Q3OrthographicCamera_GetRight (
TQ3CameraObject camera, float *right);
TQ3Status Q3OrthographicCamera_SetRight (
TQ3CameraObject camera, float right);
TQ3Status Q3OrthographicCamera_GetBottom (
TQ3CameraObject camera, float *bottom);
TQ3Status Q3OrthographicCamera_SetBottom (
TQ3CameraObject camera, float bottom);

Managing View Plane Cameras

TQ3CameraObject Q3ViewPlaneCamera_New (
const TQ3ViewPlaneCameraData *cameraData);
TQ3Status Q3ViewPlaneCamera_GetData (
TQ3CameraObject camera, 
TQ3ViewPlaneCameraData *cameraData);
TQ3Status Q3ViewPlaneCamera_SetData (
TQ3CameraObject camera, 
const TQ3ViewPlaneCameraData *cameraData);
TQ3Status Q3ViewPlaneCamera_GetViewPlane (
TQ3CameraObject camera, float *viewPlane);
TQ3Status Q3ViewPlaneCamera_SetViewPlane (
TQ3CameraObject camera, float viewPlane);
TQ3Status Q3ViewPlaneCamera_GetHalfWidth (
TQ3CameraObject camera, 
float *halfWidthAtViewPlane);
TQ3Status Q3ViewPlaneCamera_SetHalfWidth (
TQ3CameraObject camera, 
float halfWidthAtViewPlane);
TQ3Status Q3ViewPlaneCamera_GetHalfHeight (
TQ3CameraObject camera, 
float *halfHeightAtViewPlane);
TQ3Status Q3ViewPlaneCamera_SetHalfHeight (
TQ3CameraObject camera, 
float halfHeightAtViewPlane);
TQ3Status Q3ViewPlaneCamera_GetCenterX (
TQ3CameraObject camera, 
float *centerXOnViewPlane);
TQ3Status Q3ViewPlaneCamera_SetCenterX (
TQ3CameraObject camera, 
float centerXOnViewPlane);
TQ3Status Q3ViewPlaneCamera_GetCenterY (
TQ3CameraObject camera, 
float *centerYOnViewPlane);
TQ3Status Q3ViewPlaneCamera_SetCenterY (
TQ3CameraObject camera, 
float centerYOnViewPlane);

Managing Aspect Ratio Cameras

TQ3CameraObject Q3ViewAngleAspectCamera_New (
const TQ3ViewAngleAspectCameraData *cameraData);
TQ3Status Q3ViewAngleAspectCamera_GetData (
TQ3CameraObject camera, 
TQ3ViewAngleAspectCameraData *cameraData);
TQ3Status Q3ViewAngleAspectCamera_SetData (
TQ3CameraObject camera, 
const TQ3ViewAngleAspectCameraData *cameraData);
TQ3Status Q3ViewAngleAspectCamera_GetFOV (
TQ3CameraObject camera, float *fov);
TQ3Status Q3ViewAngleAspectCamera_SetFOV (
TQ3CameraObject camera, float fov);
TQ3Status Q3ViewAngleAspectCamera_GetAspectRatio (
TQ3CameraObject camera, 
float *aspectRatioXToY);
TQ3Status Q3ViewAngleAspectCamera_SetAspectRatio (
TQ3CameraObject camera, 
float aspectRatioXToY);

9 Errors
kQ3ErrorInvalidCameraValuesSome camera values are invalid

9 - C Summary
9 - Constants
Camera Types
9 - Data Types
Camera Placement Structure
Camera Range Structure
Camera View Port
Camera Data Structure
Orthographic Camera Data Structure
View Plane Camera Data Structure
Aspect Ratio Camera Data Structure
9 - Camera Objects Routines
Managing Cameras
Managing Orthographic Cameras
Managing View Plane Cameras
Managing Aspect Ratio Cameras
9 - Errors

3D Graphics Programming with QuickDraw 3D - 17 OCT 1995

© Apple Computer, Inc.

Let us know what you think of these prototype pages.

Generated with Harlequin WebMaker