Implemented splitting - the largest plate is divided into two plates around a triple point junction upon the near destruction of the smallest plate.
Largest plates are now determined by the number land cells during split operations.
Addressed an issue with get size functions in Plate.
Improvement to split function - triple point junctions now preferentially occur on faces completely covered by land.
Added greater resolution to voronoi diagrams.
Distinguished getRandomPoint() function from the function used to generate triple point junctions.
Initial plate subdivision now uses the same code as split operations.
Limited the amount of crust that can dock at a single time based upon an arbitrary parameter expressing distance to the collision - a glazing blow between continents no longer cascades an entire continent onto its colliding plate.
docking now only considers continents whose vertices form biconnected subgraphs, i.e. vertices with 3 or more continental neighbors.
distanced based parameters are now expressed in radians.
Merge branch 'master' into supercontinent-cycle: turning focus to the supercontinent cycle again now that issues with docking have been largely addressed.
Some work still needed before merging back into the master branch.
Supercontinents now only split after most all other plates have been eliminated.
Reverted back to old style plate partitioning - less realistic, but more responsive when combined with the new docking method. Freezes no longer seem to occur.
switched to kdtrees to optimize splitting.
Optimizations to docking and splitting.
Merge branch 'master' into supercontinent-cycle
Switched back to expressing plate speed by normal distribution - while not conceptually accurate, it produces supercontinent cycles with duration much closer to reality.
Merge branch 'master' into supercontinent-cycle
Addressed memory leaks associated with the supercontinent cycle. Committing baseline to be cleaned up in later commits.
Pushed plate destruction to its own method.