Пример #1
0
//! prepares to read from the given variable
void BasicVolumeFileImpl::prepareToRead(unsigned int variable)
{
	if (m_CurrentlyActiveVariable!=variable) { 
		m_CurrentlyActiveVariable = variable;
		protectedSetPosition(variable, m_PositionTimeSteps[variable], m_PositionOffsets[variable]);
	}
}
  void
  OdometryImpl::updatePosition(const Miro::PositionIDL& dPos) throw()
  {
    PositionIDL robot;
    Guard guard(mutex_);
    robot.point.x = status_.position.point.x + dPos.point.x;
    robot.point.y = status_.position.point.y + dPos.point.y;
    robot.heading = status_.position.heading + dPos.heading;

    protectedSetPosition(robot);
  }
Пример #3
0
//! Sets the position of the next read. Each variable has its own position.
bool BasicVolumeFileImpl::setPosition(unsigned int variable, unsigned int timeStep, Q_ULLONG offset)
{
	if (timeStep>=m_NumTimeSteps || variable>=m_NumVariables) {
		return false;
	}

	// do we need to perform an actual set?
	if (m_CurrentlyActiveVariable!=variable || 
		m_PositionTimeSteps[variable]!=timeStep || 
		m_PositionOffsets[variable]!=offset) {

		m_CurrentlyActiveVariable = variable;
		m_PositionTimeSteps[variable] = timeStep;
		m_PositionOffsets[variable] = offset;

		return protectedSetPosition(variable, timeStep, offset);
	}
	else {
		return true;
	}
}
 void
 OdometryImpl::setPosition(const PositionIDL& pos) throw()
 {
   Guard guard(mutex_);
   protectedSetPosition(pos);
 }