Overte C++ Documentation
BuildDracoMeshTask.h
1 //
2 // BuildDracoMeshTask.h
3 // model-baker/src/model-baker
4 //
5 // Created by Sabrina Shanman on 2019/02/20.
6 // Copyright 2019 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_BuildDracoMeshTask_h
13 #define hifi_BuildDracoMeshTask_h
14 
15 #include <hfm/HFM.h>
16 #include <shared/HifiTypes.h>
17 
18 #include "Engine.h"
19 #include "BakerTypes.h"
20 
21 // BuildDracoMeshTask is disabled by default
22 class BuildDracoMeshConfig : public baker::JobConfig {
23  Q_OBJECT
24  Q_PROPERTY(int encodeSpeed MEMBER encodeSpeed)
25  Q_PROPERTY(int decodeSpeed MEMBER decodeSpeed)
26 public:
27  BuildDracoMeshConfig() : baker::JobConfig(false) {}
28 
29  int encodeSpeed { 0 };
30  int decodeSpeed { 5 };
31 };
32 
33 class BuildDracoMeshTask {
34 public:
35  using Config = BuildDracoMeshConfig;
36  using Input = baker::VaryingSet3<std::vector<hfm::Mesh>, baker::NormalsPerMesh, baker::TangentsPerMesh>;
37  using Output = baker::VaryingSet3<std::vector<hifi::ByteArray>, std::vector<bool>, std::vector<std::vector<hifi::ByteArray>>>;
38  using JobModel = baker::Job::ModelIO<BuildDracoMeshTask, Input, Output, Config>;
39 
40  void configure(const Config& config);
41  void run(const baker::BakeContextPointer& context, const Input& input, Output& output);
42 
43 protected:
44  int _encodeSpeed { 0 };
45  int _decodeSpeed { 5 };
46 };
47 
48 #endif // hifi_BuildDracoMeshTask_h