/* ** SimpleFlyBy.fred ** ** $VER: SimpleFlyBy.fred 1.2.0 (18.11.93) ** ** This program can be run from an InvokeADPro list to create a simple ** flyby sequence. ** ** Clips Imported: ** FREDCurrCameraX - Current Camera Position X ** FREDCurrCameraY - Current Camera Position Y ** FREDCurrCameraZ - Current Camera Position Z ** FREDCurrLookAtX - Current LookAt Point X ** FREDCurrLookAtY - Current LookAt Point Y ** FREDCurrLookAtZ - Current LookAt Point Z ** FREDCurrFocalLength - Current Focal Length ** FREDCurrTheta - Current Theta Angle ** FREDCurrGamma - Current Gamma Angle ** FREDCurrPhi - Current Phi Angle ** FREDIncrCameraX - Camera Position X Increment ** FREDIncrCameraY - Camera Position Y Increment ** FREDIncrCameraZ - Camera Position Z Increment ** FREDIncrLookAtX - LookAt Point X Increment ** FREDIncrLookAtY - LookAt Point Y Increment ** FREDIncrLookAtZ - LookAt Point Z Increment ** FREDIncrFocalLength - Focal Length Increment ** FREDIncrTheta - Theta Angle Increment ** FREDIncrGamma - Gamma Angle Increment ** FREDIncrPhi - Phi Angle Increment ** ** Clips Exported: ** FREDCurrCameraX - Current Camera Position X ** FREDCurrCameraY - Current Camera Position Y ** FREDCurrCameraZ - Current Camera Position Z ** FREDCurrLookAtX - Current LookAt Point X ** FREDCurrLookAtY - Current LookAt Point Y ** FREDCurrLookAtZ - Current LookAt Point Z ** FREDCurrFocalLength - Current Focal Length ** FREDCurrTheta - Current Theta Angle ** FREDCurrGamma - Current Gamma Angle ** FREDCurrPhi - Current Phi Angle ** FREDIncrCameraX - Camera Position X Increment ** FREDIncrCameraY - Camera Position Y Increment ** FREDIncrCameraZ - Camera Position Z Increment ** FREDIncrLookAtX - LookAt Point X Increment ** FREDIncrLookAtY - LookAt Point Y Increment ** FREDIncrLookAtZ - LookAt Point Z Increment ** FREDIncrFocalLength - Focal Length Increment ** FREDIncrTheta - Theta Angle Increment ** FREDIncrGamma - Gamma Angle Increment ** FREDIncrPhi - Phi Angle Increment ** FREDOverrideLength - Override length ** ** 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) or MorphPlus v1.3.0 (or higher). ** ** Copyright © 1992-1993 Elastic Reality, Inc. ** 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. */ CurrCameraX = GETCLIP( "FREDCurrCameraX" ) IF (CurrCameraX = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDCurrCameraX," || NL ||, "is not defined." SCREEN_TO_FRONT "FRED" EXIT 10 END CurrCameraY = GETCLIP( "FREDCurrCameraY" ) IF (CurrCameraY = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDCurrCameraY," || NL ||, "is not defined." SCREEN_TO_FRONT "FRED" EXIT 10 END CurrCameraZ = GETCLIP( "FREDCurrCameraZ" ) IF (CurrCameraZ = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDCurrCameraZ," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END CurrLookAtX = GETCLIP( "FREDCurrLookAtX" ) IF (CurrLookAtX = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDCurrLookAtX," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END CurrLookAtY = GETCLIP( "FREDCurrLookAtY" ) IF (CurrLookAtY = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDCurrLookAtY," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END CurrLookAtZ = GETCLIP( "FREDCurrLookAtZ" ) IF (CurrLookAtZ = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDCurrLookAtZ," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END CurrFocalLength = GETCLIP( "FREDCurrFocalLength" ) IF (CurrFocalLength = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDCurrFocalLength," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END CurrTheta = GETCLIP( "FREDCurrTheta" ) IF (CurrTheta = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDCurrTheta," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END CurrGamma = GETCLIP( "FREDCurrGamma" ) IF (CurrGamma = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDCurrGamma," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END CurrPhi = GETCLIP( "FREDCurrPhi" ) IF (CurrPhi = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDCurrPhi," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END IncrCameraX = GETCLIP( "FREDIncrCameraX" ) IF (IncrCameraX = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDIncrCameraX," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END IncrCameraY = GETCLIP( "FREDIncrCameraY" ) IF (IncrCameraY = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDIncrCameraY," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END IncrCameraZ = GETCLIP( "FREDIncrCameraZ" ) IF (IncrCameraZ = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDIncrCameraZ," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END IncrLookAtX = GETCLIP( "FREDIncrLookAtX" ) IF (IncrLookAtX = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDIncrLookAtX," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END IncrLookAtY = GETCLIP( "FREDIncrLookAtY" ) IF (IncrLookAtY = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDIncrLookAtY," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END IncrLookAtZ = GETCLIP( "FREDIncrLookAtZ" ) IF (IncrLookAtZ = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDIncrLookAtZ," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END IncrFocalLength = GETCLIP( "FREDIncrFocalLength" ) IF (IncrFocalLength = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDIncrFocalLength," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END IncrTheta = GETCLIP( "FREDIncrTheta" ) IF (IncrTheta = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDIncrTheta," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END IncrGamma = GETCLIP( "FREDIncrGamma" ) IF (IncrGamma = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDIncrGamma," || NL ||, "is not specified." SCREEN_TO_FRONT "FRED" EXIT 10 END IncrPhi = GETCLIP( "FREDIncrPhi" ) IF (IncrPhi = "") THEN DO ADPRO_TO_FRONT OKAY1 "Required clip, FREDIncrPhi," || 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 /* ** Do the Perspective operation. */ OPERATOR "PERSPECTIVE" , "CAMERA_POSITION" CurrCameraX CurrCameraY CurrCameraZ , "LOOKAT_POINT" CurrLookAtX CurrLookAtY CurrLookAtZ , "FOCAL_LENGTH" CurrFocalLength , "THETA" CurrTheta , "GAMMA" CurrGamma , "PHI" CurrPhi IF (RC ~= 0) THEN DO ADPRO_TO_FRONT OKAY1 "The operator PERSPECTIVE" || NL ||, "failed to execute." SCREEN_TO_FRONT "FRED" EXIT 10 END /* ** Update the clips. */ SETCLIP( "FREDCurrCameraX", CurrCameraX + IncrCameraX ) SETCLIP( "FREDCurrCameraY", CurrCameraY + IncrCameraY ) SETCLIP( "FREDCurrCameraZ", CurrCameraZ + IncrCameraZ ) SETCLIP( "FREDCurrLookAtX", CurrLookAtX + IncrLookAtX ) SETCLIP( "FREDCurrLookAtY", CurrLookAtY + IncrLookAtY ) SETCLIP( "FREDCurrLookAtZ", CurrLookAtZ + IncrLookAtZ ) SETCLIP( "FREDCurrFocalLength", CurrFocalLength + IncrFocalLength ) SETCLIP( "FREDCurrTheta", CurrTheta + IncrTheta ) SETCLIP( "FREDCurrGamma", CurrGamma + IncrGamma ) SETCLIP( "FREDCurrPhi", CurrPhi + IncrPhi ) SETCLIP( "FREDOverrideLength", 1 ) EXIT 0