mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 01:24:36 +02:00
Merge pull request #5921 from huffman/import-export-fix
Import/Export entities fix
This commit is contained in:
commit
89ab1f626f
3 changed files with 36 additions and 11 deletions
|
@ -1035,7 +1035,7 @@ function handeMenuEvent(menuItem) {
|
||||||
|
|
||||||
var importURL;
|
var importURL;
|
||||||
if (menuItem == "Import Entities") {
|
if (menuItem == "Import Entities") {
|
||||||
importURL = Window.browse("Select models to import", "", "*.json");
|
importURL = "file:///" + Window.browse("Select models to import", "", "*.json");
|
||||||
} else {
|
} else {
|
||||||
importURL = Window.prompt("URL of SVO to import", "");
|
importURL = Window.prompt("URL of SVO to import", "");
|
||||||
}
|
}
|
||||||
|
|
|
@ -2340,7 +2340,8 @@ bool Application::exportEntities(const QString& filename, const QVector<EntityIt
|
||||||
QVector<EntityItemPointer> entities;
|
QVector<EntityItemPointer> entities;
|
||||||
|
|
||||||
auto entityTree = _entities.getTree();
|
auto entityTree = _entities.getTree();
|
||||||
EntityTree exportTree;
|
auto exportTree = std::make_shared<EntityTree>();
|
||||||
|
exportTree->createRootElement();
|
||||||
|
|
||||||
glm::vec3 root(TREE_SCALE, TREE_SCALE, TREE_SCALE);
|
glm::vec3 root(TREE_SCALE, TREE_SCALE, TREE_SCALE);
|
||||||
for (auto entityID : entityIDs) {
|
for (auto entityID : entityIDs) {
|
||||||
|
@ -2367,10 +2368,10 @@ bool Application::exportEntities(const QString& filename, const QVector<EntityIt
|
||||||
auto properties = entityItem->getProperties();
|
auto properties = entityItem->getProperties();
|
||||||
|
|
||||||
properties.setPosition(properties.getPosition() - root);
|
properties.setPosition(properties.getPosition() - root);
|
||||||
exportTree.addEntity(entityItem->getEntityItemID(), properties);
|
exportTree->addEntity(entityItem->getEntityItemID(), properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
exportTree.writeToJSONFile(filename.toLocal8Bit().constData());
|
exportTree->writeToJSONFile(filename.toLocal8Bit().constData());
|
||||||
|
|
||||||
// restore the main window's active state
|
// restore the main window's active state
|
||||||
_window->activateWindow();
|
_window->activateWindow();
|
||||||
|
@ -2383,15 +2384,16 @@ bool Application::exportEntities(const QString& filename, float x, float y, floa
|
||||||
|
|
||||||
if (entities.size() > 0) {
|
if (entities.size() > 0) {
|
||||||
glm::vec3 root(x, y, z);
|
glm::vec3 root(x, y, z);
|
||||||
EntityTree exportTree;
|
auto exportTree = std::make_shared<EntityTree>();
|
||||||
|
exportTree->createRootElement();
|
||||||
|
|
||||||
for (int i = 0; i < entities.size(); i++) {
|
for (int i = 0; i < entities.size(); i++) {
|
||||||
EntityItemProperties properties = entities.at(i)->getProperties();
|
EntityItemProperties properties = entities.at(i)->getProperties();
|
||||||
EntityItemID id = entities.at(i)->getEntityItemID();
|
EntityItemID id = entities.at(i)->getEntityItemID();
|
||||||
properties.setPosition(properties.getPosition() - root);
|
properties.setPosition(properties.getPosition() - root);
|
||||||
exportTree.addEntity(id, properties);
|
exportTree->addEntity(id, properties);
|
||||||
}
|
}
|
||||||
exportTree.writeToSVOFile(filename.toLocal8Bit().constData());
|
exportTree->writeToSVOFile(filename.toLocal8Bit().constData());
|
||||||
} else {
|
} else {
|
||||||
qCDebug(interfaceapp) << "No models were selected";
|
qCDebug(interfaceapp) << "No models were selected";
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -19,17 +19,40 @@ float ClipboardScriptingInterface::getClipboardContentsLargestDimension() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClipboardScriptingInterface::exportEntities(const QString& filename, const QVector<EntityItemID>& entityIDs) {
|
bool ClipboardScriptingInterface::exportEntities(const QString& filename, const QVector<EntityItemID>& entityIDs) {
|
||||||
return Application::getInstance()->exportEntities(filename, entityIDs);
|
bool retVal;
|
||||||
|
QMetaObject::invokeMethod(Application::getInstance(), "exportEntities", Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(bool, retVal),
|
||||||
|
Q_ARG(const QString&, filename),
|
||||||
|
Q_ARG(const QVector<EntityItemID>&, entityIDs));
|
||||||
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClipboardScriptingInterface::exportEntities(const QString& filename, float x, float y, float z, float s) {
|
bool ClipboardScriptingInterface::exportEntities(const QString& filename, float x, float y, float z, float s) {
|
||||||
return Application::getInstance()->exportEntities(filename, x, y, z, s);
|
bool retVal;
|
||||||
|
QMetaObject::invokeMethod(Application::getInstance(), "exportEntities", Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(bool, retVal),
|
||||||
|
Q_ARG(const QString&, filename),
|
||||||
|
Q_ARG(float, x),
|
||||||
|
Q_ARG(float, y),
|
||||||
|
Q_ARG(float, z),
|
||||||
|
Q_ARG(float, s));
|
||||||
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClipboardScriptingInterface::importEntities(const QString& filename) {
|
bool ClipboardScriptingInterface::importEntities(const QString& filename) {
|
||||||
return Application::getInstance()->importEntities(filename);
|
bool retVal;
|
||||||
|
QMetaObject::invokeMethod(Application::getInstance(), "importEntities", Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(bool, retVal),
|
||||||
|
Q_ARG(const QString&, filename));
|
||||||
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<EntityItemID> ClipboardScriptingInterface::pasteEntities(glm::vec3 position) {
|
QVector<EntityItemID> ClipboardScriptingInterface::pasteEntities(glm::vec3 position) {
|
||||||
return Application::getInstance()->pasteEntities(position.x, position.y, position.z);
|
QVector<EntityItemID> retVal;
|
||||||
|
QMetaObject::invokeMethod(Application::getInstance(), "pasteEntities", Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(QVector<EntityItemID>, retVal),
|
||||||
|
Q_ARG(float, position.x),
|
||||||
|
Q_ARG(float, position.y),
|
||||||
|
Q_ARG(float, position.z));
|
||||||
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue