Enumerations



Attribute method types


enum {
    kQ3XMethodTypeAttributeInherit              = Q3_METHOD_TYPE('i', 'n', 'h', 't'),
    kQ3XMethodTypeAttributeCopyInherit          = Q3_METHOD_TYPE('a', 'c', 'p', 'i'),
    kQ3XMethodTypeAttributeDefault              = Q3_METHOD_TYPE('a', 's', 'd', 'f'),
    kQ3XMethodTypeAttributeIsDefault            = Q3_METHOD_TYPE('a', 'i', 'd', 'f')
};
Discussion

These are method types that apply particularly to custom attributes. Note that a custom element may also need to provide more general custom element or custom class methods, such as kQ3XMethodTypeObjectTraverse.

Constants

kQ3XMethodTypeAttributeInherit
See TQ3XAttributeInheritMethod.
kQ3XMethodTypeAttributeCopyInherit
See TQ3XAttributeCopyInheritMethod.
kQ3XMethodTypeAttributeDefault
See TQ3XAttributeDefaultMethod.
kQ3XMethodTypeAttributeIsDefault
See TQ3XAttributeIsDefaultMethod.

Element method types


enum {
    kQ3XMethodTypeElementCopyAdd                = Q3_METHOD_TYPE('e', 'c', 'p', 'a'),
    kQ3XMethodTypeElementCopyReplace            = Q3_METHOD_TYPE('e', 'c', 'p', 'r'),
    kQ3XMethodTypeElementCopyGet                = Q3_METHOD_TYPE('e', 'c', 'p', 'g'),
    kQ3XMethodTypeElementCopyDuplicate          = Q3_METHOD_TYPE('e', 'c', 'p', 'd'),
    kQ3XMethodTypeElementDelete                 = Q3_METHOD_TYPE('e', 'd', 'e', 'l')
};
Discussion

These are method types that apply particularly to custom elements. Note that a custom element may also need to provide more general custom class methods, such as kQ3XMethodTypeObjectTraverse.

Constants

kQ3XMethodTypeElementCopyAdd
See TQ3XElementCopyAddMethod.
kQ3XMethodTypeElementCopyReplace
See TQ3XElementCopyReplaceMethod.
kQ3XMethodTypeElementCopyGet
See TQ3XElementCopyGetMethod.
kQ3XMethodTypeElementCopyDuplicate
See TQ3XElementCopyDuplicateMethod.
kQ3XMethodTypeElementDelete
See TQ3XElementDeleteMethod.

TQ3AttributeTypes


typedef enum TQ3AttributeTypes {
    kQ3AttributeTypeNone                        = 0,            // N/A
    kQ3AttributeTypeSurfaceUV                   = 1,            // TQ3Param2D
    kQ3AttributeTypeShadingUV                   = 2,            // TQ3Param2D
    kQ3AttributeTypeNormal                      = 3,            // TQ3Vector3D
    kQ3AttributeTypeAmbientCoefficient          = 4,            // float
    kQ3AttributeTypeDiffuseColor                = 5,            // TQ3ColorRGB
    kQ3AttributeTypeSpecularColor               = 6,            // TQ3ColorRGB
    kQ3AttributeTypeSpecularControl             = 7,            // float
    kQ3AttributeTypeTransparencyColor           = 8,            // TQ3ColorRGB
    kQ3AttributeTypeSurfaceTangent              = 9,            // TQ3Tangent2D
    kQ3AttributeTypeHighlightState              = 10,           // TQ3Switch
    kQ3AttributeTypeSurfaceShader               = 11,           // TQ3SurfaceShaderObject
    kQ3AttributeTypeEmissiveColor               = 12,           // TQ3ColorRGB
    kQ3AttributeTypeNumTypes                    = 13,           // N/A
    kQ3AttributeTypeSize32                      = 0xFFFFFFFF
} TQ3AttributeTypes;
Discussion

Type numbers for standard attributes. See QuesaView.h for default values of some of these attributes. For instance you will find that if you do not specify any attributes, an object will be white, opaque, and somewhat shiny.

Constants

kQ3AttributeTypeNone
No type. See Q3AttributeSet_GetNextAttributeType.
kQ3AttributeTypeSurfaceUV
Surface UV coordinates (TQ3Param2D) for texture mapping.
kQ3AttributeTypeShadingUV
Shading UV coordinates (TQ3Param2D) (originally intended for procedural shaders, but effectively interchangable with surface UV).
kQ3AttributeTypeNormal
Normal vector (TQ3Vector3D)
kQ3AttributeTypeAmbientCoefficient
Ambient coefficient (float)
kQ3AttributeTypeDiffuseColor
Diffuse color (TQ3ColorRGB)
kQ3AttributeTypeSpecularColor
Specular color (TQ3ColorRGB)
kQ3AttributeTypeSpecularControl
Specular control (float). Larger values make smaller specular highlights.
kQ3AttributeTypeTransparencyColor
Transparency color (TQ3ColorRGB). { 0, 0, 0 } is completely transparent, and { 1, 1, 1 } is completely opaque.
kQ3AttributeTypeSurfaceTangent
Surface tangent (TQ3Tangent2D)
kQ3AttributeTypeHighlightState
Highlight state (TQ3Switch)
kQ3AttributeTypeSurfaceShader
Surface shader (TQ3SurfaceShaderObject)
kQ3AttributeTypeEmissiveColor
Emissive color (TQ3ColorRGB) (This attribute did not exist in QuickDraw 3D, and may not be recognized by all renderers.)
kQ3AttributeTypeNumTypes
Number of standard attribute types.

TQ3XAttributeMask


enum {
    kQ3XAttributeMaskNone                       = 0,
    kQ3XAttributeMaskSurfaceUV                  = (1 << (kQ3AttributeTypeSurfaceUV          - 1)),
    kQ3XAttributeMaskShadingUV                  = (1 << (kQ3AttributeTypeShadingUV          - 1)),
    kQ3XAttributeMaskNormal                     = (1 << (kQ3AttributeTypeNormal             - 1)),
    kQ3XAttributeMaskAmbientCoefficient         = (1 << (kQ3AttributeTypeAmbientCoefficient - 1)),
    kQ3XAttributeMaskDiffuseColor               = (1 << (kQ3AttributeTypeDiffuseColor       - 1)),
    kQ3XAttributeMaskSpecularColor              = (1 << (kQ3AttributeTypeSpecularColor      - 1)),
    kQ3XAttributeMaskSpecularControl            = (1 << (kQ3AttributeTypeSpecularControl    - 1)),
    kQ3XAttributeMaskTransparencyColor          = (1 << (kQ3AttributeTypeTransparencyColor  - 1)),
    kQ3XAttributeMaskSurfaceTangent             = (1 << (kQ3AttributeTypeSurfaceTangent     - 1)),
    kQ3XAttributeMaskHighlightState             = (1 << (kQ3AttributeTypeHighlightState     - 1)),
    kQ3XAttributeMaskSurfaceShader              = (1 << (kQ3AttributeTypeSurfaceShader      - 1)),
    kQ3XAttributeMaskEmissiveColor              = (1 << (kQ3AttributeTypeEmissiveColor      - 1)),
    kQ3XAttributeMaskCustomAttribute            = 0x80000000,
    kQ3XAttributeMaskAll                        = 0x80000FFF,
    kQ3XAttributeMaskInherited                  = 0x000003FF,
    kQ3XAttributeMaskInterpolated               = kQ3XAttributeMaskSurfaceUV          |
                                                  kQ3XAttributeMaskShadingUV          |
                                                  kQ3XAttributeMaskNormal             |
                                                  kQ3XAttributeMaskAmbientCoefficient |
                                                  kQ3XAttributeMaskDiffuseColor       |
                                                  kQ3XAttributeMaskSpecularControl    |
                                                  kQ3XAttributeMaskTransparencyColor  |
                                                  kQ3XAttributeMaskEmissiveColor      |
                                                  kQ3XAttributeMaskSurfaceTangent,
    kQ3XAttributeMaskSize32                     = 0xFFFFFFFF
};
Discussion

Attribute mask flags.

Constants

kQ3XAttributeMaskNone
No attributes.
kQ3XAttributeMaskSurfaceUV
Surface UV attribute mask.
kQ3XAttributeMaskShadingUV
Shading UV attribute mask.
kQ3XAttributeMaskNormal
Normal attribute mask.
kQ3XAttributeMaskAmbientCoefficient
Ambient coefficent attribute mask.
kQ3XAttributeMaskDiffuseColor
Diffuse color attribute mask.
kQ3XAttributeMaskSpecularColor
Specular color attribute mask.
kQ3XAttributeMaskSpecularControl
Specular control attribute mask.
kQ3XAttributeMaskTransparencyColor
Transparency color attribute mask.
kQ3XAttributeMaskSurfaceTangent
Surface tangent attribute mask.
kQ3XAttributeMaskHighlightState
Highlight state attribute mask.
kQ3XAttributeMaskSurfaceShader
Surface shader attribute mask.
kQ3XAttributeMaskEmissiveColor
Emissive color attribute mask.
kQ3XAttributeMaskCustomAttribute
Custom attribute mask.
kQ3XAttributeMaskAll
All attributes.
kQ3XAttributeMaskInherited
Inherited attributes mask.
kQ3XAttributeMaskInterpolated
Interpolated attributes mask.

© 1999-2008 Quesa Developers (Last Updated 5/10/2008)