78 lines
2.4 KiB
Java
78 lines
2.4 KiB
Java
/*
|
|
* 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.
|
|
*/
|
|
|
|
package eu.mihosoft.freerouting.board;
|
|
|
|
import eu.mihosoft.freerouting.geometry.planar.TileShape;
|
|
|
|
import java.util.Set;
|
|
|
|
/**
|
|
*
|
|
* Functionality required for items, which can be
|
|
* electrical connected to other items.
|
|
*
|
|
* @author Alfons Wirtz
|
|
*/
|
|
|
|
public interface Connectable
|
|
{
|
|
/**
|
|
* Returns true if this item belongs to the net with number p_net_no.
|
|
*/
|
|
public boolean contains_net(int p_net_no);
|
|
|
|
/**
|
|
* Returns true if the net number array of this and p_net_no_arr have a common
|
|
* number.
|
|
*/
|
|
public boolean shares_net_no(int [] p_net_no_arr);
|
|
|
|
/**
|
|
* Returns a list of all connectable items overlapping
|
|
* and sharing a net with this item.
|
|
*/
|
|
Set<Item> get_all_contacts();
|
|
|
|
/**
|
|
* Returns a list of all connectable items overlapping with
|
|
* this item on the input layer and sharing a net with this item.
|
|
*/
|
|
Set<Item> get_all_contacts(int p_layer );
|
|
|
|
/**
|
|
* Returns the list of all contacts of a connectable item
|
|
* located at defined connection points.
|
|
* Connection points of traces are there endpoints, connection
|
|
* points of drill_items there center points, and connection
|
|
* points of conduction areas are points on there border.
|
|
*/
|
|
Set<Item> get_normal_contacts();
|
|
|
|
/**
|
|
* Returns all connectable items of the net with number p_net_no, which can be reached recursively
|
|
* from this item via normal contacts.
|
|
* if (p_net_no <= 0, the net number is ignored.
|
|
*/
|
|
Set<Item> get_connected_set(int p_net_no);
|
|
|
|
/**
|
|
* Returns for each convex shape of a connectable item
|
|
* the subshape of points, where traces can be connected to that item.
|
|
*/
|
|
TileShape get_trace_connection_shape(ShapeSearchTree p_tree, int p_index);
|
|
}
|