
import fr.ocelet.runtime.*;
import fr.ocelet.runtime.affectoperators.*;
import fr.ocelet.runtime.relation.*;
import edu.uci.ics.jung.graph.util.Pair;
import java.util.Collection;

public class Vase extends AbstractEntity {
    
    public Vase() {
        super();
        defProperty("circle",new Hproperty<Boolean>());
        defProperty("coordinates",new Hproperty<List<List<Double>>>());
        defProperty("geom",new Hproperty<Geometry>());
        defProperty("kml",new Hproperty<KmlFile>());
        defProperty("id",new Hproperty<Integer>());
    }
    
    public List<List<Double>> getCoordinates() {
        return (List<List<Double>>)getProperty("coordinates");
    }
    
    public void setCoordinates(List<List<Double>> value) {
        setProperty("coordinates",value);
    }
    
    public void moveCoordinates(Double k1, Double k2) {
        setProperty("coordinates",(List<List<Double>>)((Geometry)getProperty("geom")).getMovedCoordinates((List<List<Double>>)getProperty("coordinates"), k1, k2));
    }
    
    public void moveCoordinatesAndAdapt(Double k1, Double k2, List<List<Double>> riveCoords) {
        setProperty("coordinates",(List<List<Double>>)((Geometry)getProperty("geom")).getMovedCoordinatesAndAdapt((List<List<Double>>)getProperty("coordinates"), riveCoords, k1, k2));
    }
    
    public void moveCoordinatesByRight(Double k1, Double k2, List<List<Double>> riveCoords) {
        setProperty("coordinates",(List<List<Double>>)((Geometry)getProperty("geom")).graduateMove(2.0E-4, 1.0E-5, (List<List<Double>>)getProperty("coordinates"), riveCoords));
    }
    
    public void kmlSave(String date) {
        ((KmlFile)getProperty("kml")).addCoordinateStep(date, (List<List<Double>>)getProperty("coordinates"));
    }
}