Prevent overlap/edge crosses when moving a vertex

This commit is contained in:
2011-07-04 02:52:12 -04:00
parent aa21bb9d39
commit 06902c4377
2 changed files with 12 additions and 2 deletions

View File

@ -101,6 +101,16 @@ void GameData::handle_click(int x, int y)
if (current == NULL) return;
int dist = MathUtils::distance(current->x, current->y, current->z,
x, y, 0);
Vertex* temp = new Vertex(x, y, 0, NODE_RADIUS);
if (crosses_edge(current, temp) ||
vertex_would_overlap(x, y, 0, NODE_RADIUS))
{
delete temp;
return;
}
delete temp;
if (dist <= get_range())
{
if (turn->spend_energy(dist))