3D Graphics Programming with QuickDraw 3D

13 Summary of View Objects

13 C Summary

13 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

13 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);

13 Application-Defined Routines

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

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

13 - C Summary
13 - Constants
View Rendering Status Values
Compute Bounds Values
Properties of the Default Material
13 - View Objects Routines
Creating and Configuring Views
Rendering in a View
Picking in a View
Writing in a View
Bounding in a View
Setting Idle Methods
Writing Custom Data
Pushing and Popping the Graphics State
Getting a View's Transforms
Managing a View's Style States
Managing a View's Attribute Set
13 - Application-Defined Routines
13 - Errors and Warnings

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