Overte C++ Documentation
FBXBaker.h
1 //
2 // FBXBaker.h
3 // tools/baking/src
4 //
5 // Created by Stephen Birarda on 3/30/17.
6 // Copyright 2017 High Fidelity, Inc.
7 //
8 // Distributed under the Apache License, Version 2.0.
9 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10 //
11 
12 #ifndef hifi_FBXBaker_h
13 #define hifi_FBXBaker_h
14 
15 #include <QtCore/QFutureSynchronizer>
16 #include <QtCore/QDir>
17 #include <QtCore/QUrl>
18 #include <QtNetwork/QNetworkReply>
19 
20 #include "Baker.h"
21 #include "ModelBaker.h"
22 #include "ModelBakingLoggingCategory.h"
23 
24 #include <FBX.h>
25 
26 
27 class FBXBaker : public ModelBaker {
28  Q_OBJECT
29 public:
30  FBXBaker(const QUrl& inputModelURL, const QString& bakedOutputDirectory, const QString& originalOutputDirectory = "", bool hasBeenBaked = false);
31 
32 protected:
33  virtual void bakeProcessedSource(const hfm::Model::Pointer& hfmModel, const std::vector<hifi::ByteArray>& dracoMeshes, const std::vector<std::vector<hifi::ByteArray>>& dracoMaterialLists) override;
34 
35 private:
36  void rewriteAndBakeSceneModels(const QVector<hfm::Mesh>& meshes, const std::vector<hifi::ByteArray>& dracoMeshes, const std::vector<std::vector<hifi::ByteArray>>& dracoMaterialLists);
37  void replaceMeshNodeWithDraco(FBXNode& meshNode, const QByteArray& dracoMeshBytes, const std::vector<hifi::ByteArray>& dracoMaterialList);
38 };
39 
40 #endif // hifi_FBXBaker_h
A node within an FBX document.
Definition: FBX.h:41