mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 10:48:15 +02:00
Merge branch 'hfm_prep' into hfm_prep_graphics (VaryingSet1 removed)
This commit is contained in:
commit
e7b0b345e9
3 changed files with 9 additions and 29 deletions
|
@ -71,13 +71,14 @@ namespace baker {
|
||||||
|
|
||||||
class BakerEngineBuilder {
|
class BakerEngineBuilder {
|
||||||
public:
|
public:
|
||||||
using Input = VaryingSet1<hfm::Model::Pointer>;
|
using Input = hfm::Model::Pointer;
|
||||||
using Output = VaryingSet1<hfm::Model::Pointer>;
|
using Output = hfm::Model::Pointer;
|
||||||
using JobModel = Task::ModelIO<BakerEngineBuilder, Input, Output>;
|
using JobModel = Task::ModelIO<BakerEngineBuilder, Input, Output>;
|
||||||
void build(JobModel& model, const Varying& in, Varying& out) {
|
void build(JobModel& model, const Varying& in, Varying& out) {
|
||||||
const auto hfmModelIn = in.getN<Input>(0);
|
const auto hfmModelIn = in;
|
||||||
|
|
||||||
// Split up the inputs from hfm::Model
|
// Split up the inputs from hfm::Model
|
||||||
const auto getModelPartsInputs = GetModelPartsTask::Input(hfmModelIn).asVarying();
|
const auto getModelPartsInputs = hfmModelIn;
|
||||||
const auto modelPartsIn = model.addJob<GetModelPartsTask>("GetModelParts", getModelPartsInputs);
|
const auto modelPartsIn = model.addJob<GetModelPartsTask>("GetModelParts", getModelPartsInputs);
|
||||||
const auto meshesIn = modelPartsIn.getN<GetModelPartsTask::Output>(0);
|
const auto meshesIn = modelPartsIn.getN<GetModelPartsTask::Output>(0);
|
||||||
const auto url = modelPartsIn.getN<GetModelPartsTask::Output>(1);
|
const auto url = modelPartsIn.getN<GetModelPartsTask::Output>(1);
|
||||||
|
@ -98,19 +99,19 @@ namespace baker {
|
||||||
const auto buildModelInputs = BuildModelTask::Input(hfmModelIn, meshesOut).asVarying();
|
const auto buildModelInputs = BuildModelTask::Input(hfmModelIn, meshesOut).asVarying();
|
||||||
const auto buildModelOutputs = model.addJob<BuildModelTask>("BuildModel", buildModelInputs);
|
const auto buildModelOutputs = model.addJob<BuildModelTask>("BuildModel", buildModelInputs);
|
||||||
const auto hfmModelOut = buildModelOutputs.getN<BuildModelTask::Output>(0);
|
const auto hfmModelOut = buildModelOutputs.getN<BuildModelTask::Output>(0);
|
||||||
out = Output(hfmModelOut);
|
|
||||||
|
out = hfmModelOut;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Baker::Baker(const hfm::Model::Pointer& hfmModel) :
|
Baker::Baker(const hfm::Model::Pointer& hfmModel) :
|
||||||
_engine(std::make_shared<Engine>(BakerEngineBuilder::JobModel::create("Baker"), std::make_shared<BakeContext>())) {
|
_engine(std::make_shared<Engine>(BakerEngineBuilder::JobModel::create("Baker"), std::make_shared<BakeContext>())) {
|
||||||
_engine->feedInput<BakerEngineBuilder::Input>(0, hfmModel);
|
_engine->feedInput<BakerEngineBuilder::Input>(hfmModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Baker::run() {
|
void Baker::run() {
|
||||||
_engine->run();
|
_engine->run();
|
||||||
auto& output = _engine->getOutput().get<BakerEngineBuilder::Output>();
|
hfmModel = _engine->getOutput().get<BakerEngineBuilder::Output>();
|
||||||
hfmModel = output.get0();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -411,7 +411,6 @@ protected:
|
||||||
using Task = task::Task<ContextType, TimeProfiler>; \
|
using Task = task::Task<ContextType, TimeProfiler>; \
|
||||||
using Engine = task::Engine<ContextType, TimeProfiler>; \
|
using Engine = task::Engine<ContextType, TimeProfiler>; \
|
||||||
using Varying = task::Varying; \
|
using Varying = task::Varying; \
|
||||||
template < typename T0 > using VaryingSet1 = task::VaryingSet1<T0>; \
|
|
||||||
template < typename T0, typename T1 > using VaryingSet2 = task::VaryingSet2<T0, T1>; \
|
template < typename T0, typename T1 > using VaryingSet2 = task::VaryingSet2<T0, T1>; \
|
||||||
template < typename T0, typename T1, typename T2 > using VaryingSet3 = task::VaryingSet3<T0, T1, T2>; \
|
template < typename T0, typename T1, typename T2 > using VaryingSet3 = task::VaryingSet3<T0, T1, T2>; \
|
||||||
template < typename T0, typename T1, typename T2, typename T3 > using VaryingSet4 = task::VaryingSet4<T0, T1, T2, T3>; \
|
template < typename T0, typename T1, typename T2, typename T3 > using VaryingSet4 = task::VaryingSet4<T0, T1, T2, T3>; \
|
||||||
|
|
|
@ -69,26 +69,6 @@ protected:
|
||||||
std::shared_ptr<Concept> _concept;
|
std::shared_ptr<Concept> _concept;
|
||||||
};
|
};
|
||||||
|
|
||||||
template < typename T0 >
|
|
||||||
class VaryingSet1 : public std::tuple<Varying> {
|
|
||||||
public:
|
|
||||||
using Parent = std::tuple<Varying>;
|
|
||||||
|
|
||||||
VaryingSet1() : Parent(Varying(T0())) {}
|
|
||||||
VaryingSet1(const VaryingSet1& src) : Parent(std::get<0>(src)) {}
|
|
||||||
VaryingSet1(const Varying& first) : Parent(first) {}
|
|
||||||
|
|
||||||
const T0& get0() const { return std::get<0>((*this)).template get<T0>(); }
|
|
||||||
T0& edit0() { return std::get<0>((*this)).template edit<T0>(); }
|
|
||||||
|
|
||||||
virtual Varying operator[] (uint8_t index) const {
|
|
||||||
return std::get<0>((*this));
|
|
||||||
}
|
|
||||||
virtual uint8_t length() const { return 1; }
|
|
||||||
|
|
||||||
Varying asVarying() const { return Varying((*this)); }
|
|
||||||
};
|
|
||||||
|
|
||||||
using VaryingPairBase = std::pair<Varying, Varying>;
|
using VaryingPairBase = std::pair<Varying, Varying>;
|
||||||
template < typename T0, typename T1 >
|
template < typename T0, typename T1 >
|
||||||
class VaryingSet2 : public VaryingPairBase {
|
class VaryingSet2 : public VaryingPairBase {
|
||||||
|
|
Loading…
Reference in a new issue