home *** CD-ROM | disk | FTP | other *** search
- (*------------------------------------------------------------*)
- (* GRAFTYPE.PAS *)
- (* Globale Typendefinition fuer die Grafikserie *)
- (*------------------------------------------------------------*)
-
- x_Koord_Sys = ScreenXmin_Sys..ScreenXmax_Sys;
- y_Koord_Sys = ScreenYmin_Sys..ScreenYmax_Sys;
-
- x_Koord = 0..ScreenXmax;
- y_Koord = 0..ScreenYmax;
-
- Sys_Colors = First_Color_Value..Last_Color_Value;
-
- (*---------------------- Polygon-Typ: ------------------------*)
-
- PolyPunkt = RECORD (* Punkt-Koordinaten eines Punktes *)
- x, y: INTEGER;
- END;
- PolyIndex = 1..PolyMax; (* Indextyp fuer 'Range-Check' *)
- Polygon = ARRAY [PolyIndex] OF PolyPunkt;
-
- (*---------------------- Pattern-Typ: ------------------------*)
-
- PatternIndex = 0..PatternSize;
- Pattern_ = ARRAY [PatternIndex, PatternIndex] OF BOOLEAN;
- (* der Unterstrich hinter Pattern ist bei Turbo wg. einer
- Prozedur gleichen Namens notwendig! *)
-
- (*---------------------- Window-Typ: -------------------------*)
- (* Der folgende Typ WinBackground muss so vereinbart werden, *)
- (* dass er ggf. dazu geeignet ist, den Hintergrund, der beim *)
- (* Oeffnen des Fensters abgespeichert wird, aufzunehmen. *)
- (* SYSTEMABHAENGIG (wenn ueberhaupt moeglich) ! *)
-
- WinBuffer = array[1..8003] of integer; (* Turbo-Pas. MS-DOS *)
- WinBackground = ^WinBuffer; (* mit CGA-Grafik *)
-
- (* systemunabhaengige Typen: *)
- WinNrBereich = NULL..MaxWins;
- WinRec = record
- xmin, ymin,
- xmax, ymax : real; (* Weltkoordinatenausschnitt *)
- Pixel_pro_x, (* Window/Viewport- *)
- Pixel_pro_y : real; (* Proportionen *)
- Vxmin, Vxmax : x_Koord; (* Bildschirmausschnitt *)
- Vymin, Vymax : y_Koord; (* des Viewport *)
- Background : WinBackground
- end;
-
- WinFeld = array[WinNrBereich] of ^WinRec;
-
- (*--------------------- 2D-Objekt-Typ: -----------------------*)
- (* Typendefinition fuer zweidimensionale Transformationen: *)
-
- tVektor = array[1..xMatDim] of real;
- tMatrix = array[1..yMatDim,1..xMatDim] of real;
-
- ObjektIndex = 1..MaxLineObj;
- LinienObjekt = array[ObjektIndex] of
- Record
- Vektor1, Vektor2: tVektor;
- end;
-
- (*----------------------- Font-Typ: --------------------------*)
- (* Erweiterung zu dem Typendefinitionsfile GRAFCONS.PAS der *)
- (* Grafikserie, um Zeichenausgabe zu handhaben. *)
-
- TCellElemIndex = 0..CellSize; (* fuer Compiler- *)
- TCellIndex = CellMin..CellMax; (* Range-Check *)
- TCellRow = array[TCellElemIndex] OF boolean; (* Zellenreihe *)
- TCell = array[TCellElemIndex] of TCellRow; (* Zeichenzelle *)
- TFont = array[TCellIndex] of TCell; (* Zeichensatz *)
- (* Schreibmodus der Zeichenausgabe: *)
- TWriteMode = (ReplaceMode,TransparentMode);
- TGrafStr = string[255]; (* ggf. durch PACKED ARRAY OF CHAR *)
- (* ersetzen! *)
-
- (* Typen fuer Bildsegmentierung (Display-Files). *)
- (* Kommandos, die in einem DF verwendet werden koennen. *)
- (* Es wurde aus mnemotechnischen Gruenden einfach der erste *)
- (* Vokal der mit dem Kommando korrespondierenden Prozedur *)
- (* weggelassen. Kann ggf. erweitert werden. *)
- tKommando = (pintw, lnew,
- mvewr, lnewr, pintwr, mvewa, lnewa,
- EoDF (* End of DisplayFile *) );
-
-
- tDFEintragP = ^tDFEintrag; (* Zeigertyp fuer Liste *)
- tDFEintrag = RECORD
- next : tDFEintragP;
- CASE Kommando : tKommando OF
- lnew : (x1, y1, x2, y2 : REAL);
- pintw, mvewr,
- lnewr, pintwr,
- mvewa, lnewa : (x, y : REAL);
- EoDf : ();
- END;
-
- tDFArrayInd = 1..InpFileSize;
- tDFArray = ARRAY[tDFArrayInd] OF tDFEintrag;
-
- tSegTabEintrag = RECORD
- DFP : tDFEintragP;
- sichtbar : BOOLEAN;
- TransFolge : INTEGER; (* Transformat.- *)
- (* Reihenfolge *)
- XPos, YPos, (* Ursprung *)
- XFaktor, YFaktor, (* "Scaling" *)
- XShear, YShear, (* Verzerrung *)
- Drehwinkel : REAL;
- END;
-
- SegNrBereich = NULL..MaxSeg;
- tSegTab = ARRAY[1..MaxSeg] OF tSegTabEintrag;
- (*------------------------------------------------------------*)
- (* Ende von GRAFTYPE.PAS *)