void CholOptimizer<PG>::transformSubset(typename PG::Vertex* rootVertex, Graph::VertexSet& vset, const typename PG::TransformationType& newRootPose){ typename PG::TransformationType t=newRootPose*rootVertex->transformation.inverse(); for (Graph::VertexSet::iterator it=vset.begin(); it!=vset.end(); it++){ typename PG::Vertex* v=_MY_CAST_<typename PG::Vertex*>(*it); v->transformation=t*v->transformation; } }
bool CholOptimizer<PG>::buildIndexMapping(typename PG::Vertex* rootVertex, Graph::VertexSet& vset){ _ivMap.resize(vset.size()); int i=0; for (Graph::VertexSet::iterator it=vset.begin(); it!=vset.end(); it++){ typename PG::Vertex* v=_MY_CAST_<typename PG::Vertex*>(*it); if (v!=rootVertex && ! v->fixed()){ v->tempIndex()=i; _ivMap[i]=v; i++; } } _ivMap.resize(i); return true; }