当前位置: 首页>>代码示例>>C++>>正文


C++ WorldObject::isGoalPost方法代码示例

本文整理汇总了C++中WorldObject::isGoalPost方法的典型用法代码示例。如果您正苦于以下问题:C++ WorldObject::isGoalPost方法的具体用法?C++ WorldObject::isGoalPost怎么用?C++ WorldObject::isGoalPost使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在WorldObject的用法示例。


在下文中一共展示了WorldObject::isGoalPost方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: drawRelativeObjects

// Only drawn in 2d at the moment
void LocalizationGL::drawRelativeObjects(WorldObjectBlock* gtObjects, WorldObjectBlock* beliefObjects, RobotStateBlock* robotState) {
  if (beliefObjects == NULL || robotState == NULL){
    //cout << "no wo or robotstate to draw seen objects" << endl;
    return;
  }

  WorldObject* wo;
  WorldObject* self = &(gtObjects->objects_[robotState->WO_SELF]);

  for (int i = 0; i < NUM_WORLD_OBJS; i++){
    wo = &(beliefObjects->objects_[i]);
    // if seen, get vision dist and bearing
    if (wo->seen){
      // use vision distance and bearing to figure out image loc
      AngRad orient = (self->orientation + wo->visionBearing);
      Point2D obsLocFd (wo->visionDistance, orient, POLAR);
      obsLocFd += self->loc;
      Vector3<float> start(self->loc.x, self->loc.y, 250);
      Vector3<float> end(obsLocFd.x, obsLocFd.y,250);
      if (wo->isOwnGoal() && wo->isGoalPost()) {
        drawObservationLine(start,end,Colors::Blue);
        objectsGL.drawPost(obsLocFd,0.25);
      } else if (wo->isOwnGoal() && !wo->isGoalPost()) {
        drawObservationLine(start,end,Colors::Blue);
        objectsGL.drawGoal(obsLocFd,0.25);
      } else if (wo->isBall()) {
        drawObservationLine(start,end,Colors::Orange);
        objectsGL.drawBall(obsLocFd,0.5);
      } else if (wo->isBeacon()) {
        vector<RGB> colors;
        switch(wo->type) {
          case WO_BEACON_BLUE_YELLOW: colors = { Colors::Blue, Colors::Yellow }; break;
          case WO_BEACON_YELLOW_BLUE: colors = { Colors::Yellow, Colors::Blue }; break;
          case WO_BEACON_BLUE_PINK: colors = { Colors::Blue, Colors::Pink }; break;
          case WO_BEACON_PINK_BLUE: colors = { Colors::Pink, Colors::Blue }; break;
          case WO_BEACON_PINK_YELLOW: colors = { Colors::Pink, Colors::Yellow }; break;
          case WO_BEACON_YELLOW_PINK: colors = { Colors::Yellow, Colors::Pink }; break;
        }
        drawObservationLine(start,end,Colors::White);
        objectsGL.drawBeacon(obsLocFd, colors[0], colors[1],0.25);
      /*
      } else if (wo->isIntersection() && !wo->isUnknownIntersection()){
        drawObservationLine(start,end,Colors::White);
        objectsGL.drawIntersection(obsLocFd,0.5);
      } else if (wo->isLine() || wo->isUnknownLine()) {
        Point2D closest = wo->visionLine.relativeToGlobal(self->loc, self->orientation).getPointOnSegmentClosestTo(self->loc);
        drawObservationLine(start,Vector3<float>(closest.x, closest.y, 250),Colors::White);
        objectsGL.drawLinePoint(closest,0.5);
        //draw the line segment
        // unknown - black
        if (wo->isUnknownLine())
          basicGL.colorRGBAlpha(Colors::Black,1.0);
        // known - red
        else
          basicGL.colorRGBAlpha(Colors::Red,1.0);
        Point2D sP=wo->visionPt1;
        Point2D eP=wo->visionPt2;
        sP=sP.relativeToGlobal(self->loc,self->orientation);
        eP=eP.relativeToGlobal(self->loc,self->orientation);
        basicGL.drawLine(sP,eP,2.0);
      } else if (wo->isUnknownIntersection()) {
        drawObservationLine(start,end,Colors::Pink);
        objectsGL.drawIntersection(obsLocFd,0.5);
      } else if (wo->isCenterCircle()){
        // draw center cirlce
        drawObservationLine(start,end,Colors::White);
        objectsGL.drawCenterCircle(obsLocFd,0.5);
      } else if (wo->isUnknownPenaltyCross() || wo->isKnownPenaltyCross()){
        // draw penalty cross
        drawObservationLine(start,end,Colors::White);
        objectsGL.drawPenaltyCross(obsLocFd,0.5);
      */
      }
    }
  }
}
开发者ID:willxie,项目名称:GeneParmesan,代码行数:77,代码来源:LocalizationGL.cpp

示例2: drawRelativeObjects

// Only drawn in 2d at the moment
void LocalizationGL::drawRelativeObjects(WorldObjectBlock* worldObjects, RobotStateBlock* robotState) {
  if (worldObjects == NULL || robotState == NULL){
    //cout << "no wo or robotstate to draw seen objects" << endl;
    return;
  }

  WorldObject* wo;
  WorldObject* self = &(worldObjects->objects_[robotState->WO_SELF]);

  for (int i = 0; i < NUM_WORLD_OBJS; i++){
    wo = &(worldObjects->objects_[i]);
    // if seen, get vision dist and bearing
    if (wo->seen){
      // use vision distance and bearing to figure out image loc
      AngRad orient = (self->orientation + wo->visionBearing);
      Point2D obsLocFd (wo->visionDistance, orient, POLAR);
      obsLocFd += self->loc;
      Vector3<float> start(self->loc.x, self->loc.y, 250);
      Vector3<float> end(obsLocFd.x, obsLocFd.y,250);
      if (wo->isGoal() && wo->isGoalPost()) {
        drawObservationLine(start,end,basicGL.yellowRGB);
        objectsGL.drawYellowPost(obsLocFd,0.25);
      } else if (wo->isGoal() && !wo->isGoalPost()) {
        drawObservationLine(start,end,basicGL.yellowRGB);
        objectsGL.drawYellowGoal(obsLocFd,0.25);
      } else if (wo->isUnknownIntersection()) {
        end.z=0.0;
        drawObservationLine(start,end,basicGL.pinkRGB);
        objectsGL.drawIntersection(obsLocFd,0.5);
      } else if (wo->isIntersection() && !wo->isUnknownIntersection()){
        end.z=0.0;
        drawObservationLine(start,end,basicGL.whiteRGB);
        objectsGL.drawIntersection(obsLocFd,0.5);
      } else if (wo->isLine() || wo->isUnknownLine()) {
        end.z=0.0;
        drawObservationLine(start,end,basicGL.whiteRGB);
        objectsGL.drawLinePoint(obsLocFd,0.5);
        //draw the line segment
        // unknown - black
        if (wo->isUnknownLine())
          basicGL.colorRGBAlpha(basicGL.blackRGB,1.0);
        // known - red
        else
          basicGL.colorRGBAlpha(basicGL.redRGB,1.0);
        Point2D sP=wo->visionPt1;
        Point2D eP=wo->visionPt2;
        sP=sP.relativeToGlobal(self->loc,self->orientation);
        eP=eP.relativeToGlobal(self->loc,self->orientation);
        basicGL.drawLine(sP,eP,2.0);
      } else if (wo->isBall()) {
        end.z=BALL_RADIUS;
        drawObservationLine(start,end,basicGL.orangeRGB);
        objectsGL.drawBall(obsLocFd,0.5);
      } else if (wo->isCenterCircle()){
        // draw center cirlce
        end.z = 0.0;
        drawObservationLine(start,end,basicGL.whiteRGB);
        objectsGL.drawCenterCircle(obsLocFd,0.5);
      } else if (wo->isUnknownPenaltyCross() || wo->isKnownPenaltyCross()){
        // draw penalty cross
        end.z = 0.0;
        drawObservationLine(start,end,basicGL.whiteRGB);
        objectsGL.drawPenaltyCross(obsLocFd,0.5);
      }
    }
  }
}
开发者ID:pxcheng526,项目名称:cs393r-robots,代码行数:68,代码来源:LocalizationGL.cpp


注:本文中的WorldObject::isGoalPost方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。