home *** CD-ROM | disk | FTP | other *** search
/ Inventor Labs: Technology / INVENTORLABS_TECHNOLOGY.BIN / mac / FILES / SHARED.CST / 00036_Script_MacQTVRParent < prev    next >
Text File  |  1997-07-24  |  8KB  |  255 lines

  1. --p MacQTVR
  2.  
  3. property pFileNameTxt
  4. property pHpanStr, pVpanStr, pZoomStr, pQualityStr
  5. property pPanoIDint
  6. property pPanoRectStr
  7. property pPanoSpriteInt
  8. property pQTVRpath
  9. property pPanoFilenameStr
  10. property pHSactionObj, pActive, pCursorState
  11. property pQTVRxtraIns
  12. --/
  13.  
  14. global gActorListMgrObj, gInterfaceMgrObj
  15. global gEventMgrObj
  16.  
  17. --/ Developement
  18. global gActiveQTVRhandler, gQTVRCallBackFactory, gGalleryMgr
  19. global gQTVRobj, gInventorIndexNum, gQTVRpath, gAvailbleInv
  20. ------------------------------------------------------------------------------------------------------
  21.  
  22. ------------------------------------------------------------------------------------------------------
  23. on mInit me, QTVRspriteNumInt, QTpath
  24.   
  25.   -- repeated calls to RegisterComponent will result in memory loss
  26.   
  27.   if the machinetype = 256 then 
  28.     
  29.     if the platform = "Windows,32" then openxlib ( the pathname & "QTVRW32.X32")
  30.     else openxlib ( the pathname & "Qtvrw.x16")
  31.     
  32.   else openxlib ( the pathname & "QTVRXtra")
  33.   
  34.   QTVREnter(xtra "QTVRXtra")
  35.   set pPanoIDint = new(xtra "QTVRXtra")
  36.   
  37.   set pPanoSpriteInt = QTVRspriteNumInt
  38.   set SpriteRect = string(the rect of sprite pPanoSpriteInt)
  39.   set pPanoRectStr = chars( SpriteRect,6, length(SpriteRect) -1)
  40.   
  41.   set pQTVRpath = gQTVRpath
  42.   set pQualityStr = "4.0"
  43.   set pCursorState = #QTVR
  44.   mCreateCallBack (me)
  45.   
  46.   set pActive = FALSE
  47.   
  48.   set gQTVRobj = me
  49.   
  50.   return( me )
  51.   
  52. end mInit
  53. -------------------------------------------------------------------------------------------------------
  54. on mSwingToView me, SwingToViewStr, SpeedStr
  55.   
  56.   mSetQTVRView( me, SwingToViewStr )
  57.   
  58.   QTVRSetTransitionMode(pPanoIDint, "swing")
  59.   QTVRSetTransitionSpeed(pPanoIDint, SpeedStr)
  60.   QTVRUpdate(pPanoIDint) 
  61.   
  62.   -- Set transition mode to normal
  63.   QTVRSetTransitionMode(pPanoIDint, "normal")
  64.   
  65. end mSwingToView
  66. -------------------------------------------------------------------------------------------------------
  67. on mSetQTVRView me, NewViewStr
  68.   
  69.   mSetQTVRProps( me, NewViewStr )
  70.   
  71.   QTVRSetFOV(pPanoIDint,pZoomStr)
  72.   QTVRSetTiltAngle(pPanoIDint,pVpanStr)
  73.   QTVRSetPanAngle(pPanoIDint,pHpanStr)
  74.   QTVRSetQuality(pPanoIDint, pQualityStr)
  75.   
  76. end mSetQTVRView
  77. -------------------------------------------------------------------------------------------------------
  78. on mSetQTVRProps me, NewViewStr
  79.   
  80.   set pHpanStr = item 1 of NewViewStr
  81.   set pVpanStr =  item 2 of NewViewStr
  82.   set pZoomStr =  item 3 of NewViewStr
  83.   
  84. end mSetQTVRProps
  85. -------------------------------------------------------------------------------------------------------
  86. on mGetQTVRProps me
  87.   
  88.   set pHpanStr =  QTVRGetPanAngle(pPanoIDint)
  89.   set pVpanStr =   QTVRGetTiltAngle(pPanoIDint)
  90.   set pZoomStr =  QTVRGetFOV(pPanoIDint)
  91.   set pQualityStr =    QTVRGetQuality(pPanoIDint)
  92.   
  93.   return( pHpanStr & "," & pVpanStr & "," & pZoomStr & "," & pQualityStr)
  94.   
  95. end mGetQTVRProps
  96. -------------------------------------------------------------------------------------------------------
  97. on mOpen me, PanoFilenameStr, IntialViewStr, QTVRspriteNumInt
  98.   
  99.   QTVRClose( pPanoIDint )
  100.   
  101.   -- set pPanoIDint = new(xtra "QTVRXtra")
  102.   -- mCreateCallBack (me)
  103.   
  104.   set pPanoSpriteInt = QTVRspriteNumInt
  105.   set SpriteRect = string(the rect of sprite pPanoSpriteInt)
  106.   set pPanoRectStr = chars( SpriteRect,6, length(SpriteRect) -1)
  107.   
  108.   set pPanoFilenameStr = PanoFilenameStr
  109.   set pFileNameTxt = pQTVRpath & pPanoFilenameStr
  110.   put "pFileNameTxt " & pFileNameTxt
  111.   
  112.   QTVROpen(pPanoIDint, pFileNameTxt, pPanoRectStr, "invisible")
  113.   
  114.   mSetQTVRView( me, IntialViewStr)
  115.   set gActiveQTVRhandler = pPanoIDint
  116.   mInitPanoCallbacks (me,  pPanoIDint)
  117.   set pActive = TRUE
  118.   mShow ( me )
  119.   mAddToActorlist (gActorListMgrObj, me)
  120.   
  121.   
  122. end mOpen
  123. -------------------------------------------------------------------------------------------------------
  124. on mUpdate me
  125.   
  126.   QTVRUpdate(pPanoIDint) 
  127.   
  128. end mUpdate 
  129. -------------------------------------------------------------------------------------------------------
  130. on mShow me
  131.   
  132.   QTVRSetVisible(pPanoIDint, true)
  133.   QTVRUpdate(pPanoIDint)
  134.   Cursor 200
  135.   Cursor 0
  136.   set pCursorState = #QTVR
  137.   set pActive = TRUE
  138.   
  139. end mShow 
  140. -------------------------------------------------------------------------------------------------------
  141. on mHide me
  142.   
  143.   mSetCursors(gUtilityObj)
  144.   set pActive = FALSE
  145.   QTVRSetVisible(pPanoIDint, false)
  146.   Cursor 200
  147.   Cursor -1
  148.   
  149. end mHide
  150. -------------------------------------------------------------------------------------------------------
  151. on mClose me
  152.   
  153.   set pActive = FALSE
  154.   if objectp( pPanoIDint)  then QTVRClose(pPanoIDint)
  155.   
  156.   --set pPanoIDint = 0
  157.   mDeleteFromActorlist (gActorListMgrObj, me)
  158.   --/
  159.   set gActiveQTVRhandler = empty
  160.   --/
  161.   
  162. end mClosePanoMovie
  163. -------------------------------------------------------------------------------------------------------
  164. on mPerform me
  165.   
  166.   if pActive then
  167.     
  168.     if rollover( pPanoSpriteInt) then 
  169.       
  170.       idle
  171.       mClearBtnHilites( gInterfaceMgrObj )
  172.       --  updatestage
  173.       set pCursorState = #QTVR
  174.       
  175.       if the mousedown then exit
  176.       
  177.       set MouseOverResult = QTVRMouseOver(pPanoIDint)
  178.       
  179.       if (gInventorIndexNum = 4) then
  180.         set Horz =  QTVRGetPanAngle(pPanoIDint)
  181.         mCheckAudioCue ( gGalleryMgr, value( Horz ))
  182.       end if
  183.       
  184.       set whataction = item 1 of string(MouseOverResult)
  185.       
  186.       if (gInventorIndexNum = 4) and (whataction = "undf" ) then
  187.         
  188.         set MouseClickIndex = value( item 2 of MouseOverResult)
  189.         case gAvailbleInv of
  190.           #Bell:  if (MouseClickIndex = 5) or (MouseClickIndex = 3)  then set whataction = "None" 
  191.           #Watt: if (MouseClickIndex = 1) or (MouseClickIndex = 3)  then set whataction = "None" 
  192.           #Edison: if (MouseClickIndex = 5) or (MouseClickIndex = 1)  then set whataction = "None" 
  193.         end case
  194.       end if
  195.       
  196.       if (whataction = "undf" ) then mVRHSaction (gInterfaceMgrObj, value( item 2 of MouseOverResult))
  197.       
  198.     else
  199.       
  200.       if pCursorState = #QTVR then mResetCursor (me)
  201.       QTVRIdle(pPanoIDint)  
  202.       
  203.     end if   
  204.     
  205.   end if
  206.   
  207.   
  208. end mPerform
  209. -------------------------------------------------------------------------------------------------------
  210. on mResetCursor me
  211.   
  212.   cursor 200
  213.   cursor -1
  214.   set pCursorState = #INTERFACE
  215.   
  216. end
  217. -------------------------------------------------------------------------------------------------------
  218. on mCreateCallBack me
  219.   
  220.   --- instantiate callback object; receives callbacks from QTVR; QTVR callbacks only work with factories
  221.   if the machinetype <> 256 then
  222.     set gQTVRCallBackFactory = CallBackTracer(mNew)
  223.     SetCallBack PanoMovie, gQTVRCallBackFactory
  224.   end if
  225.   
  226. end
  227. ----------------------------------------
  228. on mInitPanoCallbacks me
  229.   
  230.   if objectp(pPanoIDint)  then
  231.     set callbackhandler = "mVRHS" 
  232.     QTVRSetRolloverHotSpotHandler(pPanoIDint,callbackhandler)
  233.     --QTVRSetMouseOverHandler(pPanoIDint,"sampleMouseOverHandler")
  234.     --QTVRSetMouseDownHandler(pPanoIDint,"sampleMouseDownHandler")
  235.     --QTVRSetPanZoomStartHandler(pPanoIDint,"samplePanZoomStartHandler")
  236.     --QTVRSetMouseStillDownHandler(pPanoIDint,"sampleMouseStillDownHandler")
  237.     --QTVRSetNodeLeaveHandler(pPanoIDint,"sampleNodeLeaveHandler")
  238.     
  239.     --QTVRSetRolloverHotSpotHandler(pPanoIDint,empty)
  240.     QTVRSetMouseOverHandler(pPanoIDint,empty)
  241.     QTVRSetMouseDownHandler(pPanoIDint,empty)
  242.     QTVRSetPanZoomStartHandler(pPanoIDint,empty)
  243.     QTVRSetMouseStillDownHandler(pPanoIDint,empty)
  244.     QTVRSetNodeLeaveHandler(pPanoIDint,empty)
  245.   end if
  246.   
  247. end mInitPanoCallbacks
  248. -------------------------------------------------------------------------------------------------
  249. on mVRHS me, HotSpotID                                      ---  displays text for QTVR hotspot; from QTVR callback
  250.   
  251.   --put "HotSpotID " & HotSpotID
  252.   mDisplayText( gInterfaceMgrObj, value( HotSpotID ) )
  253.   
  254. end 
  255. -------------------------------------------------------------------------------------------------