Пример #1
0
void drawAxis() {
    // X (by y)
    glColor3f(1, 0, 0);
    drawLineY();
    
    //Y (by x)
    glColor3f(0, 1, 0);
    glPushMatrix();
        glRotatef(-90, 0, 0, 1);
        drawLineY();
    glPopMatrix();
    
    //Z (by XY)
    glColor3f(0.2, 0.2, 1);
    glPushMatrix();
        glRotatef(-45, 0, 0, 1);
        glRotatef(90, 1, 0, 0);
        drawLineY();
    glPopMatrix();
}
Пример #2
0
// build a horizontal line: draw it and check for alignment
void SceneGridHandler::buildLineY(qreal deltaY
		, qreal pointY, qreal correctionY, qreal &myY1, qreal &myY2)
{
	if (deltaY > radius) {
		return;
	}

	if (mShowAlignment) {
		drawLineY(pointY);
	}
	if (makeJumpY(deltaY, pointY - correctionY)) {
		myY1 = recalculateY1();
		myY2 = recalculateY2(myY1);
	}
}
Пример #3
0
/*!
  Compute the Y-axis scanlines intersections of a polygon.

  \param polygon : Polygon composed by an array of lines.
  \param ID : ID of the polygon (has to be know when using queries).
  \param scanlines : Resulting intersections.
*/
void
vpMbScanLine::drawPolygonY(const std::vector<std::pair<vpPoint, unsigned int> > &polygon,
                  const int ID,
                  std::vector<std::vector<vpMbScanLineSegment> > &scanlines)
{
  if (polygon.size() < 2)
    return;

  if (polygon.size() == 2)
  {
    vpColVector p1, p2;
    createVectorFromPoint(polygon.front().first, p1, K);
    createVectorFromPoint(polygon.back().first, p2, K);

    drawLineY(p1,
              p2,
              makeMbScanLineEdge(polygon.front().first, polygon.back().first),
              ID,
              scanlines);
    return;
  }

  std::vector<std::vector<vpMbScanLineSegment> > local_scanlines;
  local_scanlines.resize(h);

  for(size_t i = 0 ; i < polygon.size() ; ++i)
  {
    vpColVector p1, p2;
    createVectorFromPoint(polygon[i].first, p1, K);
    createVectorFromPoint(polygon[(i + 1) % polygon.size()].first, p2, K);

    drawLineY(p1, p2, makeMbScanLineEdge(polygon[i].first, polygon[(i + 1) % polygon.size()].first), ID, local_scanlines);
  }

  createScanLinesFromLocals(scanlines,local_scanlines,h);
}