more hacking and cleanup

This commit is contained in:
ZappoMan 2015-06-02 21:03:34 -07:00
parent 4ce27f1483
commit adcb62eb18
3 changed files with 18 additions and 11 deletions

View file

@ -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);

View file

@ -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<Avatar*>(avatarIterator.value().get());
std::shared_ptr<Avatar> avatar = std::dynamic_pointer_cast<Avatar>(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);
}
}

View file

@ -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<DilatableNetworkTexture*>(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<DilatableNetworkTexture*>(diffuseMap)->getDilatedTexture(_pupilDilation)).data();
}
}
}
static bool showDiffuse = true;
if (showDiffuse && diffuseMap) {