Class ParallelepipedOverlap
java.lang.Object
net.preibisch.mvrecon.process.interestpointregistration.pairwise.constellation.overlap.ParallelepipedOverlap
Tight overlap test for two affine-transformed voxel cubes (parallelepipeds in world space)
via the 3-D Separating Axis Theorem (SAT). Used as a narrow-phase refinement on top of
SimpleBoundingBoxOverlap's AABB broad phase.
SAT for two convex parallelepipeds checks 15 candidate separating axes:
- 3 face normals from each box (= 6) — cross products of edge pairs at corner 0.
- 9 edge-cross-products (3 from A × 3 from B).
-
Method Summary
Modifier and TypeMethodDescriptionstatic double[][]corners(mpicbg.spim.data.generic.sequence.BasicViewSetup vs, mpicbg.spim.data.registration.ViewRegistration vr) The 8 world-space corners of the unit voxel cube[0..d-1]^3transformed by the view's registration affine.static double[][]corners(net.imglib2.Dimensions dims, net.imglib2.realtransform.AffineTransform3D transform) static booleanintersects(double[][] a, double[][] b) 3-D SAT for two parallelepipeds given by their 8 world-space corners.
-
Method Details
-
corners
public static double[][] corners(mpicbg.spim.data.generic.sequence.BasicViewSetup vs, mpicbg.spim.data.registration.ViewRegistration vr) The 8 world-space corners of the unit voxel cube[0..d-1]^3transformed by the view's registration affine. Returnsnullif the view setup has no size. -
corners
public static double[][] corners(net.imglib2.Dimensions dims, net.imglib2.realtransform.AffineTransform3D transform) -
intersects
public static boolean intersects(double[][] a, double[][] b) 3-D SAT for two parallelepipeds given by their 8 world-space corners. Corner ordering must matchcorners(Dimensions, AffineTransform3D): corners 1, 2, 4 are the edges from corner 0 along x, y, z respectively.
-