summaryrefslogtreecommitdiff
path: root/game/vehicles
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2023-04-14 18:03:34 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2023-04-14 18:03:34 +0100
commit5776a36b454fac04617313da011d7aa2b0e834d3 (patch)
tree1eb96d07e9a17a51e5763f397fc003f762cd2e75 /game/vehicles
parentMerge branch 'model-factory-textures' (diff)
parentAdd an asset template and use it to define all the foliage assets in the plan... (diff)
downloadilt-5776a36b454fac04617313da011d7aa2b0e834d3.tar.bz2
ilt-5776a36b454fac04617313da011d7aa2b0e834d3.tar.xz
ilt-5776a36b454fac04617313da011d7aa2b0e834d3.zip
Merge branch 'assimp'
Diffstat (limited to 'game/vehicles')
-rw-r--r--game/vehicles/railVehicleClass.cpp53
-rw-r--r--game/vehicles/railVehicleClass.h9
2 files changed, 0 insertions, 62 deletions
diff --git a/game/vehicles/railVehicleClass.cpp b/game/vehicles/railVehicleClass.cpp
index 4e9263c..b7a3b1e 100644
--- a/game/vehicles/railVehicleClass.cpp
+++ b/game/vehicles/railVehicleClass.cpp
@@ -2,7 +2,6 @@
#include "gfx/gl/sceneShader.h"
#include "gfx/gl/shadowMapper.h"
#include "gfx/models/mesh.h"
-#include "gfx/models/obj.h"
#include "gfx/models/texture.h"
#include <algorithm>
#include <array>
@@ -22,25 +21,6 @@
#include <utility>
#include <vector>
-RailVehicleClass::RailVehicleClass(const std::string & name) :
- RailVehicleClass {std::make_unique<ObjParser>(Resource::mapPath(name + ".obj")),
- Texture::cachedTexture.get(Resource::mapPath(name + ".png"))}
-{
-}
-
-RailVehicleClass::RailVehicleClass(std::unique_ptr<ObjParser> o, std::shared_ptr<Texture> t) :
- texture {std::move(t)}, maxSpeed(95._mph)
-{
- wheelBase = bogieOffset(*o);
- length = objectLength(*o);
- const auto m = o->createMeshes();
- bodyMesh = m.at("Body");
- bogies[0] = m.at("Bogie1");
- bogies[1] = m.at("Bogie2");
-}
-
-RailVehicleClass::RailVehicleClass() { }
-
bool
RailVehicleClass::persist(Persistence::PersistenceStore & store)
{
@@ -80,36 +60,3 @@ RailVehicleClass::shadows(
bogies[b]->Draw();
}
}
-
-float
-RailVehicleClass::bogieOffset(ObjParser & o)
-{
- float wheelBase {0};
- // offset bogie positions so they can be set directly
- for (auto & object : o.objects) { // bogie object index
- if (!object.first.starts_with("Bogie")) {
- continue;
- }
- std::set<std::pair<float, std::size_t>> vertexIds;
- for (const auto & face : object.second) {
- for (const auto & faceElement : face) {
- vertexIds.emplace(o.vertices[faceElement.x - 1].y, faceElement.x - 1);
- }
- }
- const auto offset = (vertexIds.begin()->first + vertexIds.rbegin()->first) / 2;
- for (const auto & v : vertexIds) {
- o.vertices[v.second].y -= offset;
- }
- wheelBase += std::abs(offset);
- }
- return wheelBase;
-}
-
-float
-RailVehicleClass::objectLength(ObjParser & o)
-{
- const auto mme = std::minmax_element(o.vertices.begin(), o.vertices.end(), [](const auto & v1, const auto & v2) {
- return v1.y < v2.y;
- });
- return mme.second->y - mme.first->y;
-}
diff --git a/game/vehicles/railVehicleClass.h b/game/vehicles/railVehicleClass.h
index 61ec4ec..1a52e2b 100644
--- a/game/vehicles/railVehicleClass.h
+++ b/game/vehicles/railVehicleClass.h
@@ -9,14 +9,10 @@
class SceneShader;
class ShadowMapper;
class Texture;
-class ObjParser;
class Location;
class RailVehicleClass : public Asset {
public:
- explicit RailVehicleClass(const std::string & name);
- RailVehicleClass();
-
void render(const SceneShader &, const Location &, const std::array<Location, 2> &) const;
void shadows(const ShadowMapper &, const Location &, const std::array<Location, 2> &) const;
@@ -31,10 +27,5 @@ protected:
friend Persistence::SelectionPtrBase<std::shared_ptr<RailVehicleClass>>;
bool persist(Persistence::PersistenceStore & store) override;
void postLoad() override;
-
-private:
- RailVehicleClass(std::unique_ptr<ObjParser> obj, std::shared_ptr<Texture>);
- static float bogieOffset(ObjParser & o);
- static float objectLength(ObjParser & o);
};
using RailVehicleClassPtr = std::shared_ptr<RailVehicleClass>;