/* File: QD3DStyle.h Contains: Q3Style types and routines Version: Technology: Quickdraw 3D 1.6 Release: QuickTime 6.0.2 Copyright: (c) 1995-2001 by Apple Computer, Inc., all rights reserved. Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef __QD3DSTYLE__ #define __QD3DSTYLE__ #ifndef __QD3D__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=power #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(push, 2) #elif PRAGMA_STRUCT_PACK #pragma pack(2) #endif #if PRAGMA_ENUM_ALWAYSINT #if defined(__fourbyteints__) && !__fourbyteints__ #define __QD3DSTYLE__RESTORE_TWOBYTEINTS #pragma fourbyteints on #endif #pragma enumsalwaysint on #elif PRAGMA_ENUM_OPTIONS #pragma option enum=int #elif PRAGMA_ENUM_PACK #if __option(pack_enums) #define __QD3DSTYLE__RESTORE_PACKED_ENUMS #pragma options(!pack_enums) #endif #endif /****************************************************************************** ** ** ** Style Base Class Routines ** ** ** *****************************************************************************/ #if CALL_NOT_IN_CARBON EXTERN_API_C( TQ3ObjectType ) Q3Style_GetType (TQ3StyleObject style); EXTERN_API_C( TQ3Status ) Q3Style_Submit (TQ3StyleObject style, TQ3ViewObject view); /****************************************************************************** ** ** ** Subdivision ** ** ** *****************************************************************************/ #endif /* CALL_NOT_IN_CARBON */ enum TQ3SubdivisionMethod { kQ3SubdivisionMethodConstant = 0, kQ3SubdivisionMethodWorldSpace = 1, kQ3SubdivisionMethodScreenSpace = 2 }; typedef enum TQ3SubdivisionMethod TQ3SubdivisionMethod; struct TQ3SubdivisionStyleData { TQ3SubdivisionMethod method; float c1; float c2; }; typedef struct TQ3SubdivisionStyleData TQ3SubdivisionStyleData; #if CALL_NOT_IN_CARBON EXTERN_API_C( TQ3StyleObject ) Q3SubdivisionStyle_New (const TQ3SubdivisionStyleData * data); EXTERN_API_C( TQ3Status ) Q3SubdivisionStyle_Submit (const TQ3SubdivisionStyleData * data, TQ3ViewObject view); EXTERN_API_C( TQ3Status ) Q3SubdivisionStyle_SetData (TQ3StyleObject subdiv, const TQ3SubdivisionStyleData * data); EXTERN_API_C( TQ3Status ) Q3SubdivisionStyle_GetData (TQ3StyleObject subdiv, TQ3SubdivisionStyleData * data); /****************************************************************************** ** ** ** Pick ID ** ** ** *****************************************************************************/ EXTERN_API_C( TQ3StyleObject ) Q3PickIDStyle_New (unsigned long id); EXTERN_API_C( TQ3Status ) Q3PickIDStyle_Submit (unsigned long id, TQ3ViewObject view); EXTERN_API_C( TQ3Status ) Q3PickIDStyle_Get (TQ3StyleObject pickIDObject, unsigned long * id); EXTERN_API_C( TQ3Status ) Q3PickIDStyle_Set (TQ3StyleObject pickIDObject, unsigned long id); /****************************************************************************** ** ** ** Pick Parts ** ** ** *****************************************************************************/ #endif /* CALL_NOT_IN_CARBON */ enum TQ3PickPartsMasks { kQ3PickPartsObject = 0, kQ3PickPartsMaskFace = 1 << 0, kQ3PickPartsMaskEdge = 1 << 1, kQ3PickPartsMaskVertex = 1 << 2 }; typedef enum TQ3PickPartsMasks TQ3PickPartsMasks; typedef unsigned long TQ3PickParts; #if CALL_NOT_IN_CARBON EXTERN_API_C( TQ3StyleObject ) Q3PickPartsStyle_New (TQ3PickParts parts); EXTERN_API_C( TQ3Status ) Q3PickPartsStyle_Submit (TQ3PickParts parts, TQ3ViewObject view); EXTERN_API_C( TQ3Status ) Q3PickPartsStyle_Get (TQ3StyleObject pickPartsObject, TQ3PickParts * parts); EXTERN_API_C( TQ3Status ) Q3PickPartsStyle_Set (TQ3StyleObject pickPartsObject, TQ3PickParts parts); /****************************************************************************** ** ** ** Receive Shadows ** ** ** *****************************************************************************/ EXTERN_API_C( TQ3StyleObject ) Q3ReceiveShadowsStyle_New (TQ3Boolean receives); EXTERN_API_C( TQ3Status ) Q3ReceiveShadowsStyle_Submit (TQ3Boolean receives, TQ3ViewObject view); EXTERN_API_C( TQ3Status ) Q3ReceiveShadowsStyle_Get (TQ3StyleObject styleObject, TQ3Boolean * receives); EXTERN_API_C( TQ3Status ) Q3ReceiveShadowsStyle_Set (TQ3StyleObject styleObject, TQ3Boolean receives); /****************************************************************************** ** ** ** Fill Styles ** ** ** *****************************************************************************/ #endif /* CALL_NOT_IN_CARBON */ enum TQ3FillStyle { kQ3FillStyleFilled = 0, kQ3FillStyleEdges = 1, kQ3FillStylePoints = 2 }; typedef enum TQ3FillStyle TQ3FillStyle; #if CALL_NOT_IN_CARBON EXTERN_API_C( TQ3StyleObject ) Q3FillStyle_New (TQ3FillStyle fillStyle); EXTERN_API_C( TQ3Status ) Q3FillStyle_Submit (TQ3FillStyle fillStyle, TQ3ViewObject view); EXTERN_API_C( TQ3Status ) Q3FillStyle_Get (TQ3StyleObject styleObject, TQ3FillStyle * fillStyle); EXTERN_API_C( TQ3Status ) Q3FillStyle_Set (TQ3StyleObject styleObject, TQ3FillStyle fillStyle); /****************************************************************************** ** ** ** Backfacing Styles ** ** ** *****************************************************************************/ #endif /* CALL_NOT_IN_CARBON */ enum TQ3BackfacingStyle { kQ3BackfacingStyleBoth = 0, kQ3BackfacingStyleRemove = 1, kQ3BackfacingStyleFlip = 2 }; typedef enum TQ3BackfacingStyle TQ3BackfacingStyle; #if CALL_NOT_IN_CARBON EXTERN_API_C( TQ3StyleObject ) Q3BackfacingStyle_New (TQ3BackfacingStyle backfacingStyle); EXTERN_API_C( TQ3Status ) Q3BackfacingStyle_Submit (TQ3BackfacingStyle backfacingStyle, TQ3ViewObject view); EXTERN_API_C( TQ3Status ) Q3BackfacingStyle_Get (TQ3StyleObject backfacingObject, TQ3BackfacingStyle * backfacingStyle); EXTERN_API_C( TQ3Status ) Q3BackfacingStyle_Set (TQ3StyleObject backfacingObject, TQ3BackfacingStyle backfacingStyle); /****************************************************************************** ** ** ** Interpolation Types ** ** ** *****************************************************************************/ #endif /* CALL_NOT_IN_CARBON */ enum TQ3InterpolationStyle { kQ3InterpolationStyleNone = 0, kQ3InterpolationStyleVertex = 1, kQ3InterpolationStylePixel = 2 }; typedef enum TQ3InterpolationStyle TQ3InterpolationStyle; #if CALL_NOT_IN_CARBON EXTERN_API_C( TQ3StyleObject ) Q3InterpolationStyle_New (TQ3InterpolationStyle interpolationStyle); EXTERN_API_C( TQ3Status ) Q3InterpolationStyle_Submit (TQ3InterpolationStyle interpolationStyle, TQ3ViewObject view); EXTERN_API_C( TQ3Status ) Q3InterpolationStyle_Get (TQ3StyleObject interpolationObject, TQ3InterpolationStyle * interpolationStyle); EXTERN_API_C( TQ3Status ) Q3InterpolationStyle_Set (TQ3StyleObject interpolationObject, TQ3InterpolationStyle interpolationStyle); /****************************************************************************** ** ** ** Highlight Style ** ** ** *****************************************************************************/ EXTERN_API_C( TQ3StyleObject ) Q3HighlightStyle_New (TQ3AttributeSet highlightAttribute); EXTERN_API_C( TQ3Status ) Q3HighlightStyle_Submit (TQ3AttributeSet highlightAttribute, TQ3ViewObject view); EXTERN_API_C( TQ3Status ) Q3HighlightStyle_Get (TQ3StyleObject highlight, TQ3AttributeSet * highlightAttribute); EXTERN_API_C( TQ3Status ) Q3HighlightStyle_Set (TQ3StyleObject highlight, TQ3AttributeSet highlightAttribute); /****************************************************************************** ** ** ** FrontFacing Direction Styles ** ** ** *****************************************************************************/ #endif /* CALL_NOT_IN_CARBON */ enum TQ3OrientationStyle { kQ3OrientationStyleCounterClockwise = 0, kQ3OrientationStyleClockwise = 1 }; typedef enum TQ3OrientationStyle TQ3OrientationStyle; #if CALL_NOT_IN_CARBON EXTERN_API_C( TQ3StyleObject ) Q3OrientationStyle_New (TQ3OrientationStyle frontFacingDirection); EXTERN_API_C( TQ3Status ) Q3OrientationStyle_Submit (TQ3OrientationStyle frontFacingDirection, TQ3ViewObject view); EXTERN_API_C( TQ3Status ) Q3OrientationStyle_Get (TQ3StyleObject frontFacingDirectionObject, TQ3OrientationStyle * frontFacingDirection); EXTERN_API_C( TQ3Status ) Q3OrientationStyle_Set (TQ3StyleObject frontFacingDirectionObject, TQ3OrientationStyle frontFacingDirection); /****************************************************************************** ** ** ** AntiAlias Style ** ** ** *****************************************************************************/ #endif /* CALL_NOT_IN_CARBON */ enum TQ3AntiAliasModeMasks { kQ3AntiAliasModeMaskEdges = 1 << 0, kQ3AntiAliasModeMaskFilled = 1 << 1 }; typedef enum TQ3AntiAliasModeMasks TQ3AntiAliasModeMasks; typedef unsigned long TQ3AntiAliasMode; struct TQ3AntiAliasStyleData { TQ3Switch state; TQ3AntiAliasMode mode; float quality; }; typedef struct TQ3AntiAliasStyleData TQ3AntiAliasStyleData; #if CALL_NOT_IN_CARBON EXTERN_API_C( TQ3StyleObject ) Q3AntiAliasStyle_New (const TQ3AntiAliasStyleData * data); EXTERN_API_C( TQ3Status ) Q3AntiAliasStyle_Submit (const TQ3AntiAliasStyleData * data, TQ3ViewObject view); EXTERN_API_C( TQ3Status ) Q3AntiAliasStyle_GetData (TQ3StyleObject styleObject, TQ3AntiAliasStyleData * data); EXTERN_API_C( TQ3Status ) Q3AntiAliasStyle_SetData (TQ3StyleObject styleObject, const TQ3AntiAliasStyleData * data); /****************************************************************************** ** ** ** Fog Style ** ** ** *****************************************************************************/ #endif /* CALL_NOT_IN_CARBON */ enum TQ3FogMode { kQ3FogModeLinear = 0, kQ3FogModeExponential = 1, kQ3FogModeExponentialSquared = 2, kQ3FogModeAlpha = 3 }; typedef enum TQ3FogMode TQ3FogMode; struct TQ3FogStyleData { TQ3Switch state; TQ3FogMode mode; float fogStart; float fogEnd; float density; TQ3ColorARGB color; }; typedef struct TQ3FogStyleData TQ3FogStyleData; #if CALL_NOT_IN_CARBON EXTERN_API_C( TQ3StyleObject ) Q3FogStyle_New (const TQ3FogStyleData * data); EXTERN_API_C( TQ3Status ) Q3FogStyle_Submit (const TQ3FogStyleData * data, TQ3ViewObject view); EXTERN_API_C( TQ3Status ) Q3FogStyle_GetData (TQ3StyleObject styleObject, TQ3FogStyleData * data); EXTERN_API_C( TQ3Status ) Q3FogStyle_SetData (TQ3StyleObject styleObject, const TQ3FogStyleData * data); #endif /* CALL_NOT_IN_CARBON */ #if PRAGMA_ENUM_ALWAYSINT #pragma enumsalwaysint reset #ifdef __QD3DSTYLE__RESTORE_TWOBYTEINTS #pragma fourbyteints off #endif #elif PRAGMA_ENUM_OPTIONS #pragma option enum=reset #elif defined(__QD3DSTYLE__RESTORE_PACKED_ENUMS) #pragma options(pack_enums) #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=reset #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(pop) #elif PRAGMA_STRUCT_PACK #pragma pack() #endif #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* __QD3DSTYLE__ */