void SceneObject::attachEyePointeeHolder( SceneObject* self, EyePointeeHolder* eye_pointee_holder) { if (eye_pointee_holder_) { detachEyePointeeHolder(); } SceneObject* owner_object(eye_pointee_holder->owner_object()); if (owner_object) { owner_object->detachEyePointeeHolder(); } eye_pointee_holder_ = eye_pointee_holder; eye_pointee_holder_->set_owner_object(self); }
void SceneObject::attachEyePointeeHolder( const std::shared_ptr<SceneObject>& self, const std::shared_ptr<EyePointeeHolder>& eye_pointee_holder) { if (eye_pointee_holder_) { detachEyePointeeHolder(); } std::shared_ptr<SceneObject> owner_object( eye_pointee_holder->owner_object()); if (owner_object) { owner_object->detachEyePointeeHolder(); } eye_pointee_holder_ = eye_pointee_holder; eye_pointee_holder_->set_owner_object(self); }