List of usage examples for org.apache.commons.math.complex Complex NaN
Complex NaN
To view the source code for org.apache.commons.math.complex Complex NaN.
Click Source Link
From source file:geogebra.io.MyI2GHandler.java
private void startElements(String eName, LinkedHashMap attrs) { debug("startElements", eName); switch (subMode) { case MODE_INVALID: // TODO -> extend to further objects if (!eName.equals("line") && !eName.equals("line_segment") && !eName.equals("point")) { Application.debug("unknown tag in <elements>: " + eName); break; }/* w ww . jav a2s . c om*/ String label = (String) attrs.get("id"); if (label == null) { Application.debug("attribute id missing in <" + eName + ">"); break; } // does a geo element with this label exist? geo = kernel.lookupLabel(label); if (geo != null) { geo = null; Application.debug("an element with id \"" + label + "\" already exists"); break; } if (eName.equals("line_segment")) { eName = "segment"; segment = true; segmentStart = new GeoPoint(cons); segmentEnd = new GeoPoint(cons); segmentVia = new GeoPoint(cons); } else { segment = false; } geo = kernel.createGeoElement(cons, eName); geo.setLoadedLabel(label); subMode = MODE_ELEMENTS; cmdName = eName; break; case MODE_ELEMENTS: String[] tags; if (cmdName.equals("point")) { tags = new String[] { "homogeneous_coordinates", "euclidean_coordinates", "polar_coordinates" }; } else { tags = new String[] { "homogeneous_coordinates" }; } int i; for (i = 0; i < tags.length; i++) { if (eName.equals(tags[i])) { break; } } if (i >= tags.length) { Application.debug("unknown tag in <" + geo.getI2GtypeString() + ">: " + eName); break; } else if (!(geo instanceof GeoVec3D)) { Application.debug("wrong element type for coordinates: " + geo.getI2GtypeString()); break; } if (eName.equals("homogeneous_coordinates")) { coord = 0; coords = new Complex[] { Complex.NaN, Complex.NaN, Complex.NaN }; } else if (eName.equals("euclidean_coordinates") || eName.equals("polar_coordinates")) { coord = 0; coords = new Complex[] { Complex.NaN, Complex.NaN }; } subMode = MODE_COORDINATES; cmdName = eName; break; case MODE_COORDINATES: if (eName.equals("double")) { subMode = MODE_COORDINATES_REAL_DOUBLE; } else if (cmdName.equals("homogeneous_coordinates") && eName.equals("complex")) { subMode = MODE_COORDINATES_COMPLEX; } else { Application.debug("unknown tag in <" + cmdName + ">: " + eName); break; } if (coord >= coords.length) { break; } for (coord = 0; coord < coords.length; coord++) { if (coords[coord].isNaN()) { break; } } if (coord >= coords.length) { String tag = "<double>"; if (cmdName.equals("homogeneous_coordinates")) { tag = "<double> or <complex>"; } Application.debug("more than " + coords.length + " " + tag + " specified for <" + cmdName + ">"); } break; case MODE_COORDINATES_COMPLEX: if (eName.equals("double")) { subMode = MODE_COORDINATES_COMPLEX_DOUBLE; } else { Application.debug("unknown tag in <complex>: " + eName); } break; case MODE_COORDINATES_REAL_DOUBLE: case MODE_COORDINATES_COMPLEX_DOUBLE: Application.debug("unknown tag in <double>: " + eName); break; } }