Пример #1
0
CMatrix CMatrix::getSubMatrix( int iStartRow, int iStartCol, int iEndRow, int iEndCol ) const
{
    CMatrix TmpMatrix;

    if(!isIndexValid(iStartRow, iStartCol) || !isIndexValid(iEndRow, iEndCol) || iStartRow > iEndRow || iStartCol > iEndCol)
        return TmpMatrix;

    TmpMatrix.init(iEndRow-iStartRow+1, iEndCol-iStartCol+1);

    for (int i = iStartRow, it=0; i <= iEndRow; i++,it++)
        TmpMatrix.setRow(it, &m_ppfMatrix[i][iStartCol], iEndCol-iStartCol+1);

    return TmpMatrix;
}
Пример #2
0
const float* CMatrix::getRowPtr( int iRow ) const
{
    if(!isIndexValid(iRow, 0))
        return 0;

    return m_ppfMatrix[iRow];
}
Пример #3
0
/*!
  Returns the value of an entry with given \a index.

  \sa key, state, indexOf
  */
QString CcfConfigData::value(int index)
{
    if (isIndexValid(index))
        return mConfigValues.at(index);
    else
        return QString();
}
Пример #4
0
/*!
  Returns the state of an entry with given \a index.

  \sa key, value, indexOf
  */
bool CcfConfigData::state(int index)
{
    if (isIndexValid(index))
        return mConfigStates.at(index);
    else
        return false;
}
Пример #5
0
/*!
  Returns the key for a given \a index.

  \sa value, state, indexOf
  */
QString CcfConfigData::key(int index)
{
    if (isIndexValid(index))
        return mConfigKeys.at(index);
    else
        return QString();
}
Пример #6
0
QVariant CheckTableModel::data(const QModelIndex & index,
   int role) const
{
   if (!index.isValid())
      return QVariant();
   
   if (!isIndexValid(index.row(), index.column()))
      return QVariant();

   QVariant value = table_.at(index.row()).at(index.column());
   
   if (role == Qt::CheckStateRole && 
      def_.at(index.column()).type() == QVariant::Bool)
   {
      bool b = value.toBool();
      if (b)
         return QVariant(Qt::Checked);

      return QVariant(Qt::Unchecked);
   }

   if (role == Qt::DisplayRole && 
      def_.at(index.column()).type() != QVariant::Bool)
   {
      return value;
   }

   return QVariant();
}
Пример #7
0
float CMatrix::getVectorNorm( int iRow /*= -1*/, int iCol /*= -1*/, int p /*= 1*/ ) const
{
    float fResult = 0;
    assert ((isIndexValid(0, iCol) || isIndexValid(iRow, 0)) || (p > 0));

    if (p == 1)
    {
        if (iRow >= 0)
        {
            fResult = CUtil::sum(m_ppfMatrix[iRow], m_aiMatrixDimensions[kCol], true);
        }
        else if (iCol >= 0)
        {
            for (int i = 0; i < m_aiMatrixDimensions[kRow]; i++)
                fResult += abs(m_ppfMatrix[i][iCol]);
        }
    }
    else if (p == 2)
    {
        if (iRow >= 0)
        {
            fResult = CUtil::mulBuffScalar(m_ppfMatrix[iRow], m_ppfMatrix[iRow], m_aiMatrixDimensions[kCol]);
        }
        else if (iCol >= 0)
        {
            for (int i = 0; i < m_aiMatrixDimensions[kRow]; i++)
                fResult += m_ppfMatrix[i][iCol] * m_ppfMatrix[i][iCol];
        }
        fResult = sqrt(fResult);
    }
    else 
    {
        if (iRow >= 0)
        {
            for (int j = 0; j < m_aiMatrixDimensions[kRow]; j++)
                fResult += pow(m_ppfMatrix[iRow][j], p);
        }
        else if (iCol >= 0)
        {
            for (int i = 0; i < m_aiMatrixDimensions[kRow]; i++)
                fResult += pow(m_ppfMatrix[i][iCol], p);
        }
        fResult = pow(fResult,1.F/p);
    }

    return fResult;
}
Пример #8
0
QVariant CheckTableModel::tableData(int row, int col) const
{
   if (isIndexValid(row, col))
   {  
      return table_.at(row).at(col);
   }
   return QVariant();
}
Пример #9
0
void CheckTableModel::deleteTableLine(const QModelIndex & idx)
{
   if (isIndexValid(idx.row(), idx.column()))
   {
      checked_.removeOne(idx);
      table_.removeAt(idx.row());
      emit layoutChanged();
   }
}
Пример #10
0
int ArgumentParser::parseArgument(int index, int & argument) {
    if (isIndexValid(index)) {
        sscanf(argv_[index], "%d", &argument);
    }
    else {
        return -1;
    }
    return 0; 
}
Пример #11
0
float        CMatrix::getElement (int iRow, int iCol) const
{
    if(!isIndexValid(iRow, iCol))
        return kMatrixIllegalFunctionParam;

    assert (m_ppfMatrix != 0);
    assert (m_ppfMatrix[iRow] != 0);

    return m_ppfMatrix[iRow][iCol];
}
Пример #12
0
CMatrix::MatrixError_t   CMatrix::getCol (int iCol, float *pfValues, int iNumOfValues) const
{
    if(!isIndexValid(0, iCol) || iNumOfValues != m_aiMatrixDimensions[kRow] || !pfValues)
        return kMatrixIllegalFunctionParam;

    assert (m_ppfMatrix != 0);

    for (int i = 0; i < iNumOfValues; i++)
        pfValues[i] = m_ppfMatrix[i][iCol];

    return kMatrixNoError;
}
Пример #13
0
CMatrix::MatrixError_t   CMatrix::setElement (int iRow, int iCol, float fValue)
{
    if(!isIndexValid(iRow, iCol))
        return kMatrixIllegalFunctionParam;

    assert (m_ppfMatrix != 0);
    assert (m_ppfMatrix[iRow] != 0);
    
    m_ppfMatrix[iRow][iCol] = fValue;

    return kMatrixNoError;
}
Пример #14
0
CMatrix::MatrixError_t   CMatrix::getRow (int iRow, float *pfValues, int iNumOfValues) const
{
    if(!isIndexValid(iRow, 0) || iNumOfValues != m_aiMatrixDimensions[kCol] || !pfValues)
        return kMatrixIllegalFunctionParam;

    assert (m_ppfMatrix != 0);
    assert (m_ppfMatrix[iRow] != 0);

    CUtil::copyBuff(pfValues, m_ppfMatrix[iRow], iNumOfValues);

    return kMatrixNoError;
}
Пример #15
0
int ArgumentParser::parseArgument(int index, char argument[], 
                                   int argumentSize) {
    if (isIndexValid(index)) {
        if ( strlen(argv_[index]) > static_cast<size_t>(argumentSize) ) {
            return -1;
        }
        else {
            strcpy(argument, argv_[index]);
        }
    }
    else {
        return -1;
    }
    return 0; 
}
Пример #16
0
QVariant OamDataModel::data(const QModelIndex& index, int role) const {
  if(isIndexValid(index) == false) return QVariant();

  if(role == Qt::DisplayRole) {
    const OamObject& obj = oamObject(index.row());

    switch(static_cast<Columns>(index.column())) {
      case ID:        return index.row();
      case SIZE:      return sizeStringOfObject(obj);
      case XPOS:      return obj.xpos;
      case YPOS:      return obj.ypos;
      case CHAR:      return obj.character + (obj.table << 8);
      case PRIORITY:  return obj.priority;
      case PALETTE:   return obj.palette;
      case FLIP:      return FLIP_STRINGS.at(obj.hFlip | (obj.vFlip << 1));
    }
  }
  else if(role == SortRole) {
    const OamObject& obj = oamObject(index.row());
    switch(static_cast<Columns>(index.column())) {
      case ID:        return index.row();
      case SIZE:      return obj.size;
      case XPOS:      return obj.xpos;
      case YPOS:      return obj.ypos;
      case CHAR:      return obj.character + (obj.table << 8);
      case PRIORITY:  return obj.priority;
      case PALETTE:   return obj.palette;
      case FLIP:      return obj.hFlip | (obj.vFlip << 1);
    }
  }
  else if(role == Qt::TextAlignmentRole) {
    switch(static_cast<Columns>(index.column())) {
      case ID:        return Qt::AlignRight;
      case SIZE:      return Qt::AlignHCenter;
      case XPOS:      return Qt::AlignRight;
      case YPOS:      return Qt::AlignRight;
      case CHAR:      return Qt::AlignRight;
      case PRIORITY:  return Qt::AlignRight;
      case PALETTE:   return Qt::AlignRight;
      case FLIP:      return Qt::AlignLeft;
    }
  }

  return QVariant();
}
Пример #17
0
bool CheckTableModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
   if (!index.isValid())
      return false;

   if (!isIndexValid(index.row(), index.column()))
      return false;

   if (role == Qt::EditRole || role == Qt::CheckStateRole)
   {
      QVariantList lst = table_.at(index.row());
      lst[index.column()] = value;
      table_[index.row()] = lst;
      
      bool b = value.toBool();
      if (b)
         checked_.append(index);
      else
         checked_.removeOne(index);
   }
   return true;
}
Пример #18
0
bool TrajectoryChecker::isPoseValid(const PlanarPose &pose) const
{
    PlanarGridIndex idx(0,0);
    invalid_cells_->worldToMap(pose.getX(), pose.getY(), idx);
    return isIndexValid(idx);
}
Пример #19
0
int OamDataModel::objectId(const QModelIndex& index) const {
  if(isIndexValid(index) == false) return -1;
  return index.row();
}
Пример #20
0
/*!
  Replaces the value stored at \a index with \a newValue.

  Warning - state of the old entry is preserved!

  \sa insert
  */
void CcfConfigData::replace(int index, const QString &newValue)
{
    if (isIndexValid(index))
        mConfigValues.replace(index, newValue);
}
Пример #21
0
/*!
  Changes \a state of an entry identified by \a index.
  */
void CcfConfigData::changeState(int index, bool state)
{
    if (isIndexValid(index))
        mConfigStates.replace(index, state);
}