home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / QuickTime VR / Windows / Interfaces / QD3DGuide.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-03  |  10.9 KB  |  381 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DGuide.h                                                 **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:     Guide routines                                              **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **     Copyright (C) 1995 Apple Computer, Inc. All rights reserved.         **    
  10.  **                                                                          **
  11.  **                                                                          **
  12.  *****************************************************************************/
  13.  
  14. #if defined(ESCHER_VER_15) && ESCHER_VER_15
  15.  
  16. #ifndef QD3DGuide_h
  17. #define QD3DGuide_h
  18.  
  19. #if PRAGMA_ONCE
  20.     #pragma once
  21. #endif
  22.  
  23. #if defined(THINK_C) || defined(__SC__)
  24.     #pragma options(!pack_enums, !align_arrays)
  25.     #pragma SC options align=power
  26. #elif defined(__MWERKS__)
  27.     #pragma enumsalwaysint on
  28.     #pragma align_array_members off
  29.     #pragma options align=native
  30. #elif defined(__PPCC__)
  31.     #pragma options align=power
  32. #elif defined(__xlc) || defined(__xlC) || defined(__xlC__) || defined(__XLC121__)
  33.     #pragma options enum=int
  34. #endif
  35.  
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif    /* __cplusplus */
  39.  
  40. /******************************************************************************
  41.  **                                                                             **
  42.  **                            Guide Data                                          **
  43.  **                                                                             **
  44.  *****************************************************************************/
  45.  
  46. typedef struct TQ3GuideData {
  47.     TQ3Boolean        enable;
  48.     TQ3Boolean        visible;
  49.     TQ3BoundingBox    bounds;
  50. } TQ3GuideData;
  51.  
  52. /******************************************************************************
  53.  **                                                                             **
  54.  **                            Guide Routines                                      **
  55.  **                                                                             **
  56.  *****************************************************************************/
  57.  
  58. QD3D_EXPORT TQ3ObjectType Q3Guide_GetType(
  59.     TQ3GuideObject    guide);
  60.  
  61. QD3D_EXPORT TQ3Status Q3Guide_Submit(
  62.     TQ3GuideObject    guide, 
  63.     TQ3ViewObject    view);
  64.  
  65. QD3D_EXPORT TQ3Status Q3Guide_GetEnable(
  66.     TQ3GuideObject    guide, 
  67.     TQ3Boolean        *enable);
  68.  
  69. QD3D_EXPORT TQ3Status Q3Guide_SetEnable(
  70.     TQ3GuideObject    guide, 
  71.     TQ3Boolean        enable);
  72.     
  73. QD3D_EXPORT TQ3Status Q3Guide_GetVisible(
  74.     TQ3GuideObject    guide, 
  75.     TQ3Boolean        *visible);
  76.  
  77. QD3D_EXPORT TQ3Status Q3Guide_SetVisible(
  78.     TQ3GuideObject    guide, 
  79.     TQ3Boolean        visible);
  80.  
  81. QD3D_EXPORT TQ3Status Q3Guide_GetBounds(
  82.     TQ3GuideObject    guide, 
  83.     TQ3BoundingBox    *bounds);
  84.  
  85. QD3D_EXPORT TQ3Status Q3Guide_SetBounds(
  86.     TQ3GuideObject            guide, 
  87.     const TQ3BoundingBox    *bounds);
  88.     
  89. /******************************************************************************
  90.  **                                                                             **
  91.  **                            LineGuide Data                                     **
  92.  **                                                                             **
  93.  *****************************************************************************/
  94.  
  95. typedef struct TQ3LineGuideData {
  96.     TQ3GuideData    guideData;
  97.     TQ3Point3D        position0;
  98.     TQ3Point3D        position1;
  99.     TQ3Boolean        lineSegment;
  100. } TQ3LineGuideData;
  101.  
  102. /******************************************************************************
  103.  **                                                                             **
  104.  **                            LineGuide Routines                                  **
  105.  **                                                                             **
  106.  *****************************************************************************/
  107.  
  108. QD3D_EXPORT TQ3GuideObject Q3LineGuide_New(
  109.     const TQ3LineGuideData     *data);
  110.  
  111. QD3D_EXPORT TQ3Status Q3LineGuide_Submit(
  112.     const TQ3LineGuideData     *data,
  113.     TQ3ViewObject            view);
  114.  
  115. QD3D_EXPORT TQ3Status Q3LineGuide_SetData(
  116.     TQ3GuideObject            guide, 
  117.     const TQ3LineGuideData    *data);
  118.  
  119. QD3D_EXPORT TQ3Status Q3LineGuide_GetData(
  120.     TQ3GuideObject            guide,
  121.     TQ3LineGuideData        *data);
  122.  
  123. QD3D_EXPORT TQ3Status Q3LineGuide_GetPosition0(
  124.     TQ3GuideObject            guide, 
  125.     TQ3Point3D                *position0);
  126.  
  127. QD3D_EXPORT TQ3Status Q3LineGuide_SetPosition0(
  128.     TQ3GuideObject            guide, 
  129.     const TQ3Point3D        *position0);
  130.     
  131. QD3D_EXPORT TQ3Status Q3LineGuide_GetPosition1(
  132.     TQ3GuideObject            guide, 
  133.     TQ3Point3D                *position1);
  134.  
  135. QD3D_EXPORT TQ3Status Q3LineGuide_SetPosition1(
  136.     TQ3GuideObject            guide, 
  137.     const TQ3Point3D        *position1);
  138.  
  139. QD3D_EXPORT TQ3Status Q3LineGuide_GetLineSegment(
  140.     TQ3GuideObject            guide, 
  141.     TQ3Boolean                *lineSegment);
  142.  
  143. QD3D_EXPORT TQ3Status Q3LineGuide_SetLineSegment(
  144.     TQ3GuideObject            guide, 
  145.     TQ3Boolean                lineSegment);
  146.  
  147.  
  148. /******************************************************************************
  149.  **                                                                             **
  150.  **                            PointGuide Data                                     **
  151.  **                                                                             **
  152.  *****************************************************************************/
  153.  
  154. typedef struct TQ3PointGuideData {
  155.     TQ3GuideData    guideData;
  156.     TQ3Point3D        position;
  157. } TQ3PointGuideData;
  158.  
  159. /******************************************************************************
  160.  **                                                                             **
  161.  **                            PointGuide Routines                                  **
  162.  **                                                                             **
  163.  *****************************************************************************/
  164.  
  165. QD3D_EXPORT TQ3GuideObject Q3PointGuide_New(
  166.     const TQ3PointGuideData *data);
  167.  
  168. QD3D_EXPORT TQ3Status Q3PointGuide_Submit(
  169.     const TQ3PointGuideData *data,
  170.     TQ3ViewObject            view);
  171.  
  172. QD3D_EXPORT TQ3Status Q3PointGuide_SetData(
  173.     TQ3GuideObject            guide, 
  174.     const TQ3PointGuideData    *data);
  175.  
  176. QD3D_EXPORT TQ3Status Q3PointGuide_GetData(
  177.     TQ3GuideObject            guide,
  178.     TQ3PointGuideData        *data);
  179.  
  180. QD3D_EXPORT TQ3Status Q3PointGuide_GetPosition(
  181.     TQ3GuideObject            guide, 
  182.     TQ3Point3D                *position);
  183.  
  184. QD3D_EXPORT TQ3Status Q3PointGuide_SetPosition(
  185.     TQ3GuideObject            guide, 
  186.     const TQ3Point3D        *position);
  187.     
  188. /******************************************************************************
  189.  **                                                                             **
  190.  **                            CircleGuide Data                                 **
  191.  **                                                                             **
  192.  *****************************************************************************/
  193.  
  194. typedef struct TQ3CircleGuideData {
  195.     TQ3GuideData    guideData;
  196.     TQ3Point3D        origin;
  197.     TQ3Vector3D        majorRadius;
  198.     TQ3Vector3D        minorRadius;
  199. } TQ3CircleGuideData;
  200.  
  201. /******************************************************************************
  202.  **                                                                             **
  203.  **                            CircleGuide Routines                              **
  204.  **                                                                             **
  205.  *****************************************************************************/
  206.  
  207. QD3D_EXPORT TQ3GuideObject Q3CircleGuide_New(
  208.     const TQ3CircleGuideData     *data);
  209.  
  210. QD3D_EXPORT TQ3Status Q3CircleGuide_Submit(
  211.     const TQ3CircleGuideData     *data,
  212.     TQ3ViewObject                view);
  213.  
  214. QD3D_EXPORT TQ3Status Q3CircleGuide_SetData(
  215.     TQ3GuideObject                guide, 
  216.     const TQ3CircleGuideData    *data);
  217.  
  218. QD3D_EXPORT TQ3Status Q3CircleGuide_GetData(
  219.     TQ3GuideObject                guide,
  220.     TQ3CircleGuideData            *data);
  221.  
  222. QD3D_EXPORT TQ3Status Q3CircleGuide_GetOrigin(
  223.     TQ3GuideObject                guide, 
  224.     TQ3Point3D                    *origin);
  225.  
  226. QD3D_EXPORT TQ3Status Q3CircleGuide_SetOrigin(
  227.     TQ3GuideObject                guide, 
  228.     const TQ3Point3D            *origin);
  229.  
  230. QD3D_EXPORT TQ3Status Q3CircleGuide_GetMinorRadius(
  231.     TQ3GuideObject                guide, 
  232.     TQ3Vector3D                    *axis);
  233.  
  234. QD3D_EXPORT TQ3Status Q3CircleGuide_SetMinorRadius(
  235.     TQ3GuideObject                guide, 
  236.     const TQ3Vector3D            *axis);
  237.  
  238. QD3D_EXPORT TQ3Status Q3CircleGuide_GetMajorRadius(
  239.     TQ3GuideObject                guide, 
  240.     TQ3Vector3D                    *axis);
  241.  
  242. QD3D_EXPORT TQ3Status Q3CircleGuide_SetMajorRadius(
  243.     TQ3GuideObject                guide, 
  244.     const TQ3Vector3D            *axis);
  245.  
  246. /******************************************************************************
  247.  **                                                                             **
  248.  **                            PlaneGuide Data                                     **
  249.  **                                                                             **
  250.  *****************************************************************************/
  251.  
  252. typedef struct TQ3PlaneGuideData {
  253.     TQ3GuideData    guideData;
  254.     TQ3Point3D        position;
  255.     TQ3Vector3D        normal;
  256. } TQ3PlaneGuideData;
  257.  
  258. /******************************************************************************
  259.  **                                                                             **
  260.  **                            PlaneGuide Routines                                  **
  261.  **                                                                             **
  262.  *****************************************************************************/
  263.  
  264. QD3D_EXPORT TQ3GuideObject Q3PlaneGuide_New(
  265.     const TQ3PlaneGuideData     *data);
  266.  
  267. QD3D_EXPORT TQ3Status Q3PlaneGuide_Submit(
  268.     const TQ3PlaneGuideData     *data,
  269.     TQ3ViewObject                view);
  270.  
  271. QD3D_EXPORT TQ3Status Q3PlaneGuide_SetData(
  272.     TQ3GuideObject                guide, 
  273.     const TQ3PlaneGuideData        *data);
  274.  
  275. QD3D_EXPORT TQ3Status Q3PlaneGuide_GetData(
  276.     TQ3GuideObject                guide,
  277.     TQ3PlaneGuideData            *data);
  278.  
  279. QD3D_EXPORT TQ3Status Q3PlaneGuide_GetPosition(
  280.     TQ3GuideObject                guide, 
  281.     TQ3Point3D                    *position);
  282.  
  283. QD3D_EXPORT TQ3Status Q3PlaneGuide_SetPosition(
  284.     TQ3GuideObject                guide, 
  285.     const TQ3Point3D            *position);
  286.  
  287. QD3D_EXPORT TQ3Status Q3PlaneGuide_GetNormal(
  288.     TQ3GuideObject                guide, 
  289.     TQ3Vector3D                    *normal);
  290.  
  291. QD3D_EXPORT TQ3Status Q3PlaneGuide_SetNormal(
  292.     TQ3GuideObject                guide, 
  293.     const TQ3Vector3D            *normal);
  294.  
  295. /******************************************************************************
  296.  **                                                                             **
  297.  **                            SphereGuide Data                                 **
  298.  **                                                                             **
  299.  *****************************************************************************/
  300.  
  301. typedef enum TQ3SphereGuideSide {
  302.     kQ3SphereGuideSideFront,
  303.     kQ3SphereGuideSideBack,
  304.     kQ3SphereGuideFromPrime
  305. } TQ3SphereGuideSide;
  306.  
  307. typedef struct TQ3SphereGuideData {
  308.     TQ3GuideData        guideData;
  309.     TQ3Point3D            origin;
  310.     float                radius;
  311.     TQ3SphereGuideSide    side;
  312.     TQ3Point3D            prime;
  313. } TQ3SphereGuideData;
  314.  
  315. /******************************************************************************
  316.  **                                                                             **
  317.  **                            SphereGuide Routines                             **
  318.  **                                                                             **
  319.  *****************************************************************************/
  320.  
  321. QD3D_EXPORT TQ3GuideObject Q3SphereGuide_New(
  322.     const TQ3SphereGuideData     *data);
  323.  
  324. QD3D_EXPORT TQ3Status Q3SphereGuide_Submit(
  325.     const TQ3SphereGuideData     *data,
  326.     TQ3ViewObject                view);
  327.  
  328. QD3D_EXPORT TQ3Status Q3SphereGuide_SetData(
  329.     TQ3GuideObject                guide, 
  330.     const TQ3SphereGuideData    *data);
  331.  
  332. QD3D_EXPORT TQ3Status Q3SphereGuide_GetData(
  333.     TQ3GuideObject                guide,
  334.     TQ3SphereGuideData            *data);
  335.  
  336. QD3D_EXPORT TQ3Status Q3SphereGuide_GetOrigin(
  337.     TQ3GuideObject                guide, 
  338.     TQ3Point3D                    *origin);
  339.  
  340. QD3D_EXPORT TQ3Status Q3SphereGuide_SetOrigin(
  341.     TQ3GuideObject                guide, 
  342.     const TQ3Point3D            *origin);
  343.  
  344. QD3D_EXPORT TQ3Status Q3SphereGuide_GetRadius(
  345.     TQ3GuideObject                guide, 
  346.     float                        *radius);
  347.  
  348. QD3D_EXPORT TQ3Status Q3SphereGuide_SetRadius(
  349.     TQ3GuideObject                guide, 
  350.     float                        radius);
  351.  
  352. QD3D_EXPORT TQ3Status Q3SphereGuide_GetSide(
  353.     TQ3GuideObject                guide, 
  354.     TQ3SphereGuideSide            *side);
  355.  
  356. QD3D_EXPORT TQ3Status Q3SphereGuide_SetSide(
  357.     TQ3GuideObject                guide, 
  358.     TQ3SphereGuideSide            side);
  359.  
  360. QD3D_EXPORT TQ3Status Q3SphereGuide_GetPrime(
  361.     TQ3GuideObject                guide, 
  362.     TQ3Point3D                    *prime);
  363.  
  364. QD3D_EXPORT TQ3Status Q3SphereGuide_SetPrime(
  365.     TQ3GuideObject                guide, 
  366.     const TQ3Point3D            *prime);
  367.  
  368. #ifdef __cplusplus
  369. }
  370. #endif    /* __cplusplus */
  371.  
  372. #if defined(__MWERKS__)
  373.     #pragma enumsalwaysint reset
  374. #elif defined(__xlc) || defined(__xlC) || defined(__xlC__) || defined(__XLC121__)
  375.     #pragma options enum=reset
  376. #endif
  377.  
  378. #endif  /*  QD3DGuide_h  */
  379.  
  380. #endif    /* ESCHER_VER_15 */
  381.