Mac OS 9
QD3DSet.h File Reference

Q3Set types and routines. More...

#include <QD3D.h>

Go to the source code of this file.

Macros

#define kQ3XMethodTypeElementCopyAdd   Q3_METHOD_TYPE('e', 'c', 'p', 'a')
 
#define kQ3XMethodTypeElementCopyReplace   Q3_METHOD_TYPE('e', 'c', 'p', 'r')
 
#define kQ3XMethodTypeElementCopyGet   Q3_METHOD_TYPE('e', 'c', 'p', 'g')
 
#define kQ3XMethodTypeElementCopyDuplicate   Q3_METHOD_TYPE('e', 'c', 'p', 'd')
 
#define kQ3XMethodTypeElementDelete   Q3_METHOD_TYPE('e', 'd', 'e', 'l')
 
#define kQ3XMethodTypeAttributeInherit   Q3_METHOD_TYPE('i', 'n', 'h', 't')
 
#define kQ3XMethodTypeAttributeCopyInherit   Q3_METHOD_TYPE('a', 'c', 'p', 'i')
 
#define kQ3XMethodTypeAttributeDefault   Q3_METHOD_TYPE('a', 's', 'd', 'f')
 
#define kQ3XMethodTypeAttributeIsDefault   Q3_METHOD_TYPE('a', 'i', 'd', 'f')
 

Typedefs

typedef enum TQ3AttributeTypes TQ3AttributeTypes
 
typedef TQ3ElementType TQ3AttributeType
 
typedef void * toInternalElement
 
typedef void * ontoInternalElement
 
typedef void * toAPIElement
 
typedef TQ3Boolean TQ3XAttributeInheritMethod
 
typedef void * toInternalAttribute
 

Enumerations

enum  TQ3AttributeTypes {
  kQ3AttributeTypeNone = 0 , kQ3AttributeTypeSurfaceUV = 1 , kQ3AttributeTypeShadingUV = 2 , kQ3AttributeTypeNormal = 3 ,
  kQ3AttributeTypeAmbientCoefficient = 4 , kQ3AttributeTypeDiffuseColor = 5 , kQ3AttributeTypeSpecularColor = 6 , kQ3AttributeTypeSpecularControl = 7 ,
  kQ3AttributeTypeTransparencyColor = 8 , kQ3AttributeTypeSurfaceTangent = 9 , kQ3AttributeTypeHighlightState = 10 , kQ3AttributeTypeSurfaceShader = 11 ,
  kQ3AttributeTypeNumTypes = 12
}
 

Functions

TQ3SetObject Q3Set_New (void)
 
TQ3ObjectType Q3Set_GetType (TQ3SetObject theSet)
 
TQ3Status Q3Set_Add (TQ3SetObject theSet, TQ3ElementType theType, const void *data)
 
TQ3Status Q3Set_Get (TQ3SetObject theSet, TQ3ElementType theType, void *data)
 
TQ3Boolean Q3Set_Contains (TQ3SetObject theSet, TQ3ElementType theType)
 
TQ3Status Q3Set_Clear (TQ3SetObject theSet, TQ3ElementType theType)
 
TQ3Status Q3Set_Empty (TQ3SetObject target)
 
TQ3Status Q3Set_GetNextElementType (TQ3SetObject theSet, TQ3ElementType *theType)
 
TQ3Status Q3Attribute_Submit (TQ3AttributeType attributeType, const void *data, TQ3ViewObject view)
 
TQ3AttributeSet Q3AttributeSet_New (void)
 
TQ3Status Q3AttributeSet_Add (TQ3AttributeSet attributeSet, TQ3AttributeType theType, const void *data)
 
TQ3Boolean Q3AttributeSet_Contains (TQ3AttributeSet attributeSet, TQ3AttributeType attributeType)
 
TQ3Status Q3AttributeSet_Get (TQ3AttributeSet attributeSet, TQ3AttributeType theType, void *data)
 
TQ3Status Q3AttributeSet_Clear (TQ3AttributeSet attributeSet, TQ3AttributeType theType)
 
TQ3Status Q3AttributeSet_Empty (TQ3AttributeSet target)
 
TQ3Status Q3AttributeSet_GetNextAttributeType (TQ3AttributeSet source, TQ3AttributeType *theType)
 
TQ3Status Q3AttributeSet_Submit (TQ3AttributeSet attributeSet, TQ3ViewObject view)
 
TQ3Status Q3AttributeSet_Inherit (TQ3AttributeSet parent, TQ3AttributeSet child, TQ3AttributeSet result)
 
typedef CALLBACK_API_C (TQ3Status, TQ3XElementCopyAddMethod)(const void *fromAPIElement
 
typedef CALLBACK_API_C (TQ3Status, TQ3XElementCopyReplaceMethod)(const void *fromAPIElement
 
typedef CALLBACK_API_C (TQ3Status, TQ3XElementCopyGetMethod)(const void *fromInternalElement
 
typedef CALLBACK_API_C (TQ3Status, TQ3XElementCopyDuplicateMethod)(const void *fromInternalElement
 
typedef CALLBACK_API_C (TQ3Status, TQ3XElementDeleteMethod)(void *internalElement)
 
TQ3XObjectClass Q3XElementClass_Register (TQ3ElementType *elementType, const char *name, unsigned long sizeOfElement, TQ3XMetaHandler metaHandler)
 
TQ3Status Q3XElementType_GetElementSize (TQ3ElementType elementType, unsigned long *sizeOfElement)
 
typedef CALLBACK_API_C (TQ3Status, TQ3XAttributeCopyInheritMethod)(const void *fromInternalAttribute
 
TQ3XObjectClass Q3XAttributeClass_Register (TQ3AttributeType *attributeType, const char *creatorName, unsigned long sizeOfElement, TQ3XMetaHandler metaHandler)
 
typedef CALLBACK_API_C (TQ3Status, TQ3XAttributeDefaultMethod)(void *internalElement)
 
typedef CALLBACK_API_C (TQ3Boolean, TQ3XAttributeIsDefaultMethod)(void *internalElement)
 

Detailed Description

Q3Set types and routines.

Introduced In: Quickdraw 3D 1.6
Avaliable From: Universal Interfaces 3.4.1
Copyright: � 1995-2001 by Apple Computer, Inc., all rights reserved.

For bug reports, consult the following page on the World Wide Web:

http://developer.apple.com/bugreporter/

Macro Definition Documentation

◆ kQ3XMethodTypeAttributeDefault

#define kQ3XMethodTypeAttributeDefault   Q3_METHOD_TYPE('a', 's', 'd', 'f')

Version 1.5

◆ kQ3XMethodTypeElementCopyAdd

#define kQ3XMethodTypeElementCopyAdd   Q3_METHOD_TYPE('e', 'c', 'p', 'a')

Element Methods -

 When you create a custom element, you control what structures are
 passed around the API. For example, you may allow the Q3Set_Add call
 take one type of argument, store your element internally in some
 abstract data type, and have the Q3Set_Get call take a different
 argument.

 For example:

 There are four calls which at some point will copy an element:

 Q3Set_Add (copied from Application memory to QuickDraw3D memory)
 Q3Set_Get (copied from QuickDraw3D memory to Application memory)
 Q3Object_Duplicate (all elements are copied internally)
 Q3AttributeSet_Inherit (all elements are copied internally)

 Either CopyAdd or CopyReplace is called during the "_Add" call.
     - CopyAdd is destructive and should assume "toElement" is garbage
     - CopyReplace is replacing an existing element.

 CopyGet is called during the "_Get" call.

 CopyDuplicate is called to duplicate an element's internal structure.

Attributes Methods -

 For copying data while Inheriting. Element methods are used
 at all other times.

 CopyInherit is called to duplicate an element's internal structure
     during inheritance. You should make this as fast as possible.
     (for example, if your custom element contains objects, you
      should do a Q3Shared_GetReference instead of a Q3Object_Duplicate)

 The ElementDelete method will be called for all of your elements
 copied around via CopyAdd, CopyReplace, CopyDuplicate, and
 CopyInherit.
 If CopyGet allocates any memory in it's destination, it is up to the
 application to delete it on its side.

Enumeration Type Documentation

◆ TQ3AttributeTypes

For the data types listed below, pass in a pointer to it in the _Add and _Get calls.

For surface shader attributes, reference counts are incremented on the _Add and _Get

Function Documentation

◆ Q3Attribute_Submit()

TQ3Status Q3Attribute_Submit ( TQ3AttributeType  attributeType,
const void *  data,
TQ3ViewObject  view 
)

Q3Attribute_Submit()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3AttributeSet_Add()

TQ3Status Q3AttributeSet_Add ( TQ3AttributeSet  attributeSet,
TQ3AttributeType  theType,
const void *  data 
)

Q3AttributeSet_Add()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3AttributeSet_Clear()

TQ3Status Q3AttributeSet_Clear ( TQ3AttributeSet  attributeSet,
TQ3AttributeType  theType 
)

Q3AttributeSet_Clear()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3AttributeSet_Contains()

TQ3Boolean Q3AttributeSet_Contains ( TQ3AttributeSet  attributeSet,
TQ3AttributeType  attributeType 
)

Q3AttributeSet_Contains()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3AttributeSet_Empty()

TQ3Status Q3AttributeSet_Empty ( TQ3AttributeSet  target)

Q3AttributeSet_Empty()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3AttributeSet_Get()

TQ3Status Q3AttributeSet_Get ( TQ3AttributeSet  attributeSet,
TQ3AttributeType  theType,
void *  data 
)

Q3AttributeSet_Get()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3AttributeSet_GetNextAttributeType()

TQ3Status Q3AttributeSet_GetNextAttributeType ( TQ3AttributeSet  source,
TQ3AttributeType *  theType 
)

Q3AttributeSet_GetNextAttributeType

Pass in kQ3AttributeTypeNone to get first type kQ3AttributeTypeNone is returned when end of list is reached Q3AttributeSet_GetNextAttributeType()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3AttributeSet_Inherit()

TQ3Status Q3AttributeSet_Inherit ( TQ3AttributeSet  parent,
TQ3AttributeSet  child,
TQ3AttributeSet  result 
)

Inherit from parent->child into result Result attributes are: all child attributes + all parent attributes NOT in the child Q3AttributeSet_Inherit()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3AttributeSet_New()

TQ3AttributeSet Q3AttributeSet_New ( void  )

Q3AttributeSet_New()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3AttributeSet_Submit()

TQ3Status Q3AttributeSet_Submit ( TQ3AttributeSet  attributeSet,
TQ3ViewObject  view 
)

Q3AttributeSet_Submit()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3Set_Add()

TQ3Status Q3Set_Add ( TQ3SetObject  theSet,
TQ3ElementType  theType,
const void *  data 
)

Q3Set_Add()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3Set_Clear()

TQ3Status Q3Set_Clear ( TQ3SetObject  theSet,
TQ3ElementType  theType 
)

Q3Set_Clear()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3Set_Contains()

TQ3Boolean Q3Set_Contains ( TQ3SetObject  theSet,
TQ3ElementType  theType 
)

Q3Set_Contains()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3Set_Empty()

TQ3Status Q3Set_Empty ( TQ3SetObject  target)

Q3Set_Empty()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3Set_Get()

TQ3Status Q3Set_Get ( TQ3SetObject  theSet,
TQ3ElementType  theType,
void *  data 
)

Q3Set_Get()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3Set_GetNextElementType()

TQ3Status Q3Set_GetNextElementType ( TQ3SetObject  theSet,
TQ3ElementType theType 
)

Iterating through all elements in a set

Pass in kQ3ElementTypeNone to get first type kQ3ElementTypeNone is returned when end of list is reached Q3Set_GetNextElementType()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3Set_GetType()

TQ3ObjectType Q3Set_GetType ( TQ3SetObject  theSet)

Q3Set_GetType()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3Set_New()

TQ3SetObject Q3Set_New ( void  )

Q3Set_New()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3XAttributeClass_Register()

TQ3XObjectClass Q3XAttributeClass_Register ( TQ3AttributeType *  attributeType,
const char *  creatorName,
unsigned long  sizeOfElement,
TQ3XMetaHandler  metaHandler 
)

Q3XAttributeClass_Register()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3XElementClass_Register()

TQ3XObjectClass Q3XElementClass_Register ( TQ3ElementType elementType,
const char *  name,
unsigned long  sizeOfElement,
TQ3XMetaHandler  metaHandler 
)

Q3XElementClass_Register()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available

◆ Q3XElementType_GetElementSize()

TQ3Status Q3XElementType_GetElementSize ( TQ3ElementType  elementType,
unsigned long *  sizeOfElement 
)

Q3XElementType_GetElementSize()

Availability:

Non-Carbon CFM: not available
Carbon Lib: not available
Mac OS X: not available