40 const Ice::Current&
c)
42 this->precondition = precondition;
54 this->effect = effect;
59 const Ice::Current&
c)
const
62 armarx::AbstractObjectSerializerPtr::dynamicCast(serializer);
64 obj->setString(
"precondition", precondition);
65 obj->setString(
"effect", effect);
70 obj->setVariant(
"SECPreconditions", preconditionsVariant);
78 obj->setVariant(
"SECEffects", effectsVariant);
83 std::vector<armarx::VariantPtr> relationList;
84 relationList.resize(SECSideConstraints.size());
86 for (
unsigned int i = 0; i < SECSideConstraints.size(); i++)
88 relationList.at(i) =
new armarx::Variant(SECSideConstraints.at(i).relation1);
91 obj->setVariantArray(
"SECSideConstraintsFirstRelations", relationList);
93 for (
unsigned int i = 0; i < SECSideConstraints.size(); i++)
95 relationList.at(i) =
new armarx::Variant(SECSideConstraints.at(i).relation2);
98 obj->setVariantArray(
"SECSideConstraintsSecondRelations", relationList);
103 const Ice::Current&
c)
106 armarx::AbstractObjectSerializerPtr::dynamicCast(serializer);
108 precondition = obj->getString(
"precondition");
109 effect = obj->getString(
"effect");
111 if (obj->hasElement(
"SECPreconditions") && obj->hasElement(
"SECEffects"))
119 <<
"No SECEffects/SECPreconditions in OacPredictionFunction in oac segment";
122 std::vector<armarx::VariantPtr> relationList;
123 obj->getVariantArray(
"SECSideConstraintsFirstRelations", relationList);
124 SECSideConstraints.resize(relationList.size());
126 for (
unsigned int i = 0; i < relationList.size(); i++)
128 SECSideConstraints.at(i).relation1 = relationList.at(i)->get<SECRelationBase>();
131 obj->getVariantArray(
"SECSideConstraintsSecondRelations", relationList);
133 for (
unsigned int i = 0; i < relationList.size(); i++)
135 SECSideConstraints.at(i).relation2 = relationList.at(i)->get<SECRelationBase>();
139 armarx::VariantDataClassPtr
149 clone->setSECPreconditions(
155 clone->setSECEffects(
161 SECRelationPairList pairList;
163 for (
unsigned int i = 0; i < pairListOrig.size(); i++)
165 SECRelationPair newPair;
167 if (pairListOrig.at(i).relation1)
170 SECRelationBasePtr::dynamicCast(pairListOrig.at(i).relation1->ice_clone());
173 if (pairListOrig.at(i).relation2)
176 SECRelationBasePtr::dynamicCast(pairListOrig.at(i).relation2->ice_clone());
179 pairList.push_back(newPair);
182 clone->setSECSideConstraints(pairList);
190 return "OacPredictionFunction";
199 memoryx::SECObjectRelationsBasePtr
202 return SECPreconditions;
207 const memoryx::SECObjectRelationsBasePtr& preconditions,
210 SECPreconditions = preconditions;
213 memoryx::SECObjectRelationsBasePtr
223 SECEffects = effects;
229 return SECSideConstraints;
234 const SECRelationPairList& sideConstraints,
237 SECSideConstraints = sideConstraints;