// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
void AxisAngleWidget::valuesUpdated(const QString &text)
{
  QVector<double> values = getValues();

  if(values[0] == 0.0 && values[1] == 0.0 && values[2] == 0)
  {
    return;
  }

  if (m_AngleMeasurement == Degrees)
  {
    double degVal = values[3];
    double radVal = degVal * SIMPLib::Constants::k_DegToRad;
    values[3] = radVal;
  }

  // Always normalize the axis vector
  Eigen::Vector3d axis(values[0], values[1], values[2]);
  axis.normalize();
  values[0] = axis[0];
  values[1] = axis[1];
  values[2] = axis[2];

  emit clearErrorTable();
  int errorCode = 0;
  std::stringstream ss;
  ss << "Axis Angle values were normalized. Actual values used for the calculation are: ";
  ss << "<" << values[0] << ", " << values[1] << ", " << values[2] << "> " << values[3];


  emit invalidValues(errorCode, QString::fromStdString(ss.str()));

  OrientationTransforms<QVector<double>, double>::ResultType result = OrientationTransforms<QVector<double>, double>::ax_check(values);
  errorCode = result.result;
  QString errorMsg = QString::fromStdString(result.msg);

  if (errorCode >= 0)
  {
    emit valuesChanged(values, OrientationConverter<double>::AxisAngle, false);
  }
  else
  {
    emit valuesChanged(QVector<double>(), OrientationConverter<double>::AxisAngle, true);
    emit invalidValues(errorCode, errorMsg);
  }
}
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
void CubochoricWidget::valuesUpdated(const QString &text)
{
  QVector<double> values = getValues();
  OrientationTransforms<QVector<double>, double>::ResultType result = OrientationTransforms<QVector<double>, double>::cu_check(values);
  int errorCode = result.result;
  QString errorMsg = QString::fromStdString(result.msg);

  emit clearErrorTable();

  if (errorCode >= 0)
  {
    emit valuesChanged(values, OrientationConverter<double>::Cubochoric, false);
  }
  else
  {
    emit valuesChanged(QVector<double>(), OrientationConverter<double>::Cubochoric, true);
    emit invalidValues(errorCode, errorMsg);
  }
}
Пример #3
0
void FsckDB::init(bool clearDB)
{
   if ( clearDB )
   {
      // delete the database files if they exist
      bool rmRes = DatabaseTk::removeDatabaseFiles(databasePath);

      if ( !rmRes )
         throw FsckDBException("Could not delete existing database files.");
   }
   else
   {
      // if we keep an old database, we need to clear the stored errors in there
      size_t arraySize = sizeof(__FsckErrorCodes) / sizeof(__FsckErrorCodes[0]);
      for ( size_t i = 0; i < arraySize; i++ )
      {
         clearErrorTable(__FsckErrorCodes[i].errorCode);
      }
   }

   this->createTables();
}