home *** CD-ROM | disk | FTP | other *** search
/ gondwana.ecr.mu.oz.au/pub/ / Graphics.tar / Graphics / VOGLE.ZIP / SRC / SUNPAS / VOGLE.H < prev   
Text File  |  1994-06-17  |  8KB  |  207 lines

  1.     Vogle Pascal header file for Sun Pascal
  2.  
  3.     link with:
  4.  
  5.     pc progname.p -lvogle -lsuntool -lsunwindow -lpixrect -lm
  6.  
  7. }
  8.  
  9. const
  10. { Standard Colour Indices }
  11.     BLACK        = 0;
  12.     RED        = 1;
  13.     GREEN        = 2;
  14.     YELLOW        = 3;
  15.     BLUE        = 4;
  16.     MAGENTA        = 5;
  17.     CYAN        = 6;
  18.     WHITE        = 7;
  19.  
  20. { Maximum number of vertices in a polygon }
  21.     MAXVERTS    = 128;
  22. { Maximum length of a string type }
  23.     MAXSTRINGLEN    = 255;
  24. { Maximum number of "curve" geometries (for curven) }
  25.     MAXCURVEN    = 200;
  26.  
  27. type
  28. { The type of stings passed to various VOGLE routines... }
  29.    string_t = varying [MAXSTRINGLEN] of char;
  30.  
  31. { For getmatrix and loadmatrix etc, etc... }
  32.    Matrix44_t = array[1..4] of array[1..4] of shortreal;
  33.    Matrix43_t = array[1..4] of array[1..3] of shortreal;
  34.  
  35. { For Poly and Poly2 .... }
  36.    Coord2 = array[1..2] of shortreal;
  37.    Coord3 = array[1..3] of shortreal;
  38.    Coord4 = array[1..4] of shortreal;
  39.    Poly2_array_t = array[1..MAXVERTS] of Coord2;
  40.    Poly3_array_t = array[1..MAXVERTS] of Coord3;
  41.  
  42. { For Curven....}
  43.     GeomMat_t = array[1..MAXCURVEN, 1..3] of shortreal;
  44.  
  45. { Device routines }
  46.    procedure Vinit(device: string_t); external c;
  47.    procedure Vexit; external c;
  48.    procedure Voutput(path: string_t); external c;
  49.    procedure VnewDev(device: string_t); external c;
  50.    procedure VgetDev(var device: string_t); external c;
  51.    procedure PushDev(device: string_t); external c;
  52.    procedure PopDev; external c;
  53.    function GetDepth: integer; external c;
  54.    procedure VsetFlush(yesno: boolean); external c;
  55.    procedure Vflush; external c;
  56.  
  57. { Routines for Setting Up Windows }
  58.    procedure PrefPosition(x, y: integer); external c;
  59.    procedure PrefSize(width, height: integer); external c;
  60.  
  61. { General routines }
  62.    procedure Clear; external c;
  63.    procedure Color(col: integer); external c;
  64.    procedure MapColor(indx, red, green, blue: integer); external c;
  65.    procedure Clipping(on: boolean); external c;
  66.    function GetKey: integer; external c;
  67.    function CheckKey: integer; external c;
  68.    function GetString(bcol: integer; var string: string_t): integer; external c;
  69.    function Locator(var xaddr, yaddr: real): integer; external c;
  70.    function Slocator(var xaddr, yaddr: real): integer; external c;
  71.  
  72. { Viewport routines }
  73.    procedure ViewPort(left, right, bottom, top: real); external c;
  74.    procedure PushViewPort; external c;
  75.    procedure PopViewPort; external c;
  76.    procedure GetViewPort(var left, right, bottom, top: real); external c;
  77.  
  78. { Getting the aspect details }
  79.    function GetAspect: real; external c;
  80.    procedure GetFactors(var w, h: real); external c;
  81.    procedure GetDisplaySize(var w, h: real); external c;
  82.    procedure ExpandViewport; external c;
  83.  
  84. { Attribute stack routines }
  85.    procedure PushAttributes; external c;
  86.    procedure PopAttributes; external c;
  87.  
  88. { Projection routines }
  89.    procedure Ortho( left, right, bottom, top, near, far: real); external c;
  90.    procedure Ortho2(left, right, bottom, top: real); external c;
  91.    procedure Perspective(fov, aspect, near, far: real); external c;
  92.    procedure Window(left, right, bottom, top, near, far: real); external c;
  93.  
  94. { Matrix stack routines }
  95.    procedure PushMatrix; external c;
  96.    procedure PopMatrix; external c;
  97.  
  98. { Viewpoint routines }
  99.    procedure PolarView(distance, azimuth, incidence, twist: real); external c;
  100.    procedure Up(x, y, z: real); external c;
  101.    procedure LookAt(vx, vy, vz, px, py, pz, twist: real); external c;
  102.  
  103. { Moving routines }
  104.    procedure Move(x, y, z: real); external c;
  105.    procedure Rmove(dx, dy, dz:real); external c;
  106.    procedure Move2(x, y: real); external c;
  107.    procedure Rmove2(dx, dy: real); external c;
  108.    procedure Smove2(x, y: real); external c;
  109.    procedure Rsmove2(dx, dy: real); external c;
  110.  
  111. { Drawing routines }
  112.    procedure SetDash(d: real); external c;
  113.    procedure LineStyle(str: string_t); external c;
  114.    procedure Draw(x, y, z: real); external c;
  115.    procedure Rdraw(dx, dy, dz: real); external c;
  116.    procedure Draw2(x, y: real); external c;
  117.    procedure Rdraw2(dx, dy: real); external c;
  118.    procedure Sdraw2(x, y: real); external c;
  119.    procedure Rsdraw2(dx, dy: real); external c;
  120.  
  121. { Arcs and circles }
  122.    procedure CirclePrecision(nsegs: integer); external c;
  123.    procedure Arc(x, y, radius, start_angle, end_angle: real); external c;
  124.    procedure Sector(x, y, radius, start_angle, end_angle: real); external c;
  125.    procedure Circle(x, y, radius: real); external c;
  126.  
  127. { Curve routines }
  128.    procedure CurveBasis(var basis: Matrix44_t); external c;
  129.    procedure CurvePrecision(nsegs: integer); external c;
  130.    procedure Rcurve(var geom: Matrix44_t); external c;
  131.    procedure Curve(var geom: Matrix43_t); external c;
  132.    procedure Curven(n: integer; var geom: GeomMat_t); external c;
  133.  
  134. { Rectangles and general polygon routines }
  135.    procedure Rect(x1, y1, x2, y2: real); external c;
  136.    procedure PolyFill(on: boolean); external c;
  137.    procedure PolyHatch(on: boolean); external c;
  138.    procedure HatchAng(angle: real); external c;
  139.    procedure HatchPitch(pitch: real); external c;
  140.    procedure Poly2(n: integer; var points: Poly2_array_t); external c;
  141.    procedure Poly(n: integer; var points: Poly3_array_t); external c;
  142.    procedure MakePoly; external c;
  143.    procedure ClosePoly; external c;
  144.    procedure BackFace(onoff: boolean); external c;
  145.    procedure BackFaceDir(clockwise: boolean); external c;
  146.  
  147. { Text routines }
  148.    procedure Font(fontname: string_t); external c;
  149.    function NumChars: integer; external c;
  150.    procedure TextSize(width, height: real); external c;
  151.    procedure TextAng(angle: real); external c;
  152.    procedure FixedWidth(on: boolean); external c;
  153.    procedure CenterText(on: boolean); external c;
  154.    procedure TextJustify(val: integer); external c;
  155.    procedure LeftJustify; external c;
  156.    procedure RightJustify; external c;
  157.    procedure TopJustify; external c;
  158.    procedure BottomJustify; external c;
  159.    procedure XcenterText; external c;
  160.    procedure YcenterText; external c;
  161.    procedure GetCharSize(c:char; var width, height: real); external c;
  162.    procedure GetFontSize(var width, height: real); external c;
  163.    procedure DrawChar(c: char); external c;
  164.    procedure DrawStr(str: string_t); external c;
  165.    procedure StrLength(str: string_t); external c;
  166.    procedure BoxText(x, y, l, h: real; s: string_t); external c;
  167.    procedure BoxFit(l, h: real; nchars: integer); external c;
  168.  
  169. { Transformation routines }
  170.    procedure Translate(x, y, z: real); external c;
  171.    procedure Scale(x, y, z: real); external c;
  172.    procedure Rotate(angle: real; axis: char); external c;
  173.  
  174. { Patch routines }
  175.    procedure PatchBasis(var tbasis, ubasis: Matrix44_t); external c;
  176.    procedure PatchPrecision(tseg, useg: integer); external c;
  177.    procedure PatchCurves(nt, nu: integer); external c;
  178.    procedure Rpatch(var gx, gy, gz, gw: Matrix44_t); external c;
  179.    procedure Patch(var gx, gy, gz: Matrix44_t); external c;
  180.  
  181. { Point routines }
  182.    procedure Point(x, y, z: real); external c;
  183.    procedure Point2(x, y: real); external c;
  184.  
  185. { Object routines }
  186.    procedure MakeObj(n: integer); external c;
  187.    procedure CloseObj; external c;
  188.    function GenObj: integer; external c;
  189.    function GetOpenobj: integer; external c;
  190.    procedure CallObj(n: integer); external c;
  191.    function IsObj(n: integer): integer; external c;
  192.    function DelObj(n: integer): integer; external c;
  193.    procedure LoadObj(n: integer; filename: string_t); external c;
  194.    procedure SaveObj(n: integer; filename: string_t); external c;
  195.  
  196. { Double Buffering }
  197.    function BackBuffer: integer; external c;
  198.    procedure FrontBuffer; external c;
  199.    procedure SwapBuffers; external real;
  200.  
  201. { Position routines }
  202.    procedure GetGp(var x, y, z: real); external c;
  203.    procedure GetGpT(var x, y, z, w: real); external c;
  204.    procedure GetGp2(var x, y: real); external c;
  205.    procedure SgetGp2(var x, y: real); external c;
  206.