void QSLPlotCartesianSet::drawWithPlusses(QPainter *painter) { int r = mPointRadius; for (int i=0; i<mX.size(); i++) { double x = mX[i]; double y = mY[i]; if (BET(mParentPlot->xMin(), x, mParentPlot->xMax()) && BET(mParentPlot->yMin(), y, mParentPlot->yMax())) { int xi = mParentPlot->xToPix(x); int yi = mParentPlot->yToPix(y); painter->drawLine( xi-r, yi, xi+r, yi); painter->drawLine( xi, yi-r, xi, yi+r); } } }
void QSLPlotCartesianSet::drawWithCircles(QPainter *painter) { painter->setBrush(Qt::NoBrush); int r = mPointRadius; for (int i=0; i<mX.size(); i++) { double x = mX[i]; double y = mY[i]; if (BET(mParentPlot->xMin(), x, mParentPlot->xMax()) && BET(mParentPlot->yMin(), y, mParentPlot->yMax())) { painter->drawEllipse( mParentPlot->xToPix(x) -r, mParentPlot->yToPix(y) -r, 2*r, 2*r ); } } }
void QSLPlotCartesianSet::drawWithFullTriangles(QPainter *painter) { int r = mPointRadius; for (int i=0; i<mX.size(); i++) { double x = mX[i]; double y = mY[i]; if (BET(mParentPlot->xMin(), x, mParentPlot->xMax()) && BET(mParentPlot->yMin(), y, mParentPlot->yMax())) { int xi = mParentPlot->xToPix(x); int yi = mParentPlot->yToPix(y); QPolygon polygon; polygon << QPoint(xi,yi-r) << QPoint(xi-r,yi+r) << QPoint(xi+r,yi+r); painter->drawPolygon(polygon); } } }
/*** COMPLETION OF REPAIR ON THE MACHINE ***/ void FIX() { int _edge_condition[1]; /* Attribute Value(s) Passed to this Event */ J = (long) transfer[3]; F = transfer[4]; FIXTIME = transfer[5]; ENT[0] = (long) transfer[6]; ENT[1] = (long) transfer[7]; ENT[2] = (long) transfer[8]; ENT[3] = (long) transfer[9]; ENT[4] = (long) transfer[10]; ENT[5] = (long) transfer[11]; ENT[6] = (long) transfer[12]; /* state changes */ ENT[2]=CLK; FIXTIME=CLK-FIXTIME; /* Evaluate edge conditions now so that they will*/ /* not be changed by preemptive event execution */ _edge_condition[0] = ( 1==1 ); /* schedule future events */ if (_edge_condition[0]) { /*** attribute value(s) to be transferred to event ***/ transfer[3] = ENT[1]; transfer[4] = F; transfer[5] = ENT[0]; transfer[6] = ENT[1]; transfer[7] = ENT[2]; transfer[8] = ENT[3]; transfer[9] = ENT[4]; transfer[10] = ENT[5]; transfer[11] = ENT[6]; for ( t_index=12; t_index<maxatr; t_index++) transfer[t_index] = 0.0; event_time = current_time + (REN[J][1]/(1+3*RND))*BET(1.2,1.2); event_type = RETURN_event; event_priority = 5; schedule_event(); } }
/*** THE OCCURRENCE OF A BREAKDOWN ***/ void FAIL() { int _edge_condition[1]; /* Attribute Value(s) Passed to this Event */ ENT[0] = (long) transfer[3]; ENT[1] = (long) transfer[4]; ENT[2] = (long) transfer[5]; ENT[3] = (long) transfer[6]; ENT[4] = (long) transfer[7]; ENT[5] = (long) transfer[8]; ENT[6] = (long) transfer[9]; /* state changes */ ENT[4]=ENT[4]+1; FAILRENT[J]=CLK-ENT[2]; INFLOW[J]=INFLOW[J]+RUNC[J]*FAILRENT[J]; /* Evaluate edge conditions now so that they will*/ /* not be changed by preemptive event execution */ _edge_condition[0] = ( 1==1 ); /* schedule future events */ if (_edge_condition[0]) /*** GET FIXED AFTER DELAY WHICH FOLLOWS A BETA DISTRIBUTION WITH MIN=1, MAX=6 ***/ { /*** attribute value(s) to be transferred to event ***/ transfer[3] = ENT[1]; transfer[4] = FAILRENT[J]; transfer[5] = CLK; transfer[6] = ENT[0]; transfer[7] = ENT[1]; transfer[8] = ENT[2]; transfer[9] = ENT[3]; transfer[10] = ENT[4]; transfer[11] = ENT[5]; transfer[12] = ENT[6]; for ( t_index=13; t_index<maxatr; t_index++) transfer[t_index] = 0.0; event_time = current_time + FIXT[0]+(FIXT[1]-FIXT[0])*BET(0.7,0.7); event_type = FIX_event; event_priority = 6; schedule_event(); } }
/*** START OF RENTING ***/ void RENT() { int _edge_condition[2]; /* Attribute Value(s) Passed to this Event */ ENT[0] = (long) transfer[3]; ENT[1] = (long) transfer[4]; ENT[2] = (long) transfer[5]; ENT[3] = (long) transfer[6]; ENT[4] = (long) transfer[7]; ENT[5] = (long) transfer[8]; ENT[6] = (long) transfer[9]; /* state changes */ P=RND; ENT[2]=CLK; /* Evaluate edge conditions now so that they will*/ /* not be changed by preemptive event execution */ _edge_condition[0] = ( P<.7 ); _edge_condition[1] = ( P>=.7 ); /* schedule future events */ if (_edge_condition[0]) /*** THE CAR IS TAKEN OUT OF THE LOT FOR A RESERVATION OR WALKIN PERIOD ***/ { /*** attribute value(s) to be transferred to event ***/ transfer[3] = ENT[1]; transfer[4] = 0; transfer[5] = ENT[0]; transfer[6] = ENT[1]; transfer[7] = ENT[2]; transfer[8] = ENT[3]; transfer[9] = ENT[4]; transfer[10] = ENT[5]; transfer[11] = ENT[6]; for ( t_index=12; t_index<maxatr; t_index++) transfer[t_index] = 0.0; event_time = current_time + REN[J][0]+REN[J][1]*BET(1.2,1.2); event_type = RETURN_event; event_priority = 3; schedule_event(); } if (_edge_condition[1]) { /*** attribute value(s) to be transferred to event ***/ transfer[3] = ENT[0]; transfer[4] = ENT[1]; transfer[5] = ENT[2]; transfer[6] = ENT[3]; transfer[7] = ENT[4]; transfer[8] = ENT[5]; transfer[9] = ENT[6]; for ( t_index=10; t_index<maxatr; t_index++) transfer[t_index] = 0.0; event_time = current_time + REN[J][0]+REN[J][1]*BET(1.2,1.2); event_type = FAIL_event; event_priority = 5; schedule_event(); } }