/*
* Copyright (C) 2014 Alfons Wirtz
* website www.freerouting.net
*
* This program 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.
*
* This program 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 at <http://www.gnu.org/licenses/>
* for more details.
*
* ReadScopeParameter.java
*
* Created on 21. Juni 2004, 08:28
*/
package designformats.specctra;
import java.util.Collection;
import java.util.LinkedList;
/**
* Default parameter type used while reading a Specctra dsn-file.
*
* @author alfons
*/
public class ReadScopeParameter
{
/** Creates a new instance of ReadScopeParameter */
ReadScopeParameter(Scanner p_scanner, interactive.IBoardHandling p_board_handling,
board.BoardObservers p_observers,
datastructures.IdNoGenerator p_item_id_no_generator,board.TestLevel p_test_level)
{
scanner = p_scanner;
board_handling = p_board_handling;
observers = p_observers;
item_id_no_generator = p_item_id_no_generator;
test_level = p_test_level;
}
final Scanner scanner;
final interactive.IBoardHandling board_handling;
final NetList netlist = new NetList();
final board.BoardObservers observers;
final datastructures.IdNoGenerator item_id_no_generator;
final board.TestLevel test_level;
/** Collection of elements of class PlaneInfo.
* The plane cannot be inserted directly into the boards, because the layers may not be read completely.
*/
final Collection<PlaneInfo> plane_list = new LinkedList<PlaneInfo>();
/**
* Component placement information.
* It is filled while reading the placement scope and can be
* evaluated after reading the library and network scope.
*/
final Collection<ComponentPlacement> placement_list = new LinkedList<ComponentPlacement>();
/**
* The names of the via padstacks filled while reading the structure scope
* and evaluated after reading the library scope.
*/
Collection<String> via_padstack_names = null;
boolean via_at_smd_allowed = false;
board.AngleRestriction snap_angle = board.AngleRestriction.FORTYFIVE_DEGREE;
/** The logical parts are used for pin and gate swaw */
java.util.Collection<PartLibrary.LogicalPartMapping> logical_part_mappings
= new java.util.LinkedList<PartLibrary.LogicalPartMapping>();
java.util.Collection<PartLibrary.LogicalPart> logical_parts = new java.util.LinkedList<PartLibrary.LogicalPart>();
/** The following objects are from the parser scope. */
String string_quote = "\"";
String host_cad = null;
String host_version = null;
boolean dsn_file_generated_by_host = true;
boolean board_outline_ok = true;
final Collection<String[]> constants = new LinkedList<String[]>();
board.Communication.SpecctraParserInfo.WriteResolution write_resolution = null;
/** The following objects will be initialised when the structure scope is read. */
CoordinateTransform coordinate_transform = null;
LayerStructure layer_structure = null;
interactive.AutorouteSettings autoroute_settings = null;
board.Unit unit = board.Unit.MIL;
int resolution = 100; // default resulution
/** Information for inserting a plane */
static class PlaneInfo
{
PlaneInfo(Shape.ReadAreaScopeResult p_area, String p_net_name)
{
area = p_area;
net_name = p_net_name;
}
final Shape.ReadAreaScopeResult area;
final String net_name;
}
}