java - Optimising topological sort -
so i'm working on isometric tilebased game , i'm using topological sort sort order of tiles rendered. well, topological sort determines depth of each tile , arraylist of tiles rendered sorted comparator comparing these depths.
the issue i'm having poor performance on topological sort. i'm not sure if there i'm missing might cause performance issues. thankful input used optimise topological sort.
i'm storing variables in fields, i'm not sure if improves performance. i'm using public fields comparisons needed.
relevant code snippets:
private void topological(array<isosprite> sprites) { (int = 0; < sprites.size; ++i) { = sprites.get(i); behindindex = 0; for(isosprite sprite: sprites){ if(sprite != a){ if (sprite.maxx > a.minx && sprite.maxy > a.miny && sprite.minz < a.maxz) { if (a.behind.size <= behindindex) { a.behind.add(sprite); behindindex++; } else { a.behind.set(behindindex++, sprite); } } } } a.visited = false; } sortdepth = 0; (isosprite sprite : sprites) { visitnode(sprite); } } private void visitnode(isosprite sprite) { if (!sprite.visited) { sprite.visited = true; iterator<isosprite> = sprite.behind.iterator(); while (it.hasnext()) { visitnode(it.next()); it.remove(); } sprite.isodepth = sortdepth++; } }
Comments
Post a Comment