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
This commit is contained in:
2025-05-03 23:52:54 -04:00
parent a1899a52b7
commit d16041f977
30 changed files with 2923 additions and 227 deletions

View File

@@ -0,0 +1,42 @@
package com.aaaaahhhhhhh.bananapuncher714.mesh;
public class Test {
public static void main( String[] args ) {
final Vector2d a = new Vector2d( -1, -1 );
final Vector2d b = new Vector2d( 10, 10 );
final Vector2d c = new Vector2d( 0, -1 );
final Vector2d d = new Vector2d( 10, 11 );
test( a, b, c, d );
}
public static void test( final Vector2d a, final Vector2d b, final Vector2d c, final Vector2d d ) {
final Vector2d ab = b.subtracted( a );
final Vector2d cd = d.subtracted( c );
final Vector2d ac = c.subtracted( a );
final double acab = ac.cross( ab );
final double abcd = ab.cross( cd );
System.out.println( "Parallel value: " + abcd );
if ( abcd != 0 ) {
final double s = ac.cross( cd );
final double t = s / abcd;
final double u = acab / abcd;
System.out.println( "S: " + s );
System.out.println( "T: " + t );
System.out.println( "U: " + u );
System.out.println( "AB Length: " + ( t * ab.length() ) );
System.out.println( "CD Length: " + ( u * cd.length() ) );
// Gives the intersection correctly
System.out.println( "AB int: " + ab.multiplied( t ).add( a ) );
System.out.println( "CD int: " + cd.multiplied( u ).add( c ) );
} else {
}
}
}