Team Fortress 2 Source Code as on 22/4/2020
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.

815 lines
20 KiB

  1. /*
  2. File: QD3DCamera.h
  3. Contains: Generic camera routines
  4. Version: Technology: Quickdraw 3D 1.6
  5. Release: QuickTime 7.3
  6. Copyright: (c) 2007 (c) 1995-1998 by Apple Computer, Inc., all rights reserved.
  7. Bugs?: For bug reports, consult the following page on
  8. the World Wide Web:
  9. http://developer.apple.com/bugreporter/
  10. */
  11. #ifndef __QD3DCAMERA__
  12. #define __QD3DCAMERA__
  13. #ifndef __QD3D__
  14. #include <QD3D.h>
  15. #endif
  16. #if PRAGMA_ONCE
  17. #pragma once
  18. #endif
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22. #if PRAGMA_IMPORT
  23. #pragma import on
  24. #endif
  25. #if PRAGMA_STRUCT_ALIGN
  26. #pragma options align=power
  27. #elif PRAGMA_STRUCT_PACKPUSH
  28. #pragma pack(push, 2)
  29. #elif PRAGMA_STRUCT_PACK
  30. #pragma pack(2)
  31. #endif
  32. #if PRAGMA_ENUM_ALWAYSINT
  33. #if defined(__fourbyteints__) && !__fourbyteints__
  34. #define __QD3DCAMERA__RESTORE_TWOBYTEINTS
  35. #pragma fourbyteints on
  36. #endif
  37. #pragma enumsalwaysint on
  38. #elif PRAGMA_ENUM_OPTIONS
  39. #pragma option enum=int
  40. #elif PRAGMA_ENUM_PACK
  41. #if __option(pack_enums)
  42. #define __QD3DCAMERA__RESTORE_PACKED_ENUMS
  43. #pragma options(!pack_enums)
  44. #endif
  45. #endif
  46. /******************************************************************************
  47. ** **
  48. ** Data Structure Definitions **
  49. ** **
  50. *****************************************************************************/
  51. /*
  52. * The placement of the camera.
  53. */
  54. struct TQ3CameraPlacement {
  55. TQ3Point3D cameraLocation; /* Location point of the camera */
  56. TQ3Point3D pointOfInterest; /* Point of interest */
  57. TQ3Vector3D upVector; /* "up" vector */
  58. };
  59. typedef struct TQ3CameraPlacement TQ3CameraPlacement;
  60. /*
  61. * The range of the camera.
  62. */
  63. struct TQ3CameraRange {
  64. float hither; /* Hither plane, measured from "from" towards "to" */
  65. float yon; /* Yon plane, measured from "from" towards "to" */
  66. };
  67. typedef struct TQ3CameraRange TQ3CameraRange;
  68. /*
  69. * Viewport specification. Origin is (-1, 1), and corresponds to the
  70. * upper left-hand corner; width and height maximum is (2.0, 2.0),
  71. * corresponding to the lower left-hand corner of the window. The
  72. * TQ3Viewport specifies a part of the viewPlane that gets displayed
  73. * on the window that is to be drawn.
  74. * Normally, it is set with an origin of (-1.0, 1.0), and a width and
  75. * height of both 2.0, specifying that the entire window is to be
  76. * drawn. If, for example, an exposure event of the window exposed
  77. * the right half of the window, you would set the origin to (0, 1),
  78. * and the width and height to (1.0) and (2.0), respectively.
  79. *
  80. */
  81. struct TQ3CameraViewPort {
  82. TQ3Point2D origin;
  83. float width;
  84. float height;
  85. };
  86. typedef struct TQ3CameraViewPort TQ3CameraViewPort;
  87. struct TQ3CameraData {
  88. TQ3CameraPlacement placement;
  89. TQ3CameraRange range;
  90. TQ3CameraViewPort viewPort;
  91. };
  92. typedef struct TQ3CameraData TQ3CameraData;
  93. /*
  94. * An orthographic camera.
  95. *
  96. * The lens characteristics are set with the dimensions of a
  97. * rectangular viewPort in the frame of the camera.
  98. */
  99. struct TQ3OrthographicCameraData {
  100. TQ3CameraData cameraData;
  101. float left;
  102. float top;
  103. float right;
  104. float bottom;
  105. };
  106. typedef struct TQ3OrthographicCameraData TQ3OrthographicCameraData;
  107. /*
  108. * A perspective camera specified in terms of an arbitrary view plane.
  109. *
  110. * This is most useful when setting the camera to look at a particular
  111. * object. The viewPlane is set to distance from the camera to the object.
  112. * The halfWidth is set to half the width of the cross section of the object,
  113. * and the halfHeight equal to the halfWidth divided by the aspect ratio
  114. * of the viewPort.
  115. *
  116. * This is the only perspective camera with specifications for off-axis
  117. * viewing, which is desirable for scrolling.
  118. */
  119. struct TQ3ViewPlaneCameraData {
  120. TQ3CameraData cameraData;
  121. float viewPlane;
  122. float halfWidthAtViewPlane;
  123. float halfHeightAtViewPlane;
  124. float centerXOnViewPlane;
  125. float centerYOnViewPlane;
  126. };
  127. typedef struct TQ3ViewPlaneCameraData TQ3ViewPlaneCameraData;
  128. /*
  129. * A view angle aspect camera is a perspective camera specified in
  130. * terms of the minimum view angle and the aspect ratio of X to Y.
  131. *
  132. */
  133. struct TQ3ViewAngleAspectCameraData {
  134. TQ3CameraData cameraData;
  135. float fov;
  136. float aspectRatioXToY;
  137. };
  138. typedef struct TQ3ViewAngleAspectCameraData TQ3ViewAngleAspectCameraData;
  139. /******************************************************************************
  140. ** **
  141. ** Generic Camera routines **
  142. ** **
  143. *****************************************************************************/
  144. #if CALL_NOT_IN_CARBON
  145. /*
  146. * Q3Camera_GetType()
  147. *
  148. * Availability:
  149. * Non-Carbon CFM: not available
  150. * CarbonLib: not available
  151. * Mac OS X: not available
  152. */
  153. EXTERN_API_C( TQ3ObjectType )
  154. Q3Camera_GetType(TQ3CameraObject camera);
  155. /*
  156. * Q3Camera_SetData()
  157. *
  158. * Availability:
  159. * Non-Carbon CFM: not available
  160. * CarbonLib: not available
  161. * Mac OS X: not available
  162. */
  163. EXTERN_API_C( TQ3Status )
  164. Q3Camera_SetData(
  165. TQ3CameraObject camera,
  166. const TQ3CameraData * cameraData);
  167. /*
  168. * Q3Camera_GetData()
  169. *
  170. * Availability:
  171. * Non-Carbon CFM: not available
  172. * CarbonLib: not available
  173. * Mac OS X: not available
  174. */
  175. EXTERN_API_C( TQ3Status )
  176. Q3Camera_GetData(
  177. TQ3CameraObject camera,
  178. TQ3CameraData * cameraData);
  179. /*
  180. * Q3Camera_SetPlacement()
  181. *
  182. * Availability:
  183. * Non-Carbon CFM: not available
  184. * CarbonLib: not available
  185. * Mac OS X: not available
  186. */
  187. EXTERN_API_C( TQ3Status )
  188. Q3Camera_SetPlacement(
  189. TQ3CameraObject camera,
  190. const TQ3CameraPlacement * placement);
  191. /*
  192. * Q3Camera_GetPlacement()
  193. *
  194. * Availability:
  195. * Non-Carbon CFM: not available
  196. * CarbonLib: not available
  197. * Mac OS X: not available
  198. */
  199. EXTERN_API_C( TQ3Status )
  200. Q3Camera_GetPlacement(
  201. TQ3CameraObject camera,
  202. TQ3CameraPlacement * placement);
  203. /*
  204. * Q3Camera_SetRange()
  205. *
  206. * Availability:
  207. * Non-Carbon CFM: not available
  208. * CarbonLib: not available
  209. * Mac OS X: not available
  210. */
  211. EXTERN_API_C( TQ3Status )
  212. Q3Camera_SetRange(
  213. TQ3CameraObject camera,
  214. const TQ3CameraRange * range);
  215. /*
  216. * Q3Camera_GetRange()
  217. *
  218. * Availability:
  219. * Non-Carbon CFM: not available
  220. * CarbonLib: not available
  221. * Mac OS X: not available
  222. */
  223. EXTERN_API_C( TQ3Status )
  224. Q3Camera_GetRange(
  225. TQ3CameraObject camera,
  226. TQ3CameraRange * range);
  227. /*
  228. * Q3Camera_SetViewPort()
  229. *
  230. * Availability:
  231. * Non-Carbon CFM: not available
  232. * CarbonLib: not available
  233. * Mac OS X: not available
  234. */
  235. EXTERN_API_C( TQ3Status )
  236. Q3Camera_SetViewPort(
  237. TQ3CameraObject camera,
  238. const TQ3CameraViewPort * viewPort);
  239. /*
  240. * Q3Camera_GetViewPort()
  241. *
  242. * Availability:
  243. * Non-Carbon CFM: not available
  244. * CarbonLib: not available
  245. * Mac OS X: not available
  246. */
  247. EXTERN_API_C( TQ3Status )
  248. Q3Camera_GetViewPort(
  249. TQ3CameraObject camera,
  250. TQ3CameraViewPort * viewPort);
  251. /*
  252. * Q3Camera_GetWorldToView()
  253. *
  254. * Availability:
  255. * Non-Carbon CFM: not available
  256. * CarbonLib: not available
  257. * Mac OS X: not available
  258. */
  259. EXTERN_API_C( TQ3Status )
  260. Q3Camera_GetWorldToView(
  261. TQ3CameraObject camera,
  262. TQ3Matrix4x4 * worldToView);
  263. /*
  264. * Q3Camera_GetWorldToFrustum()
  265. *
  266. * Availability:
  267. * Non-Carbon CFM: not available
  268. * CarbonLib: not available
  269. * Mac OS X: not available
  270. */
  271. EXTERN_API_C( TQ3Status )
  272. Q3Camera_GetWorldToFrustum(
  273. TQ3CameraObject camera,
  274. TQ3Matrix4x4 * worldToFrustum);
  275. /*
  276. * Q3Camera_GetViewToFrustum()
  277. *
  278. * Availability:
  279. * Non-Carbon CFM: not available
  280. * CarbonLib: not available
  281. * Mac OS X: not available
  282. */
  283. EXTERN_API_C( TQ3Status )
  284. Q3Camera_GetViewToFrustum(
  285. TQ3CameraObject camera,
  286. TQ3Matrix4x4 * viewToFrustum);
  287. /******************************************************************************
  288. ** **
  289. ** Specific Camera Routines **
  290. ** **
  291. *****************************************************************************/
  292. /******************************************************************************
  293. ** **
  294. ** Orthographic Camera **
  295. ** **
  296. *****************************************************************************/
  297. /*
  298. * Q3OrthographicCamera_New()
  299. *
  300. * Availability:
  301. * Non-Carbon CFM: not available
  302. * CarbonLib: not available
  303. * Mac OS X: not available
  304. */
  305. EXTERN_API_C( TQ3CameraObject )
  306. Q3OrthographicCamera_New(const TQ3OrthographicCameraData * orthographicData);
  307. /*
  308. * Q3OrthographicCamera_GetData()
  309. *
  310. * Availability:
  311. * Non-Carbon CFM: not available
  312. * CarbonLib: not available
  313. * Mac OS X: not available
  314. */
  315. EXTERN_API_C( TQ3Status )
  316. Q3OrthographicCamera_GetData(
  317. TQ3CameraObject camera,
  318. TQ3OrthographicCameraData * cameraData);
  319. /*
  320. * Q3OrthographicCamera_SetData()
  321. *
  322. * Availability:
  323. * Non-Carbon CFM: not available
  324. * CarbonLib: not available
  325. * Mac OS X: not available
  326. */
  327. EXTERN_API_C( TQ3Status )
  328. Q3OrthographicCamera_SetData(
  329. TQ3CameraObject camera,
  330. const TQ3OrthographicCameraData * cameraData);
  331. /*
  332. * Q3OrthographicCamera_SetLeft()
  333. *
  334. * Availability:
  335. * Non-Carbon CFM: not available
  336. * CarbonLib: not available
  337. * Mac OS X: not available
  338. */
  339. EXTERN_API_C( TQ3Status )
  340. Q3OrthographicCamera_SetLeft(
  341. TQ3CameraObject camera,
  342. float left);
  343. /*
  344. * Q3OrthographicCamera_GetLeft()
  345. *
  346. * Availability:
  347. * Non-Carbon CFM: not available
  348. * CarbonLib: not available
  349. * Mac OS X: not available
  350. */
  351. EXTERN_API_C( TQ3Status )
  352. Q3OrthographicCamera_GetLeft(
  353. TQ3CameraObject camera,
  354. float * left);
  355. /*
  356. * Q3OrthographicCamera_SetTop()
  357. *
  358. * Availability:
  359. * Non-Carbon CFM: not available
  360. * CarbonLib: not available
  361. * Mac OS X: not available
  362. */
  363. EXTERN_API_C( TQ3Status )
  364. Q3OrthographicCamera_SetTop(
  365. TQ3CameraObject camera,
  366. float top);
  367. /*
  368. * Q3OrthographicCamera_GetTop()
  369. *
  370. * Availability:
  371. * Non-Carbon CFM: not available
  372. * CarbonLib: not available
  373. * Mac OS X: not available
  374. */
  375. EXTERN_API_C( TQ3Status )
  376. Q3OrthographicCamera_GetTop(
  377. TQ3CameraObject camera,
  378. float * top);
  379. /*
  380. * Q3OrthographicCamera_SetRight()
  381. *
  382. * Availability:
  383. * Non-Carbon CFM: not available
  384. * CarbonLib: not available
  385. * Mac OS X: not available
  386. */
  387. EXTERN_API_C( TQ3Status )
  388. Q3OrthographicCamera_SetRight(
  389. TQ3CameraObject camera,
  390. float right);
  391. /*
  392. * Q3OrthographicCamera_GetRight()
  393. *
  394. * Availability:
  395. * Non-Carbon CFM: not available
  396. * CarbonLib: not available
  397. * Mac OS X: not available
  398. */
  399. EXTERN_API_C( TQ3Status )
  400. Q3OrthographicCamera_GetRight(
  401. TQ3CameraObject camera,
  402. float * right);
  403. /*
  404. * Q3OrthographicCamera_SetBottom()
  405. *
  406. * Availability:
  407. * Non-Carbon CFM: not available
  408. * CarbonLib: not available
  409. * Mac OS X: not available
  410. */
  411. EXTERN_API_C( TQ3Status )
  412. Q3OrthographicCamera_SetBottom(
  413. TQ3CameraObject camera,
  414. float bottom);
  415. /*
  416. * Q3OrthographicCamera_GetBottom()
  417. *
  418. * Availability:
  419. * Non-Carbon CFM: not available
  420. * CarbonLib: not available
  421. * Mac OS X: not available
  422. */
  423. EXTERN_API_C( TQ3Status )
  424. Q3OrthographicCamera_GetBottom(
  425. TQ3CameraObject camera,
  426. float * bottom);
  427. /******************************************************************************
  428. ** **
  429. ** ViewPlane Camera **
  430. ** **
  431. *****************************************************************************/
  432. /*
  433. * Q3ViewPlaneCamera_New()
  434. *
  435. * Availability:
  436. * Non-Carbon CFM: not available
  437. * CarbonLib: not available
  438. * Mac OS X: not available
  439. */
  440. EXTERN_API_C( TQ3CameraObject )
  441. Q3ViewPlaneCamera_New(const TQ3ViewPlaneCameraData * cameraData);
  442. /*
  443. * Q3ViewPlaneCamera_GetData()
  444. *
  445. * Availability:
  446. * Non-Carbon CFM: not available
  447. * CarbonLib: not available
  448. * Mac OS X: not available
  449. */
  450. EXTERN_API_C( TQ3Status )
  451. Q3ViewPlaneCamera_GetData(
  452. TQ3CameraObject camera,
  453. TQ3ViewPlaneCameraData * cameraData);
  454. /*
  455. * Q3ViewPlaneCamera_SetData()
  456. *
  457. * Availability:
  458. * Non-Carbon CFM: not available
  459. * CarbonLib: not available
  460. * Mac OS X: not available
  461. */
  462. EXTERN_API_C( TQ3Status )
  463. Q3ViewPlaneCamera_SetData(
  464. TQ3CameraObject camera,
  465. const TQ3ViewPlaneCameraData * cameraData);
  466. /*
  467. * Q3ViewPlaneCamera_SetViewPlane()
  468. *
  469. * Availability:
  470. * Non-Carbon CFM: not available
  471. * CarbonLib: not available
  472. * Mac OS X: not available
  473. */
  474. EXTERN_API_C( TQ3Status )
  475. Q3ViewPlaneCamera_SetViewPlane(
  476. TQ3CameraObject camera,
  477. float viewPlane);
  478. /*
  479. * Q3ViewPlaneCamera_GetViewPlane()
  480. *
  481. * Availability:
  482. * Non-Carbon CFM: not available
  483. * CarbonLib: not available
  484. * Mac OS X: not available
  485. */
  486. EXTERN_API_C( TQ3Status )
  487. Q3ViewPlaneCamera_GetViewPlane(
  488. TQ3CameraObject camera,
  489. float * viewPlane);
  490. /*
  491. * Q3ViewPlaneCamera_SetHalfWidth()
  492. *
  493. * Availability:
  494. * Non-Carbon CFM: not available
  495. * CarbonLib: not available
  496. * Mac OS X: not available
  497. */
  498. EXTERN_API_C( TQ3Status )
  499. Q3ViewPlaneCamera_SetHalfWidth(
  500. TQ3CameraObject camera,
  501. float halfWidthAtViewPlane);
  502. /*
  503. * Q3ViewPlaneCamera_GetHalfWidth()
  504. *
  505. * Availability:
  506. * Non-Carbon CFM: not available
  507. * CarbonLib: not available
  508. * Mac OS X: not available
  509. */
  510. EXTERN_API_C( TQ3Status )
  511. Q3ViewPlaneCamera_GetHalfWidth(
  512. TQ3CameraObject camera,
  513. float * halfWidthAtViewPlane);
  514. /*
  515. * Q3ViewPlaneCamera_SetHalfHeight()
  516. *
  517. * Availability:
  518. * Non-Carbon CFM: not available
  519. * CarbonLib: not available
  520. * Mac OS X: not available
  521. */
  522. EXTERN_API_C( TQ3Status )
  523. Q3ViewPlaneCamera_SetHalfHeight(
  524. TQ3CameraObject camera,
  525. float halfHeightAtViewPlane);
  526. /*
  527. * Q3ViewPlaneCamera_GetHalfHeight()
  528. *
  529. * Availability:
  530. * Non-Carbon CFM: not available
  531. * CarbonLib: not available
  532. * Mac OS X: not available
  533. */
  534. EXTERN_API_C( TQ3Status )
  535. Q3ViewPlaneCamera_GetHalfHeight(
  536. TQ3CameraObject camera,
  537. float * halfHeightAtViewPlane);
  538. /*
  539. * Q3ViewPlaneCamera_SetCenterX()
  540. *
  541. * Availability:
  542. * Non-Carbon CFM: not available
  543. * CarbonLib: not available
  544. * Mac OS X: not available
  545. */
  546. EXTERN_API_C( TQ3Status )
  547. Q3ViewPlaneCamera_SetCenterX(
  548. TQ3CameraObject camera,
  549. float centerXOnViewPlane);
  550. /*
  551. * Q3ViewPlaneCamera_GetCenterX()
  552. *
  553. * Availability:
  554. * Non-Carbon CFM: not available
  555. * CarbonLib: not available
  556. * Mac OS X: not available
  557. */
  558. EXTERN_API_C( TQ3Status )
  559. Q3ViewPlaneCamera_GetCenterX(
  560. TQ3CameraObject camera,
  561. float * centerXOnViewPlane);
  562. /*
  563. * Q3ViewPlaneCamera_SetCenterY()
  564. *
  565. * Availability:
  566. * Non-Carbon CFM: not available
  567. * CarbonLib: not available
  568. * Mac OS X: not available
  569. */
  570. EXTERN_API_C( TQ3Status )
  571. Q3ViewPlaneCamera_SetCenterY(
  572. TQ3CameraObject camera,
  573. float centerYOnViewPlane);
  574. /*
  575. * Q3ViewPlaneCamera_GetCenterY()
  576. *
  577. * Availability:
  578. * Non-Carbon CFM: not available
  579. * CarbonLib: not available
  580. * Mac OS X: not available
  581. */
  582. EXTERN_API_C( TQ3Status )
  583. Q3ViewPlaneCamera_GetCenterY(
  584. TQ3CameraObject camera,
  585. float * centerYOnViewPlane);
  586. /******************************************************************************
  587. ** **
  588. ** View Angle Aspect Camera **
  589. ** **
  590. *****************************************************************************/
  591. /*
  592. * Q3ViewAngleAspectCamera_New()
  593. *
  594. * Availability:
  595. * Non-Carbon CFM: not available
  596. * CarbonLib: not available
  597. * Mac OS X: not available
  598. */
  599. EXTERN_API_C( TQ3CameraObject )
  600. Q3ViewAngleAspectCamera_New(const TQ3ViewAngleAspectCameraData * cameraData);
  601. /*
  602. * Q3ViewAngleAspectCamera_SetData()
  603. *
  604. * Availability:
  605. * Non-Carbon CFM: not available
  606. * CarbonLib: not available
  607. * Mac OS X: not available
  608. */
  609. EXTERN_API_C( TQ3Status )
  610. Q3ViewAngleAspectCamera_SetData(
  611. TQ3CameraObject camera,
  612. const TQ3ViewAngleAspectCameraData * cameraData);
  613. /*
  614. * Q3ViewAngleAspectCamera_GetData()
  615. *
  616. * Availability:
  617. * Non-Carbon CFM: not available
  618. * CarbonLib: not available
  619. * Mac OS X: not available
  620. */
  621. EXTERN_API_C( TQ3Status )
  622. Q3ViewAngleAspectCamera_GetData(
  623. TQ3CameraObject camera,
  624. TQ3ViewAngleAspectCameraData * cameraData);
  625. /*
  626. * Q3ViewAngleAspectCamera_SetFOV()
  627. *
  628. * Availability:
  629. * Non-Carbon CFM: not available
  630. * CarbonLib: not available
  631. * Mac OS X: not available
  632. */
  633. EXTERN_API_C( TQ3Status )
  634. Q3ViewAngleAspectCamera_SetFOV(
  635. TQ3CameraObject camera,
  636. float fov);
  637. /*
  638. * Q3ViewAngleAspectCamera_GetFOV()
  639. *
  640. * Availability:
  641. * Non-Carbon CFM: not available
  642. * CarbonLib: not available
  643. * Mac OS X: not available
  644. */
  645. EXTERN_API_C( TQ3Status )
  646. Q3ViewAngleAspectCamera_GetFOV(
  647. TQ3CameraObject camera,
  648. float * fov);
  649. /*
  650. * Q3ViewAngleAspectCamera_SetAspectRatio()
  651. *
  652. * Availability:
  653. * Non-Carbon CFM: not available
  654. * CarbonLib: not available
  655. * Mac OS X: not available
  656. */
  657. EXTERN_API_C( TQ3Status )
  658. Q3ViewAngleAspectCamera_SetAspectRatio(
  659. TQ3CameraObject camera,
  660. float aspectRatioXToY);
  661. /*
  662. * Q3ViewAngleAspectCamera_GetAspectRatio()
  663. *
  664. * Availability:
  665. * Non-Carbon CFM: not available
  666. * CarbonLib: not available
  667. * Mac OS X: not available
  668. */
  669. EXTERN_API_C( TQ3Status )
  670. Q3ViewAngleAspectCamera_GetAspectRatio(
  671. TQ3CameraObject camera,
  672. float * aspectRatioXToY);
  673. #endif /* CALL_NOT_IN_CARBON */
  674. #if PRAGMA_ENUM_ALWAYSINT
  675. #pragma enumsalwaysint reset
  676. #ifdef __QD3DCAMERA__RESTORE_TWOBYTEINTS
  677. #pragma fourbyteints off
  678. #endif
  679. #elif PRAGMA_ENUM_OPTIONS
  680. #pragma option enum=reset
  681. #elif defined(__QD3DCAMERA__RESTORE_PACKED_ENUMS)
  682. #pragma options(pack_enums)
  683. #endif
  684. #if PRAGMA_STRUCT_ALIGN
  685. #pragma options align=reset
  686. #elif PRAGMA_STRUCT_PACKPUSH
  687. #pragma pack(pop)
  688. #elif PRAGMA_STRUCT_PACK
  689. #pragma pack()
  690. #endif
  691. #ifdef PRAGMA_IMPORT_OFF
  692. #pragma import off
  693. #elif PRAGMA_IMPORT
  694. #pragma import reset
  695. #endif
  696. #ifdef __cplusplus
  697. }
  698. #endif
  699. #endif /* __QD3DCAMERA__ */