{ EDWIN Transformation stack procedures (VAX/VMS Pascal version) }
%option '-NONS'

Procedure UnityTransform     %alias 'EDWIN_UNITY_TX' (Var T:Transfm);    Extern;
Procedure TranslateTransform %alias 'EDWIN_TRANSLATE_TX' (X,Y:real; Var T:Transfm);         Extern;
Procedure MirrorXTransform   %alias 'EDWIN_MIRROR_X_TX' (Var T:Transfm); Extern;
Procedure MirrorYTransform   %alias 'EDWIN_MIRROR_Y_TX' (Var T:Transfm); Extern;
Procedure RotDvTransform     %alias 'EDWIN_ROT_DV_TX' (A,B:real; Var T:Transfm); Extern;
Procedure RotAngTransform    %alias 'EDWIN_ROT_ANG_TX' (ANGL:real; Var T:Transfm); Extern;
Procedure ComposeTransform   %alias 'EDWIN_COMPOSE_TX' (Var TA,TB,TC:Transfm); Extern;
Procedure ScaleTransform     %alias 'EDWIN_SCALE_TX' (XS,YS:real; Var T:Transfm); Extern;

Procedure PopTransform    %alias 'EDWIN_POP_TX';                         Extern;
Procedure PushTransform   %alias 'EDWIN_PUSH_TX' (Var T : Transfm);      Extern;
Procedure InitTransform   %alias 'EDWIN_INIT_TX';                        Extern;
Procedure PrintTransform  %alias 'EDWIN_PRINT_TX' (Var T : Transfm);     Extern;
Procedure SetTransform    %alias 'EDWIN_SET_TX' (Var T : Transfm);       Extern;
Procedure GetTransform    %alias 'EDWIN_GET_TX' (Var T : Transfm);       Extern;

Procedure PointTransform  %alias 'EDWIN_POINT_TX' (Var P,NP : Pointfm);  Extern;
Procedure VectorTransform %alias 'EDWIN_VECTOR_TX' (Var V,NV : Pointfm); Extern;
Procedure BbTransform     %alias 'EDWIN_BB_TX' (Var L,U,X,Y : Pointfm);  Extern;
