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.
1851 lines
44 KiB
1851 lines
44 KiB
5 years ago
|
/*
|
||
|
File: QD3DIO.h
|
||
|
|
||
|
Contains: QuickDraw 3D IO API
|
||
|
|
||
|
Version: Technology: Quickdraw 3D 1.6
|
||
|
Release: QuickTime 7.3
|
||
|
|
||
|
Copyright: (c) 2007 (c) 1995-1999 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 __QD3DIO__
|
||
|
#define __QD3DIO__
|
||
|
|
||
|
#ifndef __QD3D__
|
||
|
#include <QD3D.h>
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#ifndef __QD3DDRAWCONTEXT__
|
||
|
#include <QD3DDrawContext.h>
|
||
|
#endif
|
||
|
|
||
|
#ifndef __QD3DVIEW__
|
||
|
#include <QD3DView.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 __QD3DIO__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 __QD3DIO__RESTORE_PACKED_ENUMS
|
||
|
#pragma options(!pack_enums)
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Basic Types **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
typedef unsigned char TQ3Uns8;
|
||
|
typedef signed char TQ3Int8;
|
||
|
typedef unsigned short TQ3Uns16;
|
||
|
typedef signed short TQ3Int16;
|
||
|
typedef unsigned long TQ3Uns32;
|
||
|
typedef signed long TQ3Int32;
|
||
|
#if TARGET_RT_BIG_ENDIAN
|
||
|
struct TQ3Uns64 {
|
||
|
unsigned long hi;
|
||
|
unsigned long lo;
|
||
|
};
|
||
|
typedef struct TQ3Uns64 TQ3Uns64;
|
||
|
struct TQ3Int64 {
|
||
|
signed long hi;
|
||
|
unsigned long lo;
|
||
|
};
|
||
|
typedef struct TQ3Int64 TQ3Int64;
|
||
|
#else
|
||
|
struct TQ3Uns64 {
|
||
|
unsigned long lo;
|
||
|
unsigned long hi;
|
||
|
};
|
||
|
typedef struct TQ3Uns64 TQ3Uns64;
|
||
|
struct TQ3Int64 {
|
||
|
unsigned long lo;
|
||
|
signed long hi;
|
||
|
};
|
||
|
typedef struct TQ3Int64 TQ3Int64;
|
||
|
#endif /* TARGET_RT_BIG_ENDIAN */
|
||
|
|
||
|
|
||
|
typedef float TQ3Float32;
|
||
|
typedef double TQ3Float64;
|
||
|
typedef TQ3Uns32 TQ3Size;
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** File Types **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
enum TQ3FileModeMasks {
|
||
|
kQ3FileModeNormal = 0,
|
||
|
kQ3FileModeStream = 1 << 0,
|
||
|
kQ3FileModeDatabase = 1 << 1,
|
||
|
kQ3FileModeText = 1 << 2
|
||
|
};
|
||
|
typedef enum TQ3FileModeMasks TQ3FileModeMasks;
|
||
|
|
||
|
typedef unsigned long TQ3FileMode;
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Method Types **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* IO Methods
|
||
|
*
|
||
|
* The IO system treats all objects as groups of typed information.
|
||
|
* When you register your element or attribute, the "elementType" is the
|
||
|
* binary type of your object, the "elementName" the ascii type.
|
||
|
*
|
||
|
* All objects in the metafile are made up of a "root" or parent object which
|
||
|
* defines the instantiated object type. You may define the format of your
|
||
|
* data any way you wish as long as you use the primitives types above and the
|
||
|
* routines below.
|
||
|
*
|
||
|
* Root Objects are often appended with additional child objects, called
|
||
|
* subobjects. You may append your object with other QuickDraw 3D objects.
|
||
|
*
|
||
|
* Writing is straightforward: an object traverses itself any other objects
|
||
|
* that make it up, then writes its own data. Writing uses two methods:
|
||
|
* TQ3XObjectTraverseMethod and TQ3XObjectWriteMethod.
|
||
|
*
|
||
|
* The TQ3XObjectTraverseMethod method should:
|
||
|
* + First, Determine if the data should be written
|
||
|
* - if you don't want to write out your object after examining your
|
||
|
* data, return kQ3Success in your Traverse method without calling
|
||
|
* any other submit calls.
|
||
|
* + Next, calculate the size of your object on disk
|
||
|
* + Gather whatever state from the view you need to preserve
|
||
|
* - you may access the view state NOW, as the state of the
|
||
|
* view duing your TQ3XObjectWriteMethod will not be valid. You may
|
||
|
* pass a temporary buffer to your write method.
|
||
|
* + Submit your view write data using Q3View_SubmitWriteData
|
||
|
* - note that you MUST call this before any other "_Submit" call.
|
||
|
* - you may pass in a "deleteMethod" for your data. This method
|
||
|
* will be called whether or not your write method succeeds or fails.
|
||
|
* + Submit your subobjects to the view
|
||
|
*
|
||
|
* The TQ3XObjectWriteMethod method should:
|
||
|
* + Write your data format to the file using the primitives routines below.
|
||
|
* - If you passed a "deleteMethod" in your Q3View_SubmitWriteData, that
|
||
|
* method will be called upon exit of your write method.
|
||
|
*
|
||
|
* Reading is less straightforward because your root object and
|
||
|
* any subobjects must be read inside of your TQ3XObjectReadDataMethod. There
|
||
|
* is an implicit state contained in the file while reading, which you must
|
||
|
* be aware of. When you first enter the read method, you must physically
|
||
|
* read in your data format using the primitives routines until
|
||
|
*
|
||
|
* Q3File_IsEndOfData(file) == kQ3True
|
||
|
*
|
||
|
* Generally, your data format should be self-descriptive such that you do not
|
||
|
* need to call Q3File_IsEndOfData to determine if you are done reading.
|
||
|
* However, this call is useful for determining zero-sized object or
|
||
|
* determining the end of an object's data.
|
||
|
*
|
||
|
* Once you have read in all the data, you may collect subobjects. A metafile
|
||
|
* object ONLY has subobjects if it is in a container. The call
|
||
|
*
|
||
|
* Q3File_IsEndOfContainer(file)
|
||
|
*
|
||
|
* returns kQ3False if subobjects exist, and kQ3True if subobjects do not
|
||
|
* exist.
|
||
|
*
|
||
|
* At this point, you may use
|
||
|
*
|
||
|
* Q3File_GetNextObjectType
|
||
|
* Q3File_IsNextObjectOfType
|
||
|
* Q3File_ReadObject
|
||
|
* Q3File_SkipObject
|
||
|
*
|
||
|
* to iterate through the subobjects until Q3File_IsEndOfContainer(file)
|
||
|
* is kQ3True.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* IO Methods
|
||
|
*/
|
||
|
enum {
|
||
|
kQ3XMethodTypeObjectFileVersion = FOUR_CHAR_CODE('vers'), /* version */
|
||
|
kQ3XMethodTypeObjectTraverse = FOUR_CHAR_CODE('trvs'), /* byte count */
|
||
|
kQ3XMethodTypeObjectTraverseData = FOUR_CHAR_CODE('trvd'), /* byte count */
|
||
|
kQ3XMethodTypeObjectWrite = FOUR_CHAR_CODE('writ'), /* Dump info to file */
|
||
|
kQ3XMethodTypeObjectReadData = FOUR_CHAR_CODE('rddt'), /* Read info from file into buffer or, attach read data to parent */
|
||
|
kQ3XMethodTypeObjectRead = FOUR_CHAR_CODE('read'),
|
||
|
kQ3XMethodTypeObjectAttach = FOUR_CHAR_CODE('attc')
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* TQ3XObjectTraverseMethod
|
||
|
*
|
||
|
* For "elements" (meaning "attributes, too), you will be passed NULL for
|
||
|
* object. Sorry, custom objects will be available in the next major revision.
|
||
|
*
|
||
|
* The "data" is a pointer to your internal element data.
|
||
|
*
|
||
|
* The view is the current traversal view.
|
||
|
*/
|
||
|
typedef CALLBACK_API_C( TQ3Status , TQ3XObjectTraverseMethod )(TQ3Object object, void *data, TQ3ViewObject view);
|
||
|
/*
|
||
|
* TQ3XObjectTraverseDataMethod
|
||
|
*/
|
||
|
typedef CALLBACK_API_C( TQ3Status , TQ3XObjectTraverseDataMethod )(TQ3Object object, void *data, TQ3ViewObject view);
|
||
|
/*
|
||
|
* TQ3XObjectWriteMethod
|
||
|
*/
|
||
|
typedef CALLBACK_API_C( TQ3Status , TQ3XObjectWriteMethod )(const void *object, TQ3FileObject theFile);
|
||
|
/*
|
||
|
* Custom object writing
|
||
|
*/
|
||
|
typedef CALLBACK_API_C( void , TQ3XDataDeleteMethod )(void * data);
|
||
|
#if CALL_NOT_IN_CARBON
|
||
|
/*
|
||
|
* Q3XView_SubmitWriteData()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3XView_SubmitWriteData(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3Size size,
|
||
|
void * data,
|
||
|
TQ3XDataDeleteMethod deleteData);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3XView_SubmitSubObjectData()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3XView_SubmitSubObjectData(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3XObjectClass objectClass,
|
||
|
unsigned long size,
|
||
|
void * data,
|
||
|
TQ3XDataDeleteMethod deleteData);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* TQ3XObjectReadMethod
|
||
|
*/
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
typedef CALLBACK_API_C( TQ3Object , TQ3XObjectReadMethod )(TQ3FileObject theFile);
|
||
|
/*
|
||
|
* TQ3XObjectReadDataMethod
|
||
|
*
|
||
|
* For "elements" (meaning "attributes", too), you must allocate stack space
|
||
|
* and call Q3Set_Add on "parentObject", which is an TQ3SetObject.
|
||
|
*
|
||
|
* Otherwise, parentObject is whatever object your element is a subobject of...
|
||
|
*/
|
||
|
typedef CALLBACK_API_C( TQ3Status , TQ3XObjectReadDataMethod )(TQ3Object parentObject, TQ3FileObject theFile);
|
||
|
/*
|
||
|
* TQ3XObjectAttachMethod
|
||
|
*/
|
||
|
typedef CALLBACK_API_C( TQ3Status , TQ3XObjectAttachMethod )(TQ3Object childObject, TQ3Object parentObject);
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Versioning **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
|
||
|
#define Q3FileVersion(majorVersion, minorVersion) (TQ3FileVersion) \
|
||
|
((((TQ3Uns32) majorVersion & 0xFFFF) << 16) | ((TQ3Uns32) minorVersion & 0xFFFF))
|
||
|
|
||
|
typedef unsigned long TQ3FileVersion;
|
||
|
#define kQ3FileVersionCurrent Q3FileVersion(1,6)
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** File Routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Creation and accessors
|
||
|
*/
|
||
|
#if CALL_NOT_IN_CARBON
|
||
|
/*
|
||
|
* Q3File_New()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3FileObject )
|
||
|
Q3File_New(void);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_GetStorage()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_GetStorage(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3StorageObject * storage);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_SetStorage()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_SetStorage(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3StorageObject storage);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Opening, and accessing "open" state, closing/cancelling
|
||
|
*/
|
||
|
/*
|
||
|
* Q3File_OpenRead()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_OpenRead(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3FileMode * mode);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_OpenWrite()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_OpenWrite(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3FileMode mode);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_IsOpen()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_IsOpen(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3Boolean * isOpen);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_GetMode()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_GetMode(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3FileMode * mode);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_GetVersion()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_GetVersion(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3FileVersion * version);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_Close()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_Close(TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_Cancel()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_Cancel(TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Writing (Application)
|
||
|
*/
|
||
|
/*
|
||
|
* Q3View_StartWriting()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3View_StartWriting(
|
||
|
TQ3ViewObject view,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3View_EndWriting()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3ViewStatus )
|
||
|
Q3View_EndWriting(TQ3ViewObject view);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Reading (Application)
|
||
|
*/
|
||
|
/*
|
||
|
* Q3File_GetNextObjectType()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3ObjectType )
|
||
|
Q3File_GetNextObjectType(TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_IsNextObjectOfType()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Boolean )
|
||
|
Q3File_IsNextObjectOfType(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3ObjectType ofType);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_ReadObject()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Object )
|
||
|
Q3File_ReadObject(TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_SkipObject()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_SkipObject(TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_IsEndOfData()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Boolean )
|
||
|
Q3File_IsEndOfData(TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_IsEndOfContainer()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Boolean )
|
||
|
Q3File_IsEndOfContainer(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3Object rootObject);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_IsEndOfFile()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Boolean )
|
||
|
Q3File_IsEndOfFile(TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* External file references
|
||
|
*/
|
||
|
/*
|
||
|
* Q3File_MarkAsExternalReference()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_MarkAsExternalReference(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3SharedObject sharedObject);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_GetExternalReferences()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3GroupObject )
|
||
|
Q3File_GetExternalReferences(TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Tracking editing in read-in objects with custom elements
|
||
|
*/
|
||
|
/*
|
||
|
* Q3Shared_ClearEditTracking()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Shared_ClearEditTracking(TQ3SharedObject sharedObject);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Shared_GetEditTrackingState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Boolean )
|
||
|
Q3Shared_GetEditTrackingState(TQ3SharedObject sharedObject);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Reading objects inside a group one-by-one
|
||
|
*/
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
enum TQ3FileReadGroupStateMasks {
|
||
|
kQ3FileReadWholeGroup = 0,
|
||
|
kQ3FileReadObjectsInGroup = 1 << 0,
|
||
|
kQ3FileCurrentlyInsideGroup = 1 << 1
|
||
|
};
|
||
|
typedef enum TQ3FileReadGroupStateMasks TQ3FileReadGroupStateMasks;
|
||
|
|
||
|
typedef unsigned long TQ3FileReadGroupState;
|
||
|
#if CALL_NOT_IN_CARBON
|
||
|
/*
|
||
|
* Q3File_SetReadInGroup()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_SetReadInGroup(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3FileReadGroupState readGroupState);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3File_GetReadInGroup()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_GetReadInGroup(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3FileReadGroupState * readGroupState);
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Idling
|
||
|
*/
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
typedef CALLBACK_API_C( TQ3Status , TQ3FileIdleMethod )(TQ3FileObject theFile, const void *idlerData);
|
||
|
#if CALL_NOT_IN_CARBON
|
||
|
/*
|
||
|
* Q3File_SetIdleMethod()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3File_SetIdleMethod(
|
||
|
TQ3FileObject theFile,
|
||
|
TQ3FileIdleMethod idle,
|
||
|
const void * idleData);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Primitives Routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3NewLine_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3NewLine_Write(TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Uns8_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Uns8_Read(
|
||
|
TQ3Uns8 * data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Uns8_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Uns8_Write(
|
||
|
TQ3Uns8 data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Uns16_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Uns16_Read(
|
||
|
TQ3Uns16 * data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Uns16_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Uns16_Write(
|
||
|
TQ3Uns16 data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Uns32_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Uns32_Read(
|
||
|
TQ3Uns32 * data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Uns32_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Uns32_Write(
|
||
|
TQ3Uns32 data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Int8_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Int8_Read(
|
||
|
TQ3Int8 * data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Int8_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Int8_Write(
|
||
|
TQ3Int8 data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Int16_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Int16_Read(
|
||
|
TQ3Int16 * data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Int16_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Int16_Write(
|
||
|
TQ3Int16 data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Int32_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Int32_Read(
|
||
|
TQ3Int32 * data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Int32_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Int32_Write(
|
||
|
TQ3Int32 data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Uns64_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Uns64_Read(
|
||
|
TQ3Uns64 * data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Uns64_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Uns64_Write(
|
||
|
TQ3Uns64 data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Int64_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Int64_Read(
|
||
|
TQ3Int64 * data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Int64_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Int64_Write(
|
||
|
TQ3Int64 data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Float32_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Float32_Read(
|
||
|
TQ3Float32 * data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Float32_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Float32_Write(
|
||
|
TQ3Float32 data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Float64_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Float64_Read(
|
||
|
TQ3Float64 * data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Float64_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Float64_Write(
|
||
|
TQ3Float64 data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Size_Pad()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Size )
|
||
|
Q3Size_Pad(TQ3Size size);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Pass a pointer to a buffer of kQ3StringMaximumLength bytes
|
||
|
*/
|
||
|
/*
|
||
|
* Q3String_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3String_Read(
|
||
|
char * data,
|
||
|
unsigned long * length,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3String_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3String_Write(
|
||
|
const char * data,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* This call will read Q3Size_Pad(size) bytes,
|
||
|
* but only place size bytes into data.
|
||
|
*/
|
||
|
/*
|
||
|
* Q3RawData_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3RawData_Read(
|
||
|
unsigned char * data,
|
||
|
unsigned long size,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* This call will write Q3Size_Pad(size) bytes,
|
||
|
* adding 0's to pad to the nearest 4 byte boundary.
|
||
|
*/
|
||
|
/*
|
||
|
* Q3RawData_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3RawData_Write(
|
||
|
const unsigned char * data,
|
||
|
unsigned long size,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Convenient Primitives Routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3Point2D_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Point2D_Read(
|
||
|
TQ3Point2D * point2D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Point2D_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Point2D_Write(
|
||
|
const TQ3Point2D * point2D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Point3D_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Point3D_Read(
|
||
|
TQ3Point3D * point3D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Point3D_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Point3D_Write(
|
||
|
const TQ3Point3D * point3D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3RationalPoint3D_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3RationalPoint3D_Read(
|
||
|
TQ3RationalPoint3D * point3D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3RationalPoint3D_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3RationalPoint3D_Write(
|
||
|
const TQ3RationalPoint3D * point3D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3RationalPoint4D_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3RationalPoint4D_Read(
|
||
|
TQ3RationalPoint4D * point4D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3RationalPoint4D_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3RationalPoint4D_Write(
|
||
|
const TQ3RationalPoint4D * point4D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Vector2D_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Vector2D_Read(
|
||
|
TQ3Vector2D * vector2D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Vector2D_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Vector2D_Write(
|
||
|
const TQ3Vector2D * vector2D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Vector3D_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Vector3D_Read(
|
||
|
TQ3Vector3D * vector3D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Vector3D_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Vector3D_Write(
|
||
|
const TQ3Vector3D * vector3D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Matrix4x4_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Matrix4x4_Read(
|
||
|
TQ3Matrix4x4 * matrix4x4,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Matrix4x4_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Matrix4x4_Write(
|
||
|
const TQ3Matrix4x4 * matrix4x4,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Tangent2D_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Tangent2D_Read(
|
||
|
TQ3Tangent2D * tangent2D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Tangent2D_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Tangent2D_Write(
|
||
|
const TQ3Tangent2D * tangent2D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Tangent3D_Read()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Tangent3D_Read(
|
||
|
TQ3Tangent3D * tangent3D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Tangent3D_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Tangent3D_Write(
|
||
|
const TQ3Tangent3D * tangent3D,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/* This call affects only text Files - it is a no-op in binary files */
|
||
|
/*
|
||
|
* Q3Comment_Write()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Comment_Write(
|
||
|
char * comment,
|
||
|
TQ3FileObject theFile);
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Unknown Object **
|
||
|
** **
|
||
|
** Unknown objects are generated when reading files which contain **
|
||
|
** custom data which has not been registered in the current **
|
||
|
** instantiation of QuickDraw 3D. **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
/*
|
||
|
* Q3Unknown_GetType()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3ObjectType )
|
||
|
Q3Unknown_GetType(TQ3UnknownObject unknownObject);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Unknown_GetDirtyState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Unknown_GetDirtyState(
|
||
|
TQ3UnknownObject unknownObject,
|
||
|
TQ3Boolean * isDirty);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3Unknown_SetDirtyState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3Unknown_SetDirtyState(
|
||
|
TQ3UnknownObject unknownObject,
|
||
|
TQ3Boolean isDirty);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Unknown Text Routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
struct TQ3UnknownTextData {
|
||
|
char * objectName; /* '\0' terminated */
|
||
|
char * contents; /* '\0' terminated */
|
||
|
};
|
||
|
typedef struct TQ3UnknownTextData TQ3UnknownTextData;
|
||
|
#if CALL_NOT_IN_CARBON
|
||
|
/*
|
||
|
* Q3UnknownText_GetData()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3UnknownText_GetData(
|
||
|
TQ3UnknownObject unknownObject,
|
||
|
TQ3UnknownTextData * unknownTextData);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3UnknownText_EmptyData()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3UnknownText_EmptyData(TQ3UnknownTextData * unknownTextData);
|
||
|
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** Unknown Binary Routines **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
struct TQ3UnknownBinaryData {
|
||
|
TQ3ObjectType objectType;
|
||
|
unsigned long size;
|
||
|
TQ3Endian byteOrder;
|
||
|
char * contents;
|
||
|
};
|
||
|
typedef struct TQ3UnknownBinaryData TQ3UnknownBinaryData;
|
||
|
#if CALL_NOT_IN_CARBON
|
||
|
/*
|
||
|
* Q3UnknownBinary_GetData()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3UnknownBinary_GetData(
|
||
|
TQ3UnknownObject unknownObject,
|
||
|
TQ3UnknownBinaryData * unknownBinaryData);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3UnknownBinary_EmptyData()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3UnknownBinary_EmptyData(TQ3UnknownBinaryData * unknownBinaryData);
|
||
|
|
||
|
|
||
|
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
#if CALL_NOT_IN_CARBON
|
||
|
/*
|
||
|
* Q3UnknownBinary_GetTypeString()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3UnknownBinary_GetTypeString(
|
||
|
TQ3UnknownObject unknownObject,
|
||
|
char ** typeString);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3UnknownBinary_EmptyTypeString()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3UnknownBinary_EmptyTypeString(char ** typeString);
|
||
|
|
||
|
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
/******************************************************************************
|
||
|
** **
|
||
|
** ViewHints routines **
|
||
|
** **
|
||
|
** ViewHints are an object in a metafile to give you some hints on how **
|
||
|
** to render a scene. You may create a view with any of the objects **
|
||
|
** retrieved from it, or you can just throw it away. **
|
||
|
** **
|
||
|
** To write a view hints to a file, create a view hints object from a **
|
||
|
** view and write the view hints. **
|
||
|
** **
|
||
|
*****************************************************************************/
|
||
|
#if CALL_NOT_IN_CARBON
|
||
|
/*
|
||
|
* Q3ViewHints_New()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3ViewHintsObject )
|
||
|
Q3ViewHints_New(TQ3ViewObject view);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_SetRenderer()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_SetRenderer(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3RendererObject renderer);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_GetRenderer()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_GetRenderer(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3RendererObject * renderer);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_SetCamera()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_SetCamera(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3CameraObject camera);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_GetCamera()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_GetCamera(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3CameraObject * camera);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_SetLightGroup()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_SetLightGroup(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3GroupObject lightGroup);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_GetLightGroup()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_GetLightGroup(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3GroupObject * lightGroup);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_SetAttributeSet()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_SetAttributeSet(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3AttributeSet attributeSet);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_GetAttributeSet()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_GetAttributeSet(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3AttributeSet * attributeSet);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_SetDimensionsState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_SetDimensionsState(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3Boolean isValid);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_GetDimensionsState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_GetDimensionsState(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3Boolean * isValid);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_SetDimensions()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_SetDimensions(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
unsigned long width,
|
||
|
unsigned long height);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_GetDimensions()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_GetDimensions(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
unsigned long * width,
|
||
|
unsigned long * height);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_SetMaskState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_SetMaskState(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3Boolean isValid);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_GetMaskState()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_GetMaskState(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3Boolean * isValid);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_SetMask()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_SetMask(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
const TQ3Bitmap * mask);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_GetMask()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_GetMask(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3Bitmap * mask);
|
||
|
|
||
|
|
||
|
/* Call Q3Bitmap_Empty when done with the mask */
|
||
|
/*
|
||
|
* Q3ViewHints_SetClearImageMethod()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_SetClearImageMethod(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3DrawContextClearImageMethod clearMethod);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_GetClearImageMethod()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_GetClearImageMethod(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3DrawContextClearImageMethod * clearMethod);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_SetClearImageColor()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_SetClearImageColor(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
const TQ3ColorARGB * color);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Q3ViewHints_GetClearImageColor()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available
|
||
|
* Mac OS X: not available
|
||
|
*/
|
||
|
EXTERN_API_C( TQ3Status )
|
||
|
Q3ViewHints_GetClearImageColor(
|
||
|
TQ3ViewHintsObject viewHints,
|
||
|
TQ3ColorARGB * color);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
|
||
|
#if PRAGMA_ENUM_ALWAYSINT
|
||
|
#pragma enumsalwaysint reset
|
||
|
#ifdef __QD3DIO__RESTORE_TWOBYTEINTS
|
||
|
#pragma fourbyteints off
|
||
|
#endif
|
||
|
#elif PRAGMA_ENUM_OPTIONS
|
||
|
#pragma option enum=reset
|
||
|
#elif defined(__QD3DIO__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 /* __QD3DIO__ */
|
||
|
|