#include "AppWorldLogic.h"
#include <cadex/LicenseManager_Activate.h>
#include <cadex/ModelData_Model.hxx>
#include <cadex/ModelData_ModelReader.hxx>
#include <cadex/Unigine_NodeFactory.hxx>
#include <cadex/Unigine_NodeFactoryParameters.hxx>
#include <UnigineConsole.h>
#include <UnigineFileSystem.h>
#include <../../cadex_license.cxx>
using namespace Unigine;
void AppWorldLogic::onBrowseButtonClicked()
{
myDialogFileWidget->setFile ("");
myDialogFileWidget->setHidden (0);
myDialogFileWidget->setPermanentFocus();
}
void AppWorldLogic::onDialogFileOkClicked()
{
String aPath = myDialogFileWidget->getFile();
if (!FileSystem::isFileExist (aPath)) {
return;
}
myDialogFileWidget->setHidden (1);
myEditLineWidget->setText (aPath);
myDialogFileWidget->removeFocus();
}
void AppWorldLogic::onDialogFileCancelClicked()
{
myDialogFileWidget->setHidden (1);
myDialogFileWidget->removeFocus();
}
void AppWorldLogic::onImportViaPluginButtonClicked (WidgetPtr theWidget)
{
auto aFilePath = myEditLineWidget->getText();
if (myImportedNode != nullptr) {
myImportedNode->deleteLater();
}
myImportedNode = ModelImporter::ImportViaPlugin (aFilePath);
}
void AppWorldLogic::onImportViaSDKButtonClicked (WidgetPtr theWidget)
{
auto aFilePath = myEditLineWidget->getText();
if (myImportedNode != nullptr) {
myImportedNode->deleteLater();
}
myImportedNode = ModelImporter::ImportViaSDK (aFilePath);
}
AppWorldLogic::AppWorldLogic()
{}
AppWorldLogic::~AppWorldLogic()
{}
int AppWorldLogic::init()
{
auto aKey = LicenseKey::Value();
if (!CADExLicense_Activate (aKey)) {
Console::errorLine ("Failed to activate CAD Exchanger license.");
return 0;
}
myImportedNode = nullptr;
auto aGui = Gui::getCurrent();
myUi = UserInterface::create (aGui, "ModelImporterWizard.ui");
myUi->addCallback ("browseBtn", Gui::CLICKED, MakeCallback (this, &AppWorldLogic::onBrowseButtonClicked));
myDialogFileWidget = WidgetDialogFile::create (aGui, "File import dialog");
myDialogFileWidget->setPath ("./");
myDialogFileWidget->getOkButton()->addCallback (Gui::CLICKED,
MakeCallback (this, &AppWorldLogic::onDialogFileOkClicked));
myDialogFileWidget->getCancelButton()->addCallback (Gui::CLICKED,
MakeCallback (this, &AppWorldLogic::onDialogFileCancelClicked));
myDialogFileWidget->setHidden (1);
aGui->addChild (myDialogFileWidget, Gui::ALIGN_OVERLAP | Gui::ALIGN_CENTER);
auto aWidget = myUi->getWidget (myUi->findWidget ("filepath"));
myEditLineWidget = static_ptr_cast<WidgetEditLine> (aWidget);
myUi->addCallback ("importViaPluginBtn", Gui::CLICKED,
MakeCallback (this, &AppWorldLogic::onImportViaPluginButtonClicked));
myUi->addCallback ("importViaSDKBtn", Gui::CLICKED,
MakeCallback (this, &AppWorldLogic::onImportViaSDKButtonClicked));
auto aWindow = myUi->getWidget (myUi->findWidget ("window"));
aGui->addChild (aWindow, Gui::ALIGN_LEFT);
return 1;
}
int AppWorldLogic::update()
{
return 1;
}
int AppWorldLogic::postUpdate()
{
return 1;
}
int AppWorldLogic::updatePhysics()
{
return 1;
}
int AppWorldLogic::shutdown()
{
return 1;
}
int AppWorldLogic::save(const Unigine::StreamPtr &stream)
{
UNIGINE_UNUSED(stream);
return 1;
}
int AppWorldLogic::restore(const Unigine::StreamPtr &stream)
{
UNIGINE_UNUSED(stream);
return 1;
}
Defines classes, types, and global functions related to CAD Exchanger.
Definition: A3DSTestLib.hxx:22