From 9631864ae261d60910c0a5be3ccc7c6c1dc603d3 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Thu, 19 Jan 2017 09:46:29 -0800 Subject: [PATCH] make soft attachments cauterized for MyAvatar --- interface/src/avatar/Avatar.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index ee5e397592..6061812d2a 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -1044,11 +1044,14 @@ void Avatar::setModelURLFinished(bool success) { // create new model, can return an instance of a SoftAttachmentModel rather then Model -static std::shared_ptr allocateAttachmentModel(bool isSoft, RigPointer rigOverride) { +static std::shared_ptr allocateAttachmentModel(bool isSoft, RigPointer rigOverride, bool isCauterized) { if (isSoft) { // cast to std::shared_ptr - // TODO: re-enable cauterization for the SoftAttachmentModel when this is MyAvatar - return std::dynamic_pointer_cast(std::make_shared(std::make_shared(), nullptr, rigOverride)); + std::shared_ptr softModel = std::make_shared(std::make_shared(), nullptr, rigOverride); + if (isCauterized) { + softModel->flagAsCauterized(); + } + return std::dynamic_pointer_cast(softModel); } else { return std::make_shared(std::make_shared()); } @@ -1074,12 +1077,12 @@ void Avatar::setAttachmentData(const QVector& attachmentData) { for (int i = 0; i < attachmentData.size(); i++) { if (i == (int)_attachmentModels.size()) { // if number of attachments has been increased, we need to allocate a new model - _attachmentModels.push_back(allocateAttachmentModel(attachmentData[i].isSoft, _skeletonModel->getRig())); + _attachmentModels.push_back(allocateAttachmentModel(attachmentData[i].isSoft, _skeletonModel->getRig(), isMyAvatar())); } else if (i < oldAttachmentData.size() && oldAttachmentData[i].isSoft != attachmentData[i].isSoft) { // if the attachment has changed type, we need to re-allocate a new one. _attachmentsToRemove.push_back(_attachmentModels[i]); - _attachmentModels[i] = allocateAttachmentModel(attachmentData[i].isSoft, _skeletonModel->getRig()); + _attachmentModels[i] = allocateAttachmentModel(attachmentData[i].isSoft, _skeletonModel->getRig(), isMyAvatar()); } _attachmentModels[i]->setURL(attachmentData[i].modelURL); }