SCHEMA Allgemeine_Geometrieobjekte;

REFERENCE FROM Entwurf (allgemeine_Eigenschaften, DGM);

REFERENCE FROM Geometrieschema (Flaechenobjekt_Modell, Linienobjekt_Modell, Punktobjekt_Modell);

REFERENCE FROM Allgemeine_Objekte (Winkel, Groesse);

ENTITY allgemeines_Punktobjekt
SUBTYPE OF (Punktobjekt_Modell, allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
    hat_Symbol: OPTIONAL SET [1: ?] OF Symbol;
INVERSE
    in_Dreieck: SET [0: ?] OF Dreieck FOR hat_Punkte;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Symbol
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute :
    Symbolbedeutung: STRING;
    Breite_links: Groesse;
    Breite_rechts: Groesse;
    Hoehe_oben: Groesse;
    Hoehe_unten: Groesse;
    Einheit: Einheit;
    Drehwinkel: Winkel;
--- Relationen :
INVERSE
    mit_Bezug_auf_allg_Punktobjekt: SET [0: 1] OF allgemeines_Punktobjekt FOR hat_Symbol;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Einheit;
--- Attribute :
    Kennung: INTEGER;
    Einheit: STRING(4);
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (0,'Welt')
   (1,'mm')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY allgemeines_Linienobjekt
SUBTYPE OF (Linienobjekt_Modell, allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
INVERSE
    in_Boeschung: SET [0: ?] OF Boeschungsschraffen FOR hat_Linie;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Boeschungsschraffen;
--- Attribute :
    Boeschungsbedeutung: STRING;
--- Relationen :
    hat_Linie: SET [1: ?] OF allgemeines_Linienobjekt;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY allgemeines_Flaechenobjekt
SUBTYPE OF (Flaechenobjekt_Modell, allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Dreieck;
--- Attribute :
    Dreiecksbedeutung: STRING;
--- Relationen :
    hat_Punkte: LIST [3: 3] OF allgemeines_Punktobjekt;
    hat_Seiteneigenschaften: LIST [3: 3] OF Seiteneigenschaft;
INVERSE
    in_DGM: DGM FOR hat_Dreiecke;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Seiteneigenschaft;
--- Attribute :
    Kennung: INTEGER;
    Seiteneigenschaft: STRING(13);
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'normale Seite')
   (2,'Bruchlinie')
   (3,'Formlinie')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Beschriftung
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute :
    Text: RTF;
    Textbedeutung: STRING;
    Breite: Groesse;
    Hoehe: Groesse;
    Einheit: OPTIONAL Einheit;
    Drehwinkel: OPTIONAL Winkel;
    Textneigung: OPTIONAL Winkel;
    Schriftart: OPTIONAL STRING;
    Kasten: OPTIONAL BOOLEAN;
    Fahne: OPTIONAL Fahne;
    vertikale_Ausrichtung: OPTIONAL vertikale_Ausrichtung;
    horizontale_Ausrichtung: OPTIONAL horizontale_Ausrichtung;
--- Relationen :
    zu_Punktobjekt_Modell: OPTIONAL Punktobjekt_Modell;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Fahne;
--- Attribute :
    Kennung: INTEGER;
    Fahne: STRING(8);
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (0,'ohne')
   (1,'gerade')
   (2,'geknickt')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY vertikale_Ausrichtung;
--- Attribute :
    Kennung: INTEGER;
    vertikale_Ausrichtung: STRING(9);
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (0,'zentriert')
   (1,'oberhalb')
   (2,'unterhalb')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY horizontale_Ausrichtung;
--- Attribute :
    Kennung: INTEGER;
    horizontale_Ausrichtung: STRING(9);
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (0,'zentriert')
   (1,'links')
   (2,'rechts')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

TYPE RTF = STRING;
END_TYPE;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

END_SCHEMA; -- Allgemeine_Geometrieobjekte