Commit f96fe0a6 authored by Martin Schultz's avatar Martin Schultz

added separate widgets for assimp loader options and general loader options

the widgets use a treewidget to group loader / save options
parent 0a3402c6
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
#pragma once
// Defines for the type handling drop down box
#define TYPEAUTODETECT 0
#define TYPEASK 1
#define TYPEPOLY 2
#define TYPETRIANGLE 3
struct LoaderOptions
{
unsigned int triMeshHandling_;
bool loadVertexColorOption_ , loadNormalsOption_ , loadTexCoordsOption_ , loadTexturesOption_,
loadLightsOption_ , loadCamerasOption_ , loadAnimationsOption_;
LoaderOptions() : triMeshHandling_ (TYPEAUTODETECT) , loadVertexColorOption_(false) , loadNormalsOption_(false) ,
loadTexCoordsOption_(false) , loadTexturesOption_ (false) , loadLightsOption_ (false) ,
loadCamerasOption_ (false) , loadAnimationsOption_ (false)
{}
};
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
#include "AssimpLoadOptionsWidget.hh"
#include <assimp/postprocess.h>
#include <OpenFlipper/common/GlobalOptions.hh>
#include "../AssimpPluginCommon.hh"
AssimpLoadOptionsWidget::AssimpLoadOptionsWidget(LoaderOptions & loader, QWidget * parent )
: AssimpOptionsWidget ("Load", loader, parent)
{
// generic configuration
triMeshHandling_ = new QComboBox();
triMeshHandling_->addItem( tr("Detect correct mesh type") );
triMeshHandling_->addItem( tr("Ask") );
triMeshHandling_->addItem( tr("Open as PolyMesh") );
triMeshHandling_->addItem( tr("Open as TriangleMesh") );
loadVertexColor_ = new QCheckBox("Load Vertex Colors");
loadNormals_ = new QCheckBox("Load Vertex Normals");
loadTexCoords_ = new QCheckBox("Load Vertex Texture Coordinates");
loadTextures_ = new QCheckBox("Load Textures");
loadLights_ = new QCheckBox("Load Lights");
loadCameras_ = new QCheckBox("Load Cameras");
loadAnimations_ = new QCheckBox("Load Animations");
#ifndef ENABLE_LIGHT_SUPPORT
loadLights_->setEnabled(false);
#endif
#ifndef ENABLE_CAMERA_SUPPORT
loadCameras_->setEnabled(false);
#endif
#ifndef ENABLE_SKELETON_SUPPORT
loadAnimations_->setEnabled(false);
#endif
connect(loadVertexColor_, &QCheckBox::toggled, [&](bool _toggled){loader.loadVertexColorOption_ = _toggled ;});
connect(loadNormals_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadNormalsOption_ = _toggled ;});
connect(loadTexCoords_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadTexCoordsOption_ = _toggled ;});
connect(loadTextures_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadTexturesOption_ = _toggled ;});
connect(loadLights_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadLightsOption_ = _toggled ;});
connect(loadCameras_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadCamerasOption_ = _toggled ;});
connect(loadAnimations_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadAnimationsOption_ = _toggled ;});
connect(triMeshHandling_ , static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [&loader](unsigned int _index){loader.triMeshHandling_ = _index;});
QList<QWidget*> generalOptions = {triMeshHandling_, loadVertexColor_, loadNormals_, loadTexCoords_,
loadTextures_, loadLights_, loadCameras_, loadAnimations_};
QTreeWidgetItem* general = new QTreeWidgetItem();
general->setText(0,"General");
tree->invisibleRootItem()->insertChild(0,general);
for(QList<QWidget*>::iterator it = generalOptions.begin() ; it != generalOptions.end(); ++it)
{
QTreeWidgetItem* treeWidget = new QTreeWidgetItem();
general->addChild(treeWidget);
tree->setItemWidget(treeWidget,0,*it);
}
connect(makeDefaultButton_, SIGNAL(clicked()), this, SLOT(slotMakeDefault()));
triMeshHandling_->setCurrentIndex(OpenFlipperSettings().value("Assimp/Load/TriMeshHandling",TYPEAUTODETECT).toInt() );
loadVertexColor_->setChecked( OpenFlipperSettings().value("Assimp/Load/FaceColor",true).toBool() );
loadNormals_->setChecked ( OpenFlipperSettings().value("Assimp/Load/Normals" ,true).toBool() );
loadTexCoords_->setChecked( OpenFlipperSettings().value("Assimp/Load/TexCoords",true).toBool() );
loadTextures_->setChecked ( OpenFlipperSettings().value("Assimp/Load/Textures" ,true).toBool() );
}
void AssimpLoadOptionsWidget::slotMakeDefault()
{
OpenFlipperSettings().setValue( "Assimp/Load/FaceColor", loadVertexColor_->isChecked() );
OpenFlipperSettings().setValue( "Assimp/Load/Normals", loadNormals_->isChecked() );
OpenFlipperSettings().setValue( "Assimp/Load/TexCoords", loadTexCoords_->isChecked() );
OpenFlipperSettings().setValue( "Assimp/Load/Textures", loadTextures_->isChecked() );
OpenFlipperSettings().setValue( "Assimp/Load/TriMeshHandling", triMeshHandling_->currentIndex() );
OpenFlipperSettings().setValue( "Core/File/UseLoadDefaults", true );
}
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
#pragma once
#include "AssimpOptionsWidget.hh"
#include <QtWidgets>
#include <unordered_map>
struct LoaderOptions;
class AssimpLoadOptionsWidget : public AssimpOptionsWidget
{
Q_OBJECT
public:
AssimpLoadOptionsWidget(LoaderOptions& loader, QWidget * parent = 0);
QComboBox *triMeshHandling_;
QCheckBox * loadVertexColor_ , * loadNormals_ , * loadTexCoords_ , * loadTextures_ ,
* loadLights_ , * loadCameras_ , * loadAnimations_ ;
private slots:
void slotMakeDefault();
};
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
#pragma once
#include "ui_AssimpOptionsWidget.hh"
#include <QtWidgets>
#include <unordered_map>
struct LoaderOptions;
class AssimpOptionsWidget : public QWidget, public Ui::AssimpOptionsWidget
{
Q_OBJECT
public:
AssimpOptionsWidget(const QString & _settingPrefix, LoaderOptions& loader, QWidget * parent = 0);
QString settingPrefix;
QCheckBox* option_assimp_process_calcTangentSpace ;
QCheckBox* option_assimp_process_joinIdenticalVertices ;
QCheckBox* option_assimp_process_makeLeftHanded ;
QCheckBox* option_assimp_process_triangulate ;
QCheckBox* option_assimp_process_removeComponent ;
QCheckBox* option_assimp_process_genNormals ;
QCheckBox* option_assimp_process_genSmoothNormals ;
QCheckBox* option_assimp_process_splitLargeMeshes ;
QCheckBox* option_assimp_process_preTransformVertices ;
QCheckBox* option_assimp_process_limitBoneWeights ;
QCheckBox* option_assimp_process_validateDataStructure ;
QCheckBox* option_assimp_process_improveCacheLocality ;
QCheckBox* option_assimp_process_removeRedundantMaterials;
QCheckBox* option_assimp_process_fixInfacingNormals ;
QCheckBox* option_assimp_process_sortByPType ;
QCheckBox* option_assimp_process_findDegenerates ;
QCheckBox* option_assimp_process_findInvalidData ;
QCheckBox* option_assimp_process_genUVCoords ;
QCheckBox* option_assimp_process_transformUVCoords ;
QCheckBox* option_assimp_process_findInstances ;
QCheckBox* option_assimp_process_optimizeMeshes ;
QCheckBox* option_assimp_process_optimizeGraph ;
QCheckBox* option_assimp_process_flipUVs ;
QCheckBox* option_assimp_process_flipWindingOrder ;
QCheckBox* option_assimp_process_splitByBoneCount ;
QCheckBox* option_assimp_process_debone ;
std::unordered_map<QCheckBox*, unsigned int> loadOptions;
unsigned int processSteps();
private slots:
void slotMakeDefault();
void slotSaveDefault();
};
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AssimpOptionsWidget</class>
<widget class="QWidget" name="AssimpOptionsWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>485</width>
<height>338</height>
</rect>
</property>
<property name="windowTitle">
<string>Property Visualization</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTreeWidget" name="tree">
<column>
<property name="text">
<string>Configuration:</string>
</property>
</column>
</widget>
</item>
<item>
<widget class="QPushButton" name="makeDefaultButton_">
<property name="text">
<string>Make Default</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
#include "AssimpSaveOptionsWidget.hh"
#include <assimp/postprocess.h>
#include <OpenFlipper/common/GlobalOptions.hh>
#include "../AssimpPluginCommon.hh"
AssimpSaveOptionsWidget::AssimpSaveOptionsWidget(LoaderOptions & loader, QWidget * parent )
: AssimpOptionsWidget ("Save", loader, parent)
{
// generic configuration
saveVertexColor_ = new QCheckBox("Save Vertex Colors");
saveNormals_ = new QCheckBox("Save Vertex Normals");
saveTexCoords_ = new QCheckBox("Save Vertex Texture Coordinates");
saveTextures_ = new QCheckBox("Save Textures");
saveLights_ = new QCheckBox("Save Lights");
saveCameras_ = new QCheckBox("Save Cameras");
saveAnimations_ = new QCheckBox("Save Animations");
#ifndef ENABLE_LIGHT_SUPPORT
saveLights_->setEnabled(false);
#endif
#ifndef ENABLE_CAMERA_SUPPORT
saveCameras_->setEnabled(false);
#endif
#ifndef ENABLE_SKELETON_SUPPORT
saveAnimations_->setEnabled(false);
#endif
connect(saveVertexColor_, &QCheckBox::toggled, [&](bool _toggled){loader.loadVertexColorOption_ = _toggled ;});
connect(saveNormals_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadNormalsOption_ = _toggled ;});
connect(saveTexCoords_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadTexCoordsOption_ = _toggled ;});
connect(saveTextures_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadTexturesOption_ = _toggled ;});
connect(saveLights_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadLightsOption_ = _toggled ;});
connect(saveCameras_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadCamerasOption_ = _toggled ;});
connect(saveAnimations_ , &QCheckBox::toggled, [&](bool _toggled){loader.loadAnimationsOption_ = _toggled ;});
QList<QWidget*> generalOptions = {saveVertexColor_, saveNormals_, saveTexCoords_,
saveTextures_ , saveLights_ , saveCameras_ , saveAnimations_};
QTreeWidgetItem* general = new QTreeWidgetItem();
general->setText(0,"General");
tree->invisibleRootItem()->insertChild(0,general);
for(QList<QWidget*>::iterator it = generalOptions.begin() ; it != generalOptions.end(); ++it)
{
QTreeWidgetItem* treeWidget = new QTreeWidgetItem();
general->addChild(treeWidget);
tree->setItemWidget(treeWidget,0,*it);
}
connect(makeDefaultButton_, SIGNAL(clicked()), this, SLOT(slotMakeDefault()));
saveVertexColor_->setChecked( OpenFlipperSettings().value("Assimp/Save/FaceColor",true).toBool() );
saveNormals_->setChecked ( OpenFlipperSettings().value("Assimp/Save/Normals" ,true).toBool() );
saveTexCoords_->setChecked ( OpenFlipperSettings().value("Assimp/Save/TexCoords",true).toBool() );
saveTextures_->setChecked ( OpenFlipperSettings().value("Assimp/Save/Textures" ,true).toBool() );
}
void AssimpSaveOptionsWidget::slotMakeDefault()
{
OpenFlipperSettings().setValue( "Assimp/Save/FaceColor", saveVertexColor_->isChecked() );
OpenFlipperSettings().setValue( "Assimp/Save/Normals", saveNormals_->isChecked() );
OpenFlipperSettings().setValue( "Assimp/Save/TexCoords", saveTexCoords_->isChecked() );
OpenFlipperSettings().setValue( "Assimp/Save/Textures", saveTextures_->isChecked() );
OpenFlipperSettings().setValue( "Core/File/UseLoadDefaults", true );
}
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
#pragma once
#include "AssimpOptionsWidget.hh"
#include <QtWidgets>
#include <unordered_map>
struct LoaderOptions;
class AssimpSaveOptionsWidget : public AssimpOptionsWidget
{
Q_OBJECT
public:
AssimpSaveOptionsWidget(LoaderOptions& loader, QWidget * parent = 0);
QCheckBox * saveVertexColor_ , * saveNormals_ , * saveTexCoords_ , * saveTextures_ ,
* saveLights_ , * saveCameras_ , * saveAnimations_ ;
private slots:
void slotMakeDefault();
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment