63 lines · 1.8 KB · C++
RawDownload
////  SkeletonDumpApp.cpp//  tools/skeleton-dump/src////  Created by Anthony Thibault on 11/4/16.//  Copyright 2016 High Fidelity, Inc.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// #include "SkeletonDumpApp.h"#include <QCommandLineParser>#include <QFile>#include <FBXSerializer.h>#include <AnimSkeleton.h> SkeletonDumpApp::SkeletonDumpApp(int argc, char* argv[]) : QCoreApplication(argc, argv) {     // parse command-line    QCommandLineParser parser;    parser.setApplicationDescription("High Fidelity FBX Skeleton Analyzer");    const QCommandLineOption helpOption = parser.addHelpOption();     const QCommandLineOption verboseOutput("v", "verbose output");    parser.addOption(verboseOutput);     const QCommandLineOption inputFilenameOption("i", "input file", "filename.fbx");    parser.addOption(inputFilenameOption);     if (!parser.parse(QCoreApplication::arguments())) {        qCritical() << parser.errorText() << Qt::endl;        parser.showHelp();        _returnCode = 1;        return;    }     if (parser.isSet(helpOption)) {        parser.showHelp();        return;    }     bool verbose = parser.isSet(verboseOutput);     QString inputFilename;    if (parser.isSet(inputFilenameOption)) {        inputFilename = parser.value(inputFilenameOption);    }     QFile file(inputFilename);    if (!file.open(QIODevice::ReadOnly)) {        qCritical() << "Failed to open file " << inputFilename;        _returnCode = 2;        return;    }    QByteArray blob = file.readAll();    HFMModel::Pointer geometry = FBXSerializer().read(blob, QVariantHash());    std::unique_ptr<AnimSkeleton> skeleton(new AnimSkeleton(*geometry));    skeleton->dump(verbose);} SkeletonDumpApp::~SkeletonDumpApp() {}