+ if (!theFeatureList.contains(aReferenced)) {
+ QStringList aValNames;
+ aValNames << QString::fromStdWString(aReferenced->data()->name());
+
+ std::string aId = aAttr->attributeType();
+ if (aId == ModelAPI_AttributeDouble::typeId()) {
+ AttributeDoublePtr aDouble =
+ std::dynamic_pointer_cast<ModelAPI_AttributeDouble>(aAttr);
+ aValNames << QString::fromStdWString(aDouble->text());
+ aValNames << QString::number(aDouble->value());
+ }
+ else if (aId == ModelAPI_AttributeInteger::typeId()) {
+ AttributeIntegerPtr aInt =
+ std::dynamic_pointer_cast<ModelAPI_AttributeInteger>(aAttr);
+ aValNames << QString::fromStdWString(aInt->text());
+ aValNames << QString::number(aInt->value());
+ }
+ else if (aId == GeomDataAPI_Point::typeId()) {
+ std::shared_ptr<GeomDataAPI_Point> aPnt =
+ std::dynamic_pointer_cast<GeomDataAPI_Point>(aAttr);
+
+ QString aExpr = QString("%1,%2,%3").arg(QString::fromStdWString(aPnt->textX())).
+ arg(QString::fromStdWString(aPnt->textY())).
+ arg(QString::fromStdWString(aPnt->textZ()));
+ aValNames << aExpr;
+
+ QString aRes = QString("%1,%2,%3").arg(aPnt->x()).arg(aPnt->y()).arg(aPnt->z());
+ aValNames << aRes;
+ }
+ else if (aId == GeomDataAPI_Point2D::typeId()) {
+ std::shared_ptr<GeomDataAPI_Point2D> aPnt =
+ std::dynamic_pointer_cast<GeomDataAPI_Point2D>(aAttr);
+
+ QString aExpr = QString("%1,%2").arg(QString::fromStdWString(aPnt->textX())).
+ arg(QString::fromStdWString(aPnt->textY()));
+ aValNames << aExpr;
+
+ QString aRes = QString("%1,%2").arg(aPnt->x()).arg(aPnt->y());
+ aValNames << aRes;
+ }
+ aItemsList.append(aValNames);
+ theFeatureList.append(aReferenced);