// Path: srcTools/magma/tools/benchmark/model/bench/RunInformation.java
// public class RunInformation
// {
// 	/** the counter for which run it is currently */
// 	private final int runID;
// 
// 	/** x coordinate on the field */
// 	private final double beamX;
// 
// 	/** y coordinate on the field */
// 	private final double beamY;
// 
// 	/** x coordinate of ball on the field */
// 	private final double ballX;
// 
// 	/** y coordinate of ball on the field */
// 	private final double ballY;
// 
// 	/** x coordinate of ball vel n the field */
// 	private final double ballVelX;
// 
// 	/** y coordinate of ball vel on the field */
// 	private final double ballVelY;
// 
// 	/** z coordinate of ball vel on the field */
// 	private final double ballVelZ;
// 
// 	public RunInformation()
// 	{
// 		this(0, -13.5, 0, 0, 0);
// 	}
// 
// 	public RunInformation(int runID, double beamX, double beamY, double ballX, double ballY)
// 	{
// 		super();
// 		this.runID = runID;
// 		this.beamX = beamX;
// 		this.beamY = beamY;
// 		this.ballX = ballX;
// 		this.ballY = ballY;
// 		this.ballVelX = 0.0;
// 		this.ballVelY = 0.0;
// 		this.ballVelZ = 0.0;
// 	}
// 
// 	public RunInformation(int runID, double ballX, double ballY, double ballVelX, double ballVelY, double ballVelZ)
// 	{
// 		super();
// 		this.runID = runID;
// 		this.beamX = 0.0;
// 		this.beamY = 0.0;
// 		this.ballX = ballX;
// 		this.ballY = ballY;
// 		this.ballVelX = ballVelX;
// 		this.ballVelY = ballVelY;
// 		this.ballVelZ = ballVelZ;
// 	}
// 
// 	public int getRunID()
// 	{
// 		return runID;
// 	}
// 
// 	public double getBeamX()
// 	{
// 		return beamX;
// 	}
// 
// 	public double getBeamY()
// 	{
// 		return beamY;
// 	}
// 
// 	public double getBallX()
// 	{
// 		return ballX;
// 	}
// 
// 	public double getBallY()
// 	{
// 		return ballY;
// 	}
// 
// 	public double getBallVelX()
// 	{
// 		return ballVelX;
// 	}
// 
// 	public double getBallVelY()
// 	{
// 		return ballVelY;
// 	}
// 
// 	public double getBallVelZ()
// 	{
// 		return ballVelZ;
// 	}
// }


import hso.autonomy.util.symboltreeparser.SymbolNode;
import hso.autonomy.util.symboltreeparser.SymbolTreeParser;
import java.net.Socket;
import magma.tools.SAProxy.impl.AgentProxy;
import magma.tools.benchmark.model.bench.RunInformation;
import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
/* Copyright 2009 Hochschule Offenburg
 * Klaus Dorer, Mathias Ehret, Stefan Glaser, Thomas Huber,
 * Simon Raffeiner, Srinivasa Ragavan, Thomas Rinklin,
 * Joachim Schilling, Rajit Shahi
 *
 * This file is part of magmaOffenburg.
 *
 * magmaOffenburg is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * magmaOffenburg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with magmaOffenburg. If not, see <http://www.gnu.org/licenses/>.
 */

package magma.tools.benchmark.model.proxy;


/**
 * Special proxy for benchmarking agents
 * @author kdorer
 */
public class BenchmarkAgentProxy extends AgentProxy
{
	/** counts the number of cycles both legs do not have force */
	private int bothLegsOffGround;

	/** counts the number of cycles one leg do not have force */
	private int oneLegOffGround;

	/** counts the number of cycles both legs have force */
	private int noLegOffGround;

	/** counts the number of cycles in which at least one leg has force */
	private int legOnGround;

	private boolean startCount;

	private boolean stopCount;

	private boolean beaming;

	private final boolean allowPlayerBeaming;

	private final boolean isGazebo;

// Path: srcTools/magma/tools/benchmark/model/bench/RunInformation.java
// public class RunInformation
// {
// 	/** the counter for which run it is currently */
// 	private final int runID;
// 
// 	/** x coordinate on the field */
// 	private final double beamX;
// 
// 	/** y coordinate on the field */
// 	private final double beamY;
// 
// 	/** x coordinate of ball on the field */
// 	private final double ballX;
// 
// 	/** y coordinate of ball on the field */
// 	private final double ballY;
// 
// 	/** x coordinate of ball vel n the field */
// 	private final double ballVelX;
// 
// 	/** y coordinate of ball vel on the field */
// 	private final double ballVelY;
// 
// 	/** z coordinate of ball vel on the field */
// 	private final double ballVelZ;
// 
// 	public RunInformation()
// 	{
// 		this(0, -13.5, 0, 0, 0);
// 	}
// 
// 	public RunInformation(int runID, double beamX, double beamY, double ballX, double ballY)
// 	{
// 		super();
// 		this.runID = runID;
// 		this.beamX = beamX;
// 		this.beamY = beamY;
// 		this.ballX = ballX;
// 		this.ballY = ballY;
// 		this.ballVelX = 0.0;
// 		this.ballVelY = 0.0;
// 		this.ballVelZ = 0.0;
// 	}
// 
// 	public RunInformation(int runID, double ballX, double ballY, double ballVelX, double ballVelY, double ballVelZ)
// 	{
// 		super();
// 		this.runID = runID;
// 		this.beamX = 0.0;
// 		this.beamY = 0.0;
// 		this.ballX = ballX;
// 		this.ballY = ballY;
// 		this.ballVelX = ballVelX;
// 		this.ballVelY = ballVelY;
// 		this.ballVelZ = ballVelZ;
// 	}
// 
// 	public int getRunID()
// 	{
// 		return runID;
// 	}
// 
// 	public double getBeamX()
// 	{
// 		return beamX;
// 	}
// 
// 	public double getBeamY()
// 	{
// 		return beamY;
// 	}
// 
// 	public double getBallX()
// 	{
// 		return ballX;
// 	}
// 
// 	public double getBallY()
// 	{
// 		return ballY;
// 	}
// 
// 	public double getBallVelX()
// 	{
// 		return ballVelX;
// 	}
// 
// 	public double getBallVelY()
// 	{
// 		return ballVelY;
// 	}
// 
// 	public double getBallVelZ()
// 	{
// 		return ballVelZ;
// 	}
// }


// Path: srcTools/magma/tools/benchmark/model/proxy/BenchmarkAgentProxy.java
import hso.autonomy.util.symboltreeparser.SymbolNode;
import hso.autonomy.util.symboltreeparser.SymbolTreeParser;
import java.net.Socket;
import magma.tools.SAProxy.impl.AgentProxy;
import magma.tools.benchmark.model.bench.RunInformation;
import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;

/* Copyright 2009 Hochschule Offenburg
 * Klaus Dorer, Mathias Ehret, Stefan Glaser, Thomas Huber,
 * Simon Raffeiner, Srinivasa Ragavan, Thomas Rinklin,
 * Joachim Schilling, Rajit Shahi
 *
 * This file is part of magmaOffenburg.
 *
 * magmaOffenburg is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * magmaOffenburg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with magmaOffenburg. If not, see <http://www.gnu.org/licenses/>.
 */

package magma.tools.benchmark.model.proxy;


/**
 * Special proxy for benchmarking agents
 * @author kdorer
 */
public class BenchmarkAgentProxy extends AgentProxy
{
	/** counts the number of cycles both legs do not have force */
	private int bothLegsOffGround;

	/** counts the number of cycles one leg do not have force */
	private int oneLegOffGround;

	/** counts the number of cycles both legs have force */
	private int noLegOffGround;

	/** counts the number of cycles in which at least one leg has force */
	private int legOnGround;

	private boolean startCount;

	private boolean stopCount;

	private boolean beaming;

	private final boolean allowPlayerBeaming;

	private final boolean isGazebo;

	private RunInformation runInfo;