X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmodel%2Fcomposite.cpp;fp=src%2Fmodel%2Fcomposite.cpp;h=bb77fa5b3d573b31caed5dd1bf2a8ca1279fb1b9;hb=d4c71969df4f6b5e6b750c98268d30ca6784908b;hp=ffb58572eae4bafaceea5f14978a8ec36e7b9089;hpb=36923ee2defd0848c5a530721114d4e553872305;p=blank.git diff --git a/src/model/composite.cpp b/src/model/composite.cpp index ffb5857..bb77fa5 100644 --- a/src/model/composite.cpp +++ b/src/model/composite.cpp @@ -12,7 +12,10 @@ namespace blank { CompositeModel::CompositeModel() -: node_model(nullptr) +: parent(nullptr) +, node_model(nullptr) +, id(0) +, bounds{{ 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }} , position(0.0f) , orientation(1.0f, 0.0f, 0.0f, 0.0f) , parts() { @@ -118,16 +121,19 @@ void Skeletons::LoadHeadless() { { AABB bounds{{ -0.25f, -0.5f, -0.25f }, { 0.25f, 0.5f, 0.25f }}; skeletons.emplace_back(new CompositeModel); + skeletons[0]->ID(1); skeletons[0]->Bounds(bounds); } { AABB bounds{{ -0.5f, -0.25f, -0.5f }, { 0.5f, 0.25f, 0.5f }}; skeletons.emplace_back(new CompositeModel); + skeletons[1]->ID(2); skeletons[1]->Bounds(bounds); } { AABB bounds{{ -0.5f, -0.5f, -0.5f }, { 0.5f, 0.5f, 0.5f }}; skeletons.emplace_back(new CompositeModel); + skeletons[2]->ID(3); skeletons[2]->Bounds(bounds); } } @@ -161,4 +167,20 @@ void Skeletons::Load() { } } +CompositeModel *Skeletons::ByID(std::uint16_t id) noexcept { + if (id == 0 || id > skeletons.size()) { + return nullptr; + } else { + return skeletons[id - 1].get(); + } +} + +const CompositeModel *Skeletons::ByID(std::uint16_t id) const noexcept { + if (id == 0 || id > skeletons.size()) { + return nullptr; + } else { + return skeletons[id - 1].get(); + } +} + }