00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __BLOCKSCHEMA__
00023 #define __BLOCKSCHEMA__
00024
00025
00026 #include "schema.h"
00027 #include <vector>
00028 #include <string>
00029
00035 class blockSchema : public schema
00036 {
00037 private:
00038 const string fText;
00039 const string fColor;
00040 const string fLink;
00041
00042
00043 vector<point> fInputPoint;
00044 vector<point> fOutputPoint;
00045
00046
00047 public:
00048 friend schema* makeBlockSchema ( unsigned int inputs,
00049 unsigned int outputs,
00050 const string& name,
00051 const string& color,
00052 const string& link);
00053
00054 virtual void place(double x, double y, int orientation);
00055 virtual void draw(device& dev);
00056 virtual point inputPoint(unsigned int i) const;
00057 virtual point outputPoint(unsigned int i) const;
00058
00059 private:
00060 blockSchema ( unsigned int inputs, unsigned int outputs,
00061 double width, double height,
00062 const string& name, const string& color,
00063 const string& link);
00064
00065 void placeInputPoints();
00066 void placeOutputPoints();
00067
00068 void drawRectangle(device& dev);
00069 void drawText(device& dev);
00070 void drawOrientationMark(device& dev);
00071 void drawInputWires(device& dev);
00072 void drawOutputWires(device& dev);
00073
00074 };
00075
00076 #endif
00077
00078