You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
889 lines
25 KiB
889 lines
25 KiB
/* |
|
File: QD3DGroup.h |
|
|
|
Contains: Q3Group methods |
|
|
|
Version: Technology: Quickdraw 3D 1.6 |
|
Release: QuickTime 7.3 |
|
|
|
Copyright: (c) 2007 (c) 1995-1998 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 __QD3DGROUP__ |
|
#define __QD3DGROUP__ |
|
|
|
#ifndef __QD3D__ |
|
#include <QD3D.h> |
|
#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 __QD3DGROUP__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 __QD3DGROUP__RESTORE_PACKED_ENUMS |
|
#pragma options(!pack_enums) |
|
#endif |
|
#endif |
|
|
|
/****************************************************************************** |
|
** ** |
|
** Group Typedefs ** |
|
** ** |
|
*****************************************************************************/ |
|
/* |
|
* These flags affect how a group is traversed |
|
* They apply to when a group is "drawn", "picked", "bounded", "written" |
|
*/ |
|
enum TQ3DisplayGroupStateMasks { |
|
kQ3DisplayGroupStateNone = 0, |
|
kQ3DisplayGroupStateMaskIsDrawn = 1 << 0, |
|
kQ3DisplayGroupStateMaskIsInline = 1 << 1, |
|
kQ3DisplayGroupStateMaskUseBoundingBox = 1 << 2, |
|
kQ3DisplayGroupStateMaskUseBoundingSphere = 1 << 3, |
|
kQ3DisplayGroupStateMaskIsPicked = 1 << 4, |
|
kQ3DisplayGroupStateMaskIsWritten = 1 << 5 |
|
}; |
|
typedef enum TQ3DisplayGroupStateMasks TQ3DisplayGroupStateMasks; |
|
|
|
typedef unsigned long TQ3DisplayGroupState; |
|
|
|
|
|
/****************************************************************************** |
|
** ** |
|
** Group Routines (apply to all groups) ** |
|
** ** |
|
*****************************************************************************/ |
|
/* May contain any shared object */ |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* Q3Group_New() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3GroupObject ) |
|
Q3Group_New(void); |
|
|
|
|
|
/* |
|
* Q3Group_GetType() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3ObjectType ) |
|
Q3Group_GetType(TQ3GroupObject group); |
|
|
|
|
|
/* |
|
* Q3Group_AddObject() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3GroupPosition ) |
|
Q3Group_AddObject( |
|
TQ3GroupObject group, |
|
TQ3Object object); |
|
|
|
|
|
/* |
|
* Q3Group_AddObjectBefore() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3GroupPosition ) |
|
Q3Group_AddObjectBefore( |
|
TQ3GroupObject group, |
|
TQ3GroupPosition position, |
|
TQ3Object object); |
|
|
|
|
|
/* |
|
* Q3Group_AddObjectAfter() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3GroupPosition ) |
|
Q3Group_AddObjectAfter( |
|
TQ3GroupObject group, |
|
TQ3GroupPosition position, |
|
TQ3Object object); |
|
|
|
|
|
/* |
|
* Q3Group_GetPositionObject() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetPositionObject( |
|
TQ3GroupObject group, |
|
TQ3GroupPosition position, |
|
TQ3Object * object); |
|
|
|
|
|
/* |
|
* Q3Group_SetPositionObject() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_SetPositionObject( |
|
TQ3GroupObject group, |
|
TQ3GroupPosition position, |
|
TQ3Object object); |
|
|
|
|
|
/* |
|
* Q3Group_RemovePosition() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Object ) |
|
Q3Group_RemovePosition( |
|
TQ3GroupObject group, |
|
TQ3GroupPosition position); |
|
|
|
|
|
/* |
|
* Q3Group_GetFirstPosition() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetFirstPosition( |
|
TQ3GroupObject group, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
/* |
|
* Q3Group_GetLastPosition() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetLastPosition( |
|
TQ3GroupObject group, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
/* |
|
* Q3Group_GetNextPosition() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetNextPosition( |
|
TQ3GroupObject group, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
/* |
|
* Q3Group_GetPreviousPosition() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetPreviousPosition( |
|
TQ3GroupObject group, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
/* |
|
* Q3Group_CountObjects() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_CountObjects( |
|
TQ3GroupObject group, |
|
unsigned long * nObjects); |
|
|
|
|
|
/* |
|
* Q3Group_EmptyObjects() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_EmptyObjects(TQ3GroupObject group); |
|
|
|
|
|
/* |
|
* Typed Access |
|
*/ |
|
/* |
|
* Q3Group_GetFirstPositionOfType() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetFirstPositionOfType( |
|
TQ3GroupObject group, |
|
TQ3ObjectType isType, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
/* |
|
* Q3Group_GetLastPositionOfType() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetLastPositionOfType( |
|
TQ3GroupObject group, |
|
TQ3ObjectType isType, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
/* |
|
* Q3Group_GetNextPositionOfType() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetNextPositionOfType( |
|
TQ3GroupObject group, |
|
TQ3ObjectType isType, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
/* |
|
* Q3Group_GetPreviousPositionOfType() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetPreviousPositionOfType( |
|
TQ3GroupObject group, |
|
TQ3ObjectType isType, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
/* |
|
* Q3Group_CountObjectsOfType() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_CountObjectsOfType( |
|
TQ3GroupObject group, |
|
TQ3ObjectType isType, |
|
unsigned long * nObjects); |
|
|
|
|
|
/* |
|
* Q3Group_EmptyObjectsOfType() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_EmptyObjectsOfType( |
|
TQ3GroupObject group, |
|
TQ3ObjectType isType); |
|
|
|
|
|
/* |
|
* Determine position of objects in a group |
|
*/ |
|
/* |
|
* Q3Group_GetFirstObjectPosition() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetFirstObjectPosition( |
|
TQ3GroupObject group, |
|
TQ3Object object, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
/* |
|
* Q3Group_GetLastObjectPosition() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetLastObjectPosition( |
|
TQ3GroupObject group, |
|
TQ3Object object, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
/* |
|
* Q3Group_GetNextObjectPosition() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetNextObjectPosition( |
|
TQ3GroupObject group, |
|
TQ3Object object, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
/* |
|
* Q3Group_GetPreviousObjectPosition() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3Group_GetPreviousObjectPosition( |
|
TQ3GroupObject group, |
|
TQ3Object object, |
|
TQ3GroupPosition * position); |
|
|
|
|
|
|
|
/****************************************************************************** |
|
** ** |
|
** Group Subclasses ** |
|
** ** |
|
*****************************************************************************/ |
|
/* Must contain only lights */ |
|
/* |
|
* Q3LightGroup_New() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3GroupObject ) |
|
Q3LightGroup_New(void); |
|
|
|
|
|
/* Must contain only strings */ |
|
/* |
|
* Q3InfoGroup_New() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3GroupObject ) |
|
Q3InfoGroup_New(void); |
|
|
|
|
|
/****************************************************************************** |
|
** ** |
|
** Display Group Routines ** |
|
** ** |
|
*****************************************************************************/ |
|
/* May contain only drawables */ |
|
/* |
|
* Q3DisplayGroup_New() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3GroupObject ) |
|
Q3DisplayGroup_New(void); |
|
|
|
|
|
/* |
|
* Q3DisplayGroup_GetType() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3ObjectType ) |
|
Q3DisplayGroup_GetType(TQ3GroupObject group); |
|
|
|
|
|
/* |
|
* Q3DisplayGroup_GetState() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3DisplayGroup_GetState( |
|
TQ3GroupObject group, |
|
TQ3DisplayGroupState * state); |
|
|
|
|
|
/* |
|
* Q3DisplayGroup_SetState() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3DisplayGroup_SetState( |
|
TQ3GroupObject group, |
|
TQ3DisplayGroupState state); |
|
|
|
|
|
/* |
|
* Q3DisplayGroup_Submit() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3DisplayGroup_Submit( |
|
TQ3GroupObject group, |
|
TQ3ViewObject view); |
|
|
|
|
|
/* |
|
* Q3DisplayGroup_SetAndUseBoundingBox() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3DisplayGroup_SetAndUseBoundingBox( |
|
TQ3GroupObject group, |
|
TQ3BoundingBox * bBox); |
|
|
|
|
|
/* |
|
* Q3DisplayGroup_GetBoundingBox() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3DisplayGroup_GetBoundingBox( |
|
TQ3GroupObject group, |
|
TQ3BoundingBox * bBox); |
|
|
|
|
|
/* |
|
* Q3DisplayGroup_RemoveBoundingBox() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3DisplayGroup_RemoveBoundingBox(TQ3GroupObject group); |
|
|
|
|
|
/* |
|
* Q3DisplayGroup_CalcAndUseBoundingBox() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3Status ) |
|
Q3DisplayGroup_CalcAndUseBoundingBox( |
|
TQ3GroupObject group, |
|
TQ3ComputeBounds computeBounds, |
|
TQ3ViewObject view); |
|
|
|
|
|
|
|
/****************************************************************************** |
|
** ** |
|
** Ordered Display Group ** |
|
** ** |
|
** Ordered display groups keep objects in order by the type of object: ** |
|
** ** |
|
** 1 kQ3ShapeTypeTransform ** |
|
** 2 kQ3ShapeTypeStyle ** |
|
** 3 kQ3SetTypeAttribute ** |
|
** 4 kQ3ShapeTypeShader ** |
|
** 5 kQ3ShapeTypeCamera ** |
|
** 6 kQ3ShapeTypeLight ** |
|
** 7 kQ3ShapeTypeGeometry ** |
|
** 8 kQ3ShapeTypeGroup ** |
|
** 9 kQ3ShapeTypeUnknown ** |
|
** ** |
|
** Within a type, you are responsible for keeping things in order. ** |
|
** ** |
|
** You may access and/or manipulate the group using the above types ** |
|
** (fast), or you may use any parent or leaf class types (slower). ** |
|
** ** |
|
** Additional types will be added as functionality grows. ** |
|
** ** |
|
** The group calls which access by type are much faster for ordered ** |
|
** display group for the types above. ** |
|
** ** |
|
** N.B. Lights and Cameras in groups are a no-op when drawn and will ** |
|
** post an error with the debug libraries. ** |
|
** ** |
|
*****************************************************************************/ |
|
/* |
|
* Q3OrderedDisplayGroup_New() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3GroupObject ) |
|
Q3OrderedDisplayGroup_New(void); |
|
|
|
|
|
/****************************************************************************** |
|
** ** |
|
** IO Proxy Display Group ** |
|
** ** |
|
** IO Proxy display groups are used to place more than one ** |
|
** representation of an object in a metafile. For example, if you know ** |
|
** another program does not understand NURBPatches but does understand ** |
|
** Meshes, you may place a mesh and a NURB Patch in an IO Proxy Group, ** |
|
** and the reading program will select the desired representation. ** |
|
** ** |
|
** Objects in an IO Proxy Display Group are placed in their preferencial** |
|
** order, with the FIRST object being the MOST preferred, the LAST ** |
|
** object the least preferred. ** |
|
** ** |
|
** The behavior of an IO Proxy Display Group is that when drawn/picked/ ** |
|
** bounded, the first object in the group that is not "Unknown" is used,** |
|
** and the other objects ignored. ** |
|
** ** |
|
*****************************************************************************/ |
|
/* |
|
* Q3IOProxyDisplayGroup_New() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( TQ3GroupObject ) |
|
Q3IOProxyDisplayGroup_New(void); |
|
|
|
|
|
/****************************************************************************** |
|
** ** |
|
** Group Extension Definitions ** |
|
** ** |
|
*****************************************************************************/ |
|
/* |
|
* Searching methods - OPTIONAL |
|
*/ |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
enum { |
|
kQ3XMethodType_GroupAcceptObject = FOUR_CHAR_CODE('gaco') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Boolean , TQ3XGroupAcceptObjectMethod )(TQ3GroupObject group, TQ3Object object); |
|
enum { |
|
kQ3XMethodType_GroupAddObject = FOUR_CHAR_CODE('gado') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3GroupPosition , TQ3XGroupAddObjectMethod )(TQ3GroupObject group, TQ3Object object); |
|
enum { |
|
kQ3XMethodType_GroupAddObjectBefore = FOUR_CHAR_CODE('gaob') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3GroupPosition , TQ3XGroupAddObjectBeforeMethod )(TQ3GroupObject group, TQ3GroupPosition position, TQ3Object object); |
|
enum { |
|
kQ3XMethodType_GroupAddObjectAfter = FOUR_CHAR_CODE('gaoa') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3GroupPosition , TQ3XGroupAddObjectAfterMethod )(TQ3GroupObject group, TQ3GroupPosition position, TQ3Object object); |
|
enum { |
|
kQ3XMethodType_GroupSetPositionObject = FOUR_CHAR_CODE('gspo') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupSetPositionObjectMethod )(TQ3GroupObject group, TQ3GroupPosition gPos, TQ3Object obj); |
|
enum { |
|
kQ3XMethodType_GroupRemovePosition = FOUR_CHAR_CODE('grmp') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Object , TQ3XGroupRemovePositionMethod )(TQ3GroupObject group, TQ3GroupPosition position); |
|
|
|
|
|
/* |
|
* Searching methods - OPTIONAL - default uses above methods |
|
*/ |
|
enum { |
|
kQ3XMethodType_GroupGetFirstPositionOfType = FOUR_CHAR_CODE('gfrt') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupGetFirstPositionOfTypeMethod )(TQ3GroupObject group, TQ3ObjectType isType, TQ3GroupPosition *gPos); |
|
enum { |
|
kQ3XMethodType_GroupGetLastPositionOfType = FOUR_CHAR_CODE('glst') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupGetLastPositionOfTypeMethod )(TQ3GroupObject group, TQ3ObjectType isType, TQ3GroupPosition *gPos); |
|
enum { |
|
kQ3XMethodType_GroupGetNextPositionOfType = FOUR_CHAR_CODE('gnxt') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupGetNextPositionOfTypeMethod )(TQ3GroupObject group, TQ3ObjectType isType, TQ3GroupPosition *gPos); |
|
enum { |
|
kQ3XMethodType_GroupGetPrevPositionOfType = FOUR_CHAR_CODE('gpvt') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupGetPrevPositionOfTypeMethod )(TQ3GroupObject group, TQ3ObjectType isType, TQ3GroupPosition *gPos); |
|
enum { |
|
kQ3XMethodType_GroupCountObjectsOfType = FOUR_CHAR_CODE('gcnt') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupCountObjectsOfTypeMethod )(TQ3GroupObject group, TQ3ObjectType isType, unsigned long *nObjects); |
|
enum { |
|
kQ3XMethodType_GroupEmptyObjectsOfType = FOUR_CHAR_CODE('geot') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupEmptyObjectsOfTypeMethod )(TQ3GroupObject group, TQ3ObjectType isType); |
|
enum { |
|
kQ3XMethodType_GroupGetFirstObjectPosition = FOUR_CHAR_CODE('gfop') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupGetFirstObjectPositionMethod )(TQ3GroupObject group, TQ3Object object, TQ3GroupPosition *gPos); |
|
enum { |
|
kQ3XMethodType_GroupGetLastObjectPosition = FOUR_CHAR_CODE('glop') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupGetLastObjectPositionMethod )(TQ3GroupObject group, TQ3Object object, TQ3GroupPosition *gPos); |
|
enum { |
|
kQ3XMethodType_GroupGetNextObjectPosition = FOUR_CHAR_CODE('gnop') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupGetNextObjectPositionMethod )(TQ3GroupObject group, TQ3Object object, TQ3GroupPosition *gPos); |
|
enum { |
|
kQ3XMethodType_GroupGetPrevObjectPosition = FOUR_CHAR_CODE('gpop') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupGetPrevObjectPositionMethod )(TQ3GroupObject group, TQ3Object object, TQ3GroupPosition *gPos); |
|
|
|
|
|
/* |
|
* Group Position Methods |
|
*/ |
|
enum { |
|
kQ3XMethodType_GroupPositionSize = FOUR_CHAR_CODE('ggpz') |
|
}; |
|
|
|
typedef unsigned long TQ3XMethodTypeGroupPositionSize; |
|
enum { |
|
kQ3XMethodType_GroupPositionNew = FOUR_CHAR_CODE('ggpn') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupPositionNewMethod )(void *gPos, TQ3Object object, const void *initData); |
|
enum { |
|
kQ3XMethodType_GroupPositionCopy = FOUR_CHAR_CODE('ggpc') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupPositionCopyMethod )(void *srcGPos, void *dstGPos); |
|
enum { |
|
kQ3XMethodType_GroupPositionDelete = FOUR_CHAR_CODE('ggpd') |
|
}; |
|
|
|
typedef CALLBACK_API_C( void , TQ3XGroupPositionDeleteMethod )(void * gPos); |
|
|
|
|
|
/* |
|
* View Drawing Helpers |
|
* |
|
* TQ3XGroupStartIterateMethod |
|
* |
|
* Pass back *object = NULL to NOT call EndIterate iterate |
|
* Pass back *object != NULL to draw object |
|
* (other side will pass it to EndIterate for deletion!) |
|
* |
|
* *iterator is uninitialized, use for iteration state. Caller should |
|
* ignore it. |
|
* |
|
* TQ3XGroupEndIterateMethod |
|
* |
|
* *object is previous object, dispose it or play with it. |
|
* Pass back NULL when last iteration has occurred |
|
* *iterator is previous value, use for iteration state Caller should |
|
* ignore it. |
|
*/ |
|
enum { |
|
kQ3XMethodType_GroupStartIterate = FOUR_CHAR_CODE('gstd') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupStartIterateMethod )(TQ3GroupObject group, TQ3GroupPosition *iterator, TQ3Object *object, TQ3ViewObject view); |
|
enum { |
|
kQ3XMethodType_GroupEndIterate = FOUR_CHAR_CODE('gitd') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupEndIterateMethod )(TQ3GroupObject group, TQ3GroupPosition *iterator, TQ3Object *object, TQ3ViewObject view); |
|
|
|
|
|
/* |
|
* IO Helpers |
|
* |
|
* TQ3XGroupEndReadMethod |
|
* Called when a group has been completely read. Group should perform |
|
* validation and clean up any reading caches. |
|
*/ |
|
enum { |
|
kQ3XMethodType_GroupEndRead = FOUR_CHAR_CODE('gerd') |
|
}; |
|
|
|
typedef CALLBACK_API_C( TQ3Status , TQ3XGroupEndReadMethod )(TQ3GroupObject group); |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* Q3XGroup_GetPositionPrivate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( void * ) |
|
Q3XGroup_GetPositionPrivate( |
|
TQ3GroupObject group, |
|
TQ3GroupPosition position); |
|
|
|
|
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
|
|
#if PRAGMA_ENUM_ALWAYSINT |
|
#pragma enumsalwaysint reset |
|
#ifdef __QD3DGROUP__RESTORE_TWOBYTEINTS |
|
#pragma fourbyteints off |
|
#endif |
|
#elif PRAGMA_ENUM_OPTIONS |
|
#pragma option enum=reset |
|
#elif defined(__QD3DGROUP__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 /* __QD3DGROUP__ */ |
|
|
|
|