Title Banner

Previous Book Contents Book Index Next

Inside Macintosh: 3D Graphics Programming With QuickDraw 3D /
Chapter 13 - View Objects


Summary of View Objects

C Summary

Constants

View Rendering Status Values

typedef enum TQ3ViewStatus {
   kQ3ViewStatusDone,
   kQ3ViewStatusRetraverse,
   kQ3ViewStatusError,
   kQ3ViewStatusCancelled
} TQ3ViewStatus;

Compute Bounds Values

typedef enum TQ3ComputeBounds {
   kQ3ComputeBoundsExact,
   kQ3ComputeBoundsApproximate
} TQ3ComputeBounds;

Properties of the Default Material

#define kQ3ViewDefaultAmbientCoefficient  1.0
#define kQ3ViewDefaultDiffuseColor        0.5, 0.5, 0.5
#define kQ3ViewDefaultSpecularColor       0.5, 0.5, 0.5
#define kQ3ViewDefaultSpecularControl     4.0
#define kQ3ViewDefaultTransparency        1.0, 1.0, 1.0
#define kQ3ViewDefaultSubdivisionMethod   kQ3SubdivisionMethodConstant
#define kQ3ViewDefaultSubdivisionC1       10.0
#define kQ3ViewDefaultSubdivisionC2       10.0

View Objects Routines

Creating and Configuring Views

TQ3ViewObject Q3View_New(void);
TQ3Status Q3View_GetRenderer(TQ3ViewObject view, 
TQ3RendererObject *renderer);
TQ3Status Q3View_SetRenderer(TQ3ViewObject view, 
TQ3RendererObject renderer);
TQ3Status Q3View_SetRendererByType (
TQ3ViewObject view, TQ3ObjectType type);
TQ3Status Q3View_GetCamera(TQ3ViewObject view, 
TQ3CameraObject *camera);
TQ3Status Q3View_SetCamera(TQ3ViewObject view, 
TQ3CameraObject camera);
TQ3Status Q3View_GetLightGroup(TQ3ViewObject view, 
TQ3GroupObject *lightGroup);
TQ3Status Q3View_SetLightGroup(TQ3ViewObject view, 
TQ3GroupObject lightGroup);
TQ3Status Q3View_GetDrawContext (
TQ3ViewObject view, 
TQ3DrawContextObject *drawContext);
TQ3Status Q3View_SetDrawContext (
TQ3ViewObject view, 
TQ3DrawContextObject drawContext);

Rendering in a View

TQ3Status Q3View_StartRendering(TQ3ViewObject view);
TQ3ViewStatus Q3View_EndRendering (
TQ3ViewObject view);
TQ3Status Q3View_Cancel(TQ3ViewObject view);

Picking in a View

TQ3Status Q3View_StartPicking(TQ3ViewObject view, TQ3PickObject pick);
TQ3ViewStatus Q3View_EndPicking (
TQ3ViewObject view);

Writing in a View

TQ3Status Q3View_StartWriting(TQ3ViewObject view, TQ3FileObject file);
TQ3ViewStatus Q3View_EndWriting (
TQ3ViewObject view);

Bounding in a View

TQ3Status Q3View_StartBoundingBox (
TQ3ViewObject view, 
TQ3ComputeBounds computeBounds);
TQ3ViewStatus Q3View_EndBoundingBox (
TQ3ViewObject view, TQ3BoundingBox *result);
TQ3Status Q3View_StartBoundingSphere (
TQ3ViewObject view, 
TQ3ComputeBounds computeBounds);
TQ3ViewStatus Q3View_EndBoundingSphere (
TQ3ViewObject view, 
TQ3BoundingSphere *result);
TQ3Boolean Q3View_IsBoundingBoxVisible (
TQ3ViewObject view, 
const TQ3BoundingBox *bbox);

Setting Idle Methods

TQ3Status Q3View_SetIdleMethod(TQ3ViewObject view, 
TQ3ViewIdleMethod idleMethod, 
const void *idleData);

Writing Custom Data

TQ3Status Q3View_SubmitWriteData (
TQ3ViewObject view, 
TQ3Size size,
void *data, 
void (*deleteData));

Pushing and Popping the Graphics State

TQ3Status Q3Push_Submit(TQ3ViewObject view);
TQ3Status Q3Pop_Submit(TQ3ViewObject view);

Getting a View's Transforms

TQ3Status Q3View_GetLocalToWorldMatrixState (
TQ3ViewObject view, TQ3Matrix4x4 *matrix);
TQ3Status Q3View_GetWorldToFrustumMatrixState (
TQ3ViewObject view, TQ3Matrix4x4 *matrix);
TQ3Status Q3View_GetFrustumToWindowMatrixState (
TQ3ViewObject view, TQ3Matrix4x4 *matrix);

Managing a View's Style States

TQ3Status Q3View_GetBackfacingStyleState (
TQ3ViewObject view, 
TQ3BackfacingStyle *backfacingStyle);
TQ3Status Q3View_GetInterpolationStyleState (
TQ3ViewObject view, 
TQ3InterpolationStyle *interpolationType);
TQ3Status Q3View_GetFillStyleState (
TQ3ViewObject view, 
TQ3FillStyle *fillStyle);
TQ3Status Q3View_GetHighlightStyleState (
TQ3ViewObject view, 
TQ3AttributeSet *highlightStyle);
TQ3Status Q3View_GetSubdivisionStyleState (
TQ3ViewObject view, 
TQ3SubdivisionStyleData *subdivisionStyle);
TQ3Status Q3View_GetOrientationStyleState (
TQ3ViewObject view, 
TQ3OrientationStyle *fontFacingDirectionStyle);
TQ3Status Q3View_GetReceiveShadowsStyleState (
TQ3ViewObject view, 
TQ3Boolean *receives);
TQ3Status Q3View_GetPickIDStyleState (
TQ3ViewObject view, 
unsigned long *pickIDStyle);
TQ3Status Q3View_GetPickPartsStyleState (
TQ3ViewObject view, 
TQ3PickParts *pickPartsStyle);

Managing a View's Attribute Set

TQ3Status Q3View_GetDefaultAttributeSet (
TQ3ViewObject view,
TQ3AttributeSet *attributeSet);
TQ3Status Q3View_SetDefaultAttributeSet (
TQ3ViewObject view,
TQ3AttributeSet attributeSet);
TQ3Status Q3View_GetAttributeSetState (
TQ3ViewObject view, 
TQ3AttributeSet *attributeSet);
TQ3Status Q3View_GetAttributeState (
TQ3ViewObject view, 
TQ3AttributeType attributeType, 
void *data);

Application-Defined Routines

typedef TQ3Status (*TQ3ViewIdleMethod) (
TQ3ViewObject view, 
const void *idleData);

Errors and Warnings
kQ3ErrorViewNotStarted 
kQ3ErrorViewIsStarted 
kQ3ErrorRendererNotSet 
kQ3ErrorRenderingIsActive 
kQ3ErrorImmediateModeUnderflow 
kQ3ErrorDisplayNotSet 
kQ3ErrorCameraNotSet 
kQ3ErrorDrawContextNotSet 
kQ3ErrorNonInvertibleMatrix 
kQ3ErrorRenderingNotStarted 
kQ3ErrorPickingNotStarted 
kQ3ErrorBoundsNotStarted 
kQ3ErrorDataNotAvailable 
kQ3ErrorNothingToPop 
kQ3WarningViewTraversalInProgress 
kQ3WarningNonInvertibleMatrix 


Previous Book Contents Book Index Next

© Apple Computer, Inc.
11 JUL 1996




Navigation graphic, see text links

Main | Top of Section | What's New | Apple Computer, Inc. | Find It | Feedback | Help