RoboidControl-cpp/Sensor.cpp
2024-12-18 16:53:54 +01:00

43 lines
1.1 KiB
C++

#include "Sensor.h"
#include "Roboid.h"
Sensor::Sensor() : Thing() {
// this->type = (unsigned char)Type::Sensor;
}
// void Sensor::SetParent(Thing *parent) {
// this->parent = parent;
// if (this->parent != nullptr &&
// this->parent->GetParent() == nullptr) { // Is the parent a root object?
// // Then it is a roboid
// Roboid *roboidParent = (Roboid *)this->parent;
// roboidParent->perception->AddSensor(this);
// }
// }
void Sensor::ConnectTo(Thing *oldThing) {
this->name = oldThing->name;
this->id = oldThing->id;
Thing *oldParent = oldThing->GetParent();
oldParent->RemoveChild(oldThing);
oldParent->AddChild(this);
for (int childIx = 0; childIx < oldThing->childCount; childIx++) {
Thing *child = oldThing->GetChildByIndex(childIx);
this->AddChild(child);
}
this->position = oldThing->GetPosition();
this->orientation = oldThing->GetOrientation();
// delete (thing); // can we do this?
}
void Sensor::ConnectTo(Thing *rootThing, const char *thingName) {
Thing *thing = rootThing->FindThing(thingName);
if (thing != nullptr)
this->ConnectTo(thing);
}