33 for (VertexInterface* vertex :
getActiveVertices()) param_dim += vertex->getDimensionUnfixed();
47 int vtx_idx = vertex->getVertexIdx();
48 if (vertex->getDimensionUnfixed() == vertex->getDimension())
50 if (vtx_idx + vertex->getDimension() > idx)
52 return vertex->getData()[idx - vtx_idx];
58 for (
int i = 0; i < vertex->getDimension(); ++i)
60 if (!vertex->isFixedComponent(i))
62 if (vtx_idx + param_idx == idx)
return vertex->getData()[i];
79 int vtx_idx = vertex->getVertexIdx();
80 if (vertex->getDimensionUnfixed() == vertex->getDimension())
82 if (vtx_idx + vertex->getDimension() > idx)
84 vertex->setData(idx - vtx_idx,
x);
91 for (
int i = 0; i < vertex->getDimension(); ++i)
93 if (!vertex->isFixedComponent(i))
95 if (vtx_idx + param_idx == idx)
97 vertex->setData(i,
x);
115 int x_idx = vertex->getVertexIdx();
116 if (vertex->hasFixedComponents())
118 for (
int i = 0; i < vertex->getDimension(); ++i)
120 if (vertex->isFixedComponent(i))
continue;
122 x[x_idx] = vertex->getData()[i];
128 x.segment(x_idx, vertex->getDimension()) = vertex->getDataMap();
141 int x_idx = vertex->getVertexIdx();
142 if (vertex->hasFixedComponents())
144 for (
int i = 0; i < vertex->getDimension(); ++i)
146 if (vertex->isFixedComponent(i))
continue;
148 vertex->setData(i,
x[x_idx]);
154 vertex->getDataRawMap() =
x.segment(x_idx, vertex->getDimension());
168 if (vertex->getDimensionUnfixed() == vertex->getDimension())
170 lb.segment(vertex->getVertexIdx(), vertex->getDimension()) = vertex->getLowerBoundsMap();
171 ub.segment(vertex->getVertexIdx(), vertex->getDimension()) = vertex->getUpperBoundsMap();
176 for (
int i = 0; i < vertex->getDimension(); ++i)
178 if (!vertex->isFixedComponent(i))
180 lb(vertex->getVertexIdx() + param_idx) = vertex->getLowerBounds()[i];
181 ub(vertex->getVertexIdx() + param_idx) = vertex->getUpperBounds()[i];
198 if (vertex->getDimensionUnfixed() == vertex->getDimension())
200 vertex->setLowerBounds(lb.segment(vertex->getVertexIdx(), vertex->getDimension()));
201 vertex->setUpperBounds(ub.segment(vertex->getVertexIdx(), vertex->getDimension()));
206 for (
int i = 0; i < vertex->getDimension(); ++i)
208 if (!vertex->isFixedComponent(i))
210 vertex->setLowerBound(i, lb(vertex->getVertexIdx() + param_idx));
211 vertex->setUpperBound(i, ub(vertex->getVertexIdx() + param_idx));
228 int vtx_idx = vertex->getVertexIdx();
229 if (vertex->getDimensionUnfixed() == vertex->getDimension())
231 if (vtx_idx + vertex->getDimension() > idx)
233 return vertex->getLowerBounds()[idx - vtx_idx];
239 for (
int i = 0; i < vertex->getDimension(); ++i)
241 if (!vertex->isFixedComponent(i))
243 if (vtx_idx + param_idx == idx)
return vertex->getLowerBounds()[i];
261 int vtx_idx = vertex->getVertexIdx();
262 if (vertex->getDimensionUnfixed() == vertex->getDimension())
264 if (vtx_idx + vertex->getDimension() > idx)
266 return vertex->getUpperBounds()[idx - vtx_idx];
272 for (
int i = 0; i < vertex->getDimension(); ++i)
274 if (!vertex->isFixedComponent(i))
276 if (vtx_idx + param_idx == idx)
return vertex->getUpperBounds()[i];
293 int vtx_idx = vertex->getVertexIdx();
294 if (vertex->getDimensionUnfixed() == vertex->getDimension())
296 if (vtx_idx + vertex->getDimension() > idx)
298 vertex->setLowerBound(idx - vtx_idx, lb);
305 for (
int i = 0; i < vertex->getDimension(); ++i)
307 if (!vertex->isFixedComponent(i))
309 if (vtx_idx + param_idx == idx)
311 vertex->setLowerBound(i, lb);
329 int vtx_idx = vertex->getVertexIdx();
330 if (vertex->getDimensionUnfixed() == vertex->getDimension())
332 if (vtx_idx + vertex->getDimension() > idx)
334 vertex->setUpperBound(idx - vtx_idx, ub);
341 for (
int i = 0; i < vertex->getDimension(); ++i)
343 if (!vertex->isFixedComponent(i))
345 if (vtx_idx + param_idx == idx)
347 vertex->setUpperBound(i, ub);
365 if (vertex->getDimensionUnfixed() != 0) vertex->plusUnfixed(increment.segment(vertex->getVertexIdx(), vertex->getDimensionUnfixed()).data());
377 int vtx_idx = vertex->getVertexIdx();
378 if (vertex->getDimensionUnfixed() == vertex->getDimension())
380 if (vtx_idx + vertex->getDimension() > idx)
382 vertex->plus(idx - vtx_idx, increment);
389 for (
int i = 0; i < vertex->getDimension(); ++i)
391 if (!vertex->isFixedComponent(i))
393 if (vtx_idx + param_idx == idx)
395 vertex->plus(i, increment);
411 if (vertices.empty())
return;
414 for (
int i = 1; i < (
int)vertices.size(); ++i)
416 setVertexIdx(*vertices[i], vertices[i - 1]->getVertexIdx() + vertices[i - 1]->getDimensionUnfixed());
426 if (vertices.empty())
return;
454 vertex->clearBackups();
461 vertex->discardTop();