package edu.ucdavis.cstars.client.geometry;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.core.client.JsArrayNumber;
import edu.ucdavis.cstars.client.Util;
public class Ring extends JsArray<Point> {
protected Ring () {}
public static Ring create() {
return JavaScriptObject.createArray().cast();
}
public static Ring create(double[][] points) {
JavaScriptObject array = JavaScriptObject.createArray().cast();
for( int i = 0; i < points.length; i++ ) {
_push(array, Util.doubleArrayToJSO(points[i]));
}
return (Ring) array;
}
private static native void _push(JavaScriptObject arr, JavaScriptObject points) /*-{
arr.push(points);
}-*/;
public final native void addPoint(Point point) /*-{
this.push(point);
}-*/;
public final void addPoints(Point[] points) {
for( Point p: points ) addPoint(p);
}
public final native int getNumPoints() /*-{
return this.length;
}-*/;
public final native JsArrayNumber getPoint(int index) /*-{
return this[index];
}-*/;
public final native boolean isClockwise() /*-{
return $wnd.esri.geometry.isClockwise(this);
}-*/;
}