main.cpp
author Dmitriy Morozov <dmitriy@mrzv.org>
Tue, 21 Jul 2009 09:57:31 -0700
changeset 16 bff3d7c294ff
parent 15 846354ed6853
permissions -rw-r--r--
Fixed lights and spheres according to Martin's instructions

#include <qapplication.h>
#include "ui_viewerInterface.h"
#include "VEFViewer.h"
#include <boost/program_options.hpp>
#include <vector>
#include <string>
#include <GL/glut.h>

class ViewerInterface: public QDialog, public Ui::Dialog
{
	public:
		ViewerInterface() { setupUi(this); viewer->setModelList(listWidget); }
};

namespace po = boost::program_options;

int main(int argc, char** argv)
{
    glutInit(&argc, argv);

    // Parse program options
    std::vector<std::string> input_filenames;
    po::options_description hidden("Hidden options");
    hidden.add_options()
        ("input-file",  po::value<std::vector<std::string> >(&input_filenames),
                        "Input filenames (extensions: vrt, edg, stl)");

    po::options_description visible("Allowed options");
    visible.add_options()
        ("help,h",      "produce help message");
    po::positional_options_description p;
    p.add("input-file", -1);
    
    po::options_description all; all.add(visible).add(hidden);

    po::variables_map vm;
    po::store(po::command_line_parser(argc, argv).
                  options(all).positional(p).run(), vm);
    po::notify(vm);

    if (vm.count("help"))
    { 
        std::cout << "Usage: " << argv[0] << " [options] [INPUTFILE1] [INPUTFILE2] ..." << std::endl;
        std::cout << visible << std::endl; 
        return 1; 
    }
    
    // Start the application
    QApplication application(argc,argv);
    ViewerInterface vi;
    vi.show();

    for (std::vector<std::string>::const_iterator cur = input_filenames.begin();
                                                  cur != input_filenames.end(); ++cur)
        vi.viewer->addFile(cur->c_str());

    return application.exec();
}