Flood fill
This commit is contained in:
parent
6641f1d541
commit
8024caec55
@ -173,7 +173,12 @@ void GameController::DrawLine(int toolSelection, ui::Point point1, ui::Point poi
|
||||
|
||||
void GameController::DrawFill(int toolSelection, ui::Point point)
|
||||
{
|
||||
|
||||
Simulation * sim = gameModel->GetSimulation();
|
||||
Tool * activeTool = gameModel->GetActiveTool(toolSelection);
|
||||
Brush * cBrush = gameModel->GetBrush();
|
||||
if(!activeTool || !cBrush)
|
||||
return;
|
||||
activeTool->DrawFill(sim, cBrush, point);
|
||||
}
|
||||
|
||||
void GameController::DrawPoints(int toolSelection, queue<ui::Point*> & pointQueue)
|
||||
|
@ -549,7 +549,7 @@ void GameView::OnTick(float dt)
|
||||
c->DrawPoints(toolIndex, pointQueue);
|
||||
}
|
||||
}
|
||||
if(drawMode == DrawFill)
|
||||
if(drawMode == DrawFill && isMouseDown)
|
||||
{
|
||||
c->DrawFill(toolIndex, currentMouse);
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ public:
|
||||
virtual void Draw(Simulation * sim, Brush * brush, ui::Point position) {}
|
||||
virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) {}
|
||||
virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) {}
|
||||
virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position) {};
|
||||
int colRed, colBlue, colGreen;
|
||||
};
|
||||
|
||||
@ -51,6 +52,9 @@ public:
|
||||
virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) {
|
||||
sim->create_box(position1.X, position1.Y, position2.X, position2.Y, toolID, 0);
|
||||
}
|
||||
virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position) {
|
||||
sim->flood_parts(position.X, position.Y, toolID, -1, -1, 0);
|
||||
}
|
||||
};
|
||||
|
||||
class GolTool: public Tool
|
||||
@ -70,6 +74,9 @@ public:
|
||||
virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) {
|
||||
sim->create_box(position1.X, position1.Y, position2.X, position2.Y, PT_LIFE|(toolID<<8), 0);
|
||||
}
|
||||
virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position) {
|
||||
sim->flood_parts(position.X, position.Y, PT_LIFE|(toolID<<8), -1, -1, 0);
|
||||
}
|
||||
};
|
||||
|
||||
#endif /* TOOL_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user