commons-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From l..@apache.org
Subject svn commit: r959803 [6/32] - in /websites/production/commons/content/proper/commons-math: jacoco/ jacoco/org.apache.commons.math3.fraction/ jacoco/org.apache.commons.math3.genetics/ jacoco/org.apache.commons.math3.geometry.euclidean.threed/ jacoco/org....
Date Mon, 27 Jul 2015 19:42:10 GMT
Modified: websites/production/commons/content/proper/commons-math/jacoco/org.apache.commons.math3.geometry.euclidean.threed/PolyhedronsSet.java.html
==============================================================================
--- websites/production/commons/content/proper/commons-math/jacoco/org.apache.commons.math3.geometry.euclidean.threed/PolyhedronsSet.java.html (original)
+++ websites/production/commons/content/proper/commons-math/jacoco/org.apache.commons.math3.geometry.euclidean.threed/PolyhedronsSet.java.html Mon Jul 27 19:42:09 2015
@@ -16,7 +16,6 @@
  */
 package org.apache.commons.math3.geometry.euclidean.threed;
 
-import java.awt.geom.AffineTransform;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -55,8 +54,8 @@ public class PolyhedronsSet extends Abst
      * @since 3.3
      */
     public PolyhedronsSet(final double tolerance) {
-<span class="fc" id="L58">        super(tolerance);</span>
-<span class="fc" id="L59">    }</span>
+<span class="fc" id="L57">        super(tolerance);</span>
+<span class="fc" id="L58">    }</span>
 
     /** Build a polyhedrons set from a BSP tree.
      * &lt;p&gt;The leaf nodes of the BSP tree &lt;em&gt;must&lt;/em&gt; have a
@@ -80,8 +79,8 @@ public class PolyhedronsSet extends Abst
      * @since 3.3
      */
     public PolyhedronsSet(final BSPTree&lt;Euclidean3D&gt; tree, final double tolerance) {
-<span class="fc" id="L83">        super(tree, tolerance);</span>
-<span class="fc" id="L84">    }</span>
+<span class="fc" id="L82">        super(tree, tolerance);</span>
+<span class="fc" id="L83">    }</span>
 
     /** Build a polyhedrons set from a Boundary REPresentation (B-rep) specified by sub-hyperplanes.
      * &lt;p&gt;The boundary is provided as a collection of {@link
@@ -106,8 +105,8 @@ public class PolyhedronsSet extends Abst
      */
     public PolyhedronsSet(final Collection&lt;SubHyperplane&lt;Euclidean3D&gt;&gt; boundary,
                           final double tolerance) {
-<span class="fc" id="L109">        super(boundary, tolerance);</span>
-<span class="fc" id="L110">    }</span>
+<span class="fc" id="L108">        super(boundary, tolerance);</span>
+<span class="fc" id="L109">    }</span>
 
     /** Build a polyhedrons set from a Boundary REPresentation (B-rep) specified by connected vertices.
      * &lt;p&gt;
@@ -129,8 +128,8 @@ public class PolyhedronsSet extends Abst
      */
     public PolyhedronsSet(final List&lt;Vector3D&gt; vertices, final List&lt;int[]&gt; facets,
                           final double tolerance) {
-<span class="fc" id="L132">        super(buildBoundary(vertices, facets, tolerance), tolerance);</span>
-<span class="fc" id="L133">    }</span>
+<span class="fc" id="L131">        super(buildBoundary(vertices, facets, tolerance), tolerance);</span>
+<span class="fc" id="L132">    }</span>
 
     /** Build a parallellepipedic box.
      * @param xMin low bound along the x direction
@@ -146,16 +145,16 @@ public class PolyhedronsSet extends Abst
                           final double yMin, final double yMax,
                           final double zMin, final double zMax,
                           final double tolerance) {
-<span class="fc" id="L149">        super(buildBoundary(xMin, xMax, yMin, yMax, zMin, zMax, tolerance), tolerance);</span>
-<span class="fc" id="L150">    }</span>
+<span class="fc" id="L148">        super(buildBoundary(xMin, xMax, yMin, yMax, zMin, zMax, tolerance), tolerance);</span>
+<span class="fc" id="L149">    }</span>
 
     /** Build a polyhedrons set representing the whole real line.
      * @deprecated as of 3.3, replaced with {@link #PolyhedronsSet(double)}
      */
     @Deprecated
     public PolyhedronsSet() {
-<span class="nc" id="L157">        this(DEFAULT_TOLERANCE);</span>
-<span class="nc" id="L158">    }</span>
+<span class="nc" id="L156">        this(DEFAULT_TOLERANCE);</span>
+<span class="nc" id="L157">    }</span>
 
     /** Build a polyhedrons set from a BSP tree.
      * &lt;p&gt;The leaf nodes of the BSP tree &lt;em&gt;must&lt;/em&gt; have a
@@ -169,8 +168,8 @@ public class PolyhedronsSet extends Abst
      */
     @Deprecated
     public PolyhedronsSet(final BSPTree&lt;Euclidean3D&gt; tree) {
-<span class="nc" id="L172">        this(tree, DEFAULT_TOLERANCE);</span>
-<span class="nc" id="L173">    }</span>
+<span class="nc" id="L171">        this(tree, DEFAULT_TOLERANCE);</span>
+<span class="nc" id="L172">    }</span>
 
     /** Build a polyhedrons set from a Boundary REPresentation (B-rep).
      * &lt;p&gt;The boundary is provided as a collection of {@link
@@ -194,8 +193,8 @@ public class PolyhedronsSet extends Abst
      */
     @Deprecated
     public PolyhedronsSet(final Collection&lt;SubHyperplane&lt;Euclidean3D&gt;&gt; boundary) {
-<span class="nc" id="L197">        this(boundary, DEFAULT_TOLERANCE);</span>
-<span class="nc" id="L198">    }</span>
+<span class="nc" id="L196">        this(boundary, DEFAULT_TOLERANCE);</span>
+<span class="nc" id="L197">    }</span>
 
     /** Build a parallellepipedic box.
      * @param xMin low bound along the x direction
@@ -211,8 +210,8 @@ public class PolyhedronsSet extends Abst
     public PolyhedronsSet(final double xMin, final double xMax,
                           final double yMin, final double yMax,
                           final double zMin, final double zMax) {
-<span class="nc" id="L214">        this(xMin, xMax, yMin, yMax, zMin, zMax, DEFAULT_TOLERANCE);</span>
-<span class="nc" id="L215">    }</span>
+<span class="nc" id="L213">        this(xMin, xMax, yMin, yMax, zMin, zMax, DEFAULT_TOLERANCE);</span>
+<span class="nc" id="L214">    }</span>
 
     /** Build a parallellepipedic box boundary.
      * @param xMin low bound along the x direction
@@ -229,20 +228,20 @@ public class PolyhedronsSet extends Abst
                                                       final double yMin, final double yMax,
                                                       final double zMin, final double zMax,
                                                       final double tolerance) {
-<span class="pc bpc" id="L232" title="2 of 6 branches missed.">        if ((xMin &gt;= xMax - tolerance) || (yMin &gt;= yMax - tolerance) || (zMin &gt;= zMax - tolerance)) {</span>
+<span class="pc bpc" id="L231" title="2 of 6 branches missed.">        if ((xMin &gt;= xMax - tolerance) || (yMin &gt;= yMax - tolerance) || (zMin &gt;= zMax - tolerance)) {</span>
             // too thin box, build an empty polygons set
-<span class="fc" id="L234">            return new BSPTree&lt;Euclidean3D&gt;(Boolean.FALSE);</span>
+<span class="fc" id="L233">            return new BSPTree&lt;Euclidean3D&gt;(Boolean.FALSE);</span>
         }
-<span class="fc" id="L236">        final Plane pxMin = new Plane(new Vector3D(xMin, 0,    0),   Vector3D.MINUS_I, tolerance);</span>
-<span class="fc" id="L237">        final Plane pxMax = new Plane(new Vector3D(xMax, 0,    0),   Vector3D.PLUS_I,  tolerance);</span>
-<span class="fc" id="L238">        final Plane pyMin = new Plane(new Vector3D(0,    yMin, 0),   Vector3D.MINUS_J, tolerance);</span>
-<span class="fc" id="L239">        final Plane pyMax = new Plane(new Vector3D(0,    yMax, 0),   Vector3D.PLUS_J,  tolerance);</span>
-<span class="fc" id="L240">        final Plane pzMin = new Plane(new Vector3D(0,    0,   zMin), Vector3D.MINUS_K, tolerance);</span>
-<span class="fc" id="L241">        final Plane pzMax = new Plane(new Vector3D(0,    0,   zMax), Vector3D.PLUS_K,  tolerance);</span>
+<span class="fc" id="L235">        final Plane pxMin = new Plane(new Vector3D(xMin, 0,    0),   Vector3D.MINUS_I, tolerance);</span>
+<span class="fc" id="L236">        final Plane pxMax = new Plane(new Vector3D(xMax, 0,    0),   Vector3D.PLUS_I,  tolerance);</span>
+<span class="fc" id="L237">        final Plane pyMin = new Plane(new Vector3D(0,    yMin, 0),   Vector3D.MINUS_J, tolerance);</span>
+<span class="fc" id="L238">        final Plane pyMax = new Plane(new Vector3D(0,    yMax, 0),   Vector3D.PLUS_J,  tolerance);</span>
+<span class="fc" id="L239">        final Plane pzMin = new Plane(new Vector3D(0,    0,   zMin), Vector3D.MINUS_K, tolerance);</span>
+<span class="fc" id="L240">        final Plane pzMax = new Plane(new Vector3D(0,    0,   zMax), Vector3D.PLUS_K,  tolerance);</span>
         @SuppressWarnings(&quot;unchecked&quot;)
-<span class="fc" id="L243">        final Region&lt;Euclidean3D&gt; boundary =</span>
+<span class="fc" id="L242">        final Region&lt;Euclidean3D&gt; boundary =</span>
         new RegionFactory&lt;Euclidean3D&gt;().buildConvex(pxMin, pxMax, pyMin, pyMax, pzMin, pzMax);
-<span class="fc" id="L245">        return boundary.getTree(false);</span>
+<span class="fc" id="L244">        return boundary.getTree(false);</span>
     }
 
     /** Build boundary from vertices and facets.
@@ -258,37 +257,37 @@ public class PolyhedronsSet extends Abst
                                                                   final double tolerance) {
 
         // check vertices distances
-<span class="fc bfc" id="L261" title="All 2 branches covered.">        for (int i = 0; i &lt; vertices.size() - 1; ++i) {</span>
-<span class="fc" id="L262">            final Vector3D vi = vertices.get(i);</span>
-<span class="fc bfc" id="L263" title="All 2 branches covered.">            for (int j = i + 1; j &lt; vertices.size(); ++j) {</span>
-<span class="fc bfc" id="L264" title="All 2 branches covered.">                if (Vector3D.distance(vi, vertices.get(j)) &lt;= tolerance) {</span>
-<span class="fc" id="L265">                    throw new MathIllegalArgumentException(LocalizedFormats.CLOSE_VERTICES,</span>
+<span class="fc bfc" id="L260" title="All 2 branches covered.">        for (int i = 0; i &lt; vertices.size() - 1; ++i) {</span>
+<span class="fc" id="L261">            final Vector3D vi = vertices.get(i);</span>
+<span class="fc bfc" id="L262" title="All 2 branches covered.">            for (int j = i + 1; j &lt; vertices.size(); ++j) {</span>
+<span class="fc bfc" id="L263" title="All 2 branches covered.">                if (Vector3D.distance(vi, vertices.get(j)) &lt;= tolerance) {</span>
+<span class="fc" id="L264">                    throw new MathIllegalArgumentException(LocalizedFormats.CLOSE_VERTICES,</span>
                                                            vi.getX(), vi.getY(), vi.getZ());
                 }
             }
         }
 
         // find how vertices are referenced by facets
-<span class="fc" id="L272">        final int[][] references = findReferences(vertices, facets);</span>
+<span class="fc" id="L271">        final int[][] references = findReferences(vertices, facets);</span>
 
         // find how vertices are linked together by edges along the facets they belong to
-<span class="fc" id="L275">        final int[][] successors = successors(vertices, facets, references);</span>
+<span class="fc" id="L274">        final int[][] successors = successors(vertices, facets, references);</span>
 
         // check edges orientations
-<span class="fc bfc" id="L278" title="All 2 branches covered.">        for (int vA = 0; vA &lt; vertices.size(); ++vA) {</span>
-<span class="fc bfc" id="L279" title="All 2 branches covered.">            for (final int vB : successors[vA]) {</span>
+<span class="fc bfc" id="L277" title="All 2 branches covered.">        for (int vA = 0; vA &lt; vertices.size(); ++vA) {</span>
+<span class="fc bfc" id="L278" title="All 2 branches covered.">            for (final int vB : successors[vA]) {</span>
 
-<span class="fc bfc" id="L281" title="All 2 branches covered.">                if (vB &gt;= 0) {</span>
+<span class="fc bfc" id="L280" title="All 2 branches covered.">                if (vB &gt;= 0) {</span>
                     // when facets are properly oriented, if vB is the successor of vA on facet f1,
                     // then there must be an adjacent facet f2 where vA is the successor of vB
-<span class="fc" id="L284">                    boolean found = false;</span>
-<span class="fc bfc" id="L285" title="All 2 branches covered.">                    for (final int v : successors[vB]) {</span>
-<span class="fc bfc" id="L286" title="All 4 branches covered.">                        found = found || (v == vA);</span>
+<span class="fc" id="L283">                    boolean found = false;</span>
+<span class="fc bfc" id="L284" title="All 2 branches covered.">                    for (final int v : successors[vB]) {</span>
+<span class="fc bfc" id="L285" title="All 4 branches covered.">                        found = found || (v == vA);</span>
                     }
-<span class="fc bfc" id="L288" title="All 2 branches covered.">                    if (!found) {</span>
-<span class="fc" id="L289">                        final Vector3D start = vertices.get(vA);</span>
-<span class="fc" id="L290">                        final Vector3D end   = vertices.get(vB);</span>
-<span class="fc" id="L291">                        throw new MathIllegalArgumentException(LocalizedFormats.EDGE_CONNECTED_TO_ONE_FACET,</span>
+<span class="fc bfc" id="L287" title="All 2 branches covered.">                    if (!found) {</span>
+<span class="fc" id="L288">                        final Vector3D start = vertices.get(vA);</span>
+<span class="fc" id="L289">                        final Vector3D end   = vertices.get(vB);</span>
+<span class="fc" id="L290">                        throw new MathIllegalArgumentException(LocalizedFormats.EDGE_CONNECTED_TO_ONE_FACET,</span>
                                                                start.getX(), start.getY(), start.getZ(),
                                                                end.getX(),   end.getY(),   end.getZ());
                     }
@@ -296,31 +295,31 @@ public class PolyhedronsSet extends Abst
             }
         }
 
-<span class="fc" id="L299">        final List&lt;SubHyperplane&lt;Euclidean3D&gt;&gt; boundary = new ArrayList&lt;SubHyperplane&lt;Euclidean3D&gt;&gt;();</span>
+<span class="fc" id="L298">        final List&lt;SubHyperplane&lt;Euclidean3D&gt;&gt; boundary = new ArrayList&lt;SubHyperplane&lt;Euclidean3D&gt;&gt;();</span>
 
-<span class="fc bfc" id="L301" title="All 2 branches covered.">        for (final int[] facet : facets) {</span>
+<span class="fc bfc" id="L300" title="All 2 branches covered.">        for (final int[] facet : facets) {</span>
 
             // define facet plane from the first 3 points
-<span class="fc" id="L304">            Plane plane = new Plane(vertices.get(facet[0]), vertices.get(facet[1]), vertices.get(facet[2]),</span>
+<span class="fc" id="L303">            Plane plane = new Plane(vertices.get(facet[0]), vertices.get(facet[1]), vertices.get(facet[2]),</span>
                                     tolerance);
 
             // check all points are in the plane
-<span class="fc" id="L308">            final Vector2D[] two2Points = new Vector2D[facet.length];</span>
-<span class="fc bfc" id="L309" title="All 2 branches covered.">            for (int i = 0 ; i &lt; facet.length; ++i) {</span>
-<span class="fc" id="L310">                final Vector3D v = vertices.get(facet[i]);</span>
-<span class="fc bfc" id="L311" title="All 2 branches covered.">                if (!plane.contains(v)) {</span>
-<span class="fc" id="L312">                    throw new MathIllegalArgumentException(LocalizedFormats.OUT_OF_PLANE,</span>
+<span class="fc" id="L307">            final Vector2D[] two2Points = new Vector2D[facet.length];</span>
+<span class="fc bfc" id="L308" title="All 2 branches covered.">            for (int i = 0 ; i &lt; facet.length; ++i) {</span>
+<span class="fc" id="L309">                final Vector3D v = vertices.get(facet[i]);</span>
+<span class="fc bfc" id="L310" title="All 2 branches covered.">                if (!plane.contains(v)) {</span>
+<span class="fc" id="L311">                    throw new MathIllegalArgumentException(LocalizedFormats.OUT_OF_PLANE,</span>
                                                            v.getX(), v.getY(), v.getZ());
                 }
-<span class="fc" id="L315">                two2Points[i] = plane.toSubSpace(v);</span>
+<span class="fc" id="L314">                two2Points[i] = plane.toSubSpace(v);</span>
             }
 
             // create the polygonal facet
-<span class="fc" id="L319">            boundary.add(new SubPlane(plane, new PolygonsSet(tolerance, two2Points)));</span>
+<span class="fc" id="L318">            boundary.add(new SubPlane(plane, new PolygonsSet(tolerance, two2Points)));</span>
 
-<span class="fc" id="L321">        }</span>
+<span class="fc" id="L320">        }</span>
 
-<span class="fc" id="L323">        return boundary;</span>
+<span class="fc" id="L322">        return boundary;</span>
 
     }
 
@@ -334,35 +333,35 @@ public class PolyhedronsSet extends Abst
     private static int[][] findReferences(final List&lt;Vector3D&gt; vertices, final List&lt;int[]&gt; facets) {
 
         // find the maximum number of facets a vertex belongs to
-<span class="fc" id="L337">        final int[] nbFacets = new int[vertices.size()];</span>
-<span class="fc" id="L338">        int maxFacets  = 0;</span>
-<span class="fc bfc" id="L339" title="All 2 branches covered.">        for (final int[] facet : facets) {</span>
-<span class="fc bfc" id="L340" title="All 2 branches covered.">            if (facet.length &lt; 3) {</span>
-<span class="fc" id="L341">                throw new NumberIsTooSmallException(LocalizedFormats.WRONG_NUMBER_OF_POINTS,</span>
+<span class="fc" id="L336">        final int[] nbFacets = new int[vertices.size()];</span>
+<span class="fc" id="L337">        int maxFacets  = 0;</span>
+<span class="fc bfc" id="L338" title="All 2 branches covered.">        for (final int[] facet : facets) {</span>
+<span class="fc bfc" id="L339" title="All 2 branches covered.">            if (facet.length &lt; 3) {</span>
+<span class="fc" id="L340">                throw new NumberIsTooSmallException(LocalizedFormats.WRONG_NUMBER_OF_POINTS,</span>
                                                     3, facet.length, true);
             }
-<span class="fc bfc" id="L344" title="All 2 branches covered.">            for (final int index : facet) {</span>
-<span class="fc" id="L345">                maxFacets = FastMath.max(maxFacets, ++nbFacets[index]);</span>
+<span class="fc bfc" id="L343" title="All 2 branches covered.">            for (final int index : facet) {</span>
+<span class="fc" id="L344">                maxFacets = FastMath.max(maxFacets, ++nbFacets[index]);</span>
             }
-<span class="fc" id="L347">        }</span>
+<span class="fc" id="L346">        }</span>
 
         // set up the references array
-<span class="fc" id="L350">        final int[][] references = new int[vertices.size()][maxFacets];</span>
-<span class="fc bfc" id="L351" title="All 2 branches covered.">        for (int[] r : references) {</span>
-<span class="fc" id="L352">            Arrays.fill(r, -1);</span>
+<span class="fc" id="L349">        final int[][] references = new int[vertices.size()][maxFacets];</span>
+<span class="fc bfc" id="L350" title="All 2 branches covered.">        for (int[] r : references) {</span>
+<span class="fc" id="L351">            Arrays.fill(r, -1);</span>
         }
-<span class="fc bfc" id="L354" title="All 2 branches covered.">        for (int f = 0; f &lt; facets.size(); ++f) {</span>
-<span class="fc bfc" id="L355" title="All 2 branches covered.">            for (final int v : facets.get(f)) {</span>
+<span class="fc bfc" id="L353" title="All 2 branches covered.">        for (int f = 0; f &lt; facets.size(); ++f) {</span>
+<span class="fc bfc" id="L354" title="All 2 branches covered.">            for (final int v : facets.get(f)) {</span>
                 // vertex v is referenced by facet f
-<span class="fc" id="L357">                int k = 0;</span>
-<span class="pc bpc" id="L358" title="1 of 4 branches missed.">                while (k &lt; maxFacets &amp;&amp; references[v][k] &gt;= 0) {</span>
-<span class="fc" id="L359">                    ++k;</span>
+<span class="fc" id="L356">                int k = 0;</span>
+<span class="pc bpc" id="L357" title="1 of 4 branches missed.">                while (k &lt; maxFacets &amp;&amp; references[v][k] &gt;= 0) {</span>
+<span class="fc" id="L358">                    ++k;</span>
                 }
-<span class="fc" id="L361">                references[v][k] = f;</span>
+<span class="fc" id="L360">                references[v][k] = f;</span>
             }
         }
 
-<span class="fc" id="L365">        return references;</span>
+<span class="fc" id="L364">        return references;</span>
 
     }
 
@@ -380,28 +379,28 @@ public class PolyhedronsSet extends Abst
                                       final int[][] references) {
 
         // create an array large enough
-<span class="fc" id="L383">        final int[][] successors = new int[vertices.size()][references[0].length];</span>
-<span class="fc bfc" id="L384" title="All 2 branches covered.">        for (final int[] s : successors) {</span>
-<span class="fc" id="L385">            Arrays.fill(s, -1);</span>
+<span class="fc" id="L382">        final int[][] successors = new int[vertices.size()][references[0].length];</span>
+<span class="fc bfc" id="L383" title="All 2 branches covered.">        for (final int[] s : successors) {</span>
+<span class="fc" id="L384">            Arrays.fill(s, -1);</span>
         }
 
-<span class="fc bfc" id="L388" title="All 2 branches covered.">        for (int v = 0; v &lt; vertices.size(); ++v) {</span>
-<span class="fc bfc" id="L389" title="All 4 branches covered.">            for (int k = 0; k &lt; successors[v].length &amp;&amp; references[v][k] &gt;= 0; ++k) {</span>
+<span class="fc bfc" id="L387" title="All 2 branches covered.">        for (int v = 0; v &lt; vertices.size(); ++v) {</span>
+<span class="fc bfc" id="L388" title="All 4 branches covered.">            for (int k = 0; k &lt; successors[v].length &amp;&amp; references[v][k] &gt;= 0; ++k) {</span>
 
                 // look for vertex v
-<span class="fc" id="L392">                final int[] facet = facets.get(references[v][k]);</span>
-<span class="fc" id="L393">                int i = 0;</span>
-<span class="pc bpc" id="L394" title="1 of 4 branches missed.">                while (i &lt; facet.length &amp;&amp; facet[i] != v) {</span>
-<span class="fc" id="L395">                    ++i;</span>
+<span class="fc" id="L391">                final int[] facet = facets.get(references[v][k]);</span>
+<span class="fc" id="L392">                int i = 0;</span>
+<span class="pc bpc" id="L393" title="1 of 4 branches missed.">                while (i &lt; facet.length &amp;&amp; facet[i] != v) {</span>
+<span class="fc" id="L394">                    ++i;</span>
                 }
 
                 // we have found vertex v, we deduce its successor on current facet
-<span class="fc" id="L399">                successors[v][k] = facet[(i + 1) % facet.length];</span>
-<span class="fc bfc" id="L400" title="All 2 branches covered.">                for (int l = 0; l &lt; k; ++l) {</span>
-<span class="fc bfc" id="L401" title="All 2 branches covered.">                    if (successors[v][l] == successors[v][k]) {</span>
-<span class="fc" id="L402">                        final Vector3D start = vertices.get(v);</span>
-<span class="fc" id="L403">                        final Vector3D end   = vertices.get(successors[v][k]);</span>
-<span class="fc" id="L404">                        throw new MathIllegalArgumentException(LocalizedFormats.FACET_ORIENTATION_MISMATCH,</span>
+<span class="fc" id="L398">                successors[v][k] = facet[(i + 1) % facet.length];</span>
+<span class="fc bfc" id="L399" title="All 2 branches covered.">                for (int l = 0; l &lt; k; ++l) {</span>
+<span class="fc bfc" id="L400" title="All 2 branches covered.">                    if (successors[v][l] == successors[v][k]) {</span>
+<span class="fc" id="L401">                        final Vector3D start = vertices.get(v);</span>
+<span class="fc" id="L402">                        final Vector3D end   = vertices.get(successors[v][k]);</span>
+<span class="fc" id="L403">                        throw new MathIllegalArgumentException(LocalizedFormats.FACET_ORIENTATION_MISMATCH,</span>
                                                                start.getX(), start.getY(), start.getZ(),
                                                                end.getX(),   end.getY(),   end.getZ());
                     }
@@ -410,14 +409,14 @@ public class PolyhedronsSet extends Abst
             }
         }
 
-<span class="fc" id="L413">        return successors;</span>
+<span class="fc" id="L412">        return successors;</span>
 
     }
 
     /** {@inheritDoc} */
     @Override
     public PolyhedronsSet buildNew(final BSPTree&lt;Euclidean3D&gt; tree) {
-<span class="fc" id="L420">        return new PolyhedronsSet(tree, getTolerance());</span>
+<span class="fc" id="L419">        return new PolyhedronsSet(tree, getTolerance());</span>
     }
 
     /** {@inheritDoc} */
@@ -425,51 +424,51 @@ public class PolyhedronsSet extends Abst
     protected void computeGeometricalProperties() {
 
         // compute the contribution of all boundary facets
-<span class="fc" id="L428">        getTree(true).visit(new FacetsContributionVisitor());</span>
+<span class="fc" id="L427">        getTree(true).visit(new FacetsContributionVisitor());</span>
 
-<span class="pc bpc" id="L430" title="1 of 2 branches missed.">        if (getSize() &lt; 0) {</span>
+<span class="pc bpc" id="L429" title="1 of 2 branches missed.">        if (getSize() &lt; 0) {</span>
             // the polyhedrons set as a finite outside
             // surrounded by an infinite inside
-<span class="nc" id="L433">            setSize(Double.POSITIVE_INFINITY);</span>
-<span class="nc" id="L434">            setBarycenter((Point&lt;Euclidean3D&gt;) Vector3D.NaN);</span>
+<span class="nc" id="L432">            setSize(Double.POSITIVE_INFINITY);</span>
+<span class="nc" id="L433">            setBarycenter((Point&lt;Euclidean3D&gt;) Vector3D.NaN);</span>
         } else {
             // the polyhedrons set is finite, apply the remaining scaling factors
-<span class="fc" id="L437">            setSize(getSize() / 3.0);</span>
-<span class="fc" id="L438">            setBarycenter((Point&lt;Euclidean3D&gt;) new Vector3D(1.0 / (4 * getSize()), (Vector3D) getBarycenter()));</span>
+<span class="fc" id="L436">            setSize(getSize() / 3.0);</span>
+<span class="fc" id="L437">            setBarycenter((Point&lt;Euclidean3D&gt;) new Vector3D(1.0 / (4 * getSize()), (Vector3D) getBarycenter()));</span>
         }
 
-<span class="fc" id="L441">    }</span>
+<span class="fc" id="L440">    }</span>
 
     /** Visitor computing geometrical properties. */
     private class FacetsContributionVisitor implements BSPTreeVisitor&lt;Euclidean3D&gt; {
 
         /** Simple constructor. */
-<span class="fc" id="L447">        public FacetsContributionVisitor() {</span>
-<span class="fc" id="L448">            setSize(0);</span>
-<span class="fc" id="L449">            setBarycenter((Point&lt;Euclidean3D&gt;) new Vector3D(0, 0, 0));</span>
-<span class="fc" id="L450">        }</span>
+<span class="fc" id="L446">        public FacetsContributionVisitor() {</span>
+<span class="fc" id="L447">            setSize(0);</span>
+<span class="fc" id="L448">            setBarycenter((Point&lt;Euclidean3D&gt;) new Vector3D(0, 0, 0));</span>
+<span class="fc" id="L449">        }</span>
 
         /** {@inheritDoc} */
         public Order visitOrder(final BSPTree&lt;Euclidean3D&gt; node) {
-<span class="fc" id="L454">            return Order.MINUS_SUB_PLUS;</span>
+<span class="fc" id="L453">            return Order.MINUS_SUB_PLUS;</span>
         }
 
         /** {@inheritDoc} */
         public void visitInternalNode(final BSPTree&lt;Euclidean3D&gt; node) {
             @SuppressWarnings(&quot;unchecked&quot;)
-<span class="fc" id="L460">            final BoundaryAttribute&lt;Euclidean3D&gt; attribute =</span>
+<span class="fc" id="L459">            final BoundaryAttribute&lt;Euclidean3D&gt; attribute =</span>
                 (BoundaryAttribute&lt;Euclidean3D&gt;) node.getAttribute();
-<span class="pc bpc" id="L462" title="1 of 2 branches missed.">            if (attribute.getPlusOutside() != null) {</span>
-<span class="fc" id="L463">                addContribution(attribute.getPlusOutside(), false);</span>
+<span class="pc bpc" id="L461" title="1 of 2 branches missed.">            if (attribute.getPlusOutside() != null) {</span>
+<span class="fc" id="L462">                addContribution(attribute.getPlusOutside(), false);</span>
             }
-<span class="fc bfc" id="L465" title="All 2 branches covered.">            if (attribute.getPlusInside() != null) {</span>
-<span class="fc" id="L466">                addContribution(attribute.getPlusInside(), true);</span>
+<span class="fc bfc" id="L464" title="All 2 branches covered.">            if (attribute.getPlusInside() != null) {</span>
+<span class="fc" id="L465">                addContribution(attribute.getPlusInside(), true);</span>
             }
-<span class="fc" id="L468">        }</span>
+<span class="fc" id="L467">        }</span>
 
         /** {@inheritDoc} */
         public void visitLeafNode(final BSPTree&lt;Euclidean3D&gt; node) {
-<span class="fc" id="L472">        }</span>
+<span class="fc" id="L471">        }</span>
 
         /** Add he contribution of a boundary facet.
          * @param facet boundary facet
@@ -477,27 +476,27 @@ public class PolyhedronsSet extends Abst
          */
         private void addContribution(final SubHyperplane&lt;Euclidean3D&gt; facet, final boolean reversed) {
 
-<span class="fc" id="L480">            final Region&lt;Euclidean2D&gt; polygon = ((SubPlane) facet).getRemainingRegion();</span>
-<span class="fc" id="L481">            final double area    = polygon.getSize();</span>
+<span class="fc" id="L479">            final Region&lt;Euclidean2D&gt; polygon = ((SubPlane) facet).getRemainingRegion();</span>
+<span class="fc" id="L480">            final double area    = polygon.getSize();</span>
 
-<span class="pc bpc" id="L483" title="1 of 2 branches missed.">            if (Double.isInfinite(area)) {</span>
-<span class="nc" id="L484">                setSize(Double.POSITIVE_INFINITY);</span>
-<span class="nc" id="L485">                setBarycenter((Point&lt;Euclidean3D&gt;) Vector3D.NaN);</span>
+<span class="pc bpc" id="L482" title="1 of 2 branches missed.">            if (Double.isInfinite(area)) {</span>
+<span class="nc" id="L483">                setSize(Double.POSITIVE_INFINITY);</span>
+<span class="nc" id="L484">                setBarycenter((Point&lt;Euclidean3D&gt;) Vector3D.NaN);</span>
             } else {
 
-<span class="fc" id="L488">                final Plane    plane  = (Plane) facet.getHyperplane();</span>
-<span class="fc" id="L489">                final Vector3D facetB = plane.toSpace(polygon.getBarycenter());</span>
-<span class="fc" id="L490">                double   scaled = area * facetB.dotProduct(plane.getNormal());</span>
-<span class="fc bfc" id="L491" title="All 2 branches covered.">                if (reversed) {</span>
-<span class="fc" id="L492">                    scaled = -scaled;</span>
+<span class="fc" id="L487">                final Plane    plane  = (Plane) facet.getHyperplane();</span>
+<span class="fc" id="L488">                final Vector3D facetB = plane.toSpace(polygon.getBarycenter());</span>
+<span class="fc" id="L489">                double   scaled = area * facetB.dotProduct(plane.getNormal());</span>
+<span class="fc bfc" id="L490" title="All 2 branches covered.">                if (reversed) {</span>
+<span class="fc" id="L491">                    scaled = -scaled;</span>
                 }
 
-<span class="fc" id="L495">                setSize(getSize() + scaled);</span>
-<span class="fc" id="L496">                setBarycenter((Point&lt;Euclidean3D&gt;) new Vector3D(1.0, (Vector3D) getBarycenter(), scaled, facetB));</span>
+<span class="fc" id="L494">                setSize(getSize() + scaled);</span>
+<span class="fc" id="L495">                setBarycenter((Point&lt;Euclidean3D&gt;) new Vector3D(1.0, (Vector3D) getBarycenter(), scaled, facetB));</span>
 
             }
 
-<span class="fc" id="L500">        }</span>
+<span class="fc" id="L499">        }</span>
 
     }
 
@@ -509,7 +508,7 @@ public class PolyhedronsSet extends Abst
      * sub-hyperplane
      */
     public SubHyperplane&lt;Euclidean3D&gt; firstIntersection(final Vector3D point, final Line line) {
-<span class="fc" id="L512">        return recurseFirstIntersection(getTree(true), point, line);</span>
+<span class="fc" id="L511">        return recurseFirstIntersection(getTree(true), point, line);</span>
     }
 
     /** Get the first sub-hyperplane crossed by a semi-infinite line.
@@ -524,54 +523,54 @@ public class PolyhedronsSet extends Abst
                                                                 final Vector3D point,
                                                                 final Line line) {
 
-<span class="fc" id="L527">        final SubHyperplane&lt;Euclidean3D&gt; cut = node.getCut();</span>
-<span class="fc bfc" id="L528" title="All 2 branches covered.">        if (cut == null) {</span>
-<span class="fc" id="L529">            return null;</span>
-        }
-<span class="fc" id="L531">        final BSPTree&lt;Euclidean3D&gt; minus = node.getMinus();</span>
-<span class="fc" id="L532">        final BSPTree&lt;Euclidean3D&gt; plus  = node.getPlus();</span>
-<span class="fc" id="L533">        final Plane                plane = (Plane) cut.getHyperplane();</span>
+<span class="fc" id="L526">        final SubHyperplane&lt;Euclidean3D&gt; cut = node.getCut();</span>
+<span class="fc bfc" id="L527" title="All 2 branches covered.">        if (cut == null) {</span>
+<span class="fc" id="L528">            return null;</span>
+        }
+<span class="fc" id="L530">        final BSPTree&lt;Euclidean3D&gt; minus = node.getMinus();</span>
+<span class="fc" id="L531">        final BSPTree&lt;Euclidean3D&gt; plus  = node.getPlus();</span>
+<span class="fc" id="L532">        final Plane                plane = (Plane) cut.getHyperplane();</span>
 
         // establish search order
-<span class="fc" id="L536">        final double offset = plane.getOffset((Point&lt;Euclidean3D&gt;) point);</span>
-<span class="pc bpc" id="L537" title="1 of 2 branches missed.">        final boolean in    = FastMath.abs(offset) &lt; getTolerance();</span>
+<span class="fc" id="L535">        final double offset = plane.getOffset((Point&lt;Euclidean3D&gt;) point);</span>
+<span class="pc bpc" id="L536" title="1 of 2 branches missed.">        final boolean in    = FastMath.abs(offset) &lt; getTolerance();</span>
         final BSPTree&lt;Euclidean3D&gt; near;
         final BSPTree&lt;Euclidean3D&gt; far;
-<span class="pc bpc" id="L540" title="1 of 2 branches missed.">        if (offset &lt; 0) {</span>
-<span class="fc" id="L541">            near = minus;</span>
-<span class="fc" id="L542">            far  = plus;</span>
+<span class="pc bpc" id="L539" title="1 of 2 branches missed.">        if (offset &lt; 0) {</span>
+<span class="fc" id="L540">            near = minus;</span>
+<span class="fc" id="L541">            far  = plus;</span>
         } else {
-<span class="nc" id="L544">            near = plus;</span>
-<span class="nc" id="L545">            far  = minus;</span>
+<span class="nc" id="L543">            near = plus;</span>
+<span class="nc" id="L544">            far  = minus;</span>
         }
 
-<span class="pc bpc" id="L548" title="1 of 2 branches missed.">        if (in) {</span>
+<span class="pc bpc" id="L547" title="1 of 2 branches missed.">        if (in) {</span>
             // search in the cut hyperplane
-<span class="nc" id="L550">            final SubHyperplane&lt;Euclidean3D&gt; facet = boundaryFacet(point, node);</span>
-<span class="nc bnc" id="L551" title="All 2 branches missed.">            if (facet != null) {</span>
-<span class="nc" id="L552">                return facet;</span>
+<span class="nc" id="L549">            final SubHyperplane&lt;Euclidean3D&gt; facet = boundaryFacet(point, node);</span>
+<span class="nc bnc" id="L550" title="All 2 branches missed.">            if (facet != null) {</span>
+<span class="nc" id="L551">                return facet;</span>
             }
         }
 
         // search in the near branch
-<span class="fc" id="L557">        final SubHyperplane&lt;Euclidean3D&gt; crossed = recurseFirstIntersection(near, point, line);</span>
-<span class="fc bfc" id="L558" title="All 2 branches covered.">        if (crossed != null) {</span>
-<span class="fc" id="L559">            return crossed;</span>
+<span class="fc" id="L556">        final SubHyperplane&lt;Euclidean3D&gt; crossed = recurseFirstIntersection(near, point, line);</span>
+<span class="fc bfc" id="L557" title="All 2 branches covered.">        if (crossed != null) {</span>
+<span class="fc" id="L558">            return crossed;</span>
         }
 
-<span class="pc bpc" id="L562" title="1 of 2 branches missed.">        if (!in) {</span>
+<span class="pc bpc" id="L561" title="1 of 2 branches missed.">        if (!in) {</span>
             // search in the cut hyperplane
-<span class="fc" id="L564">            final Vector3D hit3D = plane.intersection(line);</span>
-<span class="pc bpc" id="L565" title="1 of 4 branches missed.">            if (hit3D != null &amp;&amp; line.getAbscissa(hit3D) &gt; line.getAbscissa(point)) {</span>
-<span class="fc" id="L566">                final SubHyperplane&lt;Euclidean3D&gt; facet = boundaryFacet(hit3D, node);</span>
-<span class="fc bfc" id="L567" title="All 2 branches covered.">                if (facet != null) {</span>
-<span class="fc" id="L568">                    return facet;</span>
+<span class="fc" id="L563">            final Vector3D hit3D = plane.intersection(line);</span>
+<span class="pc bpc" id="L564" title="1 of 4 branches missed.">            if (hit3D != null &amp;&amp; line.getAbscissa(hit3D) &gt; line.getAbscissa(point)) {</span>
+<span class="fc" id="L565">                final SubHyperplane&lt;Euclidean3D&gt; facet = boundaryFacet(hit3D, node);</span>
+<span class="fc bfc" id="L566" title="All 2 branches covered.">                if (facet != null) {</span>
+<span class="fc" id="L567">                    return facet;</span>
                 }
             }
         }
 
         // search in the far branch
-<span class="fc" id="L574">        return recurseFirstIntersection(far, point, line);</span>
+<span class="fc" id="L573">        return recurseFirstIntersection(far, point, line);</span>
 
     }
 
@@ -583,19 +582,19 @@ public class PolyhedronsSet extends Abst
      */
     private SubHyperplane&lt;Euclidean3D&gt; boundaryFacet(final Vector3D point,
                                                      final BSPTree&lt;Euclidean3D&gt; node) {
-<span class="fc" id="L586">        final Vector2D point2D = ((Plane) node.getCut().getHyperplane()).toSubSpace((Point&lt;Euclidean3D&gt;) point);</span>
+<span class="fc" id="L585">        final Vector2D point2D = ((Plane) node.getCut().getHyperplane()).toSubSpace((Point&lt;Euclidean3D&gt;) point);</span>
         @SuppressWarnings(&quot;unchecked&quot;)
-<span class="fc" id="L588">        final BoundaryAttribute&lt;Euclidean3D&gt; attribute =</span>
+<span class="fc" id="L587">        final BoundaryAttribute&lt;Euclidean3D&gt; attribute =</span>
             (BoundaryAttribute&lt;Euclidean3D&gt;) node.getAttribute();
-<span class="pc bpc" id="L590" title="1 of 4 branches missed.">        if ((attribute.getPlusOutside() != null) &amp;&amp;</span>
+<span class="pc bpc" id="L589" title="1 of 4 branches missed.">        if ((attribute.getPlusOutside() != null) &amp;&amp;</span>
             (((SubPlane) attribute.getPlusOutside()).getRemainingRegion().checkPoint(point2D) == Location.INSIDE)) {
-<span class="fc" id="L592">            return attribute.getPlusOutside();</span>
+<span class="fc" id="L591">            return attribute.getPlusOutside();</span>
         }
-<span class="pc bpc" id="L594" title="3 of 4 branches missed.">        if ((attribute.getPlusInside() != null) &amp;&amp;</span>
+<span class="pc bpc" id="L593" title="3 of 4 branches missed.">        if ((attribute.getPlusInside() != null) &amp;&amp;</span>
             (((SubPlane) attribute.getPlusInside()).getRemainingRegion().checkPoint(point2D) == Location.INSIDE)) {
-<span class="nc" id="L596">            return attribute.getPlusInside();</span>
+<span class="nc" id="L595">            return attribute.getPlusInside();</span>
         }
-<span class="fc" id="L598">        return null;</span>
+<span class="fc" id="L597">        return null;</span>
     }
 
     /** Rotate the region around the specified point.
@@ -605,7 +604,7 @@ public class PolyhedronsSet extends Abst
      * @return a new instance representing the rotated region
      */
     public PolyhedronsSet rotate(final Vector3D center, final Rotation rotation) {
-<span class="fc" id="L608">        return (PolyhedronsSet) applyTransform(new RotationTransform(center, rotation));</span>
+<span class="fc" id="L607">        return (PolyhedronsSet) applyTransform(new RotationTransform(center, rotation));</span>
     }
 
     /** 3D rotation as a Transform. */
@@ -627,47 +626,49 @@ public class PolyhedronsSet extends Abst
          * @param center center point of the rotation
          * @param rotation vectorial rotation
          */
-<span class="fc" id="L630">        public RotationTransform(final Vector3D center, final Rotation rotation) {</span>
-<span class="fc" id="L631">            this.center   = center;</span>
-<span class="fc" id="L632">            this.rotation = rotation;</span>
-<span class="fc" id="L633">        }</span>
+<span class="fc" id="L629">        public RotationTransform(final Vector3D center, final Rotation rotation) {</span>
+<span class="fc" id="L630">            this.center   = center;</span>
+<span class="fc" id="L631">            this.rotation = rotation;</span>
+<span class="fc" id="L632">        }</span>
 
         /** {@inheritDoc} */
         public Vector3D apply(final Point&lt;Euclidean3D&gt; point) {
-<span class="fc" id="L637">            final Vector3D delta = ((Vector3D) point).subtract(center);</span>
-<span class="fc" id="L638">            return new Vector3D(1.0, center, 1.0, rotation.applyTo(delta));</span>
+<span class="fc" id="L636">            final Vector3D delta = ((Vector3D) point).subtract(center);</span>
+<span class="fc" id="L637">            return new Vector3D(1.0, center, 1.0, rotation.applyTo(delta));</span>
         }
 
         /** {@inheritDoc} */
         public Plane apply(final Hyperplane&lt;Euclidean3D&gt; hyperplane) {
-<span class="fc" id="L643">            return ((Plane) hyperplane).rotate(center, rotation);</span>
+<span class="fc" id="L642">            return ((Plane) hyperplane).rotate(center, rotation);</span>
         }
 
         /** {@inheritDoc} */
         public SubHyperplane&lt;Euclidean2D&gt; apply(final SubHyperplane&lt;Euclidean2D&gt; sub,
                                                 final Hyperplane&lt;Euclidean3D&gt; original,
                                                 final Hyperplane&lt;Euclidean3D&gt; transformed) {
-<span class="fc bfc" id="L650" title="All 2 branches covered.">            if (original != cachedOriginal) {</span>
+<span class="fc bfc" id="L649" title="All 2 branches covered.">            if (original != cachedOriginal) {</span>
                 // we have changed hyperplane, reset the in-hyperplane transform
 
-<span class="fc" id="L653">                final Plane    oPlane = (Plane) original;</span>
-<span class="fc" id="L654">                final Plane    tPlane = (Plane) transformed;</span>
-<span class="fc" id="L655">                final Vector3D p00    = oPlane.getOrigin();</span>
-<span class="fc" id="L656">                final Vector3D p10    = oPlane.toSpace((Point&lt;Euclidean2D&gt;) new Vector2D(1.0, 0.0));</span>
-<span class="fc" id="L657">                final Vector3D p01    = oPlane.toSpace((Point&lt;Euclidean2D&gt;) new Vector2D(0.0, 1.0));</span>
-<span class="fc" id="L658">                final Vector2D tP00   = tPlane.toSubSpace((Point&lt;Euclidean3D&gt;) apply(p00));</span>
-<span class="fc" id="L659">                final Vector2D tP10   = tPlane.toSubSpace((Point&lt;Euclidean3D&gt;) apply(p10));</span>
-<span class="fc" id="L660">                final Vector2D tP01   = tPlane.toSubSpace((Point&lt;Euclidean3D&gt;) apply(p01));</span>
-<span class="fc" id="L661">                final AffineTransform at =</span>
-                    new AffineTransform(tP10.getX() - tP00.getX(), tP10.getY() - tP00.getY(),
-                                        tP01.getX() - tP00.getX(), tP01.getY() - tP00.getY(),
-                                        tP00.getX(), tP00.getY());
-
-<span class="fc" id="L666">                cachedOriginal  = (Plane) original;</span>
-<span class="fc" id="L667">                cachedTransform = org.apache.commons.math3.geometry.euclidean.twod.Line.getTransform(at);</span>
+<span class="fc" id="L652">                final Plane    oPlane = (Plane) original;</span>
+<span class="fc" id="L653">                final Plane    tPlane = (Plane) transformed;</span>
+<span class="fc" id="L654">                final Vector3D p00    = oPlane.getOrigin();</span>
+<span class="fc" id="L655">                final Vector3D p10    = oPlane.toSpace((Point&lt;Euclidean2D&gt;) new Vector2D(1.0, 0.0));</span>
+<span class="fc" id="L656">                final Vector3D p01    = oPlane.toSpace((Point&lt;Euclidean2D&gt;) new Vector2D(0.0, 1.0));</span>
+<span class="fc" id="L657">                final Vector2D tP00   = tPlane.toSubSpace((Point&lt;Euclidean3D&gt;) apply(p00));</span>
+<span class="fc" id="L658">                final Vector2D tP10   = tPlane.toSubSpace((Point&lt;Euclidean3D&gt;) apply(p10));</span>
+<span class="fc" id="L659">                final Vector2D tP01   = tPlane.toSubSpace((Point&lt;Euclidean3D&gt;) apply(p01));</span>
+
+<span class="fc" id="L661">                cachedOriginal  = (Plane) original;</span>
+<span class="fc" id="L662">                cachedTransform =</span>
+                        org.apache.commons.math3.geometry.euclidean.twod.Line.getTransform(tP10.getX() - tP00.getX(),
+                                                                                           tP10.getY() - tP00.getY(),
+                                                                                           tP01.getX() - tP00.getX(),
+                                                                                           tP01.getY() - tP00.getY(),
+                                                                                           tP00.getX(),
+                                                                                           tP00.getY());
 
             }
-<span class="fc" id="L670">            return ((SubLine) sub).applyTransform(cachedTransform);</span>
+<span class="fc" id="L671">            return ((SubLine) sub).applyTransform(cachedTransform);</span>
         }
 
     }
@@ -678,7 +679,7 @@ public class PolyhedronsSet extends Abst
      * @return a new instance representing the translated region
      */
     public PolyhedronsSet translate(final Vector3D translation) {
-<span class="fc" id="L681">        return (PolyhedronsSet) applyTransform(new TranslationTransform(translation));</span>
+<span class="fc" id="L682">        return (PolyhedronsSet) applyTransform(new TranslationTransform(translation));</span>
     }
 
     /** 3D translation as a transform. */
@@ -696,40 +697,40 @@ public class PolyhedronsSet extends Abst
         /** Build a translation transform.
          * @param translation translation vector
          */
-<span class="fc" id="L699">        public TranslationTransform(final Vector3D translation) {</span>
-<span class="fc" id="L700">            this.translation = translation;</span>
-<span class="fc" id="L701">        }</span>
+<span class="fc" id="L700">        public TranslationTransform(final Vector3D translation) {</span>
+<span class="fc" id="L701">            this.translation = translation;</span>
+<span class="fc" id="L702">        }</span>
 
         /** {@inheritDoc} */
         public Vector3D apply(final Point&lt;Euclidean3D&gt; point) {
-<span class="fc" id="L705">            return new Vector3D(1.0, (Vector3D) point, 1.0, translation);</span>
+<span class="fc" id="L706">            return new Vector3D(1.0, (Vector3D) point, 1.0, translation);</span>
         }
 
         /** {@inheritDoc} */
         public Plane apply(final Hyperplane&lt;Euclidean3D&gt; hyperplane) {
-<span class="fc" id="L710">            return ((Plane) hyperplane).translate(translation);</span>
+<span class="fc" id="L711">            return ((Plane) hyperplane).translate(translation);</span>
         }
 
         /** {@inheritDoc} */
         public SubHyperplane&lt;Euclidean2D&gt; apply(final SubHyperplane&lt;Euclidean2D&gt; sub,
                                                 final Hyperplane&lt;Euclidean3D&gt; original,
                                                 final Hyperplane&lt;Euclidean3D&gt; transformed) {
-<span class="fc bfc" id="L717" title="All 2 branches covered.">            if (original != cachedOriginal) {</span>
+<span class="fc bfc" id="L718" title="All 2 branches covered.">            if (original != cachedOriginal) {</span>
                 // we have changed hyperplane, reset the in-hyperplane transform
 
-<span class="fc" id="L720">                final Plane   oPlane = (Plane) original;</span>
-<span class="fc" id="L721">                final Plane   tPlane = (Plane) transformed;</span>
-<span class="fc" id="L722">                final Vector2D shift  = tPlane.toSubSpace((Point&lt;Euclidean3D&gt;) apply(oPlane.getOrigin()));</span>
-<span class="fc" id="L723">                final AffineTransform at =</span>
-                    AffineTransform.getTranslateInstance(shift.getX(), shift.getY());
+<span class="fc" id="L721">                final Plane   oPlane = (Plane) original;</span>
+<span class="fc" id="L722">                final Plane   tPlane = (Plane) transformed;</span>
+<span class="fc" id="L723">                final Vector2D shift  = tPlane.toSubSpace((Point&lt;Euclidean3D&gt;) apply(oPlane.getOrigin()));</span>
 
-<span class="fc" id="L726">                cachedOriginal  = (Plane) original;</span>
-<span class="fc" id="L727">                cachedTransform =</span>
-                        org.apache.commons.math3.geometry.euclidean.twod.Line.getTransform(at);
+<span class="fc" id="L725">                cachedOriginal  = (Plane) original;</span>
+<span class="fc" id="L726">                cachedTransform =</span>
+                        org.apache.commons.math3.geometry.euclidean.twod.Line.getTransform(1, 0, 0, 1,
+                                                                                           shift.getX(),
+                                                                                           shift.getY());
 
             }
 
-<span class="fc" id="L732">            return ((SubLine) sub).applyTransform(cachedTransform);</span>
+<span class="fc" id="L733">            return ((SubLine) sub).applyTransform(cachedTransform);</span>
 
         }
 

Modified: websites/production/commons/content/proper/commons-math/jacoco/org.apache.commons.math3.geometry.euclidean.threed/index.html
==============================================================================
--- websites/production/commons/content/proper/commons-math/jacoco/org.apache.commons.math3.geometry.euclidean.threed/index.html (original)
+++ websites/production/commons/content/proper/commons-math/jacoco/org.apache.commons.math3.geometry.euclidean.threed/index.html Mon Jul 27 19:42:09 2015
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>org.apache.commons.math3.geometry.euclidean.threed</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Math</a> &gt; <span class="el_package">org.apache.commons.math3.geometry.euclidean.threed</span></div><h1>org.apache.commons.math3.g
 eometry.euclidean.threed</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m
 " onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">744 of 16,958</td><td class="ctr2">96%</td><td class="bar">84 of 576</td><td class="ctr2">85%</td><td class="ctr1">86</td><td class="ctr2">635</td><td class="ctr1">150</td><td class="ctr2">1,817</td><td class="ctr1">28</td><td class="ctr2">347</td><td class="ctr1">2</td><td class="ctr2">24</td></tr></tfoot><tbody><tr><td id="a8"><a href="OutlineExtractor$BoundaryProjector.html" class="el_class">OutlineExtractor.BoundaryProjector</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="7" height="10" title="329" alt="329"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="37" height="10" title="34" alt="34"/></td><td class="ctr2" id="e16">0%</td><td class="ctr1" id="f0">23</td><td class="ctr2" id="g7">23</td><td class="ctr1" id="h0">59</td><td class="ctr2" id="i7">59</td><td class="ctr1" id="j1">6</td><td class="ctr2" 
 id="k10">6</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a7"><a href="OutlineExtractor.html" class="el_class">OutlineExtractor</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="4" height="10" title="192" alt="192"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d2"><img src="../.resources/redbar.gif" width="15" height="10" title="14" alt="14"/></td><td class="ctr2" id="e17">0%</td><td class="ctr1" id="f3">10</td><td class="ctr2" id="g12">10</td><td class="ctr1" id="h1">34</td><td class="ctr2" id="i10">34</td><td class="ctr1" id="j4">3</td><td class="ctr2" id="k18">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a9"><a href="Plane.html" class="el_class">Plane</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="2" height="10" title="106" alt="106"/><img src="../.resources/greenbar.gif" width="13" height="10" title="580" alt="580"/></td><td class="ctr2" i
 d="c20">85%</td><td class="bar" id="d6"><img src="../.resources/redbar.gif" width="3" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="21" height="10" title="19" alt="19"/></td><td class="ctr2" id="e10">86%</td><td class="ctr1" id="f2">11</td><td class="ctr2" id="g5">48</td><td class="ctr1" id="h2">26</td><td class="ctr2" id="i5">117</td><td class="ctr1" id="j0">8</td><td class="ctr2" id="k2">37</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a10"><a href="PolyhedronsSet.html" class="el_class">PolyhedronsSet</a></td><td class="bar" id="b3"><img src="../.resources/redbar.gif" width="1" height="10" title="57" alt="57"/><img src="../.resources/greenbar.gif" width="21" height="10" title="921" alt="921"/></td><td class="ctr2" id="c16">94%</td><td class="bar" id="d1"><img src="../.resources/redbar.gif" width="17" height="10" title="16" alt="16"/><img src="../.resources/greenbar.gif" width="86" height="10" title="78" alt="78"/><
 /td><td class="ctr2" id="e11">83%</td><td class="ctr1" id="f1">18</td><td class="ctr2" id="g4">67</td><td class="ctr1" id="h3">16</td><td class="ctr2" id="i4">136</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k6">20</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a5"><a href="Line.html" class="el_class">Line</a></td><td class="bar" id="b4"><img src="../.resources/greenbar.gif" width="6" height="10" title="271" alt="271"/></td><td class="ctr2" id="c18">91%</td><td class="bar" id="d3"><img src="../.resources/redbar.gif" width="4" height="10" title="4" alt="4"/><img src="../.resources/greenbar.gif" width="13" height="10" title="12" alt="12"/></td><td class="ctr2" id="e12">75%</td><td class="ctr1" id="f4">8</td><td class="ctr2" id="g6">29</td><td class="ctr1" id="h4">7</td><td class="ctr2" id="i8">53</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k5">21</td><td class="ctr1" id="l4">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id
 ="a23"><a href="Vector3DFormat.html" class="el_class">Vector3DFormat</a></td><td class="bar" id="b5"><img src="../.resources/greenbar.gif" width="2" height="10" title="93" alt="93"/></td><td class="ctr2" id="c19">86%</td><td class="bar" id="d10"><img src="../.resources/redbar.gif" width="1" height="10" title="1" alt="1"/><img src="../.resources/greenbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="e13">75%</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g11">11</td><td class="ctr1" id="h5">3</td><td class="ctr2" id="i15">21</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k8">9</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a11"><a href="PolyhedronsSet$FacetsContributionVisitor.html" class="el_class">PolyhedronsSet.FacetsContributionVisitor</a></td><td class="bar" id="b6"><img src="../.resources/greenbar.gif" width="2" height="10" title="94" alt="94"/></td><td class="ctr2" id="c17">91%</td><td class="bar" 
 id="d8"><img src="../.resources/redbar.gif" width="2" height="10" title="2" alt="2"/><img src="../.resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e14">75%</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g13">9</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i13">25</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k12">5</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a20"><a href="SubLine.html" class="el_class">SubLine</a></td><td class="bar" id="b7"><img src="../.resources/greenbar.gif" width="3" height="10" title="154" alt="154"/></td><td class="ctr2" id="c15">96%</td><td class="bar" id="d13"><img src="../.resources/greenbar.gif" width="15" height="10" title="14" alt="14"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g8">14</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i12">28</td><td class="ctr1" id="j6">1</td><td class="ct
 r2" id="k9">7</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a2"><a href="Euclidean3D$LazyHolder.html" class="el_class">Euclidean3D.LazyHolder</a></td><td class="bar" id="b8"/><td class="ctr2" id="c21">67%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g20">2</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i21">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k20">2</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a3"><a href="FieldRotation.html" class="el_class">FieldRotation</a></td><td class="bar" id="b9"><img src="../.resources/greenbar.gif" width="120" height="10" title="5,137" alt="5,137"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d4"><img src="../.resources/redbar.gif" width="3" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="116" height="10" title="105" alt="105"/></td><td cla
 ss="ctr2" id="e7">97%</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g1">91</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i0">373</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k3">37</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a14"><a href="Rotation.html" class="el_class">Rotation</a></td><td class="bar" id="b10"><img src="../.resources/greenbar.gif" width="74" height="10" title="3,182" alt="3,182"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d5"><img src="../.resources/redbar.gif" width="3" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="116" height="10" title="105" alt="105"/></td><td class="ctr2" id="e8">97%</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g2">79</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i1">317</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k4">25</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><t
 r><td id="a4"><a href="FieldVector3D.html" class="el_class">FieldVector3D</a></td><td class="bar" id="b11"><img src="../.resources/greenbar.gif" width="47" height="10" title="2,021" alt="2,021"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d11"><img src="../.resources/greenbar.gif" width="80" height="10" title="72" alt="72"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g0">118</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i2">245</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k0">82</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a18"><a href="SphericalCoordinates.html" class="el_class">SphericalCoordinates</a></td><td class="bar" id="b12"><img src="../.resources/greenbar.gif" width="34" height="10" title="1,484" alt="1,484"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d9"><img src="../.resources/redbar.gif" width="2" height="10" title="2" alt="2"/><i
 mg src="../.resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e15">50%</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g9">13</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i6">117</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k7">11</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a22"><a href="Vector3D.html" class="el_class">Vector3D</a></td><td class="bar" id="b13"><img src="../.resources/greenbar.gif" width="22" height="10" title="984" alt="984"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d12"><img src="../.resources/greenbar.gif" width="51" height="10" title="46" alt="46"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g3">71</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i3">140</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k1">48</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">
 1</td></tr><tr><td id="a17"><a href="SphereGenerator.html" class="el_class">SphereGenerator</a></td><td class="bar" id="b14"><img src="../.resources/greenbar.gif" width="15" height="10" title="660" alt="660"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d14"><img src="../.resources/greenbar.gif" width="8" height="10" title="8" alt="8"/></td><td class="ctr2" id="e3">100%</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g14">7</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i11">32</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k19">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr><tr><td id="a21"><a href="SubPlane.html" class="el_class">SubPlane</a></td><td class="bar" id="b15"><img src="../.resources/greenbar.gif" width="5" height="10" title="248" alt="248"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d7"><img src="../.resources/redbar.gif" width="2" height="10" title="2" alt="2"/><img src="../.resourc
 es/greenbar.gif" width="17" height="10" title="16" alt="16"/></td><td class="ctr2" id="e9">89%</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g10">13</td><td class="ctr1" id="h15">0</td><td class="ctr2" id="i9">39</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k14">4</td><td class="ctr1" id="l15">0</td><td class="ctr2" id="m15">1</td></tr><tr><td id="a12"><a href="PolyhedronsSet$RotationTransform.html" class="el_class">PolyhedronsSet.RotationTransform</a></td><td class="bar" id="b16"><img src="../.resources/greenbar.gif" width="2" height="10" title="124" alt="124"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d15"><img src="../.resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e4">100%</td><td class="ctr1" id="f16">0</td><td class="ctr2" id="g16">5</td><td class="ctr1" id="h16">0</td><td class="ctr2" id="i16">20</td><td class="ctr1" id="j16">0</td><td class="ctr2" id="k15">4</td><td class="ctr1" id="l16">0</t
 d><td class="ctr2" id="m16">1</td></tr><tr><td id="a15"><a href="RotationOrder.html" class="el_class">RotationOrder</a></td><td class="bar" id="b17"><img src="../.resources/greenbar.gif" width="2" height="10" title="124" alt="124"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f17">0</td><td class="ctr2" id="g15">6</td><td class="ctr1" id="h17">0</td><td class="ctr2" id="i14">22</td><td class="ctr1" id="j17">0</td><td class="ctr2" id="k11">6</td><td class="ctr1" id="l17">0</td><td class="ctr2" id="m17">1</td></tr><tr><td id="a13"><a href="PolyhedronsSet$TranslationTransform.html" class="el_class">PolyhedronsSet.TranslationTransform</a></td><td class="bar" id="b18"><img src="../.resources/greenbar.gif" width="1" height="10" title="59" alt="59"/></td><td class="ctr2" id="c9">100%</td><td class="bar" id="d16"><img src="../.resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="
 e5">100%</td><td class="ctr1" id="f18">0</td><td class="ctr2" id="g17">5</td><td class="ctr1" id="h18">0</td><td class="ctr2" id="i17">13</td><td class="ctr1" id="j18">0</td><td class="ctr2" id="k16">4</td><td class="ctr1" id="l18">0</td><td class="ctr2" id="m18">1</td></tr><tr><td id="a19"><a href="SphericalCoordinates$DataTransferObject.html" class="el_class">SphericalCoordinates.DataTransferObject</a></td><td class="bar" id="b19"/><td class="ctr2" id="c10">100%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f19">0</td><td class="ctr2" id="g21">2</td><td class="ctr1" id="h19">0</td><td class="ctr2" id="i19">6</td><td class="ctr1" id="j19">0</td><td class="ctr2" id="k21">2</td><td class="ctr1" id="l19">0</td><td class="ctr2" id="m19">1</td></tr><tr><td id="a16"><a href="Segment.html" class="el_class">Segment</a></td><td class="bar" id="b20"/><td class="ctr2" id="c11">100%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class
 ="ctr1" id="f20">0</td><td class="ctr2" id="g19">4</td><td class="ctr1" id="h20">0</td><td class="ctr2" id="i18">8</td><td class="ctr1" id="j20">0</td><td class="ctr2" id="k17">4</td><td class="ctr1" id="l20">0</td><td class="ctr2" id="m20">1</td></tr><tr><td id="a1"><a href="Euclidean3D.html" class="el_class">Euclidean3D</a></td><td class="bar" id="b21"/><td class="ctr2" id="c12">100%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f21">0</td><td class="ctr2" id="g18">5</td><td class="ctr1" id="h21">0</td><td class="ctr2" id="i20">6</td><td class="ctr1" id="j21">0</td><td class="ctr2" id="k13">5</td><td class="ctr1" id="l21">0</td><td class="ctr2" id="m21">1</td></tr><tr><td id="a0"><a href="CardanEulerSingularityException.html" class="el_class">CardanEulerSingularityException</a></td><td class="bar" id="b22"/><td class="ctr2" id="c13">100%</td><td class="bar" id="d17"><img src="../.resources/greenbar.gif" width="2" height="10" title="2" alt="2"
 /></td><td class="ctr2" id="e6">100%</td><td class="ctr1" id="f22">0</td><td class="ctr2" id="g22">2</td><td class="ctr1" id="h22">0</td><td class="ctr2" id="i22">2</td><td class="ctr1" id="j22">0</td><td class="ctr2" id="k22">1</td><td class="ctr1" id="l22">0</td><td class="ctr2" id="m22">1</td></tr><tr><td id="a6"><a href="NotARotationMatrixException.html" class="el_class">NotARotationMatrixException</a></td><td class="bar" id="b23"/><td class="ctr2" id="c14">100%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">0</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h23">0</td><td class="ctr2" id="i23">2</td><td class="ctr1" id="j23">0</td><td class="ctr2" id="k23">1</td><td class="ctr1" id="l23">0</td><td class="ctr2" id="m23">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../.resources/report.css" type="text/css"/><link rel="shortcut icon" href="../.resources/report.gif" type="image/gif"/><title>org.apache.commons.math3.geometry.euclidean.threed</title><script type="text/javascript" src="../.resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../.sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Math</a> &gt; <span class="el_package">org.apache.commons.math3.geometry.euclidean.threed</span></div><h1>org.apache.commons.math3.g
 eometry.euclidean.threed</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m
 " onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">744 of 16,954</td><td class="ctr2">96%</td><td class="bar">84 of 576</td><td class="ctr2">85%</td><td class="ctr1">86</td><td class="ctr2">635</td><td class="ctr1">150</td><td class="ctr2">1,815</td><td class="ctr1">28</td><td class="ctr2">347</td><td class="ctr1">2</td><td class="ctr2">24</td></tr></tfoot><tbody><tr><td id="a8"><a href="OutlineExtractor$BoundaryProjector.html" class="el_class">OutlineExtractor.BoundaryProjector</a></td><td class="bar" id="b0"><img src="../.resources/redbar.gif" width="7" height="10" title="329" alt="329"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d0"><img src="../.resources/redbar.gif" width="37" height="10" title="34" alt="34"/></td><td class="ctr2" id="e16">0%</td><td class="ctr1" id="f0">23</td><td class="ctr2" id="g7">23</td><td class="ctr1" id="h0">59</td><td class="ctr2" id="i7">59</td><td class="ctr1" id="j1">6</td><td class="ctr2" 
 id="k10">6</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a7"><a href="OutlineExtractor.html" class="el_class">OutlineExtractor</a></td><td class="bar" id="b1"><img src="../.resources/redbar.gif" width="4" height="10" title="192" alt="192"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d2"><img src="../.resources/redbar.gif" width="15" height="10" title="14" alt="14"/></td><td class="ctr2" id="e17">0%</td><td class="ctr1" id="f3">10</td><td class="ctr2" id="g12">10</td><td class="ctr1" id="h1">34</td><td class="ctr2" id="i10">34</td><td class="ctr1" id="j4">3</td><td class="ctr2" id="k18">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a9"><a href="Plane.html" class="el_class">Plane</a></td><td class="bar" id="b2"><img src="../.resources/redbar.gif" width="2" height="10" title="106" alt="106"/><img src="../.resources/greenbar.gif" width="13" height="10" title="580" alt="580"/></td><td class="ctr2" i
 d="c20">85%</td><td class="bar" id="d6"><img src="../.resources/redbar.gif" width="3" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="21" height="10" title="19" alt="19"/></td><td class="ctr2" id="e10">86%</td><td class="ctr1" id="f2">11</td><td class="ctr2" id="g5">48</td><td class="ctr1" id="h2">26</td><td class="ctr2" id="i5">117</td><td class="ctr1" id="j0">8</td><td class="ctr2" id="k2">37</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a10"><a href="PolyhedronsSet.html" class="el_class">PolyhedronsSet</a></td><td class="bar" id="b3"><img src="../.resources/redbar.gif" width="1" height="10" title="57" alt="57"/><img src="../.resources/greenbar.gif" width="21" height="10" title="921" alt="921"/></td><td class="ctr2" id="c16">94%</td><td class="bar" id="d1"><img src="../.resources/redbar.gif" width="17" height="10" title="16" alt="16"/><img src="../.resources/greenbar.gif" width="86" height="10" title="78" alt="78"/><
 /td><td class="ctr2" id="e11">83%</td><td class="ctr1" id="f1">18</td><td class="ctr2" id="g4">67</td><td class="ctr1" id="h3">16</td><td class="ctr2" id="i4">136</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k6">20</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a5"><a href="Line.html" class="el_class">Line</a></td><td class="bar" id="b4"><img src="../.resources/greenbar.gif" width="6" height="10" title="271" alt="271"/></td><td class="ctr2" id="c18">91%</td><td class="bar" id="d3"><img src="../.resources/redbar.gif" width="4" height="10" title="4" alt="4"/><img src="../.resources/greenbar.gif" width="13" height="10" title="12" alt="12"/></td><td class="ctr2" id="e12">75%</td><td class="ctr1" id="f4">8</td><td class="ctr2" id="g6">29</td><td class="ctr1" id="h4">7</td><td class="ctr2" id="i8">53</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k5">21</td><td class="ctr1" id="l4">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id
 ="a23"><a href="Vector3DFormat.html" class="el_class">Vector3DFormat</a></td><td class="bar" id="b5"><img src="../.resources/greenbar.gif" width="2" height="10" title="93" alt="93"/></td><td class="ctr2" id="c19">86%</td><td class="bar" id="d10"><img src="../.resources/redbar.gif" width="1" height="10" title="1" alt="1"/><img src="../.resources/greenbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="e13">75%</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g11">11</td><td class="ctr1" id="h5">3</td><td class="ctr2" id="i15">21</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k8">9</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a11"><a href="PolyhedronsSet$FacetsContributionVisitor.html" class="el_class">PolyhedronsSet.FacetsContributionVisitor</a></td><td class="bar" id="b6"><img src="../.resources/greenbar.gif" width="2" height="10" title="94" alt="94"/></td><td class="ctr2" id="c17">91%</td><td class="bar" 
 id="d8"><img src="../.resources/redbar.gif" width="2" height="10" title="2" alt="2"/><img src="../.resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e14">75%</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g13">9</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i13">25</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k12">5</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a20"><a href="SubLine.html" class="el_class">SubLine</a></td><td class="bar" id="b7"><img src="../.resources/greenbar.gif" width="3" height="10" title="154" alt="154"/></td><td class="ctr2" id="c15">96%</td><td class="bar" id="d13"><img src="../.resources/greenbar.gif" width="15" height="10" title="14" alt="14"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g8">14</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i12">28</td><td class="ctr1" id="j6">1</td><td class="ct
 r2" id="k9">7</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a2"><a href="Euclidean3D$LazyHolder.html" class="el_class">Euclidean3D.LazyHolder</a></td><td class="bar" id="b8"/><td class="ctr2" id="c21">67%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g20">2</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i21">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k20">2</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a3"><a href="FieldRotation.html" class="el_class">FieldRotation</a></td><td class="bar" id="b9"><img src="../.resources/greenbar.gif" width="120" height="10" title="5,137" alt="5,137"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d4"><img src="../.resources/redbar.gif" width="3" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="116" height="10" title="105" alt="105"/></td><td cla
 ss="ctr2" id="e7">97%</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g1">91</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i0">373</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k3">37</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a14"><a href="Rotation.html" class="el_class">Rotation</a></td><td class="bar" id="b10"><img src="../.resources/greenbar.gif" width="74" height="10" title="3,182" alt="3,182"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d5"><img src="../.resources/redbar.gif" width="3" height="10" title="3" alt="3"/><img src="../.resources/greenbar.gif" width="116" height="10" title="105" alt="105"/></td><td class="ctr2" id="e8">97%</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g2">79</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i1">317</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k4">25</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><t
 r><td id="a4"><a href="FieldVector3D.html" class="el_class">FieldVector3D</a></td><td class="bar" id="b11"><img src="../.resources/greenbar.gif" width="47" height="10" title="2,021" alt="2,021"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d11"><img src="../.resources/greenbar.gif" width="80" height="10" title="72" alt="72"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g0">118</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i2">245</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k0">82</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a18"><a href="SphericalCoordinates.html" class="el_class">SphericalCoordinates</a></td><td class="bar" id="b12"><img src="../.resources/greenbar.gif" width="34" height="10" title="1,484" alt="1,484"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d9"><img src="../.resources/redbar.gif" width="2" height="10" title="2" alt="2"/><i
 mg src="../.resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e15">50%</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g9">13</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i6">117</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k7">11</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a22"><a href="Vector3D.html" class="el_class">Vector3D</a></td><td class="bar" id="b13"><img src="../.resources/greenbar.gif" width="22" height="10" title="984" alt="984"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d12"><img src="../.resources/greenbar.gif" width="51" height="10" title="46" alt="46"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g3">71</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i3">140</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k1">48</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">
 1</td></tr><tr><td id="a17"><a href="SphereGenerator.html" class="el_class">SphereGenerator</a></td><td class="bar" id="b14"><img src="../.resources/greenbar.gif" width="15" height="10" title="660" alt="660"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d14"><img src="../.resources/greenbar.gif" width="8" height="10" title="8" alt="8"/></td><td class="ctr2" id="e3">100%</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g14">7</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i11">32</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k19">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr><tr><td id="a21"><a href="SubPlane.html" class="el_class">SubPlane</a></td><td class="bar" id="b15"><img src="../.resources/greenbar.gif" width="5" height="10" title="248" alt="248"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d7"><img src="../.resources/redbar.gif" width="2" height="10" title="2" alt="2"/><img src="../.resourc
 es/greenbar.gif" width="17" height="10" title="16" alt="16"/></td><td class="ctr2" id="e9">89%</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g10">13</td><td class="ctr1" id="h15">0</td><td class="ctr2" id="i9">39</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k14">4</td><td class="ctr1" id="l15">0</td><td class="ctr2" id="m15">1</td></tr><tr><td id="a15"><a href="RotationOrder.html" class="el_class">RotationOrder</a></td><td class="bar" id="b16"><img src="../.resources/greenbar.gif" width="2" height="10" title="124" alt="124"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f16">0</td><td class="ctr2" id="g15">6</td><td class="ctr1" id="h16">0</td><td class="ctr2" id="i14">22</td><td class="ctr1" id="j16">0</td><td class="ctr2" id="k11">6</td><td class="ctr1" id="l16">0</td><td class="ctr2" id="m16">1</td></tr><tr><td id="a12"><a href="PolyhedronsSet$RotationTransform.html" class="el_class">
 PolyhedronsSet.RotationTransform</a></td><td class="bar" id="b17"><img src="../.resources/greenbar.gif" width="2" height="10" title="119" alt="119"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d15"><img src="../.resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e4">100%</td><td class="ctr1" id="f17">0</td><td class="ctr2" id="g16">5</td><td class="ctr1" id="h17">0</td><td class="ctr2" id="i16">19</td><td class="ctr1" id="j17">0</td><td class="ctr2" id="k15">4</td><td class="ctr1" id="l17">0</td><td class="ctr2" id="m17">1</td></tr><tr><td id="a13"><a href="PolyhedronsSet$TranslationTransform.html" class="el_class">PolyhedronsSet.TranslationTransform</a></td><td class="bar" id="b18"><img src="../.resources/greenbar.gif" width="1" height="10" title="60" alt="60"/></td><td class="ctr2" id="c9">100%</td><td class="bar" id="d16"><img src="../.resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="
 e5">100%</td><td class="ctr1" id="f18">0</td><td class="ctr2" id="g17">5</td><td class="ctr1" id="h18">0</td><td class="ctr2" id="i17">12</td><td class="ctr1" id="j18">0</td><td class="ctr2" id="k16">4</td><td class="ctr1" id="l18">0</td><td class="ctr2" id="m18">1</td></tr><tr><td id="a19"><a href="SphericalCoordinates$DataTransferObject.html" class="el_class">SphericalCoordinates.DataTransferObject</a></td><td class="bar" id="b19"/><td class="ctr2" id="c10">100%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f19">0</td><td class="ctr2" id="g21">2</td><td class="ctr1" id="h19">0</td><td class="ctr2" id="i19">6</td><td class="ctr1" id="j19">0</td><td class="ctr2" id="k21">2</td><td class="ctr1" id="l19">0</td><td class="ctr2" id="m19">1</td></tr><tr><td id="a16"><a href="Segment.html" class="el_class">Segment</a></td><td class="bar" id="b20"/><td class="ctr2" id="c11">100%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class
 ="ctr1" id="f20">0</td><td class="ctr2" id="g19">4</td><td class="ctr1" id="h20">0</td><td class="ctr2" id="i18">8</td><td class="ctr1" id="j20">0</td><td class="ctr2" id="k17">4</td><td class="ctr1" id="l20">0</td><td class="ctr2" id="m20">1</td></tr><tr><td id="a1"><a href="Euclidean3D.html" class="el_class">Euclidean3D</a></td><td class="bar" id="b21"/><td class="ctr2" id="c12">100%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f21">0</td><td class="ctr2" id="g18">5</td><td class="ctr1" id="h21">0</td><td class="ctr2" id="i20">6</td><td class="ctr1" id="j21">0</td><td class="ctr2" id="k13">5</td><td class="ctr1" id="l21">0</td><td class="ctr2" id="m21">1</td></tr><tr><td id="a0"><a href="CardanEulerSingularityException.html" class="el_class">CardanEulerSingularityException</a></td><td class="bar" id="b22"/><td class="ctr2" id="c13">100%</td><td class="bar" id="d17"><img src="../.resources/greenbar.gif" width="2" height="10" title="2" alt="2"
 /></td><td class="ctr2" id="e6">100%</td><td class="ctr1" id="f22">0</td><td class="ctr2" id="g22">2</td><td class="ctr1" id="h22">0</td><td class="ctr2" id="i22">2</td><td class="ctr1" id="j22">0</td><td class="ctr2" id="k22">1</td><td class="ctr1" id="l22">0</td><td class="ctr2" id="m22">1</td></tr><tr><td id="a6"><a href="NotARotationMatrixException.html" class="el_class">NotARotationMatrixException</a></td><td class="bar" id="b23"/><td class="ctr2" id="c14">100%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">0</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h23">0</td><td class="ctr2" id="i23">2</td><td class="ctr1" id="j23">0</td><td class="ctr2" id="k23">1</td><td class="ctr1" id="l23">0</td><td class="ctr2" id="m23">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.4.201502262128</span></div></body></html>
\ No newline at end of file



Mime
View raw message