// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- void CopyAttributeArray::dataCheck() { setErrorCondition(0); if(m_NewArrayName.isEmpty() == true) { setErrorCondition(-11009); QString ss = QObject::tr("The new Attribute Array name must be set"); notifyErrorMessage(getHumanLabel(), ss, getErrorCondition()); return; } QString daName = getSelectedArrayPath().getDataArrayName(); IDataArray::Pointer dataArray = getDataContainerArray()->getPrereqIDataArrayFromPath<IDataArray, AbstractFilter>(this, getSelectedArrayPath()); if(getErrorCondition() < 0) { return; } DataArrayPath path(getSelectedArrayPath().getDataContainerName(), getSelectedArrayPath().getAttributeMatrixName(), ""); AttributeMatrix::Pointer attrMat = getDataContainerArray()->getAttributeMatrix(path); IDataArray::Pointer pNew = dataArray->deepCopy(); pNew->setName(m_NewArrayName); // Set the name of the array int32_t err = attrMat->addAttributeArray(m_NewArrayName, pNew); if (0 != err) { setErrorCondition(err); QString ss = QObject::tr("Attempt to copy Attribute Array '%1' to '%2' failed").arg(daName).arg(m_NewArrayName); notifyErrorMessage(getHumanLabel(), ss, getErrorCondition()); } }
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- AttributeMatrix::Pointer AttributeMatrix::deepCopy() { AttributeMatrix::Pointer newAttrMat = AttributeMatrix::New(getTupleDimensions(), getName(), getType()); for(QMap<QString, IDataArray::Pointer>::iterator iter = m_AttributeArrays.begin(); iter != m_AttributeArrays.end(); ++iter) { IDataArray::Pointer d = iter.value(); IDataArray::Pointer new_d = d->deepCopy(); if (new_d.get() == NULL) { return AttributeMatrix::NullPointer(); } newAttrMat->addAttributeArray(new_d->getName(), new_d); } return newAttrMat; }