home *** CD-ROM | disk | FTP | other *** search
- /*
- ** GradualCollapse.fred
- **
- ** $VER: GradualCollapse.fred 1.1.0 (23.10.93)
- **
- ** This program can be run from an InvokeADPro list to perform a collapse on
- ** the image.
- **
- ** Clips Imported:
- ** FREDGradualCollapseAmtCurr - Current collapse amount
- ** FREDGradualCollapseBlurCurr - Current blur radius
- ** FREDGradualCollapseCenterXCurr - Current x position
- ** FREDGradualCollapseCenterYCurr - Current y position
- ** FREDGradualCollapseRadCurr - Current radius
- ** FREDGradualCollapseAmtIncr - Collapse amount increment
- ** FREDGradualCollapseBlurIncr - Blur radius increment
- ** FREDGradualCollapseCenterXIncr - X position increment
- ** FREDGradualCollapseCenterYIncr - Y position increment
- ** FREDGradualCollapseRadIncr - Radius increment
- ** FREDGradualCollapseAmtFinal - Final collapse amount
- ** FREDGradualCollapseBlurFinal - Final blur radius
- ** FREDGradualCollapseCenterXFinal - Final x position
- ** FREDGradualCollapseCenterYFinal - Final y position
- ** FREDGradualCollapseRadFinal - Final radius
- ** FREDGradualCollapseNumberOfFrames - The number of frames selected
- ** FREDGradualCollapseFrameCount - The number of frames already processed
- **
- ** NOTE: Clip names are case sensitive.
- **
- ** This script requires FRED v1.4.0 (or higher) to run. Also required is
- ** ADPro v2.5.0 (or higher).
- **
- ** Copyright © 1993 ASDG, Incorporated
- ** All Rights Reserved
- */
-
-
- ADDRESS "ADPro"
- OPTIONS RESULTS
-
- PARSE ARG FrameNum FrameFName Length LoadFlag FirstCallSeq FirstCallCell
-
- NL = '0A'X
- SQ = '27'X
- DQ = '22'X
- TRUE = 1
- FALSE = 0
-
-
- /*
- ** Get the required clips. Error if any are missing.
- */
-
- AmtCurr = GETCLIP( "FREDGradualCollapseAmtCurr" )
- IF (AmtCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseAmtCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- BlurCurr = GETCLIP( "FREDGradualCollapseBlurCurr" )
- IF (BlurCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseBlurCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- CenterXCurr = GETCLIP( "FREDGradualCollapseCenterXCurr" )
- IF (CenterXCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseCenterXCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- CenterYCurr = GETCLIP( "FREDGradualCollapseCenterYCurr" )
- IF (CenterYCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseCenterYCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- RadCurr = GETCLIP( "FREDGradualCollapseRadCurr" )
- IF (RadCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseRadCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- AmtIncr = GETCLIP( "FREDGradualCollapseAmtIncr" )
- IF (AmtIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseAmtIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- BlurIncr = GETCLIP( "FREDGradualCollapseBlurIncr" )
- IF (BlurIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseBlurIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- CenterXIncr = GETCLIP( "FREDGradualCollapseCenterXIncr" )
- IF (CenterXIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseCenterXIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- CenterYIncr = GETCLIP( "FREDGradualCollapseCenterYIncr" )
- IF (CenterYIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseCenterYIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- RadIncr = GETCLIP( "FREDGradualCollapseRadIncr" )
- IF (RadIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseRadIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- AmtFinal = GETCLIP( "FREDGradualCollapseAmtFinal" )
- IF (AmtFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseAmtFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- BlurFinal = GETCLIP( "FREDGradualCollapseBlurFinal" )
- IF (BlurFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseBlurFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- CenterXFinal = GETCLIP( "FREDGradualCollapseCenterXFinal" )
- IF (CenterXFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseCenterXFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- CenterYFinal = GETCLIP( "FREDGradualCollapseCenterYFinal" )
- IF (CenterYFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseCenterYFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- RadFinal = GETCLIP( "FREDGradualCollapseRadFinal" )
- IF (RadFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseRadFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- FrameCount = GETCLIP( "FREDGradualCollapseFrameCount" )
- IF (FrameCount = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseFrameCount," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- NumberOfFrames = GETCLIP( "FREDGradualCollapseNumberOfFrames" )
- IF (NumberOfFrames = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCollapseNumberOfFrames," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
-
- /*
- ** See what type of data is loaded in ADPro/MorphPlus.
- */
-
- CALL "FREDSCRIPTS:FREDFunctions/CheckForRawImageData" TRUE
- IF (RESULT ~= 0) THEN
- EXIT 10
-
-
- /*
- ** Apply the collapse operator on the image, using the current settings.
- */
-
- FrameCount = FrameCount + 1
- IF (FrameCount = NumberOfFrames) THEN DO
- AmtCurr = AmtFinal
- BlurCurr = BlurFinal
- CenterXCurr = CenterXFinal
- CenterYCurr = CenterYFinal
- RadCurr = RadFinal
- END
-
- OPERATOR "COLLAPSE",
- "AMOUNT" TRUNC( AmtCurr ),
- "BLUR_RADIUS" TRUNC( BlurCurr ),
- "CENTER" TRUNC( CenterXCurr ) TRUNC( CenterYCurr ),
- "RADIUS" TRUNC( RadCurr ),
- "QUALITY_HIGH"
- IF (RC ~= 0) THEN DO
- Why = ADPRO_RESULT
- ADPRO_TO_FRONT
- OKAY1 "Collapse failed:" || NL ||,
- "Argument Information:" || NL ||,
- "Amount = " || TRUNC( AmtCurr ) || NL ||,
- "Blur Radius = " || TRUNC( BlurCurr ) || NL ||,
- "Center = " || TRUNC( CenterXCurr ) TRUNC( CenterYCurr ) || NL ||,
- "Radius = " || TRUNC( RadCurr ) || NL ||,
- "Quality = QUALITY_HIGH"
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
-
- /*
- ** Update the clips.
- */
-
- SETCLIP( "FREDGradualCollapseAmtCurr", AmtCurr + AmtIncr )
- SETCLIP( "FREDGradualCollapseBlurCurr", BlurCurr + BlurIncr )
- SETCLIP( "FREDGradualCollapseCenterXCurr", CenterXCurr + CenterXIncr )
- SETCLIP( "FREDGradualCollapseCenterYCurr", CenterYCurr + CenterYIncr )
- SETCLIP( "FREDGradualCollapseRadCurr", RadCurr + RadIncr )
- SETCLIP( "FREDFrameCount", FrameCount )
-
- EXIT 0
-