void GridNavigationComponent::DrawDebug()
{
  if (!m_drawDebug || !m_activePath)
    return;

  glm::mat4 viewMatrix = glm::inverse(Engine.GetActiveCamera().GetTransform().GetTransformationMatrix());
  glm::vec2 drawPosition(viewMatrix[3]); // get the x and y component from the vec3

  for (unsigned int i = 0; i < m_activePath->path.size() - 1; i++)
  {
    glm::vec2 pos1 = m_activePath->path[i] + drawPosition;

    sf::CircleShape circle;
    circle.setRadius(5);
    circle.setFillColor(sf::Color::Black);
    circle.setPosition(sf::Vector2f(pos1.x - 5, pos1.y - 5));
    Engine.GetWindow().draw(circle);

    glm::vec2 pos2 = m_activePath->path[i + 1] + drawPosition;

    sf::Vertex line[]
    {
      sf::Vertex(sf::Vector2f(pos1.x, pos1.y)),
      sf::Vertex(sf::Vector2f(pos2.x, pos2.y))
    };

    Engine.GetWindow().draw(line, 2, sf::Lines);
  }
}
Пример #2
0
void drawParticles()
{
    // Draw the particle set
    for (int i = 0; i < NUMBER_OF_PARTICLES; i++)
    {
        drawPosition(xArray[i], yArray[i]);
    }

}
Пример #3
0
void Render::draw(DrawVariables* dw)
{
	if (m_engine == nullptr)
		return;
	drawBoard(dw, m_engine->getBoard().getRows(), m_engine->getBoard().getCols());
	drawPosition(dw);
	if (m_engine->getGameState() == GameState::GAME_OVER)
	{
		// draw the win line over the winners pieces
		static const std::map<WinDir, Coordinate> s_winDir{ { WinDir::EAST, {0,1} }, { WinDir::SOUTH, {1,0} },
			{ WinDir::SOUTH_EAST, {1,1} }, { WinDir::SOUTH_WEST, {1,-1} } };
		PosInfo winInfo = m_engine->getGameOverInfo();
		Coordinate coordStart, coordEnd;
		coordStart = winInfo.winpos;
		coordEnd = { coordStart.x + s_winDir.at(winInfo.windir).x * (m_engine->getWinRowLenght() - 1),
					 coordStart.y + s_winDir.at(winInfo.windir).y * (m_engine->getWinRowLenght() - 1) };
		drawWinLine(dw, coordStart, coordEnd);
	}
}
Пример #4
0
    void ImageLabel::paintEvent(QPaintEvent *event)
    {
        QWidget::paintEvent(event);

        if(mPixmap.isNull())
            return;

        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing);

        QSize pixmapSize = mPixmap.size();
        pixmapSize.scale(event->rect().size(), Qt::KeepAspectRatio);

        QPixmap scaledPixmap = mPixmap.scaled(pixmapSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
        QPoint drawPosition(event->rect().width() / 2 - scaledPixmap.width() / 2,
                            event->rect().height() / 2 - scaledPixmap.height() / 2);

        painter.drawPixmap(drawPosition, scaledPixmap);
    }
Пример #5
0
void Constraint::draw()
{
   if (m_scanConstraint) {
      m_color = s_scanColor;
   }else if (satisfied()) {
      m_color = s_satisfiedColor;
   }else {
      m_color = s_unsatisfiedColor;
   }

   glColor3fv(m_color);

   switch (m_type) {
      case Invalid:                    break;
      case Position:  drawPosition();  break;
      case Distance:  drawDistance();  break;
      case Angle:     drawAngle();     break;
      case Torsion:   drawTorsion();   break;
   }
}
Пример #6
0
GameState Menu::Run() {
    FPS_Initial();
    running = true;
    bKeyUP = bKeyDOWN = bKeyENTER = bKeyESCAPE = false;
    state = GameState::menu;

    while (running) {
        aTick++;

        handleEvent();
        SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 60, 60));
        for (int i = 0; i < positions.size(); i++) {
            drawPosition(positions[i], i);
        }

        FPS_Fn();
        SDL_Flip(screen);
    }

    return state;
}
Пример #7
0
// Functions that draw on the screen
void forward40cmdraw()
{
  double lastMotorValue = 0;
  double distanceMoved = 0;
  double currentDistance;
  nSyncedMotors = synchAB;
  nSyncedTurnRatio = 100;
  nMotorEncoder[motorA] = 0;
    motor[motorA] = motorPower;
  while(nMotorEncoder[motorA] < wheelMoveLimit)
  {
    currentDistance = nMotorEncoder[motorA];
    distanceMoved = currentDistance - lastMotorValue;
    x = x + distanceMoved * cos(theta);
    y = y + distanceMoved * sin(theta);

    drawPosition();
    lastMotorValue = currentDistance;
  }
  motor[motorA] = 0;  // turn the motors off.


}
bool UKinect::pollSkeleton() {
  if (NULL != sensor) {
    //
    // Attempt to get the color frame
    hr = sensor->NuiSkeletonGetNextFrame(0, &skeletonFrame);
    if (FAILED(hr)) {
      cerr << "[UKinect] WARNING: Skeleton pool." << endl;
      return false;
    }
    //
    // smooth out the skeleton data
    if (skeletonFilter.as<int>() == 0) {
      //sensor->NuiTransformSmooth(&skeletonFrame, NULL);
    } else if (skeletonFilter.as<int>() == 1) {
      //const NUI_TRANSFORM_SMOOTH_PARAMETERS DefaultParams = {0.5f, 0.5f, 0.5f, 0.05f, 0.04f};
      sensor->NuiTransformSmooth(&skeletonFrame, NULL);
    } else if (skeletonFilter.as<int>() == 2) {
      const NUI_TRANSFORM_SMOOTH_PARAMETERS SomewhatLatentParams = { 0.5f, 0.1f, 0.5f, 0.1f, 0.1f };
      sensor->NuiTransformSmooth(&skeletonFrame, &SomewhatLatentParams);
    } else {
      const NUI_TRANSFORM_SMOOTH_PARAMETERS VerySmoothParams = { 0.7f, 0.3f, 1.0f, 1.0f, 1.0f };
      sensor->NuiTransformSmooth(&skeletonFrame, &VerySmoothParams);
    }
    //
    // process skeleton frame if interaction function enabled
    if (interaction) {
      Vector4 v;
      sensor->NuiAccelerometerGetCurrentReading(&v);
      hr = interactionStream->ProcessSkeleton(NUI_SKELETON_COUNT,
        skeletonFrame.SkeletonData,
        &v,
        skeletonFrame.liTimeStamp);
      if (FAILED(hr)) {
        cerr << "[UKinect] ERROR: Process skeleton failed (for interaction purpose)." << endl;
        return false;
      }
    }


    vector<int> skelIDs;

    // these are used in face tracking
    vector<int> skelTrackedIDs = UpdateTrackedSkeletons();   // << use this to set tracked

    for (int i = 0; i < NUI_SKELETON_COUNT; ++i) {
      NUI_SKELETON_TRACKING_STATE trackingState = skeletonFrame.SkeletonData[i].eTrackingState;
      if (NUI_SKELETON_POSITION_ONLY == trackingState) skelIDs.push_back((int)skeletonFrame.SkeletonData[i].dwTrackingID);
    }

    // Save vectors to UVars
    skeletonIDs = skelIDs;
    skeletonTrackedIDs = skelTrackedIDs;

    if (skeletonVisualization) {

      DWORD t_width, t_height;
      NuiImageResolutionToSize((NUI_IMAGE_RESOLUTION)colorResolution.as<int>(), t_width, t_height);

      if
        ((color) && (skeletonVisualizationOnColor.as<int>())) skeletonCVMat = colorCVMat.clone(); // use color image as a background if color function enabled
      else
        skeletonCVMat = Mat(Size(static_cast<int>(t_width), static_cast<int>(t_height)), CV_8UC3, CV_RGB(0, 0, 0));

      for (int i = 0; i < NUI_SKELETON_COUNT; ++i) {
        NUI_SKELETON_TRACKING_STATE trackingState = skeletonFrame.SkeletonData[i].eTrackingState;

        if (NUI_SKELETON_TRACKED == trackingState) {
          // We're tracking the skeleton, draw it
          drawSkeleton(skeletonFrame.SkeletonData[i]);
          drawPosition(skeletonFrame.SkeletonData[i]);
        } else if (NUI_SKELETON_POSITION_ONLY == trackingState) {
          // we've only received the center point of the skeleton, draw that
          drawPosition(skeletonFrame.SkeletonData[i]);
        }

        drawOutOfFrame(skeletonFrame.SkeletonData[i]);
      }

      // Save CV image to UImage
      skeletonBin.image.width = skeletonCVMat.cols;
      skeletonBin.image.height = skeletonCVMat.rows;
      skeletonBin.image.size = skeletonCVMat.cols * skeletonCVMat.rows * 3;
      skeletonBin.image.data = skeletonCVMat.data;
      skeletonImage = skeletonBin;
    }

    return true;

  }
  cerr << "[UKinect] ERROR: Skeleton pool error." << endl;
  return false;
}
Пример #9
0
void ReportPrintSetting::SetReportForm(QPainter &painter)
{
    //title
    drawPosition(Title,"TCD检查报告单",painter,TEXT,"",25,"SimSun",true);
    //basic info
    drawPosition(Splitter1,"",painter,SPLITTER,"");
    drawPosition(BasicInfoTitle,"基本信息",painter,TEXT,"",15,"SimSun",true);
    drawPosition(MedRecordNo,"病历号:",painter);
    drawPosition(AdmissionNo,"住院号:",painter);
    drawPosition(CheckDate,"检查日期:",painter);
    drawPosition(PatientName,"姓名:",painter);
    drawPosition(Gender,"性别:",painter);
    drawPosition(Age,"年龄:",painter);
    drawPosition(Height,"身高:",painter);
    drawPosition(Weight,"体重:",painter);

    //TCD Screen shot
    drawPosition(TcdTitle,"TCD数据",painter,TEXT,"",15,"SimSun",true);
    drawPosition(Splitter2,"",painter,SPLITTER,"");

//    //TCD Data
//    drawPosition(VesselNameOne,"血管名:",painter,WIDGET,"",15,"SimSun",true);

    //    drawPosition(VesselNameOne,"血管名:",painter);
    //    drawPosition(DataMeanOne,"Mean:",painter);
    //    drawPosition(DataPeakOne,"Peak:",painter);
    //    drawPosition(DataEdvOne,"EDV:",painter);
    //    drawPosition(DataPiOne,"PI:",painter);
    //    drawPosition(DataRiOne,"RI:",painter);
    //    drawPosition(DataSdOne,"S/D:",painter);
    //    drawPosition(DataHrOne,"HR:",painter);

    //    drawPosition(VesselNameTwo,"血管名:",painter);
    //    drawPosition(DataMeanTwo,"Mean:",painter);
    //    drawPosition(DataPeakTwo,"Peak:",painter);
    //    drawPosition(DataEdvTwo,"EDV:",painter);
    //    drawPosition(DataPiTwo,"PI:",painter);
    //    drawPosition(DataRiTwo,"RI:",painter);
    //    drawPosition(DataSdTwo,"S/D:",painter);
    //    drawPosition(DataHrTwo,"HR:",painter);

    //    drawPosition(VesselNameThree,"血管名:",painter);
    //    drawPosition(DataMeanThree,"Mean:",painter);
    //    drawPosition(DataPeakThree,"Peak:",painter);
    //    drawPosition(DataEdvThree,"EDV:",painter);
    //    drawPosition(DataPiThree,"PI:",painter);
    //    drawPosition(DataRiThree,"RI:",painter);
    //    drawPosition(DataSdThree,"S/D:",painter);
    //    drawPosition(DataHrThree,"HR:",painter);

    //    drawPosition(VesselNameFour,"血管名:",painter);
    //    drawPosition(DataMeanFour,"Mean:",painter);
    //    drawPosition(DataPeakFour,"Peak:",painter);
    //    drawPosition(DataEdvFour,"EDV:",painter);
    //    drawPosition(DataPiFour,"PI:",painter);
    //    drawPosition(DataRiFour,"RI:",painter);
    //    drawPosition(DataSdFour,"S/D:",painter);
    //    drawPosition(DataHrFour,"HR:",painter);

    drawPosition(Splitter3,"",painter,SPLITTER,"");
    drawPosition(DiagnoseTitle,"医生诊断",painter,TEXT,"",15,"SimSun",true);
    drawPosition(Signature,"负责医师:",painter);

    QString notice= "此报告仅供临床医生参考,不作证明使用";
    drawPosition(Notice,notice,painter);
}
Пример #10
0
void ReportPrintSetting::SetReportContent(QPainter &painter)
{ 
    //basic info
    QString recordNO =  m_patientTracker->Data().patient.strChartNumber;
    QString admissionNO = m_patientTracker->Data().patient.strAdmissionNumber;
    QString checkDate = m_patientTracker->Data().patient.strDate;

    QString patientName = m_patientTracker->Data().patient.strName;
    QString gender = m_patientTracker->Data().patient.strGender;
    int age = m_patientTracker->Data().patient.nAge;
    qreal height  = m_patientTracker->Data().patient.qHeight;
    qreal weight  = m_patientTracker->Data().patient.qWeight;

    drawPosition(MedRecordContent,recordNO,painter);
    drawPosition(AdmissionContent,admissionNO,painter);
    drawPosition(CheckDateContent,checkDate,painter);

    drawPosition(NameContent,patientName,painter);
    drawPosition(GenderContent,gender,painter);
    drawPosition(AgeContent,QString::number(age),painter);

    drawPosition(HeightContent,QString::number(height),painter);
    drawPosition(WeightContent,QString::number(weight),painter);

    //tcd data
    QString img[IMGCOUNTS];
    QString vessel[IMGCOUNTS];
    QString mean[IMGCOUNTS];
    QString peak[IMGCOUNTS];
    QString edv[IMGCOUNTS];
    QString pi[IMGCOUNTS];
    QString ri[IMGCOUNTS];
    QString sd[IMGCOUNTS];
    QString hr[IMGCOUNTS];
    QString filePath = m_patientTracker->GetPatientFolderPath();
    for( int i=0; i<IMGCOUNTS; i++)
    {
        img[i] = filePath+"/"+m_patientTracker->Data().data[i].pictureName;
        vessel[i]  = m_patientTracker->Data().data[i].name;
        mean[i] = QString::number(m_patientTracker->Data().data[i].qMean);
        peak[i] = QString::number(m_patientTracker->Data().data[i].qPeak);
        edv[i] = QString::number(m_patientTracker->Data().data[i].qEDV);
        pi[i] = QString::number(m_patientTracker->Data().data[i].qPI);
        ri[i] = QString::number(m_patientTracker->Data().data[i].qRI);
        sd[i] = QString::number(m_patientTracker->Data().data[i].qSD);
        hr[i] = QString::number(m_patientTracker->Data().data[i].qHR);

        //tcd data
        //        drawPosition(VesselValueOne+8*i,vessel[i],painter);
        //        drawPosition(MeanValueOne+8*i,mean[i],painter);
        //        drawPosition(PeakValueOne+8*i,peak[i],painter);
        //        drawPosition(EdvValueOne+8*i,edv[i],painter);
        //        drawPosition(PIValueOne+8*i,pi[i],painter);
        //        drawPosition(RIValueOne+8*i,ri[i],painter);
        //        drawPosition(SDValueOne+8*i,sd[i],painter);
        //        drawPosition(HRValueOne+8*i,hr[i],painter);
        m_tableModel->setItem(i,0,new QStandardItem(vessel[i]));
        m_tableModel->setItem(i,1,new QStandardItem(mean[i]));
        m_tableModel->setItem(i,2,new QStandardItem(peak[i]));
        m_tableModel->setItem(i,3,new QStandardItem(edv[i]));
        m_tableModel->setItem(i,4,new QStandardItem(pi[i]));
        m_tableModel->setItem(i,5,new QStandardItem(ri[i]));
        m_tableModel->setItem(i,6,new QStandardItem(sd[i]));
        m_tableModel->setItem(i,7,new QStandardItem(hr[i]));


        //drawPosition(ImgOne+i,"",painter,IMAGE,":/pic/test.png");
        drawPosition(ImgOne+i,"",painter,IMAGE,img[i]);
    }

    // diagnose

    QString content = m_patientTracker->Data().text.text;
    QString doctorName = m_patientTracker->Data().text.name;
    drawPosition(DiagnoseContent,content,painter,TEXT,"",13,"",false);
    drawPosition(SignatureContent,doctorName,painter);

    //TCD Data
    drawPosition(VesselNameOne,"血管名:",painter,WIDGET,"",15,"SimSun",true);

}
Пример #11
0
void draw()
{
	drawMap();
	drawPosition(x, y);
	drawParticles();
}
Пример #12
0
inline Drop Lake::createDrop(unsigned int time) const {
  return Drop(time, drawPosition());
}