Package elki.visualization.svg
Class SVGHyperCube
- java.lang.Object
-
- elki.visualization.svg.SVGHyperCube
-
public final class SVGHyperCube extends java.lang.ObjectUtility class to draw hypercubes, wireframe and filled.- Since:
- 0.4.0
- Author:
- Erich Schubert
-
-
Constructor Summary
Constructors Modifier Constructor Description privateSVGHyperCube()Private constructor.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static org.w3c.dom.ElementdrawFilled(SVGPlot svgp, java.lang.String cls, Projection2D proj, double[] min, double[] max)Filled hypercube.static org.w3c.dom.ElementdrawFilled(SVGPlot svgp, java.lang.String cls, Projection2D proj, NumberVector min, NumberVector max)Filled hypercube.static org.w3c.dom.ElementdrawFilled(SVGPlot svgp, java.lang.String cls, Projection2D proj, SpatialComparable box)Filled hypercube.static org.w3c.dom.ElementdrawFrame(SVGPlot svgp, Projection2D proj, double[] min, double[] max)Wireframe hypercube.static org.w3c.dom.ElementdrawFrame(SVGPlot svgp, Projection2D proj, NumberVector min, NumberVector max)Wireframe hypercube.static org.w3c.dom.ElementdrawFrame(SVGPlot svgp, Projection2D proj, SpatialComparable box)Wireframe hypercube.private static java.util.ArrayList<double[]>getVisibleEdges(Projection2D proj, double[] s_min, double[] s_max)Get the visible (non-0) edges of a hypercubeprivate static java.util.ArrayList<double[]>getVisibleEdges(Projection2D proj, NumberVector s_min, NumberVector s_max)Get the visible (non-0) edges of a hypercubeprivate static java.util.ArrayList<double[]>getVisibleEdges(Projection2D proj, SpatialComparable box)Get the visible (non-0) edges of a hypercubeprivate static booleanisFinite(double v)Finite (and not NaN) double values.private static voidrecDrawEdges(SVGPath path, double minx, double miny, java.util.List<double[]> r_edges, long[] b)Recursive helper for hypercube drawing.private static voidrecDrawSides(SVGPlot plot, org.w3c.dom.Element group, java.lang.String cls, double minx, double miny, java.util.List<double[]> r_edges, long[] b)Recursive helper for hypercube drawing.
-
-
-
Method Detail
-
drawFrame
public static org.w3c.dom.Element drawFrame(SVGPlot svgp, Projection2D proj, double[] min, double[] max)
Wireframe hypercube.- Parameters:
svgp- SVG Plotproj- Visualization projectionmin- First cornermax- Opposite corner- Returns:
- path element
-
drawFrame
public static org.w3c.dom.Element drawFrame(SVGPlot svgp, Projection2D proj, NumberVector min, NumberVector max)
Wireframe hypercube.- Parameters:
svgp- SVG Plotproj- Visualization projectionmin- First cornermax- Opposite corner- Returns:
- path element
-
drawFrame
public static org.w3c.dom.Element drawFrame(SVGPlot svgp, Projection2D proj, SpatialComparable box)
Wireframe hypercube.- Parameters:
svgp- SVG Plotproj- Visualization projectionbox- Bounding box- Returns:
- path element
-
drawFilled
public static org.w3c.dom.Element drawFilled(SVGPlot svgp, java.lang.String cls, Projection2D proj, double[] min, double[] max)
Filled hypercube.- Parameters:
svgp- SVG Plotcls- CSS class to use.proj- Visualization projectionmin- First cornermax- Opposite corner- Returns:
- group element
-
drawFilled
public static org.w3c.dom.Element drawFilled(SVGPlot svgp, java.lang.String cls, Projection2D proj, NumberVector min, NumberVector max)
Filled hypercube.- Parameters:
svgp- SVG Plotcls- CSS class to use.proj- Visualization projectionmin- First cornermax- Opposite corner- Returns:
- group element
-
drawFilled
public static org.w3c.dom.Element drawFilled(SVGPlot svgp, java.lang.String cls, Projection2D proj, SpatialComparable box)
Filled hypercube.- Parameters:
svgp- SVG Plotcls- CSS class to use.proj- Visualization projectionbox- Bounding box- Returns:
- group element
-
getVisibleEdges
private static java.util.ArrayList<double[]> getVisibleEdges(Projection2D proj, double[] s_min, double[] s_max)
Get the visible (non-0) edges of a hypercube- Parameters:
proj- Projections_min- Minimum value (in data space)s_max- Maximum value (in data space)- Returns:
- Edge list
-
getVisibleEdges
private static java.util.ArrayList<double[]> getVisibleEdges(Projection2D proj, NumberVector s_min, NumberVector s_max)
Get the visible (non-0) edges of a hypercube- Parameters:
proj- Projections_min- Minimum value (in data space)s_max- Maximum value (in data space)- Returns:
- Edge list
-
getVisibleEdges
private static java.util.ArrayList<double[]> getVisibleEdges(Projection2D proj, SpatialComparable box)
Get the visible (non-0) edges of a hypercube- Parameters:
proj- Projectionbox- Box object- Returns:
- Edge list
-
recDrawEdges
private static void recDrawEdges(SVGPath path, double minx, double miny, java.util.List<double[]> r_edges, long[] b)
Recursive helper for hypercube drawing.- Parameters:
path- pathminx- starting cornerminy- starting cornerr_edges- edge vectorsb- bit set of drawn edges
-
recDrawSides
private static void recDrawSides(SVGPlot plot, org.w3c.dom.Element group, java.lang.String cls, double minx, double miny, java.util.List<double[]> r_edges, long[] b)
Recursive helper for hypercube drawing.- Parameters:
plot- Plotgroup- Group elementcls- CSS classminx- starting cornerminy- starting cornerr_edges- edge vectorsb- bit set of drawn edges
-
isFinite
private static boolean isFinite(double v)
Finite (and not NaN) double values.- Parameters:
v- Value- Returns:
- true, when finite.
-
-