1 //---------------------------------------------------------------------------
\r
3 //---------------------------------------------------------------------------
\r
6 //---------------------------------------------------------------------------
\r
7 QRot::QRot(int x,int y) :QCircuit(x,y) {
\r
11 //---------------------------------------------------------------------------
\r
12 QRot::QRot(int x,int y, string Param) :QCircuit(x,y) {
\r
13 Name = GetTypeStr();
\r
14 Phase = atof(Param.c_str());
\r
16 //---------------------------------------------------------------------------
\r
18 QRot::Draw(QDraw *qDraw) {
\r
19 int GridSize = qDraw->GetGridSize();
\r
20 int UnitSize = qDraw->GetUnitSize();
\r
22 int d = (GridSize-UnitSize)/2;
\r
23 int x1 = X * GridSize+d;
\r
24 int y1 = Y * GridSize+d;
\r
25 int x2 = x1 + UnitSize;
\r
26 int y2 = y1 + UnitSize;
\r
28 qDraw->SetBrushColor(clWhite);
\r
29 qDraw->FillRect(x1,y1,x2,y2);
\r
30 qDraw->SetBrushColor(clPurple);
\r
31 qDraw->FrameRect(x1,y1,x2,y2);
\r
32 qDraw->SetPenColor(clBlack);
\r
33 qDraw->SetBrushColor(clWhite);
\r
36 qDraw->TextOut(x1+UnitSize/2,y1+UnitSize/2, os.str());
\r
38 //---------------------------------------------------------------------------
\r
40 QRot::Reverse(int y) {
\r
43 //---------------------------------------------------------------------------
\r
45 QRot::GetCalcText(void) {
\r
48 os << "q[" << Y << "],";
\r
52 //---------------------------------------------------------------------------
\r
54 QRot::DrawPS(QPSDraw *psDraw) {
\r
55 int GridSize = psDraw->GetGridSize();
\r
56 int UnitSize = psDraw->GetUnitSize();
\r
58 int d = (GridSize-UnitSize)/2;
\r
59 int x1 = X * GridSize+d;
\r
60 int y1 = Y * GridSize+d;
\r
61 int x2 = x1 + UnitSize;
\r
62 int y2 = y1 + UnitSize;
\r
64 psDraw->FillRect(x1,y1,x2,y2);
\r
66 psDraw->FillRect(x1,y1,x2,y2);
\r
67 psDraw->FrameRect(x1,y1,x2,y2);
\r
70 psDraw->TextOut(x1+UnitSize/2,y1+UnitSize/2,os.str());
\r
72 //---------------------------------------------------------------------------
\r
74 QRot::GetParam(void) {
\r
79 //---------------------------------------------------------------------------
\r
80 TRect QRot::GetOccupiedRect() {
\r
81 return TRect(X, Y, X + 1, Y + 1);
\r
83 //--------------------------------------------------------------------------
\r
86 QRot * qc = new QRot(X, Y);
\r
87 qc->SetPhase(GetPhase());
\r
88 return (QCircuit*)qc;
\r
90 //---------------------------------------------------------------------------
\r