package org.geogebra.common.kernel.advanced; import org.geogebra.common.kernel.arithmetic.NumberValue; import org.geogebra.common.kernel.geos.GeoElement; import org.geogebra.common.kernel.kernelND.GeoPointND; /** * Optimizer for Minimize[dependent number, point on path] * */ public class OptimizerPoint extends Optimizer { private GeoPointND indep; /** * @param dep * dependent number * @param indep * independent point */ public OptimizerPoint(NumberValue dep, GeoPointND indep) { super(dep); this.indep = indep; } @Override public GeoElement getGeo() { return indep.toGeoElement(); } @Override public double getValue() { return indep.getPathParameter().getT(); } @Override public boolean hasBounds() { return indep.getPath() != null; } @Override public double getIntervalMin() { return indep.getPath().getMinParameter(); } @Override public double getIntervalMax() { return indep.getPath().getMaxParameter(); } @Override public void setValue(double old) { indep.getPathParameter().setT(old); indep.getPath().pathChanged(indep); indep.updateCoords(); } }