Commit Graph

29 Commits

Author SHA1 Message Date
45c65f4f78 Refactor and add basic sparse mesh implementation 2026-03-17 00:45:35 -04:00
95e374682b Partial refactor 2026-03-16 18:35:19 -04:00
14b1647c47 Fix each test and added READMEs 2026-03-15 18:56:59 -04:00
c2aa41fe58 Move each application to its own submodule
Removed JOML and Bukkit depednencies for the standalone applications
2026-03-15 15:16:42 -04:00
ce8165417b Initial cleanup and refactor 2026-03-14 23:03:06 -04:00
793d1e846a Add de/serialization for chunk meshes
Add half-baked loading and saving to avoid having to mesh the chunk each time
2025-05-31 05:13:11 -04:00
13c92dcb43 Added better chunk meshing
Fixed some collinear vertices not being scanned
Added live block mesh updates
2025-05-31 02:37:26 -04:00
d45d644b32 Change to use facet format for saving and processing chunks
Fixed bug where merging and splitting connected regions may result in a chain desync
Added spawn size to minie spawn command
Added live chunk generation
Use a smarter more conservative facet generation method for each chunk to reduce initial mesh simplification costs
2025-05-26 16:38:55 -04:00
7c49e004b7 Speedup the mesh simplification
Change EdgeSet to use LinkedHashSet for better iteration, potentially.
Map polygon points to existing vertices to reduce unnecessary vertex duplication
Attempt to merge overlapping edges initially before doing anything else when simplifying
Use tree sets instead of priority queues for constant time poll
Split intersection calculation method into two separate methods
Rework which edges are actively within the scan zone to reduce the amount of edges to check when looking for intersections. This should help make the entire algorithm closer to O(nlogn)
Removed intersection classes
Added method to resolve only collinear edges around a vertex
Added method to resolve edge intersections directly from the edge, rather than the positive side
Added simple Y check to see if two edges can even intersect
Added method to calculate absolute vector
Added test plane by default to MeshingTest2(the plane viewer)
2025-05-25 21:34:35 -04:00
83e3b9443b Removed sorting when triangulating
Properly determine the insertion edge when triangulation to avoid having to sort each vertex later
Synchronize the plane viewer to prevent incorrect index saving when switching planes too quickly
Use the shape instead of collision shape for summoned physics objects
2025-05-24 22:04:20 -04:00
9fcab219af Updated the plugin to mesh chunks properly; Use the visual shape for chunk generation 2025-05-24 03:57:21 -04:00
1599e1feb1 Remove outdated and obsolete files 2025-05-24 00:10:05 -04:00
e9b8bea944 Convert meshed polygons back into facet
Write facets to ply format
2025-05-24 00:06:11 -04:00
20cf9e9ec5 Update comments 2025-05-23 22:15:40 -04:00
702a4288b2 Passing commit
Check for chain destination vs origin comparison only before intersection
Force move vertex horizontally if within VERTEX_TOLERANCE of another vertex
Share chains across partitions that are being combined
2025-05-23 05:36:00 -04:00
586fb04c02 Introduce fuzzy iterating when finding chains; Found another bug when detecting chain collisions 2025-05-23 02:17:25 -04:00
29a0c04fae Fix inconsistencies
Use linked hash set for reproducibility when required
Split chain generation into three smaller methods
Fixed error when certain chains skip certain vertices, specifically after splitting a partition
Hide internal classes
Add conversion to external classes when returning data
Update the polygon viewer
Update chain intersections in parallel
Sort edges cleaner
Resolve some TODOs
2025-05-23 00:35:39 -04:00
e5f98f6844 Cleaned up debug prints and debug statements 2025-05-21 21:48:27 -04:00
3426829c2b Fixed problems with sorting collinear and intersecting edges caused by chain resolution in partition monotone 2025-05-21 21:27:37 -04:00
c101c2e1dd Added single chain link resolution and many debug prints and commented out blocks of code 2025-05-21 02:40:24 -04:00
be12cf26e0 Use the region lower and upper edge instead of an arbitrary edge when constructing a link 2025-05-17 18:19:13 -04:00
566a7fb15f Remove intersecting chains
Removed intersecting chains using a greedy method
Fixed issue where chains found after splitting partitions do not get checked for intersection
2025-05-17 17:11:17 -04:00
7e39c48d76 Fixed duplicate collinear edge bug 2025-05-17 16:05:10 -04:00
2ff86b88a4 Use maps for keeping track of partitions 2025-05-17 03:10:02 -04:00
9e010d3fe1 Added collinear vertex detection 2025-05-17 02:41:02 -04:00
0f430e7a31 Fixed monotone partioning and finished triangulation algorithm
Removed a lot of debug code
Added comments
Fixed partition monotone not setting the vertex after unlinking edges
Added some better java awt stuff
Added a method to copy meshes
2025-05-06 00:11:09 -04:00
510fcc7b7d Fixed bad sorting
Should now sort edges based on the correct cross product
Fixed support edge connecting to the wrong vertex
Added in some more checks
Draw shapes slightly more correctly?
2025-05-04 18:53:03 -04:00
d16041f977 Improve tessellation algorithm
Added new mesh class
Rewrite mesh algorithms to be less error prone
Make code more concise
Tried to add some documentation
Added half edge set
2025-05-04 00:04:22 -04:00
a1899a52b7 Initial commit for historical purposes 2025-05-02 00:29:08 -04:00