Fix model auto-scaling to 1% not being seen by observers take 2

This commit is contained in:
David Rowe 2016-12-12 17:01:02 +13:00
parent 14ecb24986
commit 8a399c7cc0

View file

@ -5662,12 +5662,14 @@ void Application::addAssetToWorldAddEntity(QString mapping) {
properties.setModelURL("atp:" + mapping);
properties.setShapeType(SHAPE_TYPE_SIMPLE_COMPOUND);
properties.setCollisionless(true); // Temporarily set so that doesn't collide with avatar.
properties.setVisible(false); // Temporarily set so that don't see at large unresized dimensions.
properties.setDynamic(false);
properties.setPosition(getMyAvatar()->getPosition() + getMyAvatar()->getOrientation() * glm::vec3(0.0f, 0.0f, -2.0f));
properties.setGravity(glm::vec3(0.0f, 0.0f, 0.0f));
auto entityID = DependencyManager::get<EntityScriptingInterface>()->addEntity(properties);
// Note: Model dimensions are not available here; model is scaled per FBX mesh in RenderableModelEntityItem::update() later
// on. But FBX dimensions may be in cm or mm, so we monitor for the dimension change and rescale again if warranted.
// on. But FBX dimensions may be in cm, so we monitor for the dimension change and rescale again if warranted.
if (entityID == QUuid()) {
QString errorInfo = "Could not add asset " + mapping + " to world.";
@ -5710,16 +5712,10 @@ void Application::addAssetToWorldCheckModelSize() {
dimensions *= 0.01f;
EntityItemProperties properties;
properties.setDimensions(dimensions);
properties.setCollisionless(false); // Reset to default.
// Edit entity via invokeMethod() to ensure that observers get this resize after the auto-resize edit performed
// in RenderableModelEntityItem::update().
//entityScriptingInterface->editEntity(entityID, properties);
QMetaObject::invokeMethod(DependencyManager::get<EntityScriptingInterface>().data(), "editEntity",
Qt::QueuedConnection,
Q_ARG(QUuid, entityID),
Q_ARG(EntityItemProperties, properties));
properties.setVisible(true);
properties.setCollisionless(false);
properties.setLastEdited(usecTimestampNow());
entityScriptingInterface->editEntity(entityID, properties);
qInfo() << "Asset auto-resized";
}
@ -5734,7 +5730,9 @@ void Application::addAssetToWorldCheckModelSize() {
// Have done enough checks; model was either the default size or something's gone wrong.
EntityItemProperties properties;
properties.setCollisionless(false); // Reset to default.
properties.setVisible(true);
properties.setCollisionless(false);
properties.setLastEdited(usecTimestampNow());
entityScriptingInterface->editEntity(entityID, properties);
item = _addAssetToWorldResizeList.erase(item); // Finished with this entity.