More meaningful names in Anabatic::NetBuilder. Use of isTwoMetals().

This commit is contained in:
Jean-Paul Chaput 2017-12-19 00:28:38 +01:00
parent f87bcf717c
commit a75c77626c
2 changed files with 15 additions and 10 deletions

View File

@ -192,6 +192,7 @@ namespace Anabatic {
, _routingPadAutoSegments()
, _toFixSegments ()
, _degree (0)
, _isTwoMetals (false)
{ }
@ -226,12 +227,13 @@ namespace Anabatic {
}
NetBuilder& NetBuilder::startFrom ( AnabaticEngine* anbt, Hook* fromHook, AutoContact* sourceContact )
NetBuilder& NetBuilder::setStartHook ( AnabaticEngine* anbt, Hook* fromHook, AutoContact* sourceContact )
{
clear();
_sourceContact = sourceContact;
_fromHook = fromHook;
_isTwoMetals = anbt->getConfiguration()->isTwoMetals();
_sourceContact = sourceContact;
_fromHook = fromHook;
cdebug_log(145,1) << "NetBuilder::NetBuilder()" << endl;
cdebug_log(145,0) << "* _fromHook: " << fromHook << endl;
@ -381,13 +383,13 @@ namespace Anabatic {
{
cdebug_log(145,1) << "NetBuilder::construct() [" << _connexity.connexity << "] in " << _gcell << endl;
if (_gcell->isMatrix()) {
if (not isTwoMetals()) {
_southWestContact = NULL;
_northEastContact = NULL;
}
if (not _gcell->isAnalog()) {
if (not _gcell->isMatrix() and not _sourceContact) _fromHook = NULL;
if (isTwoMetals() and not _sourceContact) _fromHook = NULL;
switch ( _connexity.connexity ) {
case Conn_1G_1Pad:
@ -2044,7 +2046,7 @@ namespace Anabatic {
++connecteds;
segmentFound = true;
startFrom( anabatic, hook, NULL );
setStartHook( anabatic, hook, NULL );
if (getStateG() == 1) {
if ( (lowestGCell == NULL) or (*getGCell() < *lowestGCell) ) {
cdebug_log(145,0) << "Potential starting GCell " << getGCell() << endl;
@ -2072,9 +2074,9 @@ namespace Anabatic {
}
cdebug_tabw(145,-1);
if (startHook == NULL) { startFrom(anabatic,NULL,NULL).singleGCell(anabatic,net); cdebug_tabw(145,-1); return; }
if (startHook == NULL) { setStartHook(anabatic,NULL,NULL).singleGCell(anabatic,net); cdebug_tabw(145,-1); return; }
startFrom( anabatic, startHook, NULL );
setStartHook( anabatic, startHook, NULL );
cdebug_log(145,0) << endl;
cdebug_log(145,0) << "--------~~~~=={o}==~~~~--------" << endl;
cdebug_log(145,0) << endl;
@ -2086,7 +2088,7 @@ namespace Anabatic {
_forks.pop();
while ( sourceHook ) {
startFrom( anabatic, sourceHook, sourceContact );
setStartHook( anabatic, sourceHook, sourceContact );
construct();
sourceHook = _forks.getFrom();

View File

@ -141,10 +141,11 @@ namespace Anabatic {
NetBuilder ();
virtual ~NetBuilder ();
void clear ();
inline bool isTwoMetals () const;
inline unsigned int getDegree () const;
inline void setDegree ( unsigned int degree );
void fixSegments ();
NetBuilder& startFrom ( AnabaticEngine*
NetBuilder& setStartHook ( AnabaticEngine*
, Hook* fromHook
, AutoContact* sourceContact=NULL );
void construct ();
@ -308,6 +309,7 @@ namespace Anabatic {
map<Component*,AutoSegment*> _routingPadAutoSegments;
vector<AutoSegment*> _toFixSegments;
unsigned int _degree;
bool _isTwoMetals;
// Sort classes.
public:
@ -345,6 +347,7 @@ namespace Anabatic {
};
inline bool NetBuilder::isTwoMetals () const { return _isTwoMetals; }
inline unsigned int NetBuilder::getDegree () const { return _degree; }
inline NetBuilder::UConnexity NetBuilder::getConnexity () const { return _connexity; }
inline NetBuilder::UConnexity& NetBuilder::getConnexity () { return _connexity; }