home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / ADPro251-3.DMS / ADPro251-3.adf / FREDScripts.lha / FREDOperators / GradualCollapse.fred < prev    next >
Encoding:
Text File  |  1994-01-31  |  6.7 KB  |  263 lines

  1. /*
  2. ** GradualCollapse.fred
  3. **
  4. ** $VER: GradualCollapse.fred 1.1.0 (23.10.93)
  5. **
  6. ** This program can be run from an InvokeADPro list to perform a collapse on
  7. ** the image.
  8. **
  9. ** Clips Imported:
  10. **    FREDGradualCollapseAmtCurr        -    Current collapse amount
  11. **    FREDGradualCollapseBlurCurr        -    Current blur radius
  12. **    FREDGradualCollapseCenterXCurr        -    Current x position
  13. **    FREDGradualCollapseCenterYCurr        -    Current y position
  14. **    FREDGradualCollapseRadCurr        -    Current radius
  15. **    FREDGradualCollapseAmtIncr        -    Collapse amount increment
  16. **    FREDGradualCollapseBlurIncr        -    Blur radius increment
  17. **    FREDGradualCollapseCenterXIncr        -    X position increment
  18. **    FREDGradualCollapseCenterYIncr        -    Y position increment
  19. **    FREDGradualCollapseRadIncr        -    Radius increment
  20. **    FREDGradualCollapseAmtFinal        -    Final collapse amount
  21. **    FREDGradualCollapseBlurFinal        -    Final blur radius
  22. **    FREDGradualCollapseCenterXFinal        -    Final x position
  23. **    FREDGradualCollapseCenterYFinal        -    Final y position
  24. **    FREDGradualCollapseRadFinal        -    Final radius
  25. **    FREDGradualCollapseNumberOfFrames    -    The number of frames selected
  26. **    FREDGradualCollapseFrameCount        -    The number of frames already processed
  27. **
  28. ** NOTE: Clip names are case sensitive.
  29. **
  30. ** This script requires FRED v1.4.0 (or higher) to run.  Also required is
  31. ** ADPro v2.5.0 (or higher).
  32. **
  33. ** Copyright © 1993 ASDG, Incorporated
  34. ** All Rights Reserved
  35. */
  36.  
  37.  
  38. ADDRESS "ADPro"
  39. OPTIONS RESULTS
  40.  
  41. PARSE ARG FrameNum FrameFName Length LoadFlag FirstCallSeq FirstCallCell
  42.  
  43. NL = '0A'X
  44. SQ = '27'X
  45. DQ = '22'X
  46. TRUE  = 1
  47. FALSE = 0
  48.  
  49.  
  50. /*
  51. ** Get the required clips.  Error if any are missing.
  52. */
  53.  
  54. AmtCurr = GETCLIP( "FREDGradualCollapseAmtCurr" )
  55. IF (AmtCurr = "") THEN DO
  56.     ADPRO_TO_FRONT
  57.     OKAY1 "Required clip, FREDGradualCollapseAmtCurr," || NL ||,
  58.         "is not specified."
  59.     SCREEN_TO_FRONT "FRED"
  60.     EXIT 10
  61. END
  62.  
  63. BlurCurr = GETCLIP( "FREDGradualCollapseBlurCurr" )
  64. IF (BlurCurr = "") THEN DO
  65.     ADPRO_TO_FRONT
  66.     OKAY1 "Required clip, FREDGradualCollapseBlurCurr," || NL ||,
  67.         "is not specified."
  68.     SCREEN_TO_FRONT "FRED"
  69.     EXIT 10
  70. END
  71.  
  72. CenterXCurr = GETCLIP( "FREDGradualCollapseCenterXCurr" )
  73. IF (CenterXCurr = "") THEN DO
  74.     ADPRO_TO_FRONT
  75.     OKAY1 "Required clip, FREDGradualCollapseCenterXCurr," || NL ||,
  76.         "is not specified."
  77.     SCREEN_TO_FRONT "FRED"
  78.     EXIT 10
  79. END
  80.  
  81. CenterYCurr = GETCLIP( "FREDGradualCollapseCenterYCurr" )
  82. IF (CenterYCurr = "") THEN DO
  83.     ADPRO_TO_FRONT
  84.     OKAY1 "Required clip, FREDGradualCollapseCenterYCurr," || NL ||,
  85.         "is not specified."
  86.     SCREEN_TO_FRONT "FRED"
  87.     EXIT 10
  88. END
  89.  
  90. RadCurr = GETCLIP( "FREDGradualCollapseRadCurr" )
  91. IF (RadCurr = "") THEN DO
  92.     ADPRO_TO_FRONT
  93.     OKAY1 "Required clip, FREDGradualCollapseRadCurr," || NL ||,
  94.         "is not specified."
  95.     SCREEN_TO_FRONT "FRED"
  96.     EXIT 10
  97. END
  98.  
  99. AmtIncr = GETCLIP( "FREDGradualCollapseAmtIncr" )
  100. IF (AmtIncr = "") THEN DO
  101.     ADPRO_TO_FRONT
  102.     OKAY1 "Required clip, FREDGradualCollapseAmtIncr," || NL ||,
  103.         "is not specified."
  104.     SCREEN_TO_FRONT "FRED"
  105.     EXIT 10
  106. END
  107.  
  108. BlurIncr = GETCLIP( "FREDGradualCollapseBlurIncr" )
  109. IF (BlurIncr = "") THEN DO
  110.     ADPRO_TO_FRONT
  111.     OKAY1 "Required clip, FREDGradualCollapseBlurIncr," || NL ||,
  112.         "is not specified."
  113.     SCREEN_TO_FRONT "FRED"
  114.     EXIT 10
  115. END
  116.  
  117. CenterXIncr = GETCLIP( "FREDGradualCollapseCenterXIncr" )
  118. IF (CenterXIncr = "") THEN DO
  119.     ADPRO_TO_FRONT
  120.     OKAY1 "Required clip, FREDGradualCollapseCenterXIncr," || NL ||,
  121.         "is not specified."
  122.     SCREEN_TO_FRONT "FRED"
  123.     EXIT 10
  124. END
  125.  
  126. CenterYIncr = GETCLIP( "FREDGradualCollapseCenterYIncr" )
  127. IF (CenterYIncr = "") THEN DO
  128.     ADPRO_TO_FRONT
  129.     OKAY1 "Required clip, FREDGradualCollapseCenterYIncr," || NL ||,
  130.         "is not specified."
  131.     SCREEN_TO_FRONT "FRED"
  132.     EXIT 10
  133. END
  134.  
  135. RadIncr = GETCLIP( "FREDGradualCollapseRadIncr" )
  136. IF (RadIncr = "") THEN DO
  137.     ADPRO_TO_FRONT
  138.     OKAY1 "Required clip, FREDGradualCollapseRadIncr," || NL ||,
  139.         "is not specified."
  140.     SCREEN_TO_FRONT "FRED"
  141.     EXIT 10
  142. END
  143.  
  144. AmtFinal = GETCLIP( "FREDGradualCollapseAmtFinal" )
  145. IF (AmtFinal = "") THEN DO
  146.     ADPRO_TO_FRONT
  147.     OKAY1 "Required clip, FREDGradualCollapseAmtFinal," || NL ||,
  148.         "is not specified."
  149.     SCREEN_TO_FRONT "FRED"
  150.     EXIT 10
  151. END
  152.  
  153. BlurFinal = GETCLIP( "FREDGradualCollapseBlurFinal" )
  154. IF (BlurFinal = "") THEN DO
  155.     ADPRO_TO_FRONT
  156.     OKAY1 "Required clip, FREDGradualCollapseBlurFinal," || NL ||,
  157.         "is not specified."
  158.     SCREEN_TO_FRONT "FRED"
  159.     EXIT 10
  160. END
  161.  
  162. CenterXFinal = GETCLIP( "FREDGradualCollapseCenterXFinal" )
  163. IF (CenterXFinal = "") THEN DO
  164.     ADPRO_TO_FRONT
  165.     OKAY1 "Required clip, FREDGradualCollapseCenterXFinal," || NL ||,
  166.         "is not specified."
  167.     SCREEN_TO_FRONT "FRED"
  168.     EXIT 10
  169. END
  170.  
  171. CenterYFinal = GETCLIP( "FREDGradualCollapseCenterYFinal" )
  172. IF (CenterYFinal = "") THEN DO
  173.     ADPRO_TO_FRONT
  174.     OKAY1 "Required clip, FREDGradualCollapseCenterYFinal," || NL ||,
  175.         "is not specified."
  176.     SCREEN_TO_FRONT "FRED"
  177.     EXIT 10
  178. END
  179.  
  180. RadFinal = GETCLIP( "FREDGradualCollapseRadFinal" )
  181. IF (RadFinal = "") THEN DO
  182.     ADPRO_TO_FRONT
  183.     OKAY1 "Required clip, FREDGradualCollapseRadFinal," || NL ||,
  184.         "is not specified."
  185.     SCREEN_TO_FRONT "FRED"
  186.     EXIT 10
  187. END
  188.  
  189. FrameCount = GETCLIP( "FREDGradualCollapseFrameCount" )
  190. IF (FrameCount = "") THEN DO
  191.     ADPRO_TO_FRONT
  192.     OKAY1 "Required clip, FREDGradualCollapseFrameCount," || NL ||,
  193.         "is not specified."
  194.     SCREEN_TO_FRONT "FRED"
  195.     EXIT 10
  196. END
  197.  
  198. NumberOfFrames = GETCLIP( "FREDGradualCollapseNumberOfFrames" )
  199. IF (NumberOfFrames = "") THEN DO
  200.     ADPRO_TO_FRONT
  201.     OKAY1 "Required clip, FREDGradualCollapseNumberOfFrames," || NL ||,
  202.         "is not specified."
  203.     SCREEN_TO_FRONT "FRED"
  204.     EXIT 10
  205. END
  206.  
  207.  
  208. /*
  209. ** See what type of data is loaded in ADPro/MorphPlus.
  210. */
  211.  
  212. CALL "FREDSCRIPTS:FREDFunctions/CheckForRawImageData" TRUE
  213. IF (RESULT ~= 0) THEN
  214.     EXIT 10
  215.  
  216.  
  217. /*
  218. ** Apply the collapse operator on the image, using the current settings.
  219. */
  220.  
  221. FrameCount = FrameCount + 1
  222. IF (FrameCount = NumberOfFrames) THEN DO
  223.     AmtCurr = AmtFinal
  224.     BlurCurr = BlurFinal
  225.     CenterXCurr = CenterXFinal
  226.     CenterYCurr = CenterYFinal
  227.     RadCurr = RadFinal
  228. END
  229.  
  230. OPERATOR "COLLAPSE",
  231.     "AMOUNT" TRUNC( AmtCurr ),
  232.     "BLUR_RADIUS" TRUNC( BlurCurr ),
  233.     "CENTER" TRUNC( CenterXCurr ) TRUNC( CenterYCurr ),
  234.     "RADIUS" TRUNC( RadCurr ),
  235.     "QUALITY_HIGH"
  236. IF (RC ~= 0) THEN DO
  237.     Why = ADPRO_RESULT
  238.     ADPRO_TO_FRONT
  239.     OKAY1 "Collapse failed:" || NL ||,
  240.         "Argument Information:" || NL ||,
  241.         "Amount = " || TRUNC( AmtCurr ) || NL ||,
  242.         "Blur Radius = " || TRUNC( BlurCurr ) || NL ||,
  243.         "Center = " || TRUNC( CenterXCurr ) TRUNC( CenterYCurr ) || NL ||,
  244.         "Radius = " || TRUNC( RadCurr ) || NL ||,
  245.         "Quality = QUALITY_HIGH"
  246.     SCREEN_TO_FRONT "FRED"
  247.     EXIT 10
  248. END
  249.  
  250.  
  251. /*
  252. ** Update the clips.
  253. */
  254.  
  255. SETCLIP( "FREDGradualCollapseAmtCurr", AmtCurr + AmtIncr )
  256. SETCLIP( "FREDGradualCollapseBlurCurr", BlurCurr + BlurIncr )
  257. SETCLIP( "FREDGradualCollapseCenterXCurr", CenterXCurr + CenterXIncr )
  258. SETCLIP( "FREDGradualCollapseCenterYCurr", CenterYCurr + CenterYIncr )
  259. SETCLIP( "FREDGradualCollapseRadCurr", RadCurr + RadIncr )
  260. SETCLIP( "FREDFrameCount", FrameCount )
  261.  
  262. EXIT 0
  263.