home *** CD-ROM | disk | FTP | other *** search
/ CLIX - Fazer Clix Custa Nix / CLIX-CD.cdr / mac / lib / Mac / QuickTimeVR.xs < prev    next >
Text File  |  1998-04-05  |  22KB  |  1,170 lines

  1. /* $Header: /home/neeri/MacCVS/MacPerl/perl/ext/Mac/ExtUtils/MakeToolboxModule,v 1.2 1997/11/18 00:52:19 neeri Exp 
  2.  *    Copyright (c) 1997 Matthias Neeracher
  3.  *
  4.  *    You may distribute under the terms of the Perl Artistic License,
  5.  *    as specified in the README file.
  6.  *
  7.  * $Log: MakeToolboxModule,v  Revision 1.2  1997/11/18 00:52:19  neeri
  8.  * MacPerl 5.1.5
  9.  * 
  10.  * Revision 1.1  1997/04/07 20:49:35  neeri
  11.  * Synchronized with MacPerl 5.1.4a1
  12.  * 
  13.  */
  14.  
  15. #define MAC_CONTEXT
  16.  
  17. #include "EXTERN.h"
  18. #include "perl.h"
  19. #include "XSUB.h"
  20. #include <Types.h>
  21. #include <QuickTimeVR.h>
  22.  
  23. #define QTVRInterceptRecord QTVRInterceptPtr
  24.  
  25. static pascal void PerlIntercept(
  26.     QTVRInstance qtvr, QTVRInterceptRecord msg, SV * proc, Boolean * cancel)
  27. {
  28.     dSP;
  29.     
  30.     ENTER;
  31.     SAVETMPS;
  32.     
  33.     PUSHMARK(sp);
  34.     XS_XPUSH(QTVRInstance, qtvr);
  35.     XS_XPUSH(QTVRInterceptRecord, msg);
  36.     PUTBACK;
  37.     
  38.     perl_call_sv(proc, G_SCALAR);
  39.     
  40.     SPAGAIN;
  41.     
  42.     XS_POP(Boolean, *cancel);
  43.     
  44.     PUTBACK;
  45.     FREETMPS;
  46.     LEAVE;
  47. }
  48.  
  49. #if GENERATINGCFM
  50. RoutineDescriptor sPerlIntercept = 
  51.     BUILD_ROUTINE_DESCRIPTOR(uppQTVRInterceptProcInfo, PerlIntercept);
  52. #else
  53. #define sPerlIntercept *NewQTVRInterceptProc(PerlIntercept)
  54. #endif
  55.  
  56. MODULE = Mac::QuickTimeVR   PACKAGE = QTVRFloatPoint
  57.  
  58. =head2 Types
  59.  
  60. =over 4
  61.  
  62. =cut
  63.  
  64. STRUCT QTVRFloatPoint
  65.     float   x;
  66.     float   y;
  67.  
  68. MODULE = Mac::QuickTimeVR   PACKAGE = QTVRCursorRecord
  69.  
  70. STRUCT QTVRCursorRecord
  71.     U16     theType;
  72.     short   rsrcID;
  73.     Handle  handle;
  74.  
  75. MODULE = Mac::QuickTimeVR   PACKAGE = QTVRInterceptRecord
  76.  
  77. STRUCT * QTVRInterceptRecord
  78.     long            selector
  79.     long            paramCount
  80.     float           angle
  81.         ALIAS       *(float *)STRUCT->parameter[0]
  82.     QTVRFloatPoint  viewCenter
  83.         ALIAS       *(QTVRFloatPoint *)STRUCT->parameter[0]
  84.     Point           where
  85.         ALIAS       *(Point *)STRUCT->parameter
  86.     U32             hotSpotID
  87.         ALIAS       *(U32 *)STRUCT->parameter[1]
  88.     U32             when
  89.         ALIAS       *(U32 *)(STRUCT->parameter+1)
  90.     U16             modifiers
  91.         ALIAS       *(U32 *)(STRUCT->parameter+2)
  92.     U32             mDownHotSpotID
  93.         ALIAS       *(U32 *)STRUCT->parameter[3]
  94.     U32             triggerHotSpotID
  95.         ALIAS       *(U32 *)STRUCT->parameter[0]
  96.     QTAtomContainer nodeInfo
  97.         ALIAS       *(QTAtomContainer *)(STRUCT->parameter+1)
  98.     QTAtom          selectedAtom
  99.         ALIAS       *(QTAtom *)(STRUCT->parameter+2)
  100.  
  101. MODULE = Mac::QuickTimeVR   PACKAGE = Mac::QuickTimeVR
  102.  
  103. =back
  104.  
  105. =head2 Functions
  106.  
  107. =over 4
  108.  
  109. =cut
  110.  
  111.  
  112. =item QTVRGetQTVRTrack THEMOVIE, INDEX 
  113.  
  114. =cut
  115. Track
  116. QTVRGetQTVRTrack(theMovie, index)
  117.     Movie   theMovie
  118.     long    index
  119.  
  120.  
  121. =item QTVRGetQTVRInstance QTVRTRACK, MC 
  122.  
  123. =cut
  124. QTVRInstance
  125. QTVRGetQTVRInstance(qtvrTrack, mc)
  126.     Track           qtvrTrack
  127.     ComponentInstance   mc
  128.     CODE:
  129.     if (gLastMacOSErr = QTVRGetQTVRInstance(&RETVAL, qtvrTrack, mc)) {
  130.         XSRETURN_UNDEF;
  131.     }
  132.     OUTPUT:
  133.     RETVAL
  134.  
  135.  
  136. =item QTVRSetPanAngle QTVR, PANANGLE 
  137.  
  138. =cut
  139. MacOSRet
  140. QTVRSetPanAngle(qtvr, panAngle)
  141.     QTVRInstance    qtvr
  142.     float           panAngle
  143.  
  144.  
  145. =item QTVRGetPanAngle QTVR 
  146.  
  147. =cut
  148. float
  149. QTVRGetPanAngle(qtvr)
  150.     QTVRInstance    qtvr
  151.  
  152.  
  153. =item QTVRSetTiltAngle QTVR, TILTANGLE 
  154.  
  155. =cut
  156. MacOSRet
  157. QTVRSetTiltAngle(qtvr, tiltAngle)
  158.     QTVRInstance    qtvr
  159.     float           tiltAngle
  160.  
  161.  
  162. =item QTVRGetTiltAngle QTVR 
  163.  
  164. =cut
  165. float
  166. QTVRGetTiltAngle(qtvr)
  167.     QTVRInstance    qtvr
  168.  
  169.  
  170. =item QTVRSetFieldOfView QTVR, FIELDOFVIEW 
  171.  
  172. =cut
  173. MacOSRet
  174. QTVRSetFieldOfView(qtvr, fieldOfView)
  175.     QTVRInstance    qtvr
  176.     float           fieldOfView
  177.  
  178.  
  179. =item QTVRGetFieldOfView QTVR 
  180.  
  181. =cut
  182. float
  183. QTVRGetFieldOfView(qtvr)
  184.     QTVRInstance    qtvr
  185.  
  186.  
  187. =item QTVRShowDefaultView QTVR 
  188.  
  189. =cut
  190. MacOSRet
  191. QTVRShowDefaultView(qtvr)
  192.     QTVRInstance    qtvr
  193.  
  194.  
  195. =item QTVRSetViewCenter QTVR, VIEWCENTER 
  196.  
  197. =cut
  198. MacOSRet
  199. QTVRSetViewCenter(qtvr, viewCenter)
  200.     QTVRInstance    qtvr
  201.     QTVRFloatPoint     &viewCenter
  202.  
  203.  
  204. =item QTVRGetViewCenter QTVR 
  205.  
  206. =cut
  207. QTVRFloatPoint
  208. QTVRGetViewCenter(qtvr)
  209.     QTVRInstance    qtvr
  210.     CODE:
  211.     if (gLastMacOSErr = QTVRGetViewCenter(qtvr, &RETVAL)) {
  212.         XSRETURN_UNDEF;
  213.     }
  214.     OUTPUT:
  215.     RETVAL
  216.  
  217.  
  218. =item QTVRNudge QTVR, DIRECTION 
  219.  
  220. =cut
  221. MacOSRet
  222. QTVRNudge(qtvr, direction)
  223.     QTVRInstance        qtvr
  224.     QTVRNudgeControl    direction
  225.  
  226.  
  227. =item QTVRGetVRWorld QTVR 
  228.  
  229. =cut
  230. QTAtomContainer
  231. QTVRGetVRWorld(qtvr)
  232.     QTVRInstance    qtvr
  233.     CODE:
  234.     if (gLastMacOSErr = QTVRGetVRWorld(qtvr, &RETVAL)) {
  235.         XSRETURN_UNDEF;
  236.     }
  237.     OUTPUT:
  238.     RETVAL
  239.  
  240.  
  241. =item QTVRGoToNodeID QTVR, NODEID 
  242.  
  243. =cut
  244. MacOSRet
  245. QTVRGoToNodeID(qtvr, nodeID)
  246.     QTVRInstance    qtvr
  247.     U32             nodeID
  248.  
  249.  
  250. =item QTVRGetCurrentNodeID QTVR 
  251.  
  252. =cut
  253. U32
  254. QTVRGetCurrentNodeID(qtvr)
  255.     QTVRInstance    qtvr
  256.  
  257.  
  258. =item QTVRGetNodeType QTVR, NODEID 
  259.  
  260. =cut
  261. OSType
  262. QTVRGetNodeType(qtvr, nodeID)
  263.     QTVRInstance    qtvr
  264.     U32             nodeID
  265.  
  266.  
  267. =item QTVRPtToHotSpotID QTVR, PT 
  268.  
  269. =cut
  270. U32
  271. QTVRPtToHotSpotID(qtvr, pt)
  272.     QTVRInstance    qtvr
  273.     Point           pt
  274.     CODE:
  275.     if (gLastMacOSErr = QTVRPtToHotSpotID(qtvr, pt, &RETVAL)) {
  276.         XSRETURN_UNDEF;
  277.     }
  278.     OUTPUT:
  279.     RETVAL
  280.  
  281.  
  282. =item QTVRGetNodeInfo QTVR, NODEID 
  283.  
  284. =cut
  285. QTAtomContainer
  286. QTVRGetNodeInfo(qtvr, nodeID)
  287.     QTVRInstance    qtvr
  288.     U32             nodeID
  289.     CODE:
  290.     if (gLastMacOSErr = QTVRGetNodeInfo(qtvr, nodeID, &RETVAL)) {
  291.         XSRETURN_UNDEF;
  292.     }
  293.     OUTPUT:
  294.     RETVAL
  295.  
  296.  
  297. =item QTVRTriggerHotSpot QTVR, HOTSPOTID, NODEINFO, SELECTEDATOM 
  298.  
  299. =cut
  300. MacOSRet
  301. QTVRTriggerHotSpot(qtvr, hotSpotID, nodeInfo, selectedAtom)
  302.     QTVRInstance    qtvr
  303.     U32         hotSpotID
  304.     QTAtomContainer nodeInfo
  305.     QTAtom          selectedAtom
  306.  
  307. =begin ignore
  308.  
  309. MacOSRet
  310. QTVRSetMouseOverHotSpotProc(qtvr, mouseOverHotSpotProc, refCon, flags)
  311.     QTVRInstance    qtvr
  312.     MouseOverHotSpotUPP mouseOverHotSpotProc
  313.     long    refCon
  314.     U32 flags
  315.  
  316. =end ignore
  317.  
  318. =cut
  319.  
  320.  
  321. =item QTVREnableHotSpot QTVR, ENABLEFLAG, HOTSPOTVALUE, ENABLE 
  322.  
  323. =cut
  324. MacOSRet
  325. QTVREnableHotSpot(qtvr, enableFlag, hotSpotValue, enable)
  326.     QTVRInstance    qtvr
  327.     U32             enableFlag
  328.     U32             hotSpotValue
  329.     Boolean         enable
  330.  
  331.  
  332. =item QTVRGetVisibleHotSpots QTVR, HOTSPOTS 
  333.  
  334. =cut
  335. U32
  336. QTVRGetVisibleHotSpots(qtvr, hotSpots)
  337.     QTVRInstance    qtvr
  338.     Handle          hotSpots
  339.  
  340.  
  341. =item QTVRGetHotSpotRegion QTVR, HOTSPOTID, HOTSPOTREGION 
  342.  
  343. =cut
  344. MacOSRet
  345. QTVRGetHotSpotRegion(qtvr, hotSpotID, hotSpotRegion)
  346.     QTVRInstance    qtvr
  347.     U32             hotSpotID
  348.     RgnHandle       hotSpotRegion
  349.  
  350.  
  351. =item QTVRSetMouseOverTracking QTVR, ENABLE 
  352.  
  353. =cut
  354. MacOSRet
  355. QTVRSetMouseOverTracking(qtvr, enable)
  356.     QTVRInstance    qtvr
  357.     Boolean         enable
  358.  
  359.  
  360. =item QTVRGetMouseOverTracking QTVR 
  361.  
  362. =cut
  363. Boolean
  364. QTVRGetMouseOverTracking(qtvr)
  365.     QTVRInstance    qtvr
  366.  
  367.  
  368. =item QTVRSetMouseDownTracking QTVR, ENABLE 
  369.  
  370. =cut
  371. MacOSRet
  372. QTVRSetMouseDownTracking(qtvr, enable)
  373.     QTVRInstance    qtvr
  374.     Boolean         enable
  375.  
  376.  
  377. =item QTVRGetMouseDownTracking QTVR 
  378.  
  379. =cut
  380. Boolean
  381. QTVRGetMouseDownTracking(qtvr)
  382.     QTVRInstance    qtvr
  383.  
  384.  
  385. =item QTVRMouseEnter QTVR, PT, W 
  386.  
  387. =cut
  388. U32
  389. QTVRMouseEnter(qtvr, pt, w)
  390.     QTVRInstance    qtvr
  391.     Point           pt
  392.     GrafPtr         w
  393.     CODE:
  394.     if (gLastMacOSErr = QTVRMouseEnter(qtvr, pt, &RETVAL, w)) {
  395.         XSRETURN_UNDEF;
  396.     }
  397.     OUTPUT:
  398.     RETVAL
  399.  
  400.  
  401. =item QTVRMouseWithin QTVR, PT, W 
  402.  
  403. =cut
  404. U32
  405. QTVRMouseWithin(qtvr, pt, w)
  406.     QTVRInstance    qtvr
  407.     Point   pt
  408.     GrafPtr w
  409.     CODE:
  410.     if (gLastMacOSErr = QTVRMouseWithin(qtvr, pt, &RETVAL, w)) {
  411.         XSRETURN_UNDEF;
  412.     }
  413.     OUTPUT:
  414.     RETVAL
  415.  
  416.  
  417. =item QTVRMouseLeave QTVR, PT, W 
  418.  
  419. =cut
  420. MacOSRet
  421. QTVRMouseLeave(qtvr, pt, w)
  422.     QTVRInstance    qtvr
  423.     Point   pt
  424.     GrafPtr w
  425.  
  426.  
  427. =item QTVRMouseDown QTVR, PT, WHEN, MODIFIERS, W 
  428.  
  429. =cut
  430. U32
  431. QTVRMouseDown(qtvr, pt, when, modifiers, w)
  432.     QTVRInstance    qtvr
  433.     Point   pt
  434.     U32 when
  435.     U16 modifiers
  436.     GrafPtr w
  437.     CODE:
  438.     if (gLastMacOSErr = QTVRMouseDown(qtvr, pt, when, modifiers, &RETVAL, w)) {
  439.         XSRETURN_UNDEF;
  440.     }
  441.     OUTPUT:
  442.     RETVAL
  443.  
  444.  
  445. =item QTVRMouseStillDown QTVR, PT, W 
  446.  
  447. =cut
  448. U32
  449. QTVRMouseStillDown(qtvr, pt, w)
  450.     QTVRInstance    qtvr
  451.     Point   pt
  452.     GrafPtr w
  453.     CODE:
  454.     if (gLastMacOSErr = QTVRMouseStillDown(qtvr, pt, &RETVAL, w)) {
  455.         XSRETURN_UNDEF;
  456.     }
  457.     OUTPUT:
  458.     RETVAL
  459.  
  460.  
  461. =item QTVRMouseUp QTVR, PT, W 
  462.  
  463. =cut
  464. U32
  465. QTVRMouseUp(qtvr, pt, w)
  466.     QTVRInstance    qtvr
  467.     Point   pt
  468.     GrafPtr w
  469.     CODE:
  470.     if (gLastMacOSErr = QTVRMouseUp(qtvr, pt, &RETVAL, w)) {
  471.         XSRETURN_UNDEF;
  472.     }
  473.     OUTPUT:
  474.     RETVAL
  475.  
  476. =item QTVRInstallInterceptProc QTVR, SELECTOR, PROC, FLAGS 
  477.  
  478. =cut
  479. MacOSRet
  480. QTVRInstallInterceptProc(qtvr, selector, interceptProc, flags=0)
  481.     QTVRInstance        qtvr
  482.     U32                 selector
  483.     SV*                 interceptProc
  484.     U32                 flags
  485.     CODE:
  486.     RETVAL = 
  487.         QTVRInstallInterceptProc(
  488.             qtvr, selector, &sPerlIntercept, (long)newSVsv(interceptProc), flags);
  489.     OUTPUT:
  490.     RETVAL
  491.  
  492. =item QTVRCallInterceptedProc QTVR, MSG 
  493.  
  494. =cut
  495. MacOSRet
  496. QTVRCallInterceptedProc(qtvr, qtvrMsg)
  497.     QTVRInstance         qtvr
  498.     QTVRInterceptRecord  qtvrMsg
  499.  
  500. =item QTVRSetFrameRate QTVR, RATE 
  501.  
  502. =cut
  503. MacOSRet
  504. QTVRSetFrameRate(qtvr, rate)
  505.     QTVRInstance    qtvr
  506.     float   rate
  507.  
  508.  
  509. =item QTVRGetFrameRate QTVR 
  510.  
  511. =cut
  512. float
  513. QTVRGetFrameRate(qtvr)
  514.     QTVRInstance    qtvr
  515.  
  516.  
  517. =item QTVRSetViewRate QTVR, RATE 
  518.  
  519. =cut
  520. MacOSRet
  521. QTVRSetViewRate(qtvr, rate)
  522.     QTVRInstance    qtvr
  523.     float   rate
  524.  
  525.  
  526. =item QTVRGetViewRate QTVR 
  527.  
  528. =cut
  529. float
  530. QTVRGetViewRate(qtvr)
  531.     QTVRInstance    qtvr
  532.  
  533.  
  534. =item QTVRSetViewCurrentTime QTVR, TIME 
  535.  
  536. =cut
  537. MacOSRet
  538. QTVRSetViewCurrentTime(qtvr, time)
  539.     QTVRInstance    qtvr
  540.     long    time
  541.  
  542.  
  543. =item QTVRGetViewCurrentTime QTVR 
  544.  
  545. =cut
  546. long
  547. QTVRGetViewCurrentTime(qtvr)
  548.     QTVRInstance    qtvr
  549.  
  550.  
  551. =item QTVRGetCurrentViewDuration QTVR 
  552.  
  553. =cut
  554. long
  555. QTVRGetCurrentViewDuration(qtvr)
  556.     QTVRInstance    qtvr
  557.  
  558.  
  559. =item QTVRSetViewState QTVR, VIEWSTATETYPE, STATE 
  560.  
  561. =cut
  562. MacOSRet
  563. QTVRSetViewState(qtvr, viewStateType, state)
  564.     QTVRInstance    qtvr
  565.     QTVRViewStateType   viewStateType
  566.     U16 state
  567.  
  568.  
  569. =item QTVRGetViewState QTVR, VIEWSTATETYPE 
  570.  
  571. =cut
  572. U16
  573. QTVRGetViewState(qtvr, viewStateType)
  574.     QTVRInstance    qtvr
  575.     QTVRViewStateType   viewStateType
  576.     CODE:
  577.     if (gLastMacOSErr = QTVRGetViewState(qtvr, viewStateType, &RETVAL)) {
  578.         XSRETURN_UNDEF;
  579.     }
  580.     OUTPUT:
  581.     RETVAL
  582.  
  583.  
  584. =item QTVRGetViewStateCount QTVR 
  585.  
  586. =cut
  587. U16
  588. QTVRGetViewStateCount(qtvr)
  589.     QTVRInstance    qtvr
  590.  
  591.  
  592. =item QTVRSetAnimationSetting QTVR, SETTING, ENABLE 
  593.  
  594. =cut
  595. MacOSRet
  596. QTVRSetAnimationSetting(qtvr, setting, enable)
  597.     QTVRInstance    qtvr
  598.     QTVRObjectAnimationSetting  setting
  599.     Boolean enable
  600.  
  601.  
  602. =item QTVRGetAnimationSetting QTVR, SETTING 
  603.  
  604. =cut
  605. Boolean
  606. QTVRGetAnimationSetting(qtvr, setting)
  607.     QTVRInstance    qtvr
  608.     QTVRObjectAnimationSetting  setting
  609.     CODE:
  610.     if (gLastMacOSErr = QTVRGetAnimationSetting(qtvr, setting, &RETVAL)) {
  611.         XSRETURN_UNDEF;
  612.     }
  613.     OUTPUT:
  614.     RETVAL
  615.  
  616.  
  617. =item QTVRSetControlSetting QTVR, SETTING, ENABLE 
  618.  
  619. =cut
  620. MacOSRet
  621. QTVRSetControlSetting(qtvr, setting, enable)
  622.     QTVRInstance    qtvr
  623.     QTVRControlSetting  setting
  624.     Boolean enable
  625.  
  626.  
  627. =item QTVRGetControlSetting QTVR, SETTING, ENABLE 
  628.  
  629. =cut
  630. Boolean
  631. QTVRGetControlSetting(qtvr, setting)
  632.     QTVRInstance    qtvr
  633.     QTVRControlSetting  setting
  634.     CODE:
  635.     if (gLastMacOSErr = QTVRGetControlSetting(qtvr, setting, &RETVAL)) {
  636.         XSRETURN_UNDEF;
  637.     }
  638.     OUTPUT:
  639.     RETVAL
  640.  
  641.  
  642. =item QTVREnableFrameAnimation QTVR, ENABLE 
  643.  
  644. =cut
  645. MacOSRet
  646. QTVREnableFrameAnimation(qtvr, enable)
  647.     QTVRInstance    qtvr
  648.     Boolean enable
  649.  
  650.  
  651. =item QTVRGetFrameAnimation QTVR 
  652.  
  653. =cut
  654. Boolean
  655. QTVRGetFrameAnimation(qtvr)
  656.     QTVRInstance    qtvr
  657.  
  658.  
  659. =item QTVREnableViewAnimation QTVR, ENABLE 
  660.  
  661. =cut
  662. MacOSRet
  663. QTVREnableViewAnimation(qtvr, enable)
  664.     QTVRInstance    qtvr
  665.     Boolean enable
  666.  
  667.  
  668. =item QTVRGetViewAnimation QTVR 
  669.  
  670. =cut
  671. Boolean
  672. QTVRGetViewAnimation(qtvr)
  673.     QTVRInstance    qtvr
  674.  
  675.  
  676. =item QTVRSetVisible QTVR, VISIBLE 
  677.  
  678. =cut
  679. MacOSRet
  680. QTVRSetVisible(qtvr, visible)
  681.     QTVRInstance    qtvr
  682.     Boolean visible
  683.  
  684.  
  685. =item QTVRGetVisible QTVR 
  686.  
  687. =cut
  688. Boolean
  689. QTVRGetVisible(qtvr)
  690.     QTVRInstance    qtvr
  691.  
  692.  
  693. =item QTVRSetImagingProperty QTVR, IMAGINGMODE, IMAGINGPROPERTY, PROPERTYVALUE 
  694.  
  695. =cut
  696. MacOSRet
  697. QTVRSetImagingProperty(qtvr, imagingMode, imagingProperty, propertyValue)
  698.     QTVRInstance    qtvr
  699.     QTVRImagingMode imagingMode
  700.     U32 imagingProperty
  701.     long    propertyValue
  702.  
  703.  
  704. =item QTVRGetImagingProperty QTVR, IMAGINGMODE, IMAGINGPROPERTY 
  705.  
  706. =cut
  707. I32
  708. QTVRGetImagingProperty(qtvr, imagingMode, imagingProperty)
  709.     QTVRInstance    qtvr
  710.     QTVRImagingMode imagingMode
  711.     U32 imagingProperty
  712.     CODE:
  713.     if (gLastMacOSErr = QTVRGetImagingProperty(qtvr, imagingMode, imagingProperty, &RETVAL)) {
  714.         XSRETURN_UNDEF;
  715.     }
  716.     OUTPUT:
  717.     RETVAL
  718.  
  719.  
  720. =item QTVRUpdate QTVR, IMAGINGMODE 
  721.  
  722. =cut
  723. MacOSRet
  724. QTVRUpdate(qtvr, imagingMode)
  725.     QTVRInstance    qtvr
  726.     QTVRImagingMode imagingMode
  727.  
  728.  
  729. =item QTVRBeginUpdateStream QTVR, IMAGINGMODE 
  730.  
  731. =cut
  732. MacOSRet
  733. QTVRBeginUpdateStream(qtvr, imagingMode)
  734.     QTVRInstance    qtvr
  735.     QTVRImagingMode imagingMode
  736.  
  737.  
  738. =item QTVREndUpdateStream QTVR 
  739.  
  740. =cut
  741. MacOSRet
  742. QTVREndUpdateStream(qtvr)
  743.     QTVRInstance    qtvr
  744.  
  745.  
  746. =item QTVRSetTransitionProperty QTVR, TRANSITIONTYPE, TRANSITIONPROPERTY, TRANSITIONVALUE 
  747.  
  748. =cut
  749. MacOSRet
  750. QTVRSetTransitionProperty(qtvr, transitionType, transitionProperty, transitionValue)
  751.     QTVRInstance    qtvr
  752.     U32 transitionType
  753.     U32 transitionProperty
  754.     long    transitionValue
  755.  
  756.  
  757. =item QTVREnableTransition QTVR, TRANSITIONTYPE, ENABLE 
  758.  
  759. =cut
  760. MacOSRet
  761. QTVREnableTransition(qtvr, transitionType, enable)
  762.     QTVRInstance    qtvr
  763.     U32 transitionType
  764.     Boolean enable
  765.  
  766.  
  767. =item QTVRSetAngularUnits QTVR, UNITS 
  768.  
  769. =cut
  770. MacOSRet
  771. QTVRSetAngularUnits(qtvr, units)
  772.     QTVRInstance    qtvr
  773.     QTVRAngularUnits    units
  774.  
  775.  
  776. =item QTVRGetAngularUnits QTVR 
  777.  
  778. =cut
  779. QTVRAngularUnits
  780. QTVRGetAngularUnits(qtvr)
  781.     QTVRInstance    qtvr
  782.  
  783.  
  784. =item QTVRPtToAngles QTVR, PT 
  785.  
  786.     ($panAngle, $tiltAngle) = QTVRPtToAngles($qtvr, $pt);
  787.  
  788. =cut
  789. void
  790. QTVRPtToAngles(qtvr, pt)
  791.     QTVRInstance    qtvr
  792.     Point   pt
  793.     PPCODE:
  794.     {
  795.         float panAngle;
  796.         float tiltAngle;
  797.         
  798.         if (gLastMacOSErr = QTVRPtToAngles(qtvr, pt, &panAngle, &tiltAngle)) {
  799.             XSRETURN_EMPTY;
  800.         }
  801.         XS_XPUSH(float, panAngle);
  802.         XS_XPUSH(float, tiltAngle);
  803.     }
  804.  
  805.  
  806. =item QTVRCoordToAngles QTVR, COORD 
  807.  
  808.     ($panAngle, $tiltAngle) = QTVRCoordToAngles($qtvr, $coord);
  809.  
  810. =cut
  811. void
  812. QTVRCoordToAngles(qtvr, coord)
  813.     QTVRInstance    qtvr
  814.     QTVRFloatPoint      coord
  815.     PPCODE:
  816.     {
  817.         float panAngle;
  818.         float tiltAngle;
  819.         
  820.         if (gLastMacOSErr = QTVRCoordToAngles(qtvr, &coord, &panAngle, &tiltAngle)) {
  821.             XSRETURN_EMPTY;
  822.         }
  823.         XS_XPUSH(float, panAngle);
  824.         XS_XPUSH(float, tiltAngle);
  825.     }
  826.  
  827.  
  828. =item QTVRAnglesToCoord QTVR, PANANGLE, TILTANGLE 
  829.  
  830. =cut
  831. QTVRFloatPoint
  832. QTVRAnglesToCoord(qtvr, panAngle, tiltAngle)
  833.     QTVRInstance    qtvr
  834.     float   panAngle
  835.     float   tiltAngle
  836.     CODE:
  837.     if (gLastMacOSErr = QTVRAnglesToCoord(qtvr, panAngle, tiltAngle, &RETVAL)) {
  838.         XSRETURN_UNDEF;
  839.     }
  840.     OUTPUT:
  841.     RETVAL
  842.  
  843.  
  844. =item QTVRPanToColumn QTVR, PANANGLE 
  845.  
  846. =cut
  847. short
  848. QTVRPanToColumn(qtvr, panAngle)
  849.     QTVRInstance    qtvr
  850.     float   panAngle
  851.  
  852.  
  853. =item QTVRColumnToPan QTVR, COLUMN 
  854.  
  855. =cut
  856. float
  857. QTVRColumnToPan(qtvr, column)
  858.     QTVRInstance    qtvr
  859.     short   column
  860.  
  861.  
  862. =item QTVRTiltToRow QTVR, TILTANGLE 
  863.  
  864. =cut
  865. short
  866. QTVRTiltToRow(qtvr, tiltAngle)
  867.     QTVRInstance    qtvr
  868.     float   tiltAngle
  869.  
  870.  
  871. =item QTVRRowToTilt QTVR, ROW 
  872.  
  873. =cut
  874. float
  875. QTVRRowToTilt(qtvr, row)
  876.     QTVRInstance    qtvr
  877.     short   row
  878.  
  879.  
  880. =item QTVRWrapAndConstrain QTVR, KIND, VALUE 
  881.  
  882. =cut
  883. float
  884. QTVRWrapAndConstrain(qtvr, kind, value)
  885.     QTVRInstance    qtvr
  886.     short   kind
  887.     float   value
  888.     CODE:
  889.     if (gLastMacOSErr = QTVRWrapAndConstrain(qtvr, kind, value, &RETVAL)) {
  890.         XSRETURN_UNDEF;
  891.     }
  892.     OUTPUT:
  893.     RETVAL
  894.  
  895. =begin ignore
  896.  
  897. MacOSRet
  898. QTVRSetEnteringNodeProc(qtvr, enteringNodeProc, refCon, flags)
  899.     QTVRInstance    qtvr
  900.     EnteringNodeUPP enteringNodeProc
  901.     long    refCon
  902.     U32 flags
  903.  
  904. MacOSRet
  905. QTVRSetLeavingNodeProc(qtvr, leavingNodeProc, refCon, flags)
  906.     QTVRInstance    qtvr
  907.     LeavingNodeUPP  leavingNodeProc
  908.     long    refCon
  909.     U32 flags
  910.  
  911. =end ignore
  912.  
  913. =cut
  914.  
  915.  
  916. =item QTVRSetInteractionProperty QTVR, PROPERTY, VALUE 
  917.  
  918. =cut
  919. MacOSRet
  920. QTVRSetInteractionProperty(qtvr, property, ...)
  921.     QTVRInstance    qtvr
  922.     U32 property
  923.     CODE:
  924.     {
  925.         void *  val;
  926.         U16     v_u16;
  927.         U32     v_u32;
  928.         Boolean v_b;
  929.         float   v_f;
  930.         
  931.         switch (property & 0x7FFFFFFF) {
  932.         case kQTVRInteractionMouseClickHysteresis:
  933.             XS_INPUT(U16, v_u16, ST(2));
  934.             val = (void *) v_u16;
  935.             break;
  936.         case kQTVRInteractionMouseClickTimeout:
  937.         case kQTVRInteractionPanTiltSpeed:
  938.         case kQTVRInteractionZoomSpeed:
  939.             XS_INPUT(U32, v_u32, ST(2));
  940.             val = (void *) v_u32;
  941.             break;
  942.         case kQTVRInteractionTranslateOnMouseDown:
  943.             XS_INPUT(Boolean, v_b, ST(2));
  944.             val = (void *) v_b;
  945.             break;
  946.         case kQTVRInteractionMouseMotionScale:
  947.             XS_INPUT(float, v_f, ST(2));
  948.             val = &v_f;
  949.             break;
  950.         }
  951.         RETVAL = QTVRSetInteractionProperty(qtvr, property, val);
  952.     }
  953.  
  954.  
  955. =item QTVRGetInteractionProperty QTVR, PROPERTY 
  956.  
  957. =cut
  958. void
  959. QTVRGetInteractionProperty(qtvr, property)
  960.     QTVRInstance    qtvr
  961.     U32 property
  962.     PPCODE:
  963.     {
  964.         union v {
  965.             U16     v_u16;
  966.             U32     v_u32;
  967.             Boolean v_b;
  968.             float   v_f;
  969.         }       val;
  970.         
  971.         if (gLastMacOSErr = QTVRGetInteractionProperty(qtvr, property, &val)) {
  972.             XSRETURN_UNDEF;
  973.         }
  974.         switch (property & 0x7FFFFFFF) {
  975.         case kQTVRInteractionMouseClickHysteresis:
  976.             XS_XPUSH(U16, val.v_u16);
  977.             break;
  978.         case kQTVRInteractionMouseClickTimeout:
  979.         case kQTVRInteractionPanTiltSpeed:
  980.         case kQTVRInteractionZoomSpeed:
  981.             XS_XPUSH(U32, val.v_u32);
  982.             break;
  983.         case kQTVRInteractionTranslateOnMouseDown:
  984.             XS_XPUSH(Boolean, val.v_b);
  985.             break;
  986.         case kQTVRInteractionMouseMotionScale:
  987.             XS_XPUSH(float, val.v_f);
  988.             break;
  989.         }
  990.     }
  991.  
  992.  
  993. =item QTVRReplaceCursor QTVR, CURSRECORD 
  994.  
  995. =cut
  996. MacOSRet
  997. QTVRReplaceCursor(qtvr, cursRecord)
  998.     QTVRInstance    qtvr
  999.     QTVRCursorRecord    &cursRecord
  1000.  
  1001.  
  1002. =item QTVRGetViewingLimits QTVR, KIND 
  1003.  
  1004.     ($minValue, $maxValue) = QTVRGetViewingLimits($qtvr, $kind);
  1005.  
  1006. =cut
  1007. void
  1008. QTVRGetViewingLimits(qtvr, kind)
  1009.     QTVRInstance    qtvr
  1010.     U16 kind
  1011.     PPCODE:
  1012.     {
  1013.         float minValue;
  1014.         float maxValue;
  1015.         
  1016.         if (gLastMacOSErr = QTVRGetViewingLimits(qtvr, kind, &minValue, &maxValue)) {
  1017.             XSRETURN_EMPTY;
  1018.         }
  1019.         XS_XPUSH(float, minValue);
  1020.         XS_XPUSH(float, maxValue);
  1021.     }
  1022.  
  1023.  
  1024. =item QTVRGetConstraintStatus QTVR 
  1025.  
  1026. =cut
  1027. U32
  1028. QTVRGetConstraintStatus(qtvr)
  1029.     QTVRInstance    qtvr
  1030.  
  1031.  
  1032. =item QTVRGetConstraints QTVR, KIND 
  1033.  
  1034.     ($minValue, $maxValue) = QTVRGetConstraints($qtvr, $kind);
  1035.  
  1036. =cut
  1037. void
  1038. QTVRGetConstraints(qtvr, kind)
  1039.     QTVRInstance    qtvr
  1040.     U16 kind
  1041.     PPCODE:
  1042.     {
  1043.         float minValue;
  1044.         float maxValue;
  1045.         
  1046.         if (gLastMacOSErr = QTVRGetConstraints(qtvr, kind, &minValue, &maxValue)) {
  1047.             XSRETURN_EMPTY;
  1048.         }
  1049.         XS_XPUSH(float, minValue);
  1050.         XS_XPUSH(float, maxValue);
  1051.     }
  1052.  
  1053.  
  1054. =item QTVRSetConstraints QTVR, KIND, MINVALUE, MAXVALUE 
  1055.  
  1056. =cut
  1057. MacOSRet
  1058. QTVRSetConstraints(qtvr, kind, minValue, maxValue)
  1059.     QTVRInstance    qtvr
  1060.     U16 kind
  1061.     float   minValue
  1062.     float   maxValue
  1063.  
  1064.  
  1065. =item QTVRGetAvailableResolutions QTVR 
  1066.  
  1067. =cut
  1068. U16
  1069. QTVRGetAvailableResolutions(qtvr)
  1070.     QTVRInstance    qtvr
  1071.     CODE:
  1072.     if (gLastMacOSErr = QTVRGetAvailableResolutions(qtvr, &RETVAL)) {
  1073.         XSRETURN_UNDEF;
  1074.     }
  1075.     OUTPUT:
  1076.     RETVAL
  1077.  
  1078.  
  1079. =item QTVRGetCacheMemInfo QTVR, RESOLUTION, CACHEDEPTH 
  1080.  
  1081.     ($minCache, $suggestedCache, $maxCache) = QTVRGetCacheMemInfo($qtvr, $res, $depth);
  1082.  
  1083. =cut
  1084. void
  1085. QTVRGetCacheMemInfo(qtvr, resolution, cacheDepth)
  1086.     QTVRInstance    qtvr
  1087.     U16             resolution
  1088.     short           cacheDepth
  1089.     PPCODE:
  1090.     {
  1091.         long    minCacheBytes;
  1092.         long    suggestedCacheBytes;
  1093.         long    fullCacheBytes;
  1094.         
  1095.         if (gLastMacOSErr = QTVRGetCacheMemInfo(qtvr, resolution, cacheDepth, &minCacheBytes, &suggestedCacheBytes, &fullCacheBytes)) {
  1096.             XSRETURN_EMPTY;
  1097.         }
  1098.         XS_XPUSH(long, minCacheBytes);
  1099.         XS_XPUSH(long, suggestedCacheBytes);
  1100.         XS_XPUSH(long, fullCacheBytes);
  1101.     }
  1102.  
  1103.  
  1104. =item QTVRGetCacheSettings QTVR
  1105.  
  1106.     ($resolution, $cacheDepth, $cacheSize) = QTVRGetCacheSettings($qtvr);
  1107.  
  1108. =cut
  1109. void
  1110. QTVRGetCacheSettings(qtvr)
  1111.     QTVRInstance    qtvr
  1112.     PPCODE:
  1113.     {
  1114.         U16     resolution;
  1115.         short   cacheDepth;
  1116.         short   cacheSize;
  1117.         
  1118.         if (gLastMacOSErr = QTVRGetCacheSettings(qtvr, &resolution, &cacheDepth, &cacheSize)) {
  1119.             XSRETURN_EMPTY;
  1120.         }
  1121.         XS_XPUSH(U16, resolution);
  1122.         XS_XPUSH(short, cacheDepth);
  1123.         XS_XPUSH(short, cacheSize);
  1124.     }
  1125.  
  1126.  
  1127. =item QTVRSetCachePrefs QTVR, RESOLUTION, CACHEDEPTH, CACHESIZE 
  1128.  
  1129. =cut
  1130. MacOSRet
  1131. QTVRSetCachePrefs(qtvr, resolution, cacheDepth, cacheSize)
  1132.     QTVRInstance    qtvr
  1133.     U16 resolution
  1134.     short   cacheDepth
  1135.     short   cacheSize
  1136.  
  1137. =begin ignore
  1138.  
  1139. MacOSRet
  1140. QTVRSetPrescreenImagingCompleteProc(qtvr, imagingCompleteProc, refCon, flags)
  1141.     QTVRInstance    qtvr
  1142.     ImagingCompleteUPP  imagingCompleteProc
  1143.     long    refCon
  1144.     U32 flags
  1145.  
  1146. MacOSRet
  1147. QTVRSetBackBufferImagingProc(qtvr, backBufferImagingProc, numAreas, areasOfInterest, refCon)
  1148.     QTVRInstance    qtvr
  1149.     BackBufferImagingUPP    backBufferImagingProc
  1150.     U16 numAreas
  1151.     AreaOfInterest *    areasOfInterest
  1152.     long    refCon
  1153.  
  1154. =end ignore
  1155.  
  1156. =cut
  1157.  
  1158.  
  1159. =item QTVRRefreshBackBuffer QTVR, FLAGS 
  1160.  
  1161. =cut
  1162. MacOSRet
  1163. QTVRRefreshBackBuffer(qtvr, flags)
  1164.     QTVRInstance    qtvr
  1165.     U32 flags
  1166.  
  1167. =back
  1168.  
  1169. =cut
  1170.