[prev in list] [next in list] [prev in thread] [next in thread]
List: jakarta-commons-dev
Subject: svn commit: r1563204 - in /commons/proper/math/trunk/src: main/java/org/apache/commons/math3/geometr
From: luc () apache ! org
Date: 2014-01-31 18:33:22
Message-ID: 20140131183322.EBDD623889E7 () eris ! apache ! org
[Download RAW message or body]
Author: luc
Date: Fri Jan 31 18:33:22 2014
New Revision: 1563204
URL: http://svn.apache.org/r1563204
Log:
USer should not provide space dimension, it should be automatic.
Modified:
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser.java
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser2DTest.java
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser3DTest.java
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/c \
ommons/math3/geometry/enclosing/WelzlEncloser.java?rev=1563204&r1=1563203&r2=1563204&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser.java \
(original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser.java \
Fri Jan 31 18:33:22 2014 @@ -46,21 +46,15 @@ public class WelzlEncloser<S extends Spa
/** Tolerance below which points are consider to be identical. */
private final double tolerance;
- /** Maximum number of points to define a ball. */
- private final int max;
-
/** Generator for balls on support. */
private final SupportBallGenerator<S, P> generator;
/** Simple constructor.
* @param tolerance below which points are consider to be identical
- * @param dimension dimension of the space
* @param generator generator for balls on support
*/
- protected WelzlEncloser(final double tolerance, final int dimension,
- final SupportBallGenerator<S, P> generator) {
+ public WelzlEncloser(final double tolerance, final SupportBallGenerator<S, P> \
generator) { this.tolerance = tolerance;
- this.max = dimension + 1;
this.generator = generator;
}
@@ -83,11 +77,12 @@ public class WelzlEncloser<S extends Spa
*/
private EnclosingBall<S, P> pivotingBall(final Iterable<P> points) {
- List<P> extreme = new ArrayList<P>(max);
- List<P> support = new ArrayList<P>(max);
+ final P first = points.iterator().next();
+ final List<P> extreme = new ArrayList<P>(first.getSpace().getDimension() + \
1); + final List<P> support = new ArrayList<P>(first.getSpace().getDimension() \
+ 1);
// start with only first point selected as a candidate support
- extreme.add(points.iterator().next());
+ extreme.add(first);
EnclosingBall<S, P> ball = moveToFrontBall(extreme, extreme.size(), \
support);
while (true) {
@@ -132,7 +127,7 @@ public class WelzlEncloser<S extends Spa
// create a new ball on the prescribed support
EnclosingBall<S, P> ball = generator.ballOnSupport(support);
- if (ball.getSupportSize() < max) {
+ if (ball.getSupportSize() <= ball.getCenter().getSpace().getDimension()) {
for (int i = 0; i < nbExtreme; ++i) {
final P pi = extreme.get(i);
Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser2DTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/c \
ommons/math3/geometry/enclosing/WelzlEncloser2DTest.java?rev=1563204&r1=1563203&r2=1563204&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser2DTest.java \
(original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser2DTest.java \
Fri Jan 31 18:33:22 2014 @@ -35,7 +35,7 @@ public class WelzlEncloser2DTest {
public void testNullList() {
DiskGenerator generator = new DiskGenerator();
WelzlEncloser<Euclidean2D, Vector2D> encloser =
- new WelzlEncloser<Euclidean2D, Vector2D>(1.0e-10, 2, generator);
+ new WelzlEncloser<Euclidean2D, Vector2D>(1.0e-10, generator);
EnclosingBall<Euclidean2D, Vector2D> ball = encloser.enclose(null);
Assert.assertTrue(ball.getRadius() < 0);
}
@@ -44,7 +44,7 @@ public class WelzlEncloser2DTest {
public void testNoPoints() {
DiskGenerator generator = new DiskGenerator();
WelzlEncloser<Euclidean2D, Vector2D> encloser =
- new WelzlEncloser<Euclidean2D, Vector2D>(1.0e-10, 2, generator);
+ new WelzlEncloser<Euclidean2D, Vector2D>(1.0e-10, generator);
EnclosingBall<Euclidean2D, Vector2D> ball = encloser.enclose(new \
ArrayList<Vector2D>()); Assert.assertTrue(ball.getRadius() < 0);
}
@@ -149,7 +149,7 @@ public class WelzlEncloser2DTest {
private EnclosingBall<Euclidean2D, Vector2D> checkDisk(List<Vector2D> points) {
WelzlEncloser<Euclidean2D, Vector2D> encloser =
- new WelzlEncloser<Euclidean2D, Vector2D>(1.0e-10, 2, new \
DiskGenerator()); + new WelzlEncloser<Euclidean2D, Vector2D>(1.0e-10, \
new DiskGenerator());
EnclosingBall<Euclidean2D, Vector2D> disk = encloser.enclose(points);
// all points are enclosed
Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser3DTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/c \
ommons/math3/geometry/enclosing/WelzlEncloser3DTest.java?rev=1563204&r1=1563203&r2=1563204&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser3DTest.java \
(original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/geometry/enclosing/WelzlEncloser3DTest.java \
Fri Jan 31 18:33:22 2014 @@ -17,7 +17,6 @@
package org.apache.commons.math3.geometry.enclosing;
import java.io.IOException;
-import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -39,7 +38,7 @@ public class WelzlEncloser3DTest {
public void testNullList() {
SphereGenerator generator = new SphereGenerator();
WelzlEncloser<Euclidean3D, Vector3D> encloser =
- new WelzlEncloser<Euclidean3D, Vector3D>(1.0e-10, 3, generator);
+ new WelzlEncloser<Euclidean3D, Vector3D>(1.0e-10, generator);
EnclosingBall<Euclidean3D, Vector3D> ball = encloser.enclose(null);
Assert.assertTrue(ball.getRadius() < 0);
}
@@ -48,7 +47,7 @@ public class WelzlEncloser3DTest {
public void testNoPoints() {
SphereGenerator generator = new SphereGenerator();
WelzlEncloser<Euclidean3D, Vector3D> encloser =
- new WelzlEncloser<Euclidean3D, Vector3D>(1.0e-10, 3, generator);
+ new WelzlEncloser<Euclidean3D, Vector3D>(1.0e-10, generator);
EnclosingBall<Euclidean3D, Vector3D> ball = encloser.enclose(new \
ArrayList<Vector3D>()); Assert.assertTrue(ball.getRadius() < 0);
}
@@ -69,7 +68,7 @@ public class WelzlEncloser3DTest {
new Vector3D(-7.140322188726825, -16.574152894557717, \
11.710305611121410),
new Vector3D(-7.141116131477088, -16.574061164624560, \
11.712938509321699)); WelzlEncloser<Euclidean3D, Vector3D> encloser =
- new WelzlEncloser<Euclidean3D, Vector3D>(1.0e-10, 3, new \
SphereGenerator()); + new WelzlEncloser<Euclidean3D, \
Vector3D>(1.0e-10, new SphereGenerator());
EnclosingBall<Euclidean3D, Vector3D> ball = encloser.enclose(list);
Assert.assertTrue(ball.getRadius() > 0);
}
@@ -98,7 +97,7 @@ public class WelzlEncloser3DTest {
new Vector3D( -0.98034899533935820, \
-3.34004481162763960, 13.03245014017556800));
WelzlEncloser<Euclidean3D, Vector3D> encloser =
- new WelzlEncloser<Euclidean3D, Vector3D>(1.0e-10, 3, new \
SphereGenerator()); + new WelzlEncloser<Euclidean3D, \
Vector3D>(1.0e-10, new SphereGenerator());
EnclosingBall<Euclidean3D, Vector3D> ball = encloser.enclose(list);
Assert.assertTrue(ball.getRadius() > 0);
}
@@ -159,7 +158,7 @@ public class WelzlEncloser3DTest {
private EnclosingBall<Euclidean3D, Vector3D> checkSphere(List<Vector3D> points) \
{
WelzlEncloser<Euclidean3D, Vector3D> encloser =
- new WelzlEncloser<Euclidean3D, Vector3D>(1.0e-10, 3, new \
SphereGenerator()); + new WelzlEncloser<Euclidean3D, \
Vector3D>(1.0e-10, new SphereGenerator());
EnclosingBall<Euclidean3D, Vector3D> Sphere = encloser.enclose(points);
// all points are enclosed
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic