diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/QD3DCamera.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/QD3DCamera.h')
| -rw-r--r-- | common/quicktime_win32/QD3DCamera.h | 815 |
1 files changed, 815 insertions, 0 deletions
diff --git a/common/quicktime_win32/QD3DCamera.h b/common/quicktime_win32/QD3DCamera.h new file mode 100644 index 0000000..e3f83fc --- /dev/null +++ b/common/quicktime_win32/QD3DCamera.h @@ -0,0 +1,815 @@ +/* + File: QD3DCamera.h + + Contains: Generic camera routines + + 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 __QD3DCAMERA__ +#define __QD3DCAMERA__ + +#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 __QD3DCAMERA__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 __QD3DCAMERA__RESTORE_PACKED_ENUMS + #pragma options(!pack_enums) + #endif +#endif + +/****************************************************************************** + ** ** + ** Data Structure Definitions ** + ** ** + *****************************************************************************/ +/* + * The placement of the camera. + */ +struct TQ3CameraPlacement { + TQ3Point3D cameraLocation; /* Location point of the camera */ + TQ3Point3D pointOfInterest; /* Point of interest */ + TQ3Vector3D upVector; /* "up" vector */ +}; +typedef struct TQ3CameraPlacement TQ3CameraPlacement; +/* + * The range of the camera. + */ +struct TQ3CameraRange { + float hither; /* Hither plane, measured from "from" towards "to" */ + float yon; /* Yon plane, measured from "from" towards "to" */ +}; +typedef struct TQ3CameraRange TQ3CameraRange; +/* + * Viewport specification. Origin is (-1, 1), and corresponds to the + * upper left-hand corner; width and height maximum is (2.0, 2.0), + * corresponding to the lower left-hand corner of the window. The + * TQ3Viewport specifies a part of the viewPlane that gets displayed + * on the window that is to be drawn. + * Normally, it is set with an origin of (-1.0, 1.0), and a width and + * height of both 2.0, specifying that the entire window is to be + * drawn. If, for example, an exposure event of the window exposed + * the right half of the window, you would set the origin to (0, 1), + * and the width and height to (1.0) and (2.0), respectively. + * + */ +struct TQ3CameraViewPort { + TQ3Point2D origin; + float width; + float height; +}; +typedef struct TQ3CameraViewPort TQ3CameraViewPort; +struct TQ3CameraData { + TQ3CameraPlacement placement; + TQ3CameraRange range; + TQ3CameraViewPort viewPort; +}; +typedef struct TQ3CameraData TQ3CameraData; +/* + * An orthographic camera. + * + * The lens characteristics are set with the dimensions of a + * rectangular viewPort in the frame of the camera. + */ +struct TQ3OrthographicCameraData { + TQ3CameraData cameraData; + float left; + float top; + float right; + float bottom; +}; +typedef struct TQ3OrthographicCameraData TQ3OrthographicCameraData; +/* + * A perspective camera specified in terms of an arbitrary view plane. + * + * This is most useful when setting the camera to look at a particular + * object. The viewPlane is set to distance from the camera to the object. + * The halfWidth is set to half the width of the cross section of the object, + * and the halfHeight equal to the halfWidth divided by the aspect ratio + * of the viewPort. + * + * This is the only perspective camera with specifications for off-axis + * viewing, which is desirable for scrolling. + */ +struct TQ3ViewPlaneCameraData { + TQ3CameraData cameraData; + float viewPlane; + float halfWidthAtViewPlane; + float halfHeightAtViewPlane; + float centerXOnViewPlane; + float centerYOnViewPlane; +}; +typedef struct TQ3ViewPlaneCameraData TQ3ViewPlaneCameraData; +/* + * A view angle aspect camera is a perspective camera specified in + * terms of the minimum view angle and the aspect ratio of X to Y. + * + */ +struct TQ3ViewAngleAspectCameraData { + TQ3CameraData cameraData; + float fov; + float aspectRatioXToY; +}; +typedef struct TQ3ViewAngleAspectCameraData TQ3ViewAngleAspectCameraData; +/****************************************************************************** + ** ** + ** Generic Camera routines ** + ** ** + *****************************************************************************/ + +#if CALL_NOT_IN_CARBON +/* + * Q3Camera_GetType() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ObjectType ) +Q3Camera_GetType(TQ3CameraObject camera); + + +/* + * Q3Camera_SetData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Camera_SetData( + TQ3CameraObject camera, + const TQ3CameraData * cameraData); + + +/* + * Q3Camera_GetData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Camera_GetData( + TQ3CameraObject camera, + TQ3CameraData * cameraData); + + +/* + * Q3Camera_SetPlacement() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Camera_SetPlacement( + TQ3CameraObject camera, + const TQ3CameraPlacement * placement); + + +/* + * Q3Camera_GetPlacement() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Camera_GetPlacement( + TQ3CameraObject camera, + TQ3CameraPlacement * placement); + + +/* + * Q3Camera_SetRange() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Camera_SetRange( + TQ3CameraObject camera, + const TQ3CameraRange * range); + + +/* + * Q3Camera_GetRange() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Camera_GetRange( + TQ3CameraObject camera, + TQ3CameraRange * range); + + +/* + * Q3Camera_SetViewPort() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Camera_SetViewPort( + TQ3CameraObject camera, + const TQ3CameraViewPort * viewPort); + + +/* + * Q3Camera_GetViewPort() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Camera_GetViewPort( + TQ3CameraObject camera, + TQ3CameraViewPort * viewPort); + + +/* + * Q3Camera_GetWorldToView() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Camera_GetWorldToView( + TQ3CameraObject camera, + TQ3Matrix4x4 * worldToView); + + +/* + * Q3Camera_GetWorldToFrustum() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Camera_GetWorldToFrustum( + TQ3CameraObject camera, + TQ3Matrix4x4 * worldToFrustum); + + +/* + * Q3Camera_GetViewToFrustum() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Camera_GetViewToFrustum( + TQ3CameraObject camera, + TQ3Matrix4x4 * viewToFrustum); + + + +/****************************************************************************** + ** ** + ** Specific Camera Routines ** + ** ** + *****************************************************************************/ +/****************************************************************************** + ** ** + ** Orthographic Camera ** + ** ** + *****************************************************************************/ +/* + * Q3OrthographicCamera_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3CameraObject ) +Q3OrthographicCamera_New(const TQ3OrthographicCameraData * orthographicData); + + +/* + * Q3OrthographicCamera_GetData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3OrthographicCamera_GetData( + TQ3CameraObject camera, + TQ3OrthographicCameraData * cameraData); + + +/* + * Q3OrthographicCamera_SetData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3OrthographicCamera_SetData( + TQ3CameraObject camera, + const TQ3OrthographicCameraData * cameraData); + + +/* + * Q3OrthographicCamera_SetLeft() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3OrthographicCamera_SetLeft( + TQ3CameraObject camera, + float left); + + +/* + * Q3OrthographicCamera_GetLeft() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3OrthographicCamera_GetLeft( + TQ3CameraObject camera, + float * left); + + +/* + * Q3OrthographicCamera_SetTop() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3OrthographicCamera_SetTop( + TQ3CameraObject camera, + float top); + + +/* + * Q3OrthographicCamera_GetTop() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3OrthographicCamera_GetTop( + TQ3CameraObject camera, + float * top); + + +/* + * Q3OrthographicCamera_SetRight() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3OrthographicCamera_SetRight( + TQ3CameraObject camera, + float right); + + +/* + * Q3OrthographicCamera_GetRight() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3OrthographicCamera_GetRight( + TQ3CameraObject camera, + float * right); + + +/* + * Q3OrthographicCamera_SetBottom() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3OrthographicCamera_SetBottom( + TQ3CameraObject camera, + float bottom); + + +/* + * Q3OrthographicCamera_GetBottom() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3OrthographicCamera_GetBottom( + TQ3CameraObject camera, + float * bottom); + + + +/****************************************************************************** + ** ** + ** ViewPlane Camera ** + ** ** + *****************************************************************************/ +/* + * Q3ViewPlaneCamera_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3CameraObject ) +Q3ViewPlaneCamera_New(const TQ3ViewPlaneCameraData * cameraData); + + +/* + * Q3ViewPlaneCamera_GetData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_GetData( + TQ3CameraObject camera, + TQ3ViewPlaneCameraData * cameraData); + + +/* + * Q3ViewPlaneCamera_SetData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_SetData( + TQ3CameraObject camera, + const TQ3ViewPlaneCameraData * cameraData); + + +/* + * Q3ViewPlaneCamera_SetViewPlane() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_SetViewPlane( + TQ3CameraObject camera, + float viewPlane); + + +/* + * Q3ViewPlaneCamera_GetViewPlane() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_GetViewPlane( + TQ3CameraObject camera, + float * viewPlane); + + +/* + * Q3ViewPlaneCamera_SetHalfWidth() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_SetHalfWidth( + TQ3CameraObject camera, + float halfWidthAtViewPlane); + + +/* + * Q3ViewPlaneCamera_GetHalfWidth() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_GetHalfWidth( + TQ3CameraObject camera, + float * halfWidthAtViewPlane); + + +/* + * Q3ViewPlaneCamera_SetHalfHeight() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_SetHalfHeight( + TQ3CameraObject camera, + float halfHeightAtViewPlane); + + +/* + * Q3ViewPlaneCamera_GetHalfHeight() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_GetHalfHeight( + TQ3CameraObject camera, + float * halfHeightAtViewPlane); + + +/* + * Q3ViewPlaneCamera_SetCenterX() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_SetCenterX( + TQ3CameraObject camera, + float centerXOnViewPlane); + + +/* + * Q3ViewPlaneCamera_GetCenterX() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_GetCenterX( + TQ3CameraObject camera, + float * centerXOnViewPlane); + + +/* + * Q3ViewPlaneCamera_SetCenterY() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_SetCenterY( + TQ3CameraObject camera, + float centerYOnViewPlane); + + +/* + * Q3ViewPlaneCamera_GetCenterY() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewPlaneCamera_GetCenterY( + TQ3CameraObject camera, + float * centerYOnViewPlane); + + + +/****************************************************************************** + ** ** + ** View Angle Aspect Camera ** + ** ** + *****************************************************************************/ +/* + * Q3ViewAngleAspectCamera_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3CameraObject ) +Q3ViewAngleAspectCamera_New(const TQ3ViewAngleAspectCameraData * cameraData); + + +/* + * Q3ViewAngleAspectCamera_SetData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewAngleAspectCamera_SetData( + TQ3CameraObject camera, + const TQ3ViewAngleAspectCameraData * cameraData); + + +/* + * Q3ViewAngleAspectCamera_GetData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewAngleAspectCamera_GetData( + TQ3CameraObject camera, + TQ3ViewAngleAspectCameraData * cameraData); + + +/* + * Q3ViewAngleAspectCamera_SetFOV() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewAngleAspectCamera_SetFOV( + TQ3CameraObject camera, + float fov); + + +/* + * Q3ViewAngleAspectCamera_GetFOV() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewAngleAspectCamera_GetFOV( + TQ3CameraObject camera, + float * fov); + + +/* + * Q3ViewAngleAspectCamera_SetAspectRatio() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewAngleAspectCamera_SetAspectRatio( + TQ3CameraObject camera, + float aspectRatioXToY); + + +/* + * Q3ViewAngleAspectCamera_GetAspectRatio() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3ViewAngleAspectCamera_GetAspectRatio( + TQ3CameraObject camera, + float * aspectRatioXToY); + + + + + +#endif /* CALL_NOT_IN_CARBON */ + + +#if PRAGMA_ENUM_ALWAYSINT + #pragma enumsalwaysint reset + #ifdef __QD3DCAMERA__RESTORE_TWOBYTEINTS + #pragma fourbyteints off + #endif +#elif PRAGMA_ENUM_OPTIONS + #pragma option enum=reset +#elif defined(__QD3DCAMERA__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 /* __QD3DCAMERA__ */ + |