home *** CD-ROM | disk | FTP | other *** search
- /*
- ** GradualMosaic.fred
- **
- ** $VER: GradualMosaic.fred 1.1.0 (23.10.93)
- **
- ** This program can be run from an InvokeADPro list to perform a mosaic on
- ** the image.
- **
- ** Clips Imported:
- ** FREDGradualMosaicXOffCurr - Current X Offset
- ** FREDGradualMosaicYOffCurr - Current Y Offset
- ** FREDGradualMosaicWidthCurr - Current Tile Width
- ** FREDGradualMosaicHeightCurr - Current Tile Height
- ** FREDGradualMosaicXOffIncr - X Offset increment per frame
- ** FREDGradualMosaicYOffIncr - Y Offset increment per frame
- ** FREDGradualMosaicWidthIncr - Tile Width increment per frame
- ** FREDGradualMosaicHeightIncr - Tile Height increment per frame
- ** FREDGradualMosaicXOffFinal - Final X Offset
- ** FREDGradualMosaicYOffFinal - Final Y Offset
- ** FREDGradualMosaicWidthFinal - Final Tile Width
- ** FREDGradualMosaicHeightFinal - Final Tile Height
- ** FREDNumberOfFrames - The number of frames selected
- ** FREDFrameCount - 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.
- */
-
- XOffCurr = GETCLIP( "FREDGradualMosaicXOffCurr" )
- IF (XOffCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicXOffCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- YOffCurr = GETCLIP( "FREDGradualMosaicYOffCurr" )
- IF (YOffCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicYOffCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- WidthCurr = GETCLIP( "FREDGradualMosaicWidthCurr" )
- IF (WidthCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicWidthCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- HeightCurr = GETCLIP( "FREDGradualMosaicHeightCurr" )
- IF (HeightCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicHeightCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- XOffIncr = GETCLIP( "FREDGradualMosaicXOffIncr" )
- IF (XOffIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicXOffIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- YOffIncr = GETCLIP( "FREDGradualMosaicYOffIncr" )
- IF (YOffIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicYOffIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- WidthIncr = GETCLIP( "FREDGradualMosaicWidthIncr" )
- IF (WidthIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicWidthIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- HeightIncr = GETCLIP( "FREDGradualMosaicHeightIncr" )
- IF (HeightIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicHeightIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- XOffFinal = GETCLIP( "FREDGradualMosaicXOffFinal" )
- IF (XOffFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicXOffFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- YOffFinal = GETCLIP( "FREDGradualMosaicYOffFinal" )
- IF (YOffFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicYOffFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- WidthFinal = GETCLIP( "FREDGradualMosaicWidthFinal" )
- IF (WidthFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicWidthFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- HeightFinal = GETCLIP( "FREDGradualMosaicHeightFinal" )
- IF (HeightFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicHeightFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- FrameCount = GETCLIP( "FREDGradualMosaicFrameCount" )
- IF (FrameCount = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicFrameCount," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- NumberOfFrames = GETCLIP( "FREDGradualMosaicNumberOfFrames" )
- IF (NumberOfFrames = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualMosaicNumberOfFrames," || 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 mosaic operator on the image, using the current settings.
- */
-
- FrameCount = FrameCount + 1
- IF (FrameCount = NumberOfFrames) THEN DO
- XOffCurr = XOffFinal
- YOffCurr = YOffFinal
- WidthCurr = WidthFinal
- HeightCurr = HeightFinal
- END
-
- IF (XOffCurr >= WidthCurr) THEN
- GoodXOff = (WidthCurr - 1) // XOffCurr
- ELSE
- GoodXOff = XOffCurr
-
- IF (YOffCurr >= HeightCurr) THEN
- GoodYOff = (HeightCurr - 1) // YOffCurr
- ELSE
- GoodYOff = YOffCurr
-
- OPERATOR "MOSAIC",
- "XSIZE" TRUNC( WidthCurr ),
- "YSIZE" TRUNC( HeightCurr ),
- "XOFFSET" TRUNC( GoodXOff ),
- "YOFFSET" TRUNC( GoodYOff )
- IF (RC ~= 0) THEN DO
- Why = ADPRO_RESULT
- ADPRO_TO_FRONT
- OKAY1 "Mosaic failed:" || NL ||,
- "Argument Information:" || NL ||,
- "X Offset = " || TRUNC( GoodXOff ) || NL ||,
- "Y Offset = " || TRUNC( GoodYOff ) || NL ||,
- "Width = " || TRUNC( WidthCurr ) || NL ||,
- "Height = " || TRUNC( HeightCurr )
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
-
- /*
- ** Update the clips.
- */
-
- SETCLIP( "FREDGradualMosaicXOffCurr", XOffCurr + XOffIncr )
- SETCLIP( "FREDGradualMosaicYOffCurr", YOffCurr + YOffIncr )
- SETCLIP( "FREDGradualMosaicWidthCurr", WidthCurr + WidthIncr )
- SETCLIP( "FREDGradualMosaicHeightCurr", HeightCurr + HeightIncr )
- SETCLIP( "FREDFrameCount", FrameCount )
-
- EXIT 0
-