// drawings.h 
// function prototypes for drawings.cpp

#include <iostream>
#include <fstream>
using std::ostream;

double const PI=3.14159;

void drawFivePointedOutlineStar(ostream &outfile, double centerX,
				double centerY, double radius);


void drawHouse(ostream & out, double x,double  y, double height, double width);

// A valid (from the point of view of the compiler) but atrocious,
// horrible, offensive, crime against programming, type of function
// prototype would be:
// 
// void drawHouse(ostream & , double ,double  , double , double );



void drawPolygon(ostream &outfile, double centerX, double centerY,
		 double radius, int numPoints);

void drawApproxCircle(ostream &outfile, double centerX, double centerY,
		      double radius);

void drawStopSign(ostream &outfile, double x, double y, 
		  double height);


void drawStar(ostream &outfile, double centerX, double centerY,
	      double radius, int numPoints, int skipValue, 
	      double initAngle);

void drawFlagPole(ostream &outfile, double x, double y, 
		  double height);
// reference point x,y is at the center of the base of the flag pole.
// place a circle with diameter = twice the width of the flag pole
// at the top.

void drawUSFlag(ostream &outfile, double x, double y, double height);
// note: length determined automatically from height using 
// standard ratio for US Flag of 10:19 
// (see http://flagspot.net/flags/xf-rati.html)
// (see also: http://www.montney.com/flag/proportions.htm
//            http://www.thepowermall.com/title4flags/amendment.htm            
//  or do a web search for "dimensions of the constituent parts of the flag"

// @@@ Add a function prototype for a function that draws a French flag.
// Use the standard ratio for French Flag of 2:3 to calculate the
// length, given the height. (see http://flagspot.net/flags/xf-rati.html)

void drawGermanFlag(ostream &outfile, double x, double y, double height);
// note: length determined automatically from height using 
// standard ratio for German Flag of 3:5
// (see http://flagspot.net/flags/xf-rati.html)

void drawTexasFlag(ostream &outfile, double x, double y, double height);
// note: length determined automatically from height using 
// standard ratio for Texas flag of 2:3

void drawSnowMan(ostream &outfile, double x, double y, 
		 double height);

// x,y is center point at bottom; width is 1/4 of height

void drawStickFigure(ostream &outfile, double x, double y, 
		     double height);
// x,y is center point at bottom; width is 4/9 of height

void writeGnuplotFile(const char * const gnuplotFileName, 
		      const char * const dataFileName, 
		      const char * const pngFileName, 
		      double height, double width);

