Mac OS 9
QD3DCamera.h
Go to the documentation of this file.
1 
19 #ifndef __QD3DCAMERA__
20 #define __QD3DCAMERA__
21 
22 #ifndef __QD3D__
23 #include <QD3D.h>
24 #endif
25 
26 #if PRAGMA_ONCE
27 #pragma once
28 #endif
29 
30 #ifdef __cplusplus
31 extern "C"
32 {
33 #endif
34 
35 #if PRAGMA_IMPORT
36 #pragma import on
37 #endif
38 
39 #if PRAGMA_STRUCT_ALIGN
40 #pragma options align = power
41 #elif PRAGMA_STRUCT_PACKPUSH
42 #pragma pack(push, 2)
43 #elif PRAGMA_STRUCT_PACK
44 #pragma pack(2)
45 #endif
46 
47 #if PRAGMA_ENUM_ALWAYSINT
48 #if defined(__fourbyteints__) && !__fourbyteints__
49 #define __QD3DCAMERA__RESTORE_TWOBYTEINTS
50 #pragma fourbyteints on
51 #endif
52 #pragma enumsalwaysint on
53 #elif PRAGMA_ENUM_OPTIONS
54 #pragma option enum =int
55 #elif PRAGMA_ENUM_PACK
56 #if __option(pack_enums)
57 #define __QD3DCAMERA__RESTORE_PACKED_ENUMS
58 #pragma options(!pack_enums)
59 #endif
60 #endif
61 
62  /******************************************************************************
63  ** **
64  ** Data Structure Definitions **
65  ** **
66  *****************************************************************************/
71  {
72  TQ3Point3D cameraLocation; /* Location point of the camera */
73  TQ3Point3D pointOfInterest; /* Point of interest */
74  TQ3Vector3D upVector; /* "up" vector */
75  };
81  {
82  float hither; /* Hither plane, measured from "from" towards "to" */
83  float yon; /* Yon plane, measured from "from" towards "to" */
84  };
85  typedef struct TQ3CameraRange TQ3CameraRange;
100  {
101  TQ3Point2D origin;
102  float width;
103  float height;
104  };
105  typedef struct TQ3CameraViewPort TQ3CameraViewPort;
107  {
108  TQ3CameraPlacement placement;
109  TQ3CameraRange range;
110  TQ3CameraViewPort viewPort;
111  };
112  typedef struct TQ3CameraData TQ3CameraData;
120  {
121  TQ3CameraData cameraData;
122  float left;
123  float top;
124  float right;
125  float bottom;
126  };
141  {
142  TQ3CameraData cameraData;
143  float viewPlane;
144  float halfWidthAtViewPlane;
145  float halfHeightAtViewPlane;
146  float centerXOnViewPlane;
147  float centerYOnViewPlane;
148  };
156  {
157  TQ3CameraData cameraData;
158  float fov;
159  float aspectRatioXToY;
160  };
162  /******************************************************************************
163  ** **
164  ** Generic Camera routines **
165  ** **
166  *****************************************************************************/
167 
168 #if CALL_NOT_IN_CARBON
178  Q3Camera_GetType(TQ3CameraObject camera);
179 
188  TQ3Status
189  Q3Camera_SetData(TQ3CameraObject camera, const TQ3CameraData *cameraData);
190 
199  TQ3Status
200  Q3Camera_GetData(TQ3CameraObject camera, TQ3CameraData *cameraData);
201 
210  TQ3Status
211  Q3Camera_SetPlacement(TQ3CameraObject camera,
212  const TQ3CameraPlacement *placement);
213 
222  TQ3Status
223  Q3Camera_GetPlacement(TQ3CameraObject camera, TQ3CameraPlacement *placement);
224 
233  TQ3Status
234  Q3Camera_SetRange(TQ3CameraObject camera, const TQ3CameraRange *range);
235 
244  TQ3Status
245  Q3Camera_GetRange(TQ3CameraObject camera, TQ3CameraRange *range);
246 
255  TQ3Status
256  Q3Camera_SetViewPort(TQ3CameraObject camera, const TQ3CameraViewPort *viewPort);
257 
266  TQ3Status
267  Q3Camera_GetViewPort(TQ3CameraObject camera, TQ3CameraViewPort *viewPort);
268 
277  TQ3Status
278  Q3Camera_GetWorldToView(TQ3CameraObject camera, TQ3Matrix4x4 *worldToView);
279 
288  TQ3Status
289  Q3Camera_GetWorldToFrustum(TQ3CameraObject camera,
290  TQ3Matrix4x4 *worldToFrustum);
291 
300  TQ3Status
301  Q3Camera_GetViewToFrustum(TQ3CameraObject camera, TQ3Matrix4x4 *viewToFrustum);
302 
303  /******************************************************************************
304  ** **
305  ** Specific Camera Routines **
306  ** **
307  *****************************************************************************/
308  /******************************************************************************
309  ** **
310  ** Orthographic Camera **
311  ** **
312  *****************************************************************************/
321  TQ3CameraObject
323 
332  TQ3Status
333  Q3OrthographicCamera_GetData(TQ3CameraObject camera,
334  TQ3OrthographicCameraData *cameraData);
335 
344  TQ3Status
345  Q3OrthographicCamera_SetData(TQ3CameraObject camera,
346  const TQ3OrthographicCameraData *cameraData);
347 
356  TQ3Status
357  Q3OrthographicCamera_SetLeft(TQ3CameraObject camera, float left);
358 
367  TQ3Status
368  Q3OrthographicCamera_GetLeft(TQ3CameraObject camera, float *left);
369 
378  TQ3Status
379  Q3OrthographicCamera_SetTop(TQ3CameraObject camera, float top);
380 
389  TQ3Status
390  Q3OrthographicCamera_GetTop(TQ3CameraObject camera, float *top);
391 
400  TQ3Status
401  Q3OrthographicCamera_SetRight(TQ3CameraObject camera, float right);
402 
411  TQ3Status
412  Q3OrthographicCamera_GetRight(TQ3CameraObject camera, float *right);
413 
422  TQ3Status
423  Q3OrthographicCamera_SetBottom(TQ3CameraObject camera, float bottom);
424 
433  TQ3Status
434  Q3OrthographicCamera_GetBottom(TQ3CameraObject camera, float *bottom);
435 
436  /******************************************************************************
437  ** **
438  ** ViewPlane Camera **
439  ** **
440  *****************************************************************************/
449  TQ3CameraObject
451 
460  TQ3Status
461  Q3ViewPlaneCamera_GetData(TQ3CameraObject camera,
462  TQ3ViewPlaneCameraData *cameraData);
463 
472  TQ3Status
473  Q3ViewPlaneCamera_SetData(TQ3CameraObject camera,
474  const TQ3ViewPlaneCameraData *cameraData);
475 
484  TQ3Status
485  Q3ViewPlaneCamera_SetViewPlane(TQ3CameraObject camera, float viewPlane);
486 
495  TQ3Status
496  Q3ViewPlaneCamera_GetViewPlane(TQ3CameraObject camera, float *viewPlane);
497 
506  TQ3Status
507  Q3ViewPlaneCamera_SetHalfWidth(TQ3CameraObject camera,
508  float halfWidthAtViewPlane);
509 
518  TQ3Status
519  Q3ViewPlaneCamera_GetHalfWidth(TQ3CameraObject camera,
520  float *halfWidthAtViewPlane);
521 
530  TQ3Status
531  Q3ViewPlaneCamera_SetHalfHeight(TQ3CameraObject camera,
532  float halfHeightAtViewPlane);
533 
542  TQ3Status
543  Q3ViewPlaneCamera_GetHalfHeight(TQ3CameraObject camera,
544  float *halfHeightAtViewPlane);
545 
554  TQ3Status
555  Q3ViewPlaneCamera_SetCenterX(TQ3CameraObject camera, float centerXOnViewPlane);
556 
565  TQ3Status
566  Q3ViewPlaneCamera_GetCenterX(TQ3CameraObject camera, float *centerXOnViewPlane);
567 
576  TQ3Status
577  Q3ViewPlaneCamera_SetCenterY(TQ3CameraObject camera, float centerYOnViewPlane);
578 
587  TQ3Status
588  Q3ViewPlaneCamera_GetCenterY(TQ3CameraObject camera, float *centerYOnViewPlane);
589 
590  /******************************************************************************
591  ** **
592  ** View Angle Aspect Camera **
593  ** **
594  *****************************************************************************/
603  TQ3CameraObject
605 
614  TQ3Status
615  Q3ViewAngleAspectCamera_SetData(TQ3CameraObject camera,
616  const TQ3ViewAngleAspectCameraData *cameraData);
617 
626  TQ3Status
627  Q3ViewAngleAspectCamera_GetData(TQ3CameraObject camera,
628  TQ3ViewAngleAspectCameraData *cameraData);
629 
638  TQ3Status
639  Q3ViewAngleAspectCamera_SetFOV(TQ3CameraObject camera, float fov);
640 
649  TQ3Status
650  Q3ViewAngleAspectCamera_GetFOV(TQ3CameraObject camera, float *fov);
651 
660  TQ3Status
662  float aspectRatioXToY);
663 
672  TQ3Status
674  float *aspectRatioXToY);
675 
676 #endif /* CALL_NOT_IN_CARBON */
677 
678 #if PRAGMA_ENUM_ALWAYSINT
679 #pragma enumsalwaysint reset
680 #ifdef __QD3DCAMERA__RESTORE_TWOBYTEINTS
681 #pragma fourbyteints off
682 #endif
683 #elif PRAGMA_ENUM_OPTIONS
684 #pragma option enum =reset
685 #elif defined(__QD3DCAMERA__RESTORE_PACKED_ENUMS)
686 #pragma options(pack_enums)
687 #endif
688 
689 #if PRAGMA_STRUCT_ALIGN
690 #pragma options align = reset
691 #elif PRAGMA_STRUCT_PACKPUSH
692 #pragma pack(pop)
693 #elif PRAGMA_STRUCT_PACK
694 #pragma pack()
695 #endif
696 
697 #ifdef PRAGMA_IMPORT_OFF
698 #pragma import off
699 #elif PRAGMA_IMPORT
700 #pragma import reset
701 #endif
702 
703 #ifdef __cplusplus
704 }
705 #endif
706 
707 #endif /* __QD3DCAMERA__ */
TQ3Status Q3ViewPlaneCamera_GetCenterX(TQ3CameraObject camera, float *centerXOnViewPlane)
TQ3Status Q3ViewPlaneCamera_SetViewPlane(TQ3CameraObject camera, float viewPlane)
TQ3Status Q3OrthographicCamera_GetBottom(TQ3CameraObject camera, float *bottom)
TQ3Status Q3ViewPlaneCamera_GetData(TQ3CameraObject camera, TQ3ViewPlaneCameraData *cameraData)
TQ3Status Q3Camera_GetViewToFrustum(TQ3CameraObject camera, TQ3Matrix4x4 *viewToFrustum)
TQ3Status Q3ViewAngleAspectCamera_GetData(TQ3CameraObject camera, TQ3ViewAngleAspectCameraData *cameraData)
TQ3Status Q3ViewPlaneCamera_SetCenterX(TQ3CameraObject camera, float centerXOnViewPlane)
TQ3Status Q3OrthographicCamera_GetTop(TQ3CameraObject camera, float *top)
TQ3CameraObject Q3OrthographicCamera_New(const TQ3OrthographicCameraData *orthographicData)
TQ3Status Q3Camera_GetWorldToView(TQ3CameraObject camera, TQ3Matrix4x4 *worldToView)
TQ3Status Q3ViewAngleAspectCamera_SetFOV(TQ3CameraObject camera, float fov)
TQ3Status Q3OrthographicCamera_SetLeft(TQ3CameraObject camera, float left)
TQ3CameraObject Q3ViewPlaneCamera_New(const TQ3ViewPlaneCameraData *cameraData)
TQ3Status Q3ViewPlaneCamera_SetCenterY(TQ3CameraObject camera, float centerYOnViewPlane)
TQ3Status Q3OrthographicCamera_GetRight(TQ3CameraObject camera, float *right)
TQ3Status Q3OrthographicCamera_SetRight(TQ3CameraObject camera, float right)
TQ3Status Q3ViewPlaneCamera_SetHalfHeight(TQ3CameraObject camera, float halfHeightAtViewPlane)
TQ3Status Q3OrthographicCamera_GetLeft(TQ3CameraObject camera, float *left)
TQ3Status Q3Camera_SetData(TQ3CameraObject camera, const TQ3CameraData *cameraData)
TQ3Status Q3OrthographicCamera_SetBottom(TQ3CameraObject camera, float bottom)
TQ3ObjectType Q3Camera_GetType(TQ3CameraObject camera)
TQ3Status Q3ViewPlaneCamera_GetViewPlane(TQ3CameraObject camera, float *viewPlane)
TQ3Status Q3ViewAngleAspectCamera_GetFOV(TQ3CameraObject camera, float *fov)
TQ3Status Q3Camera_SetPlacement(TQ3CameraObject camera, const TQ3CameraPlacement *placement)
TQ3Status Q3ViewAngleAspectCamera_GetAspectRatio(TQ3CameraObject camera, float *aspectRatioXToY)
TQ3Status Q3Camera_GetViewPort(TQ3CameraObject camera, TQ3CameraViewPort *viewPort)
TQ3Status Q3Camera_GetWorldToFrustum(TQ3CameraObject camera, TQ3Matrix4x4 *worldToFrustum)
TQ3Status Q3ViewPlaneCamera_GetCenterY(TQ3CameraObject camera, float *centerYOnViewPlane)
TQ3Status Q3ViewAngleAspectCamera_SetData(TQ3CameraObject camera, const TQ3ViewAngleAspectCameraData *cameraData)
TQ3Status Q3ViewPlaneCamera_GetHalfWidth(TQ3CameraObject camera, float *halfWidthAtViewPlane)
TQ3CameraObject Q3ViewAngleAspectCamera_New(const TQ3ViewAngleAspectCameraData *cameraData)
TQ3Status Q3OrthographicCamera_GetData(TQ3CameraObject camera, TQ3OrthographicCameraData *cameraData)
TQ3Status Q3ViewAngleAspectCamera_SetAspectRatio(TQ3CameraObject camera, float aspectRatioXToY)
TQ3Status Q3OrthographicCamera_SetData(TQ3CameraObject camera, const TQ3OrthographicCameraData *cameraData)
TQ3Status Q3ViewPlaneCamera_GetHalfHeight(TQ3CameraObject camera, float *halfHeightAtViewPlane)
TQ3Status Q3Camera_GetPlacement(TQ3CameraObject camera, TQ3CameraPlacement *placement)
TQ3Status Q3Camera_SetViewPort(TQ3CameraObject camera, const TQ3CameraViewPort *viewPort)
TQ3Status Q3Camera_SetRange(TQ3CameraObject camera, const TQ3CameraRange *range)
TQ3Status Q3ViewPlaneCamera_SetData(TQ3CameraObject camera, const TQ3ViewPlaneCameraData *cameraData)
TQ3Status Q3Camera_GetData(TQ3CameraObject camera, TQ3CameraData *cameraData)
TQ3Status Q3Camera_GetRange(TQ3CameraObject camera, TQ3CameraRange *range)
TQ3Status Q3OrthographicCamera_SetTop(TQ3CameraObject camera, float top)
TQ3Status Q3ViewPlaneCamera_SetHalfWidth(TQ3CameraObject camera, float halfWidthAtViewPlane)
Base types for Quickdraw 3D.
long TQ3ObjectType
Definition: QD3D.h:152
Definition: QD3DCamera.h:107
Definition: QD3DCamera.h:71
Definition: QD3DCamera.h:81
Definition: QD3DCamera.h:100
Definition: QD3D.h:494
Definition: QD3DCamera.h:120
Definition: QD3D.h:352
Definition: QD3D.h:358
Definition: QD3D.h:345
Definition: QD3DCamera.h:156
Definition: QD3DCamera.h:141