3D Graphics Programming with QuickDraw 3D

3 Summary of QuickDraw3D Objects

3 C Summary

3 Constants

System-Wide Macros

#define Q3_FOUR_CHARACTER_CONSTANT(a,b,c,d)              ((const unsigned long)        \
          ((const unsigned long) (a) << 24)              \
        | ((const unsigned long) (b) << 16)              \
        | ((const unsigned long) (c) << 8)              \
        | ((const unsigned long) (d)))
#define Q3_OBJECT_TYPE(a,b,c,d)                      \
      ((TQ3ObjectType) Q3_FOUR_CHARACTER_CONSTANT(a,b,c,d))
#define Q3_METHOD_TYPE(a,b,c,d)                      \
      ((TQ3MethodType) Q3_FOUR_CHARACTER_CONSTANT(a,b,c,d))

Core Object Types

#define kQ3ObjectTypeElement             Q3_OBJECT_TYPE('e','l','m','n')
#define kQ3ObjectTypePick             Q3_OBJECT_TYPE('p','i','c','k')
#define kQ3ObjectTypeShared             Q3_OBJECT_TYPE('s','h','r','d')
#define kQ3ObjectTypeView             Q3_OBJECT_TYPE('v','i','e','w')
#define kQ3ObjectTypeInvalid             0

Shared Types

#define kQ3SharedTypeControllerState             Q3_OBJECT_TYPE('c','t','s','t')
#define kQ3SharedTypeDrawContext             Q3_OBJECT_TYPE('d','c','t','x')
#define kQ3SharedTypeFile             Q3_OBJECT_TYPE('f','i','l','e')
#define kQ3SharedTypeReference             Q3_OBJECT_TYPE('r','f','r','n')
#define kQ3SharedTypeRenderer             Q3_OBJECT_TYPE('r','d','d','r')
#define kQ3SharedTypeSet             Q3_OBJECT_TYPE('s','e','t',' ')
#define kQ3SharedTypeShape             Q3_OBJECT_TYPE('s','h','a','p')
#define kQ3SharedTypeShapePart             Q3_OBJECT_TYPE('s','p','r','t')
#define kQ3SharedTypeStorage             Q3_OBJECT_TYPE('s','t','r','g')
#define kQ3SharedTypeString             Q3_OBJECT_TYPE('s','t','r','n')
#define kQ3SharedTypeTexture             Q3_OBJECT_TYPE('t','x','t','r')
#define kQ3SharedTypeTracker             Q3_OBJECT_TYPE('t','r','k','r')
#define kQ3SharedTypeViewHints             Q3_OBJECT_TYPE('v','w','h','n')

Shape Types

#define kQ3ShapeTypeCamera             Q3_OBJECT_TYPE('c','m','r','a')
#define kQ3ShapeTypeGeometry             Q3_OBJECT_TYPE('g','m','t','r')
#define kQ3ShapeTypeGroup             Q3_OBJECT_TYPE('g','r','u','p')
#define kQ3ShapeTypeLight             Q3_OBJECT_TYPE('l','g','h','t')
#define kQ3ShapeTypeShader             Q3_OBJECT_TYPE('s','h','d','r')
#define kQ3ShapeTypeStyle             Q3_OBJECT_TYPE('s','t','y','l')
#define kQ3ShapeTypeTransform             Q3_OBJECT_TYPE('x','f','r','m')
#define kQ3ShapeTypeUnknown             Q3_OBJECT_TYPE('u','n','k','n')

Element Types

#define kQ3ElementTypeAttribute             Q3_OBJECT_TYPE('e','a','t','t')
#define kQ3ElementTypeNone             0
#define kQ3ElementTypeUnknown             32

Set Types

#define kQ3SetTypeAttribute             Q3_OBJECT_TYPE('a','t','t','r')

String Types

#define kQ3StringTypeCString             Q3_OBJECT_TYPE('s','t','r','c')

Method Types

#define kQ3MethodTypeObjectFileVersion             Q3_METHOD_TYPE('v','e','r','s')
#define kQ3MethodTypeObjectReadData             Q3_METHOD_TYPE('r','d','d','t')
#define kQ3MethodTypeObjectTraverse             Q3_METHOD_TYPE('t','r','v','s')
#define kQ3MethodTypeObjectUnregister             Q3_METHOD_TYPE('u','n','r','g')
#define kQ3MethodTypeObjectWrite             Q3_METHOD_TYPE('w','r','i','t')
#define kQ3MethodTypeElementCopyAdd             Q3_METHOD_TYPE('e','c','p','a')
#define kQ3MethodTypeElementCopyDuplicate             Q3_METHOD_TYPE('e','c','p','d')
#define kQ3MethodTypeElementCopyGet             Q3_METHOD_TYPE('e','c','p','g')
#define kQ3MethodTypeElementCopyReplace             Q3_METHOD_TYPE('e','c','p','r')
#define kQ3MethodTypeElementDelete             Q3_METHOD_TYPE('e','d','e','l')

3 Data Types

Objects

typedef long              TQ3ObjectType;
typedef struct TQ3ObjectPrivate              *TQ3Object;
typedef TQ3Object              TQ3ElementObject;
typedef TQ3Object              TQ3PickObject;
typedef TQ3Object              TQ3SharedObject;
typedef TQ3Object              TQ3ViewObject;

Shared Objects

typedef TQ3SharedObject              TQ3ControllerStateObject;
typedef TQ3SharedObject              TQ3DrawContextObject;
typedef TQ3SharedObject              TQ3FileObject;
typedef TQ3SharedObject              TQ3ReferenceObject;
typedef TQ3SharedObject              TQ3RendererObject;
typedef TQ3SharedObject              TQ3SetObject;
typedef TQ3SharedObject              TQ3ShapeObject;
typedef TQ3SharedObject              TQ3ShapePartObject;
typedef TQ3SharedObject              TQ3StorageObject;
typedef TQ3SharedObject              TQ3StringObject;
typedef TQ3SharedObject              TQ3TextureObject;
typedef TQ3SharedObject              TQ3TrackerObject;
typedef TQ3SharedObject              TQ3ViewHintsObject;

Sets

typedef TQ3SetObject              TQ3AttributeSet;
typedef long              TQ3ElementType;

Shapes

typedef TQ3ShapeObject              TQ3CameraObject;
typedef TQ3ShapeObject              TQ3GeometryObject;
typedef TQ3ShapeObject              TQ3GroupObject;
typedef TQ3ShapeObject              TQ3LightObject;
typedef TQ3ShapeObject              TQ3ShaderObject;
typedef TQ3ShapeObject              TQ3StyleObject;
typedef TQ3ShapeObject              TQ3TransformObject;
typedef TQ3ShapeObject              TQ3UnknownObject;

Groups

typedef TQ3GroupObject              TQ3DisplayGroupObject;

Shaders

typedef TQ3ShaderObject              TQ3SurfaceShaderObject;
typedef TQ3ShaderObject              TQ3IlluminationShaderObject;

Other Basic Types

typedef struct TQ3GroupPositionPrivate              *TQ3GroupPosition;
typedef struct TQ3ObjectClassPrivate              *TQ3ObjectClass;
typedef unsigned long              TQ3MethodType;
typedef void              (*TQ3FunctionPointer)(void);

3 QuickDraw3D Objects Routines

Managing Objects Classes

TQ3Status Q3ObjectClass_Unregister (
TQ3ObjectClass objectClass);

Managing Objects

TQ3Status Q3Object_Dispose (TQ3Object object);
TQ3Object Q3Object_Duplicate (TQ3Object object);
TQ3Object Q3Object_Submit (TQ3Object object, TQ3ViewObject view);
TQ3Boolean Q3Object_IsDrawable (TQ3Object object);
TQ3Boolean Q3Object_IsWritable (TQ3Object object);

Determining Object Types

TQ3ObjectType Q3Object_GetLeafType (
TQ3Object object);
TQ3ObjectType Q3Object_GetType (TQ3Object object);
TQ3Boolean Q3Object_IsType (TQ3Object object, TQ3ObjectType type);

Managing Shared Objects

TQ3SharedObject Q3Shared_GetReference (
TQ3SharedObject sharedObject);
TQ3ObjectType Q3Shared_GetType (
TQ3SharedObject sharedObject);

Registering Custom Elements

TQ3ObjectClass Q3ElementClass_Register (
TQ3ElementType elementType, 
char *name, 
unsigned long sizeOfElement, 
TQ3MetaHandler metaHandler);
TQ3Status Q3ElementType_GetElementSize (
TQ3ElementType elementType, 
unsigned long *sizeOfElement);

3 Application-Defined Routines

Method Metahandler

typedef TQ3FunctionPointer (*TQ3MetaHandler) (
TQ3MethodType methodType);

Object Methods

typedef TQ3Status (*TQ3ObjectUnregisterMethod) (
TQ3ObjectClass objectClass);

Set Methods

typedef TQ3Status (*TQ3ElementCopyAddMethod) (
const void *fromAPIElement, 
void *toInternalElement);
typedef TQ3Status (*TQ3ElementCopyDuplicateMethod) (
const void *fromInternalElement, 
void *toInternalElement);
typedef TQ3Status (*TQ3ElementCopyGetMethod) (
const void *fromInternalElement, 
void *toAPIElement);
typedef TQ3Status (*TQ3ElementCopyReplaceMethod) (
const void *fromAPIElement, 
void *ontoInternalElement);
typedef TQ3Status (*TQ3ElementDeleteMethod) (
void *internalElement);

3 - C Summary
3 - Constants
System-Wide Macros
Core Object Types
Shared Types
Shape Types
Element Types
Set Types
String Types
Method Types
3 - Data Types
Objects
Shared Objects
Sets
Shapes
Groups
Shaders
Other Basic Types
3 - QuickDraw3D Objects Routines
Managing Objects Classes
Managing Objects
Determining Object Types
Managing Shared Objects
Registering Custom Elements
3 - Application-Defined Routines
Method Metahandler
Object Methods
Set Methods

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

© Apple Computer, Inc.

Let us know what you think of these prototype pages.

Generated with Harlequin WebMaker