// Path: src/VASL/LOS/counters/OBA.java
// public class OBA extends Counter {
// 
//     private Hex hex;
//     private int blastHeight = 2;
//     private int blastAreaRadius = 1;
// 
//     /**
//      * Create an OBA counter
//      * @param name the counter name
//      * @param hex the hex location of the counter
//      */
//     public OBA(String name, Hex hex){
//         super(name);
//         this.hex = hex;
//     }
// 
//     /**
//      * @return the hex location of the OBA counter
//      */
//     public Hex getHex(){
//         return hex;
//     }
// 
//     /**
//      * @return the blast height of the OBA
//      */
//     public int getBlastHeight(){
//         return blastHeight;
//     }
// 
//     /**
//      * @return the max range of the blast area from the counter
//      */
//     public int getBlastAreaRadius(){
//         return blastAreaRadius;
//     }
// }


import VASL.LOS.counters.OBA;
import java.awt.*;
import java.util.HashMap;
import java.util.HashSet;
/*
 * Copyright (c) 2000-2003 by David Sullivan
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License (LGPL) as published by the Free Software Foundation.
 *
 * This library 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
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, copies are available
 * at http://www.opensource.org.
 */
package VASL.LOS.Map;



/**
 * Title:        LOSResult.java
 * Copyright:    Copyright (c) 2001 David Sullivan Zuericher Strasse 6 12205 Berlin Germany. All rights reserved.
 * @author       David Sullivan
 * @version      1.0
 */
public class LOSResult {

	// some useful constants
	public static final int UNKNOWN = -1;

	// private variables
	protected Location sourceLocation;
    private Location targetLocation;

	private boolean blocked;
	private Point   blockedAtPoint;
	protected Point firstHindranceAt;
	private int	 	range;
	protected int	sourceExitHexspine	= UNKNOWN;
	private int	 	targetEnterHexspine	= UNKNOWN;
	private String	reason				= "";
	private boolean continuousSlope;
	protected boolean LOSis60Degree;
	private boolean LOSisHorizontal;

    // the <Integer> is the range to the hindrance hex
	protected HashMap<Integer, Integer>  mapHindrances = new HashMap<Integer, Integer>();

    // <Integer, Integer> = <range, hindrance>
	private	HashMap<Integer, Integer>	smokeHindrances	= new HashMap<Integer, Integer>();
    private	HashMap<Integer, Integer>	vehicleHindrances	= new HashMap<Integer, Integer>();
// Path: src/VASL/LOS/counters/OBA.java
// public class OBA extends Counter {
// 
//     private Hex hex;
//     private int blastHeight = 2;
//     private int blastAreaRadius = 1;
// 
//     /**
//      * Create an OBA counter
//      * @param name the counter name
//      * @param hex the hex location of the counter
//      */
//     public OBA(String name, Hex hex){
//         super(name);
//         this.hex = hex;
//     }
// 
//     /**
//      * @return the hex location of the OBA counter
//      */
//     public Hex getHex(){
//         return hex;
//     }
// 
//     /**
//      * @return the blast height of the OBA
//      */
//     public int getBlastHeight(){
//         return blastHeight;
//     }
// 
//     /**
//      * @return the max range of the blast area from the counter
//      */
//     public int getBlastAreaRadius(){
//         return blastAreaRadius;
//     }
// }


// Path: src/VASL/LOS/Map/LOSResult.java
import VASL.LOS.counters.OBA;
import java.awt.*;
import java.util.HashMap;
import java.util.HashSet;

/*
 * Copyright (c) 2000-2003 by David Sullivan
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License (LGPL) as published by the Free Software Foundation.
 *
 * This library 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
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, copies are available
 * at http://www.opensource.org.
 */
package VASL.LOS.Map;



/**
 * Title:        LOSResult.java
 * Copyright:    Copyright (c) 2001 David Sullivan Zuericher Strasse 6 12205 Berlin Germany. All rights reserved.
 * @author       David Sullivan
 * @version      1.0
 */
public class LOSResult {

	// some useful constants
	public static final int UNKNOWN = -1;

	// private variables
	protected Location sourceLocation;
    private Location targetLocation;

	private boolean blocked;
	private Point   blockedAtPoint;
	protected Point firstHindranceAt;
	private int	 	range;
	protected int	sourceExitHexspine	= UNKNOWN;
	private int	 	targetEnterHexspine	= UNKNOWN;
	private String	reason				= "";
	private boolean continuousSlope;
	protected boolean LOSis60Degree;
	private boolean LOSisHorizontal;

    // the <Integer> is the range to the hindrance hex
	protected HashMap<Integer, Integer>  mapHindrances = new HashMap<Integer, Integer>();

    // <Integer, Integer> = <range, hindrance>
	private	HashMap<Integer, Integer>	smokeHindrances	= new HashMap<Integer, Integer>();
    private	HashMap<Integer, Integer>	vehicleHindrances	= new HashMap<Integer, Integer>();
    private HashSet<OBA> obaHindrances = new HashSet<OBA>();