split method
Implementation
void split(List<double> breaks, List<CSMFrustum> target ) {
while ( breaks.length > target.length ) {
target.add( CSMFrustum() );
}
target.length = breaks.length;
for ( int i = 0; i < breaks.length; i ++ ) {
final cascade = target[ i ];
if ( i == 0 ) {
for ( int j = 0; j < 4; j ++ ) {
cascade.vertices.near[ j ].setFrom( vertices.near[ j ] );
}
} else {
for ( int j = 0; j < 4; j ++ ) {
cascade.vertices.near[ j ].lerpVectors( vertices.near[ j ], vertices.far[ j ], breaks[ i - 1 ] );
}
}
if ( i == breaks.length - 1 ) {
for ( int j = 0; j < 4; j ++ ) {
cascade.vertices.far[ j ].setFrom( vertices.far[ j ] );
}
} else {
for ( int j = 0; j < 4; j ++ ) {
cascade.vertices.far[ j ].lerpVectors( vertices.near[ j ], vertices.far[ j ], breaks[ i ] );
}
}
}
}