improves performance of model creation

This commit is contained in:
hneemann 2020-12-25 16:31:50 +01:00
parent 56e7ec7d01
commit 4cebc973ca
2 changed files with 21 additions and 13 deletions

View File

@ -137,7 +137,8 @@ public class Net {
}
/**
* Add all given pins to the net
* Add all given pins to the net.
* Used during custom component connection.
*
* @param p the pins
*/
@ -146,7 +147,8 @@ public class Net {
}
/**
* Add all given pins to the net
* Add all given pins to the net.
* Used during custom component connection.
*
* @param otherNet the other net
*/
@ -238,7 +240,8 @@ public class Net {
}
/**
* Removes a pin from the net
* Removes a pin from the net.
* Used during custom component connection.
*
* @param p the pin to remove
* @throws PinException is thrown if pin is not present

View File

@ -21,6 +21,7 @@ import java.util.Iterator;
public class NetList implements Iterable<Net> {
private final ArrayList<Net> netList;
private HashMap<Vector, Net> posMap;
/**
* Creates a net list from the given circuit
@ -130,7 +131,8 @@ public class NetList implements Iterable<Net> {
}
/**
* Adds a complete net list to this net list
* Adds a complete net list to this net list.
* Used during custom component connection.
*
* @param netList the net list to add
*/
@ -139,17 +141,18 @@ public class NetList implements Iterable<Net> {
}
/**
* Adds a pin to this net list
* Used only during model creation
* Adds a pin to this net list.
* Used only during model creation.
*
* @param pin the pin to add
*/
public void add(Pin pin) {
for (Net net : netList)
if (net.contains(pin.getPos())) {
if (posMap == null)
posMap = getAllNetPositions();
Net net = posMap.get(pin.getPos());
if (net != null)
net.add(pin);
return;
}
}
private void add(Wire w) {
@ -188,7 +191,8 @@ public class NetList implements Iterable<Net> {
}
/**
* Returns the net of the given pin
* Returns the net of the given pin.
* Used during custom component connection.
*
* @param p the pin
* @return the net or null if not found
@ -222,7 +226,8 @@ public class NetList implements Iterable<Net> {
}
/**
* Removes a net from this net list
* Removes a net from this net list.
* Used during custom component connection.
*
* @param childNet the net to remove
*/