summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/builders/freeExtend.cpp8
-rw-r--r--ui/builders/join.cpp6
-rw-r--r--ui/builders/straight.cpp8
-rw-r--r--ui/editNetwork.h2
-rw-r--r--ui/gameMainWindow.cpp20
-rw-r--r--ui/mainApplication.h2
-rw-r--r--ui/toolbar.h2
-rw-r--r--ui/windowContent.h2
8 files changed, 25 insertions, 25 deletions
diff --git a/ui/builders/freeExtend.cpp b/ui/builders/freeExtend.cpp
index ab5a998..aff7cd7 100644
--- a/ui/builders/freeExtend.cpp
+++ b/ui/builders/freeExtend.cpp
@@ -16,17 +16,17 @@ BuilderFreeExtend::move(
{
if (p1) {
if (const auto p = network->intersectRayNodes(ray)) {
- candidateLinks.objects = network->candidateJoins(*p1, p->pos);
+ candidateLinks = network->candidateJoins(*p1, p->pos);
}
else if (const auto p = geoData->intersectRay(ray)) {
- candidateLinks.objects = network->candidateExtend(*p1, p->first);
+ candidateLinks = network->candidateExtend(*p1, p->first);
}
else {
- candidateLinks.removeAll();
+ candidateLinks.clear();
}
}
else {
- candidateLinks.removeAll();
+ candidateLinks.clear();
}
}
diff --git a/ui/builders/join.cpp b/ui/builders/join.cpp
index 6941e23..f6cbce5 100644
--- a/ui/builders/join.cpp
+++ b/ui/builders/join.cpp
@@ -15,10 +15,10 @@ BuilderJoin::move(Network * network, const GeoData *, const SDL_MouseMotionEvent
{
if (p1) {
if (const auto p = network->intersectRayNodes(ray)) {
- candidateLinks.objects = network->candidateJoins(p1->pos, p->pos);
+ candidateLinks = network->candidateJoins(p1->pos, p->pos);
}
else {
- candidateLinks.removeAll();
+ candidateLinks.clear();
}
}
}
@@ -33,7 +33,7 @@ BuilderJoin::click(
if (p1) {
create(network, geoData, p1, p);
p1.reset();
- candidateLinks.removeAll();
+ candidateLinks.clear();
}
else {
p1 = p;
diff --git a/ui/builders/straight.cpp b/ui/builders/straight.cpp
index 338aa8a..e7d83b5 100644
--- a/ui/builders/straight.cpp
+++ b/ui/builders/straight.cpp
@@ -17,10 +17,10 @@ BuilderStraight::move(
{
if (p1) {
if (const auto p = geoData->intersectRay(ray)) {
- candidateLinks.objects = network->candidateStraight(*p1, p->first);
+ candidateLinks = network->candidateStraight(*p1, p->first);
}
else {
- candidateLinks.removeAll();
+ candidateLinks.clear();
}
}
}
@@ -34,7 +34,7 @@ BuilderStraight::click(
if (const auto p = geoData->intersectRay(ray)) {
if (p1) {
create(network, geoData, *p1, p->first);
- candidateLinks.removeAll();
+ candidateLinks.clear();
p1.reset();
}
else {
@@ -44,7 +44,7 @@ BuilderStraight::click(
return;
case SDL_BUTTON_MIDDLE:
p1.reset();
- candidateLinks.removeAll();
+ candidateLinks.clear();
return;
}
}
diff --git a/ui/editNetwork.h b/ui/editNetwork.h
index ae887bd..2fc102a 100644
--- a/ui/editNetwork.h
+++ b/ui/editNetwork.h
@@ -36,7 +36,7 @@ public:
using Ptr = std::unique_ptr<Builder>;
protected:
- Collection<const Link> candidateLinks;
+ SharedCollection<const Link> candidateLinks;
};
private:
diff --git a/ui/gameMainWindow.cpp b/ui/gameMainWindow.cpp
index d88bab5..f8c568b 100644
--- a/ui/gameMainWindow.cpp
+++ b/ui/gameMainWindow.cpp
@@ -32,7 +32,7 @@ GameMainWindow::GameMainWindow(size_t w, size_t h) : WindowContent {w, h}, Scene
{
uiComponents.create<ManualCameraController>(glm::vec2 {310'727'624, 494'018'810});
auto gms = uiComponents.create<GameMainSelector>(&camera, ScreenAbsCoord {w, h});
- uiComponents.create<GameMainToolbar>(gms.get());
+ uiComponents.create<GameMainToolbar>(gms);
}
GameMainWindow::~GameMainWindow() { }
@@ -75,12 +75,12 @@ GameMainWindow::render() const
void
GameMainWindow::content(const SceneShader & shader, const Frustum & frustum) const
{
- for (const auto & [id, asset] : gameState->assets) {
- if (const auto r = std::dynamic_pointer_cast<const Renderable>(asset)) {
- r->render(shader, frustum);
+ for (const auto & [assetId, asset] : gameState->assets) {
+ if (const auto renderable = asset.getAs<const Renderable>()) {
+ renderable->render(shader, frustum);
}
}
- gameState->world.apply<Renderable>(&Renderable::render, shader, frustum);
+ gameState->world.apply<const Renderable>(&Renderable::render, shader, frustum);
uiComponents.apply<WorldOverlay>(&WorldOverlay::render, shader, frustum);
}
@@ -93,16 +93,16 @@ GameMainWindow::environment(const SceneShader &, const SceneRenderer & r) const
void
GameMainWindow::lights(const SceneShader & shader) const
{
- gameState->world.apply<Renderable>(&Renderable::lights, shader);
+ gameState->world.apply<const Renderable>(&Renderable::lights, shader);
}
void
GameMainWindow::shadows(const ShadowMapper & shadowMapper, const Frustum & frustum) const
{
- for (const auto & [id, asset] : gameState->assets) {
- if (const auto r = std::dynamic_pointer_cast<const Renderable>(asset)) {
- r->shadows(shadowMapper, frustum);
+ for (const auto & [assetId, asset] : gameState->assets) {
+ if (const auto renderable = asset.getAs<const Renderable>()) {
+ renderable->shadows(shadowMapper, frustum);
}
}
- gameState->world.apply<Renderable>(&Renderable::shadows, shadowMapper, frustum);
+ gameState->world.apply<const Renderable>(&Renderable::shadows, shadowMapper, frustum);
}
diff --git a/ui/mainApplication.h b/ui/mainApplication.h
index a6cb126..1489587 100644
--- a/ui/mainApplication.h
+++ b/ui/mainApplication.h
@@ -6,7 +6,7 @@
class MainApplication : public ApplicationBase {
public:
- using Windows = Collection<Window>;
+ using Windows = SharedCollection<Window>;
void mainLoop();
protected:
diff --git a/ui/toolbar.h b/ui/toolbar.h
index ea560f5..b0480e2 100644
--- a/ui/toolbar.h
+++ b/ui/toolbar.h
@@ -19,5 +19,5 @@ public:
bool handleInput(const SDL_Event & e, const Position & parentPos) override;
- Collection<IconButton, false> icons;
+ UniqueCollection<IconButton> icons;
};
diff --git a/ui/windowContent.h b/ui/windowContent.h
index 474445a..5437da6 100644
--- a/ui/windowContent.h
+++ b/ui/windowContent.h
@@ -21,6 +21,6 @@ public:
virtual bool handleInput(const SDL_Event & e);
protected:
- ::Collection<UIComponent> uiComponents;
+ UniqueCollection<UIComponent> uiComponents;
UIShader uiShader;
};