void Water::targetAddedHandler(AbstractComponent::Ptr cmp, NodePtr target) { target->added()->connect([&](NodePtr node, NodePtr target, NodePtr ancestor) { if (target->root()->hasComponent<SceneManager>()) targetAddedToScene(nullptr, target, nullptr); }); }
void Hologram::targetAddedHandler(AbstractComponent::Ptr cmp, NodePtr target) { _addedToSceneSlot = target->added()->connect(std::bind( &Hologram::initTarget, std::static_pointer_cast<Hologram>(shared_from_this()), cmp, std::placeholders::_2, std::placeholders::_3 )); }
void OculusVRCamera::targetAddedHandler(AbsCmpPtr component, NodePtr target) { if (targets().size() > 1) throw std::logic_error("The OculusVRCamera component cannot have more than 1 target."); _addedSlot = target->added()->connect(std::bind( &OculusVRCamera::addedHandler, shared_from_this(), std::placeholders::_1, std::placeholders::_2, std::placeholders::_3 )); _removedSlot = target->removed()->connect(std::bind( &OculusVRCamera::removedHandler, shared_from_this(), std::placeholders::_1, std::placeholders::_2, std::placeholders::_3 )); _targetComponentAddedHandler = target->componentAdded()->connect(std::bind( &OculusVRCamera::targetComponentAddedHandler, shared_from_this(), std::placeholders::_1, std::placeholders::_2, std::placeholders::_3 )); _targetComponentRemovedHandler = target->componentRemoved()->connect(std::bind( &OculusVRCamera::targetComponentRemovedHandler, shared_from_this(), std::placeholders::_1, std::placeholders::_2, std::placeholders::_3 )); _targetTransform = target->hasComponent<Transform>() ? target->component<Transform>() : nullptr; addedHandler(target->root(), target, target->parent()); }
virtual void targetAddedHandler(AbstractComponent::Ptr ctrl, NodePtr target) { if (targets().size() > 1) throw std::logic_error("This component cannot have more than 1 target."); auto cb = std::bind( &AbstractRootDataComponent::addedOrRemovedHandler, this->shared_from_this(), std::placeholders::_1, std::placeholders::_2, std::placeholders::_3 ); _addedSlot = target->added()->connect(cb); _removedSlot = target->removed()->connect(cb); updateRoot(target->root()); }