package org.geogebra.common.kernel.algos;
import org.geogebra.common.kernel.kernelND.GeoElementND;
import org.geogebra.common.kernel.prover.NoSymbolicParametersException;
import org.geogebra.common.kernel.prover.polynomial.PPolynomial;
import org.geogebra.common.kernel.prover.polynomial.PVariable;
/**
* This interface describes the symbolic parameters of algorithms for the Botana
* method. Based on Simon's SymbolicParametersAlgo.java.
*
* @author Zoltan Kovacs
*/
public interface SymbolicParametersBotanaAlgo {
/**
* Calculates the free variables of an object for the Botana method
*
* @param geo
* The corresponding GeoElement
* @return array of the free variables
* @throws NoSymbolicParametersException
* if it is not possible to obtain suitable polynomials
*/
public PVariable[] getBotanaVars(GeoElementND geo)
throws NoSymbolicParametersException;
/**
* Calculates the polynomials of an object for the Botana method
*
* @param geo
* The corresponding GeoElement
* @return array of the polynomials
* @throws NoSymbolicParametersException
* if it is not possible to obtain suitable polynomials
*/
public PPolynomial[] getBotanaPolynomials(GeoElementND geo)
throws NoSymbolicParametersException;
}