Merge of itasc branch. Project files, scons and cmake should be working. Makefile updated but not tested. Comes with Eigen2 2.0.6 C++ matrix library.

This commit is contained in:
Benoit Bolsee
2009-09-24 21:22:24 +00:00
386 changed files with 54369 additions and 1008 deletions

View File

@@ -26,6 +26,7 @@
* ***** END GPL LICENSE BLOCK *****
*/
#include <iostream>
#include <algorithm>
#include "SCA_IObject.h"
#include "SCA_ISensor.h"
@@ -76,6 +77,12 @@ SCA_IObject::~SCA_IObject()
(*ita)->Delete();
}
SCA_ObjectList::iterator ito;
for (ito = m_registeredObjects.begin(); !(ito==m_registeredObjects.end()); ++ito)
{
(*ito)->UnlinkObject(this);
}
//T_InterpolatorList::iterator i;
//for (i = m_interpolators.begin(); !(i == m_interpolators.end()); ++i) {
// delete *i;
@@ -123,6 +130,26 @@ void SCA_IObject::UnregisterActuator(SCA_IActuator* act)
}
}
void SCA_IObject::RegisterObject(SCA_IObject* obj)
{
// one object may be registered multiple times via constraint target
// store multiple reference, this will serve as registration counter
m_registeredObjects.push_back(obj);
}
void SCA_IObject::UnregisterObject(SCA_IObject* obj)
{
SCA_ObjectList::iterator ito;
for (ito = m_registeredObjects.begin(); ito != m_registeredObjects.end(); ++ito)
{
if ((*ito) == obj) {
(*ito) = m_registeredObjects.back();
m_registeredObjects.pop_back();
break;
}
}
}
void SCA_IObject::ReParentLogic()
{
SCA_ActuatorList& oldactuators = GetActuators();
@@ -165,7 +192,7 @@ void SCA_IObject::ReParentLogic()
// a new object cannot be client of any actuator
m_registeredActuators.clear();
m_registeredObjects.clear();
}