diff options
Diffstat (limited to 'src/temp/ivy/ivyShow.c')
-rw-r--r-- | src/temp/ivy/ivyShow.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/temp/ivy/ivyShow.c b/src/temp/ivy/ivyShow.c index 3105081e..cd726e43 100644 --- a/src/temp/ivy/ivyShow.c +++ b/src/temp/ivy/ivyShow.c @@ -24,7 +24,7 @@ /// DECLARATIONS /// //////////////////////////////////////////////////////////////////////// -static void Ivy_WriteDotAig( Ivy_Man_t * pMan, char * pFileName, int fHaig ); +static void Ivy_WriteDotAig( Ivy_Man_t * pMan, char * pFileName, int fHaig, Vec_Ptr_t * vBold ); //////////////////////////////////////////////////////////////////////// /// FUNCTION DEFINITIONS /// @@ -41,7 +41,7 @@ static void Ivy_WriteDotAig( Ivy_Man_t * pMan, char * pFileName, int fHaig ); SeeAlso [] ***********************************************************************/ -void Ivy_ManShow( Ivy_Man_t * pMan, int fHaig ) +void Ivy_ManShow( Ivy_Man_t * pMan, int fHaig, Vec_Ptr_t * vBold ) { extern void Abc_ShowFile( char * FileNameDot ); static Counter = 0; @@ -58,7 +58,7 @@ void Ivy_ManShow( Ivy_Man_t * pMan, int fHaig ) } fclose( pFile ); // generate the file - Ivy_WriteDotAig( pMan, FileNameDot, fHaig ); + Ivy_WriteDotAig( pMan, FileNameDot, fHaig, vBold ); // visualize the file Abc_ShowFile( FileNameDot ); } @@ -75,7 +75,7 @@ void Ivy_ManShow( Ivy_Man_t * pMan, int fHaig ) SeeAlso [] ***********************************************************************/ -void Ivy_WriteDotAig( Ivy_Man_t * pMan, char * pFileName, int fHaig ) +void Ivy_WriteDotAig( Ivy_Man_t * pMan, char * pFileName, int fHaig, Vec_Ptr_t * vBold ) { FILE * pFile; Ivy_Obj_t * pNode, * pTemp, * pPrev; @@ -92,6 +92,11 @@ void Ivy_WriteDotAig( Ivy_Man_t * pMan, char * pFileName, int fHaig ) return; } + // mark the nodes + if ( vBold ) + Vec_PtrForEachEntry( vBold, pNode, i ) + pNode->fMarkB = 1; + // compute levels LevelMax = 1 + Ivy_ManSetLevels( pMan, fHaig ); @@ -218,6 +223,8 @@ void Ivy_WriteDotAig( Ivy_Man_t * pMan, char * pFileName, int fHaig ) fprintf( pFile, " Node%d [label = \"%d(%d%s)\"", pNode->Id, pNode->Id, Ivy_Regular(pNode->pEquiv)->Id, Ivy_IsComplement(pNode->pEquiv)? "\'":"" ); fprintf( pFile, ", shape = ellipse" ); + if ( vBold && pNode->fMarkB ) + fprintf( pFile, ", style = filled" ); fprintf( pFile, "];\n" ); } fprintf( pFile, "}" ); @@ -316,6 +323,11 @@ void Ivy_WriteDotAig( Ivy_Man_t * pMan, char * pFileName, int fHaig ) fprintf( pFile, "\n" ); fprintf( pFile, "\n" ); fclose( pFile ); + + // unmark nodes + if ( vBold ) + Vec_PtrForEachEntry( vBold, pNode, i ) + pNode->fMarkB = 0; } |