Example #1
0
void VO2Controller::render(HGE * hge)
{		
	Mover::Driver::render(hge);
	float size = 5 * mover->getMaster()->getSphereSize();
	Pose pose = mover->getGlobalPose();
	for(auto it=obstacles.begin();it!=obstacles.end();++it)
	{
		VelocityObstacle vo(pose.getPosition(),size,it->first.getPosition(0),it->second,it->first.velocity);		
		drawVO(hge,vo, size, 10);
	}

	drawRays(hge, pose.getPosition(), rays);
//	
//	//for(auto it=segments.begin();it!=segments.end();++it)
//	//	drawArc(object->position,object->maxVelocity*1.1,*it);	
}
Example #2
0
void AudioReflector::render() {

    // if we're not set up yet, or we're not processing spatial audio, then exit early
    if (!_myAvatar || !_audio->getProcessSpatialAudio()) {
        return;
    }

    // use this oportunity to calculate our reflections
    calculateAllReflections();
    
    // only render if we've been asked to do so
    bool renderPaths = false; // Menu::getInstance()->isOptionChecked(MenuOption::AudioSpatialProcessingRenderPaths)
    if (renderPaths) {
        drawRays();
    }
}
Example #3
0
void DebuggingView::draw()
{
    if (!valid())
    {
        glShadeModel( GL_SMOOTH );
        glEnable( GL_DEPTH_TEST );
        glEnable( GL_LIGHTING );
		glEnable( GL_LIGHT0 );
        glEnable( GL_LIGHT1 );
		glEnable( GL_NORMALIZE );
    }

  	glViewport( 0, 0, w(), h() );
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluPerspective(30.0,-float(w())/float(h()),1.0,100.0);
				
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    
	
	m_camera->applyViewingTransform();

	// Need to apply an extra transform so that our camera 'approximately'
	// lines up with the scene camera, initially, and to correct for our 
	// definition of "up."
	{
		Vec3d uAxis = raytracer->getScene().getCamera().getU();
		Vec3d vAxis = raytracer->getScene().getCamera().getV();
		Vec3d wAxis = uAxis ^ vAxis;
		uAxis = wAxis ^ vAxis;

		uAxis.normalize();
		vAxis.normalize();
		wAxis.normalize();

		GLdouble rotMat[16];
		rotMat[0] = uAxis[0];
		rotMat[1] = vAxis[0];
		rotMat[2] = wAxis[0];
		rotMat[3] = 0.0;
		rotMat[4] = uAxis[1];
		rotMat[5] = vAxis[1];
		rotMat[6] = wAxis[1];
		rotMat[7] = 0.0;
		rotMat[8] = uAxis[2];
		rotMat[9] = vAxis[2];
		rotMat[10] = wAxis[2];
		rotMat[11] = 0.0;
		rotMat[12] = 0.0;
		rotMat[13] = 0.0;
		rotMat[14] = 0.0;
		rotMat[15] = 1.0;

		glMultMatrixd( rotMat );
	}
	

	if( m_showAxes )
		drawAxes();

	if( raytracer == 0 || !raytracer->sceneLoaded() )
		return;

	if( m_showLights )
		drawLights();

	if( m_showGeometry )
	{
		lightScene();
		drawScene();
	}

	drawRays();

	if( m_showCamera )
		drawCamera();
}
/*!
  Draw the grid and axes

  \param painter Painter
  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
  \param radialMap Maps radius values into painter coordinates.
  \param pole Position of the pole in painter coordinates
  \param radius Radius of the complete plot area in painter coordinates
  \param canvasRect Contents rect of the canvas in painter coordinates
*/
void QwtPolarGrid::draw( QPainter *painter,
                         const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
                         const QwtDoublePoint &pole, double radius,
                         const QwtDoubleRect &canvasRect ) const
{
  updateScaleDraws( azimuthMap, radialMap, pole, radius );

  painter->save();

  if ( testDisplayFlag( ClipAxisBackground ) )
  {
    QRegion clipRegion( canvasRect.toRect() );
    for ( int axisId = 0; axisId < QwtPolar::AxesCount; axisId++ )
    {
      const AxisData &axis = d_data->axisData[axisId];
      if ( axisId != QwtPolar::AxisAzimuth && axis.isVisible )
      {
        QwtScaleDraw *scaleDraw = ( QwtScaleDraw * )axis.scaleDraw;
        if ( scaleDraw->hasComponent( QwtScaleDraw::Labels ) )
        {
          const QwtValueList &ticks =
            scaleDraw->scaleDiv().ticks( QwtScaleDiv::MajorTick );
          for ( int i = 0; i < int( ticks.size() ); i++ )
          {
            QRect labelRect =
              scaleDraw->boundingLabelRect( axis.font, ticks[i] );

            const int margin = 2;
            labelRect.setRect(
              labelRect.x() - margin,
              labelRect.y() - margin,
              labelRect.width() + 2 * margin,
              labelRect.height() + 2 * margin
            );

            if ( labelRect.isValid() )
              clipRegion -= QRegion( labelRect );
          }
        }
      }
    }
    painter->setClipRegion( clipRegion );
  }

  //  draw radial grid

  const GridData &radialGrid = d_data->gridData[QwtPolar::Radius];
  if ( radialGrid.isVisible && radialGrid.isMinorVisible )
  {
    painter->setPen( radialGrid.minorPen );

    drawCircles( painter, canvasRect, pole, radialMap,
                 radialGrid.scaleDiv.ticks( QwtScaleDiv::MinorTick ) );
    drawCircles( painter, canvasRect, pole, radialMap,
                 radialGrid.scaleDiv.ticks( QwtScaleDiv::MediumTick ) );
  }
  if ( radialGrid.isVisible )
  {
    painter->setPen( radialGrid.majorPen );

    drawCircles( painter, canvasRect, pole, radialMap,
                 radialGrid.scaleDiv.ticks( QwtScaleDiv::MajorTick ) );
  }

  // draw azimuth grid

  const GridData &azimuthGrid =
    d_data->gridData[QwtPolar::Azimuth];

  if ( azimuthGrid.isVisible && azimuthGrid.isMinorVisible )
  {
    painter->setPen( azimuthGrid.minorPen );

    drawRays( painter, canvasRect, pole, radius, azimuthMap,
              azimuthGrid.scaleDiv.ticks( QwtScaleDiv::MinorTick ) );
    drawRays( painter, canvasRect, pole, radius, azimuthMap,
              azimuthGrid.scaleDiv.ticks( QwtScaleDiv::MediumTick ) );
  }
  if ( azimuthGrid.isVisible )
  {
    painter->setPen( azimuthGrid.majorPen );

    drawRays( painter, canvasRect, pole, radius, azimuthMap,
              azimuthGrid.scaleDiv.ticks( QwtScaleDiv::MajorTick ) );
  }
  painter->restore();

  for ( int axisId = 0; axisId < QwtPolar::AxesCount; axisId++ )
  {
    const AxisData &axis = d_data->axisData[axisId];
    if ( axis.isVisible )
    {
      painter->save();
      drawAxis( painter, axisId );
      painter->restore();
    }
  }
}