123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /** \file itasc/FixedObject.cpp
- * \ingroup itasc
- */
- /*
- * FixedObject.cpp
- *
- * Created on: Feb 10, 2009
- * Author: benoitbolsee
- */
- #include "FixedObject.hpp"
- namespace iTaSC{
- FixedObject::FixedObject():UncontrolledObject(),
- m_finalized(false), m_nframe(0)
- {
- }
- FixedObject::~FixedObject()
- {
- m_frameArray.clear();
- }
- int FixedObject::addFrame(const std::string& name, const Frame& frame)
- {
- if (m_finalized)
- return -1;
- FrameList::iterator it;
- unsigned int i;
- for (i=0, it=m_frameArray.begin(); i<m_nframe; i++, it++) {
- if (it->first == name) {
- // this frame will replace the old frame
- it->second = frame;
- return i;
- }
- }
- m_frameArray.push_back(FrameList::value_type(name,frame));
- return m_nframe++;
- }
- int FixedObject::addEndEffector(const std::string& name)
- {
- // verify that this frame name exist
- FrameList::iterator it;
- unsigned int i;
- for (i=0, it=m_frameArray.begin(); i<m_nframe; i++, it++) {
- if (it->first == name) {
- return i;
- }
- }
- return -1;
- }
- bool FixedObject::finalize()
- {
- if (m_finalized)
- return true;
- initialize(0, m_nframe);
- m_finalized = true;
- return true;
- }
- const Frame& FixedObject::getPose(const unsigned int frameIndex)
- {
- if (frameIndex < m_nframe) {
- return m_frameArray[frameIndex].second;
- } else {
- return F_identity;
- }
- }
- }
|