Skip to content
Snippets Groups Projects
Commit 8bac253e authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

ParticleItem's position is refactored to get rid from FixedGroupProperty

parent 34e19a7e
No related branches found
No related tags found
No related merge requests found
......@@ -680,10 +680,11 @@ void GUIObjectBuilder::visit(const RotationEuler *sample)
void GUIObjectBuilder::buildPositionInfo(SessionItem *particleItem, const IParticle *sample)
{
kvector_t position = sample->getPosition();
SessionItem *p_position_item = particleItem->getGroupItem(ParticleItem::P_POSITION);
p_position_item->setItemValue(VectorItem::P_X, position.x());
p_position_item->setItemValue(VectorItem::P_Y, position.y());
p_position_item->setItemValue(VectorItem::P_Z, position.z());
SessionItem *positionItem = particleItem->getItem(ParticleItem::P_POSITION);
Q_ASSERT(positionItem);
positionItem->setItemValue(VectorItem::P_X, position.x());
positionItem->setItemValue(VectorItem::P_Y, position.y());
positionItem->setItemValue(VectorItem::P_Z, position.z());
}
MaterialProperty GUIObjectBuilder::createMaterialFromDomain(
......
......@@ -36,7 +36,8 @@ LayerItem::LayerItem()
registerTag(T_LAYOUTS, 0, -1, QStringList() << Constants::ParticleLayoutType);
setDefaultTag(T_LAYOUTS);
registerTag("XXX", 1, 1, QStringList() << Constants::VectorType);
SessionItem *vectorItem = ItemFactory::createItem(Constants::VectorType);
insertItem(0, vectorItem, "XXX");
// registerTag("XXX", 1, 1, QStringList() << Constants::VectorType);
// SessionItem *vectorItem = ItemFactory::createItem(Constants::VectorType);
// insertItem(0, vectorItem, "XXX");
addGroupPropertyTmp("XXX", Constants::VectorType);
}
......@@ -29,7 +29,7 @@ ParticleCompositionItem::ParticleCompositionItem()
addProperty(ParticleItem::P_ABUNDANCE, 1.0);
getItem(ParticleItem::P_ABUNDANCE)->setLimits(AttLimits::limited(0.0, 1.0));
getItem(ParticleItem::P_ABUNDANCE)->setDecimals(3);
addGroupProperty(ParticleItem::P_POSITION, Constants::VectorType);
addGroupPropertyTmp(ParticleItem::P_POSITION, Constants::VectorType);
PositionTranslator position_translator;
ModelPath::addParameterTranslator(position_translator);
......
......@@ -31,7 +31,7 @@ ParticleCoreShellItem::ParticleCoreShellItem()
addProperty(ParticleItem::P_ABUNDANCE, 1.0);
getItem(ParticleItem::P_ABUNDANCE)->setLimits(AttLimits::limited(0.0, 1.0));
getItem(ParticleItem::P_ABUNDANCE)->setDecimals(3);
addGroupProperty(ParticleItem::P_POSITION, Constants::VectorType);
addGroupPropertyTmp(ParticleItem::P_POSITION, Constants::VectorType);
PositionTranslator position_translator;
ModelPath::addParameterTranslator(position_translator);
......
......@@ -39,7 +39,7 @@ ParticleItem::ParticleItem()
MaterialUtils::getDefaultMaterialProperty().getVariant());
addProperty(P_ABUNDANCE, 1.0)->setLimits(AttLimits::limited(0.0, 1.0));
getItem(P_ABUNDANCE)->setDecimals(3);
addGroupProperty(P_POSITION, Constants::VectorType);
addGroupPropertyTmp(P_POSITION, Constants::VectorType);
PositionTranslator position_translator;
ModelPath::addParameterTranslator(position_translator);
......@@ -58,11 +58,11 @@ ParticleItem::ParticleItem()
getItem(ParticleItem::P_ABUNDANCE)->setEnabled(false);
if (parent()->modelType() == Constants::ParticleCoreShellType &&
parent()->tagFromItem(this) == ParticleCoreShellItem::T_SHELL) {
SessionItem *p_position_item = getGroupItem(ParticleItem::P_POSITION);
p_position_item->setItemValue(VectorItem::P_X, 0.0);
p_position_item->setItemValue(VectorItem::P_Y, 0.0);
p_position_item->setItemValue(VectorItem::P_Z, 0.0);
getItem(ParticleItem::P_POSITION)->setEnabled(false);
SessionItem *positionItem = getItem(ParticleItem::P_POSITION);
positionItem->setItemValue(VectorItem::P_X, 0.0);
positionItem->setItemValue(VectorItem::P_Y, 0.0);
positionItem->setItemValue(VectorItem::P_Z, 0.0);
positionItem->setEnabled(false);
} else {
getItem(ParticleItem::P_POSITION)->setEnabled(true);
}
......
......@@ -491,6 +491,16 @@ SessionItem *SessionItem::addGroupProperty(const QString &groupName, const QStri
return groupItem;
}
SessionItem *SessionItem::addGroupPropertyTmp(const QString &groupName, const QString &groupModel)
{
registerTag(groupName, 1, 1, QStringList() << groupModel);
SessionItem *sessionItem = ItemFactory::createItem(groupModel);
sessionItem->setDisplayName(groupName);
insertItem(0, sessionItem, groupName);
Q_ASSERT(sessionItem);
return sessionItem;
}
/*!
* \brief Access subitem of group item. If not existing, new item will be created by group property.
*/
......
......@@ -96,6 +96,9 @@ public:
QVariant getItemValue(const QString &tag) const;
void setItemValue(const QString &tag, const QVariant &variant);
SessionItem *addGroupProperty(const QString &groupName, const QString &groupModel);
SessionItem *addGroupPropertyTmp(const QString &groupName, const QString &groupModel);
SessionItem *setGroupProperty(const QString &name, const QString &value) const;
SessionItem *getGroupItem(const QString &name, const QString &type = QString()) const;
......
......@@ -429,10 +429,11 @@ void TransformToDomain::setTransformationInfo(IParticle *result, const SessionIt
void TransformToDomain::setPositionInfo(IParticle *result, const SessionItem &item)
{
SessionItem *pos_item = item.getGroupItem(ParticleItem::P_POSITION);
double pos_x = pos_item->getItemValue(VectorItem::P_X).toDouble();
double pos_y = pos_item->getItemValue(VectorItem::P_Y).toDouble();
double pos_z = pos_item->getItemValue(VectorItem::P_Z).toDouble();
SessionItem *positionItem = item.getItem(ParticleItem::P_POSITION);
Q_ASSERT(positionItem);
double pos_x = positionItem->getItemValue(VectorItem::P_X).toDouble();
double pos_y = positionItem->getItemValue(VectorItem::P_Y).toDouble();
double pos_z = positionItem->getItemValue(VectorItem::P_Z).toDouble();
result->setPosition(pos_x, pos_y, pos_z);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment