void SceneObject::attachRenderData(SceneObject* self, RenderData* render_data) { if (render_data_) { detachRenderData(); } SceneObject* owner_object(render_data->owner_object()); if (owner_object) { owner_object->detachRenderData(); } render_data_ = render_data; render_data->set_owner_object(self); dirtyBoundingVolume(); }
void SceneObject::attachRenderData(const std::shared_ptr<SceneObject>& self, const std::shared_ptr<RenderData>& render_data) { if (render_data_) { detachRenderData(); } std::shared_ptr<SceneObject> owner_object(render_data->owner_object()); if (owner_object) { owner_object->detachRenderData(); } render_data_ = render_data; render_data->set_owner_object(self); }