From adcb62eb18e58f902c619783ebdd83e3fe56005d Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Tue, 2 Jun 2015 21:03:34 -0700 Subject: [PATCH] more hacking and cleanup --- interface/src/avatar/Avatar.cpp | 1 - interface/src/avatar/AvatarManager.cpp | 6 +----- libraries/render-utils/src/Model.cpp | 22 +++++++++++++++++----- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 961747190d..bbf028ad46 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -521,7 +521,6 @@ void Avatar::renderBody(RenderArgs* renderArgs, ViewFrustum* renderFrustum, bool // check to see if when we added our models to the scene they were ready, if they were not ready, then // fix them up in the scene if (_skeletonModel.needsFixupInScene()) { - qDebug() << "Avatar::renderBody() FIXING _skeletonModel"; render::ScenePointer scene = Application::getInstance()->getMain3DScene(); render::PendingChanges pendingChanges; _skeletonModel.removeFromScene(scene, pendingChanges); diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index 7cef470c14..49a8012cd9 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -165,19 +165,15 @@ void AvatarManager::removeAvatarMotionState(Avatar* avatar) { void AvatarManager::removeAvatar(const QUuid& sessionUUID) { AvatarHash::iterator avatarIterator = _avatarHash.find(sessionUUID); if (avatarIterator != _avatarHash.end()) { - //Avatar* avatar = reinterpret_cast(avatarIterator.value().get()); std::shared_ptr avatar = std::dynamic_pointer_cast(avatarIterator.value()); - - // FIX ME! Can we just say (avatar != _myAvatar) if (avatar != _myAvatar && avatar->isInitialized()) { removeAvatarMotionState(avatar.get()); _avatarFades.push_back(avatarIterator.value()); _avatarHash.erase(avatarIterator); } - render::ScenePointer scene = Application::getInstance()->getMain3DScene(); render::PendingChanges pendingChanges; - avatar->removeFromScene(avatar, scene, pendingChanges); + avatar->removeFromScene(avatar, scene, pendingChanges); scene->enqueuePendingChanges(pendingChanges); } } diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp index 7340c0b1d1..4d52006677 100644 --- a/libraries/render-utils/src/Model.cpp +++ b/libraries/render-utils/src/Model.cpp @@ -814,14 +814,13 @@ namespace render { template <> const Item::Bound payloadGetBound(const TransparentMeshPart::Pointer& payload) { if (payload) { - //return payload->model->getPartBounds(payload->meshIndex, payload->partIndex); + return payload->model->getPartBounds(payload->meshIndex, payload->partIndex); } return render::Item::Bound(); } template <> void payloadRender(const TransparentMeshPart::Pointer& payload, RenderArgs* args) { if (args) { args->_elementsTouched++; - //qDebug() << "would be TransparentMeshPart: " << payload->meshIndex << "," << payload->partIndex; return payload->model->renderPart(args, payload->meshIndex, payload->partIndex, true); } } @@ -845,7 +844,9 @@ namespace render { template <> const Item::Bound payloadGetBound(const OpaqueMeshPart::Pointer& payload) { if (payload) { - return payload->model->getPartBounds(payload->meshIndex, payload->partIndex); + Item::Bound result = payload->model->getPartBounds(payload->meshIndex, payload->partIndex); + //qDebug() << "payloadGetBound(OpaqueMeshPart) " << result; + return result; } return render::Item::Bound(); } @@ -1540,6 +1541,12 @@ void Model::snapToRegistrationPoint() { } void Model::simulate(float deltaTime, bool fullUpdate) { + /* + qDebug() << "Model::simulate()"; + qDebug() << " _translation:" << _translation; + qDebug() << " _rotation:" << _rotation; + */ + fullUpdate = updateGeometry() || fullUpdate || (_scaleToFit && !_scaledToFit) || (_snapModelToRegistrationPoint && !_snappedToRegistrationPoint); @@ -2343,8 +2350,13 @@ void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool tran Texture* diffuseMap = networkPart.diffuseTexture.data(); if (mesh.isEye && diffuseMap) { - diffuseMap = (_dilatedTextures[meshIndex][partIndex] = - static_cast(diffuseMap)->getDilatedTexture(_pupilDilation)).data(); + // FIXME - guard against out of bounds here + if (meshIndex < _dilatedTextures.size()) { + if (partIndex < _dilatedTextures[meshIndex].size()) { + diffuseMap = (_dilatedTextures[meshIndex][partIndex] = + static_cast(diffuseMap)->getDilatedTexture(_pupilDilation)).data(); + } + } } static bool showDiffuse = true; if (showDiffuse && diffuseMap) {