procedure lecorbusier;

VAR
      seitenlaenge,hoehe,armkissenbreite,sitzkissenhoehe,basiskissenhoehe,rueckenlaehnebreite: INTEGER;
      basiskissenbreite,basiskissentiefe: INTEGER;
	{farbe: BOOLEAN}

BEGIN
      seitenlaenge:=PSEITENLAENGE;
	hoehe:=PHOEHE;
	armkissenbreite:=PARMKISSENBREITE;
	sitzkissenhoehe:=PSITZKISSENHOEHE;
	basiskissenhoehe:=PBASISKISSENHOEHE;
	rueckenlaehnebreite:=PRUECKENLAEHNEBREITE;

	basiskissenbreite:=seitenlaenge-2*armkissenbreite;
      basiskissentiefe:=seitenlaenge-rueckenlaehnebreite;      

	if (2*armkissenbreite>seitenlaenge) then message('Bitte waehlen Sie eine kuerzere Armkissenbreite oder vergroessern Sie die Seitenlange!');
	if (basiskissentiefe>seitenlaenge) then message('Bitte waehlen Sie eine kuerzere Basiskissentiefe oder vergroessern Sie die Seitenlange!');
	if (basiskissenhoehe+sitzkissenhoehe>hoehe) then message('Achtung, Ihre Sitzlaenge uebersteigt die absolute Hoehe des Sessels!');

{lappen kissen 1}
	
	Pensize(14);
	Poly(basiskissenbreite+sitzkissenhoehe,3*basiskissenhoehe+3*basiskissentiefe+sitzkissenhoehe,basiskissenbreite+2*sitzkissenhoehe,3*basiskissenhoehe+3*basiskissentiefe,basiskissenbreite+2*sitzkissenhoehe,3*basiskissenhoehe+2*basiskissentiefe+2*sitzkissenhoehe,basiskissenbreite+sitzkissenhoehe,3*basiskissenhoehe+2*basiskissentiefe+sitzkissenhoehe);
	Poly(-sitzkissenhoehe,3*basiskissenhoehe+3*basiskissentiefe+sitzkissenhoehe,-2*sitzkissenhoehe,3*basiskissenhoehe+3*basiskissentiefe,-2*sitzkissenhoehe,3*basiskissenhoehe+2*basiskissentiefe+2*sitzkissenhoehe,-sitzkissenhoehe,3*basiskissenhoehe+2*basiskissentiefe+sitzkissenhoehe);
	Poly(0,3*basiskissenhoehe+3*basiskissentiefe+2*sitzkissenhoehe,sitzkissenhoehe,3*basiskissenhoehe+3*basiskissentiefe+3*sitzkissenhoehe,basiskissenbreite-sitzkissenhoehe,3*basiskissenhoehe+3*basiskissentiefe+3*sitzkissenhoehe,basiskissenbreite,3*basiskissenhoehe+3*basiskissentiefe+2*sitzkissenhoehe);

{kissen 1}
	
	Pensize(28);
	Rect(0,3*basiskissenhoehe+2*basiskissentiefe,basiskissenbreite,3*basiskissenhoehe+basiskissentiefe);
	FillFore(45000,45000,45000);
	FillBack(45000,45000,45000);
	Rect(0,3*basiskissenhoehe+2*basiskissentiefe+sitzkissenhoehe,basiskissenbreite,3*basiskissenhoehe+2*basiskissentiefe);
	Rect(0,3*basiskissenhoehe+3*basiskissentiefe+sitzkissenhoehe,basiskissenbreite,3*basiskissenhoehe+2*basiskissentiefe+sitzkissenhoehe);
	FillFore(65535,65535,65535);
	FillBack(65535,65535,65535);	
	Rect(0,3*basiskissenhoehe+3*basiskissentiefe+2*sitzkissenhoehe,basiskissenbreite,3*basiskissenhoehe+3*basiskissentiefe+sitzkissenhoehe);

	Rect(-sitzkissenhoehe,3*basiskissenhoehe+3*basiskissentiefe+sitzkissenhoehe,0,3*basiskissenhoehe+2*basiskissentiefe+sitzkissenhoehe);
	Rect(basiskissenbreite,3*basiskissenhoehe+3*basiskissentiefe+sitzkissenhoehe,basiskissenbreite+sitzkissenhoehe,3*basiskissenhoehe+2*basiskissentiefe+sitzkissenhoehe);

{lappen kissen 2}

	Pensize(14);
	Poly(basiskissenbreite+basiskissenhoehe,basiskissenhoehe+basiskissentiefe,basiskissenbreite+2*basiskissenhoehe,basiskissentiefe,basiskissenbreite+basiskissenhoehe+basiskissenhoehe,2*basiskissenhoehe,basiskissenbreite+basiskissenhoehe,basiskissenhoehe);
	Poly(-basiskissenhoehe,basiskissenhoehe+basiskissentiefe,-2*basiskissenhoehe,basiskissentiefe,-2*basiskissenhoehe,2*basiskissenhoehe,-basiskissenhoehe,basiskissenhoehe);

{verbindungsstück kissen 2 + kissen 1}

	Pensize(28); 
	Rect(0,3*basiskissenhoehe+basiskissentiefe,basiskissenbreite,2*basiskissenhoehe+basiskissentiefe);

{kissen 2}
      
	FillFore(45000,45000,45000);
	FillBack(45000,45000,45000);
	Rect(0,0,basiskissenbreite,-basiskissentiefe);
	Rect(0,basiskissenhoehe,basiskissenbreite,0);
	FillFore(65535,65535,65535);
	FillBack(65535,65535,65535);
	Rect(0,basiskissenhoehe+basiskissentiefe,basiskissenbreite,basiskissenhoehe);
	Rect(0,2*basiskissenhoehe+basiskissentiefe,basiskissenbreite,basiskissenhoehe+basiskissentiefe);
	
	Rect(basiskissenbreite,basiskissenhoehe+basiskissentiefe,basiskissenbreite+basiskissenhoehe,basiskissenhoehe);
	Rect(-basiskissenhoehe,basiskissenhoehe+basiskissentiefe,0,basiskissenhoehe);	
	Pensize(14);

{lappen kissen 3}
	
	Pensize(14);
	Poly(0,-basiskissentiefe-2*hoehe-2*rueckenlaehnebreite,rueckenlaehnebreite,-basiskissentiefe-2*hoehe-2*rueckenlaehnebreite-rueckenlaehnebreite,basiskissenbreite-rueckenlaehnebreite,-basiskissentiefe-2*hoehe-2*rueckenlaehnebreite-rueckenlaehnebreite,basiskissenbreite,-basiskissentiefe-2*hoehe-2*rueckenlaehnebreite);
	Poly(basiskissenbreite+rueckenlaehnebreite,-basiskissentiefe-hoehe-2*rueckenlaehnebreite,basiskissenbreite+2*rueckenlaehnebreite,-basiskissentiefe-hoehe-3*rueckenlaehnebreite,basiskissenbreite+2*rueckenlaehnebreite,-basiskissentiefe-2*hoehe-rueckenlaehnebreite,basiskissenbreite+rueckenlaehnebreite,-basiskissentiefe-2*hoehe-2*rueckenlaehnebreite);
	Poly(-rueckenlaehnebreite,-basiskissentiefe-hoehe-2*rueckenlaehnebreite,-2*rueckenlaehnebreite,-basiskissentiefe-hoehe-3*rueckenlaehnebreite,-2*rueckenlaehnebreite,-basiskissentiefe-2*hoehe-rueckenlaehnebreite,-rueckenlaehnebreite,-basiskissentiefe-2*hoehe-2*rueckenlaehnebreite);

{kissen 3}
	
	Pensize(28);
	FillFore(45000,45000,45000);
	FillBack(45000,45000,45000);
	Rect(0,-basiskissentiefe,basiskissenbreite,-basiskissentiefe-rueckenlaehnebreite);
	Rect(0,-basiskissentiefe-rueckenlaehnebreite,basiskissenbreite,-basiskissentiefe-hoehe-rueckenlaehnebreite);
	FillFore(65535,65535,65535);
	FillBack(65535,65535,65535);
	Rect(0,-basiskissentiefe-hoehe-2*rueckenlaehnebreite,basiskissenbreite,-basiskissentiefe-2*hoehe-2*rueckenlaehnebreite);
	Rect(0,-basiskissentiefe-hoehe-2*rueckenlaehnebreite,basiskissenbreite,-basiskissentiefe-2*hoehe-2*rueckenlaehnebreite);
	Pensize(0);
	FillFore(45000,45000,45000);
	FillBack(45000,45000,45000);
	Rect(0,-basiskissentiefe-hoehe-2*rueckenlaehnebreite,basiskissenbreite,-basiskissentiefe-2*hoehe-2*rueckenlaehnebreite+basiskissenhoehe+sitzkissenhoehe);
	FillFore(65535,65535,65535);
	FillBack(65535,65535,65535);
	Pensize(28);
	FillFore(45000,45000,45000);
	FillBack(45000,45000,45000);
	Rect(0,-basiskissentiefe-hoehe-rueckenlaehnebreite,basiskissenbreite,-basiskissentiefe-hoehe-2*rueckenlaehnebreite);
	FillFore(65535,65535,65535);
	FillBack(65535,65535,65535);
	Rect(basiskissenbreite,-basiskissentiefe-hoehe-2*rueckenlaehnebreite,basiskissenbreite+rueckenlaehnebreite,-basiskissentiefe-2*hoehe-2*rueckenlaehnebreite);
	Rect(-rueckenlaehnebreite,-basiskissentiefe-hoehe-2*rueckenlaehnebreite,0,-basiskissentiefe-2*hoehe-2*rueckenlaehnebreite);

{lappen kissen 4}
	
	Pensize(14);
	Poly(-2*hoehe-2*armkissenbreite,0,-2*hoehe-3*armkissenbreite,-armkissenbreite,-2*hoehe-3*armkissenbreite,-seitenlaenge+armkissenbreite,-2*hoehe-2*armkissenbreite,-seitenlaenge);
	Poly(-2*hoehe-2*armkissenbreite,armkissenbreite,-2*hoehe-armkissenbreite,2*armkissenbreite,-hoehe-2*armkissenbreite-armkissenbreite,2*armkissenbreite,-hoehe-2*armkissenbreite,armkissenbreite);
	Poly(-2*hoehe-2*armkissenbreite,-seitenlaenge-armkissenbreite,-2*hoehe-armkissenbreite,-seitenlaenge-2*armkissenbreite,-hoehe-2*armkissenbreite-armkissenbreite,-seitenlaenge-2*armkissenbreite,-hoehe-2*armkissenbreite,-seitenlaenge-armkissenbreite);	

{kissen 4}

	Pensize(28);
	FillFore(45000,45000,45000);
	FillBack(45000,45000,45000);
	Rect(-armkissenbreite,0,0,-seitenlaenge);
	Rect(-hoehe-armkissenbreite,0,-armkissenbreite,-seitenlaenge);
	Rect(-hoehe-2*armkissenbreite,0,-hoehe-armkissenbreite,-seitenlaenge);
	FillFore(65535,65535,65535);
	FillBack(65535,65535,65535);
	Rect(-2*hoehe-2*armkissenbreite,0,-hoehe-2*armkissenbreite,-seitenlaenge);
	FillFore(45000,45000,45000);
	FillBack(45000,45000,45000);
	Pensize(0);
	Rect(-2*hoehe-2*armkissenbreite+sitzkissenhoehe+basiskissenhoehe,0,-hoehe-2*armkissenbreite,-seitenlaenge+rueckenlaehnebreite);
	FillFore(65535,65535,65535);
	FillBack(65535,65535,65535);
	Pensize(28);
	Poly(-hoehe-2*armkissenbreite,0,-hoehe-2*armkissenbreite,-seitenlaenge);

	FillFore(45000,45000,45000);
	FillBack(45000,45000,45000);
	Rect(-2*hoehe-2*armkissenbreite,-seitenlaenge,-hoehe-2*armkissenbreite,-seitenlaenge-armkissenbreite);
	Rect(-2*hoehe-2*armkissenbreite,armkissenbreite,-hoehe-2*armkissenbreite,0);
	FillFore(65535,65535,65535);
	FillBack(65535,65535,65535);

{lappen kissen 5}

	Pensize(14);
	Poly(seitenlaenge+hoehe,-seitenlaenge-armkissenbreite,seitenlaenge+hoehe+armkissenbreite,-seitenlaenge-2*armkissenbreite,seitenlaenge+2*hoehe-armkissenbreite,-seitenlaenge-2*armkissenbreite,seitenlaenge+2*hoehe,-seitenlaenge-armkissenbreite);
	Poly(seitenlaenge+hoehe,armkissenbreite,seitenlaenge+hoehe+armkissenbreite,2*armkissenbreite,seitenlaenge+2*hoehe-armkissenbreite,2*armkissenbreite,seitenlaenge+2*hoehe,armkissenbreite);
	Poly(seitenlaenge+2*hoehe,0,seitenlaenge+2*hoehe+armkissenbreite,-armkissenbreite,seitenlaenge+2*hoehe+armkissenbreite,-seitenlaenge+armkissenbreite,seitenlaenge+2*hoehe,-seitenlaenge);

{kissen 5}
	
	Pensize(28);
 	FillFore(45000,45000,45000);
	FillBack(45000,45000,45000);
	Rect(basiskissenbreite,0,basiskissenbreite+armkissenbreite,-seitenlaenge);
	Rect(basiskissenbreite+armkissenbreite,0,seitenlaenge-armkissenbreite+hoehe,-seitenlaenge);
	Rect(seitenlaenge-armkissenbreite+hoehe,0,seitenlaenge+hoehe,-seitenlaenge);
	FillFore(65535,65535,65535);
	FillBack(65535,65535,65535);
	Rect(seitenlaenge+hoehe,0,seitenlaenge+2*hoehe,-seitenlaenge);
	Pensize(0);
	FillFore(45000,45000,45000);
	FillBack(45000,45000,45000);
	Rect(seitenlaenge+hoehe,0,seitenlaenge+2*hoehe-basiskissenhoehe-sitzkissenhoehe,-seitenlaenge+rueckenlaehnebreite);
	FillFore(65535,65535,65535);
	FillBack(65535,65535,65535);
	Pensize(28);
	Poly(seitenlaenge+hoehe,0,seitenlaenge+hoehe,-seitenlaenge);

	FillFore(45000,45000,45000);
	FillBack(45000,45000,45000);
	Rect(seitenlaenge+hoehe,armkissenbreite,seitenlaenge+2*hoehe,0);
	Rect(seitenlaenge+hoehe,-seitenlaenge,seitenlaenge+2*hoehe,-seitenlaenge-armkissenbreite);
	FillFore(65535,65535,65535);
	FillBack(65535,65535,65535);

END;

RUN (lecorbusier);