コード例 #1
0
 private void addToDrawn(PortInst pi) {
   assert stack.isEmpty();
   stack.add(pi);
   while (!stack.isEmpty()) {
     pi = stack.remove(stack.size() - 1);
     PortProtoId ppId = pi.portId;
     int numPorts = getNumPorts(ppId.getParentId());
     if (numPorts == 1 || ppId instanceof ExportId) {
       addToDrawn1(pi);
       continue;
     }
     PrimitivePort pp = techPool.getPrimitivePort((PrimitivePortId) ppId);
     PrimitiveNode pn = pp.getParent();
     int topology = pp.getTopology();
     for (int i = 0; i < numPorts; i++) {
       PrimitivePort pp2 = pn.getPort(i);
       if (pp2.getTopology() != topology) {
         continue;
       }
       addToDrawn1(new PortInst(pi.n.nodeId, pp2.getId()));
     }
   }
 }