better variable names

This commit is contained in:
Priyatham Sai Chand 2022-11-02 14:57:02 -07:00
parent 677492eb09
commit f03eb0ceb9
2 changed files with 28 additions and 28 deletions

View File

@ -58,12 +58,13 @@ class Wall
void draw() void draw()
{ {
strokeWeight(3);
strokeWeight(1);
line(start.x, start.y, end.x, end.y); line(start.x, start.y, end.x, end.y);
if (SHOW_WALL_DIRECTION) if (SHOW_WALL_DIRECTION)
{ {
PVector marker = PVector.add(PVector.mult(start, 0.2), PVector.mult(end, 0.8)); PVector marker = PVector.add(PVector.mult(start, 0.2), PVector.mult(end, 0.8));
circle(marker.x, marker.y, 5); circle(marker.x, marker.y, 6);
} }
} }
} }

View File

@ -1,5 +1,5 @@
import java.util.*; import java.util.*;
Map origin_map;
class Node class Node
{ {
String id; String id;
@ -73,7 +73,7 @@ class SearchFrontier{
class NavMesh class NavMesh
{ {
ArrayList<Node> nodes = new ArrayList<Node>(); ArrayList<Node> nodes = new ArrayList<Node>();
int recursionDepth = 0; int rec_stack_count = 0;
int maxDepth = 1000; int maxDepth = 1000;
int pointAmount = 0; int pointAmount = 0;
@ -156,55 +156,50 @@ class NavMesh
node_verts.add(w.start); node_verts.add(w.start);
} }
//for polygon_1, just make a polygon from index A to B //make polygon from index 1 to 2.
for(int i = index_1; i<=index_2; i++) for(int i = index_1; i<=index_2; i++)
{ {
//finishes the polygon //finishes the polygon
if (i == index_2) { if (i == index_2) {
polygon_1.add( new Wall(node_verts.get(index_2), node_verts.get(index_1)) ); polygon_1.add(new Wall(node_verts.get(index_2), node_verts.get(index_1)));
break; break;
} }
int next_index = i+1; int next_index = i + 1;
if (next_index > node_verts.size()-1) next_index = 0; if (next_index > node_verts.size() - 1) next_index = 0;
polygon_1.add(new Wall(node_verts.get(i), node_verts.get(next_index))); polygon_1.add(new Wall(node_verts.get(i), node_verts.get(next_index)));
} }
//start from index_2 and go further until you hit index A. You are guaranteed to finish the polygon once you connect A and B.
int i = index_2; int i = index_2;
boolean completedpolygon_2 = false; boolean completedpolygon_2 = false;
while (!completedpolygon_2) { while (!completedpolygon_2) {
if (i == index_1) { if (i == index_1) {
polygon_2.add( new Wall(node_verts.get(index_1), node_verts.get(index_2)) ); polygon_2.add(new Wall(node_verts.get(index_1), node_verts.get(index_2)));
completedpolygon_2 = true; completedpolygon_2 = true;
break; break;
} }
int next_index = i + 1;
int next_index = i+1; if (next_index > node_verts.size() - 1) next_index = 0;
if (next_index > node_verts.size()-1) next_index = 0; polygon_2.add(new Wall(node_verts.get(i), node_verts.get(next_index)));
polygon_2.add( new Wall(node_verts.get(i), node_verts.get(next_index)) );
i = next_index; i = next_index;
} }
Node nodeA = new Node(rec_stack_count+"A", polygon_1);
Node nodeA = new Node(recursionDepth+"A", polygon_1);
setIndices(nodeA); setIndices(nodeA);
nodes.add(nodeA); nodes.add(nodeA);
Node nodeB = new Node(recursionDepth+"B", polygon_2); Node nodeB = new Node(rec_stack_count+"B", polygon_2);
setIndices(nodeB); setIndices(nodeB);
nodes.add(nodeB); nodes.add(nodeB);
rec_stack_count++;
if (rec_stack_count == maxDepth) return;
recursionDepth++;
if (recursionDepth == maxDepth) return;
if (findReflexVertex(polygon_1) != -1) { if (findReflexVertex(polygon_1) != -1) {
nodes.remove(nodeA); nodes.remove(nodeA);
@ -301,10 +296,13 @@ class NavMesh
void bake(Map map) void bake(Map map)
{ {
//reset recursions and other values //reset recursions and other values
recursionDepth = 0;
// to keep track of recursive calls
rec_stack_count = 0;
nodes.clear(); nodes.clear();
pointAmount = map.walls.size(); pointAmount = map.walls.size();
origin_map = map;
vert_lookup_map.clear(); vert_lookup_map.clear();
mapVectors.clear(); mapVectors.clear();
@ -317,8 +315,6 @@ class NavMesh
convexDecomposition(m); convexDecomposition(m);
calculateAdjacencies(); calculateAdjacencies();
@ -432,8 +428,11 @@ class NavMesh
stroke(0,255,255); stroke(0,255,255);
strokeWeight(3); strokeWeight(3);
line(w.start.x, w.start.y, w.end.x, w.end.y); line(w.start.x, w.start.y, w.end.x, w.end.y);
//w.draw(); //w.draw();
} }
} }
} }
} }