\section{lib/common/postproc.c File Reference}
\label{postproc_8c}\index{lib/common/postproc.\-c@{lib/common/postproc.\-c}}
{\ttfamily \#include \char`\"{}render.\-h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}xlabels.\-h\char`\"{}}\\*
Include dependency graph for postproc.\-c\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{postproc_8c__incl}
\end{center}
\end{figure}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct {\bf cinfo\-\_\-t}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define {\bf M1}~\char`\"{}/pathbox \{\textbackslash{}n\textbackslash{}    /Y exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    /\-X exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    /y exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    /x exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    newpath x y moveto\textbackslash{}n\textbackslash{}    X y lineto\textbackslash{}n\textbackslash{}    X Y lineto\textbackslash{}n\textbackslash{}    x Y lineto\textbackslash{}n\textbackslash{}    closepath stroke\textbackslash{}n \textbackslash{}\} def\textbackslash{}n\textbackslash{}/dbgstart \{ gsave \%.\-5g \%.\-5g translate \} def\textbackslash{}n\textbackslash{}/arrowlength 10 def\textbackslash{}n\textbackslash{}/arrowwidth arrowlength 2 div def\textbackslash{}n\textbackslash{}/arrowhead \{\textbackslash{}n\textbackslash{}    gsave\textbackslash{}n\textbackslash{}    rotate\textbackslash{}n\textbackslash{}    currentpoint\textbackslash{}n\textbackslash{}    newpath\textbackslash{}n\textbackslash{}    moveto\textbackslash{}n\textbackslash{}    arrowlength arrowwidth 2 div rlineto\textbackslash{}n\textbackslash{}    0 arrowwidth neg rlineto\textbackslash{}n\textbackslash{}    closepath fill\textbackslash{}n\textbackslash{}    grestore\textbackslash{}n\textbackslash{}\} bind def\textbackslash{}n\textbackslash{}/makearrow \{\textbackslash{}n\textbackslash{}    currentpoint exch pop sub exch currentpoint pop sub atan\textbackslash{}n\textbackslash{}    arrowhead\textbackslash{}n\textbackslash{}\} bind def\textbackslash{}n\textbackslash{}/point \{\textbackslash{}    newpath\textbackslash{}    2 0 360 arc fill\textbackslash{}\} def\textbackslash{}/makevec \{\textbackslash{}n\textbackslash{}    /\-Y exch def\textbackslash{}n\textbackslash{}    /\-X exch def\textbackslash{}n\textbackslash{}    /y exch def\textbackslash{}n\textbackslash{}    /x exch def\textbackslash{}n\textbackslash{}    newpath x y moveto\textbackslash{}n\textbackslash{}    X Y lineto stroke\textbackslash{}n\textbackslash{}    X Y moveto\textbackslash{}n\textbackslash{}    x y makearrow\textbackslash{}n\textbackslash{}\} def\textbackslash{}n\char`\"{}
\item 
\#define {\bf M2}~\char`\"{}/pathbox \{\textbackslash{}n\textbackslash{}    /X exch neg \%.\-5g sub def\textbackslash{}n\textbackslash{}    /\-Y exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    /x exch neg \%.\-5g sub def\textbackslash{}n\textbackslash{}    /y exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    newpath x y moveto\textbackslash{}n\textbackslash{}    X y lineto\textbackslash{}n\textbackslash{}    X Y lineto\textbackslash{}n\textbackslash{}    x Y lineto\textbackslash{}n\textbackslash{}    closepath stroke\textbackslash{}n\textbackslash{}\} def\textbackslash{}n\char`\"{}
\item 
\#define {\bf H\-A\-V\-E\-\_\-\-E\-D\-G\-E}(ep)~((et != {\bf E\-T\-\_\-\-N\-O\-N\-E}) \&\& ({\bf E\-D\-\_\-spl}(ep) != {\bf N\-U\-L\-L}))
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void {\bf translate\-\_\-bb} ({\bf graph\-\_\-t} $\ast$g, {\bf int} rankdir)
\item 
void {\bf gv\-\_\-postprocess} ({\bf Agraph\-\_\-t} $\ast$g, {\bf int} allow\-Translation)
\item 
void {\bf dotneato\-\_\-postprocess} ({\bf Agraph\-\_\-t} $\ast$g)
\item 
void {\bf place\-\_\-graph\-\_\-label} ({\bf graph\-\_\-t} $\ast$g)
\end{DoxyCompactItemize}


\subsection{Macro Definition Documentation}
\index{postproc.\-c@{postproc.\-c}!H\-A\-V\-E\-\_\-\-E\-D\-G\-E@{H\-A\-V\-E\-\_\-\-E\-D\-G\-E}}
\index{H\-A\-V\-E\-\_\-\-E\-D\-G\-E@{H\-A\-V\-E\-\_\-\-E\-D\-G\-E}!postproc.c@{postproc.\-c}}
\subsubsection[{H\-A\-V\-E\-\_\-\-E\-D\-G\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\-A\-V\-E\-\_\-\-E\-D\-G\-E(
\begin{DoxyParamCaption}
\item[{}]{ep}
\end{DoxyParamCaption}
)~((et != {\bf E\-T\-\_\-\-N\-O\-N\-E}) \&\& ({\bf E\-D\-\_\-spl}(ep) != {\bf N\-U\-L\-L}))}\label{postproc_8c_a3fa39f8d53c4f33dd5beeb09fd125584}


Definition at line 404 of file postproc.\-c.

\index{postproc.\-c@{postproc.\-c}!M1@{M1}}
\index{M1@{M1}!postproc.c@{postproc.\-c}}
\subsubsection[{M1}]{\setlength{\rightskip}{0pt plus 5cm}\#define M1~\char`\"{}/pathbox \{\textbackslash{}n\textbackslash{}    /Y exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    /\-X exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    /y exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    /x exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    newpath x y moveto\textbackslash{}n\textbackslash{}    X y lineto\textbackslash{}n\textbackslash{}    X Y lineto\textbackslash{}n\textbackslash{}    x Y lineto\textbackslash{}n\textbackslash{}    closepath stroke\textbackslash{}n \textbackslash{}\} def\textbackslash{}n\textbackslash{}/dbgstart \{ gsave \%.\-5g \%.\-5g translate \} def\textbackslash{}n\textbackslash{}/arrowlength 10 def\textbackslash{}n\textbackslash{}/arrowwidth arrowlength 2 div def\textbackslash{}n\textbackslash{}/arrowhead \{\textbackslash{}n\textbackslash{}    gsave\textbackslash{}n\textbackslash{}    rotate\textbackslash{}n\textbackslash{}    currentpoint\textbackslash{}n\textbackslash{}    newpath\textbackslash{}n\textbackslash{}    moveto\textbackslash{}n\textbackslash{}    arrowlength arrowwidth 2 div rlineto\textbackslash{}n\textbackslash{}    0 arrowwidth neg rlineto\textbackslash{}n\textbackslash{}    closepath fill\textbackslash{}n\textbackslash{}    grestore\textbackslash{}n\textbackslash{}\} bind def\textbackslash{}n\textbackslash{}/makearrow \{\textbackslash{}n\textbackslash{}    currentpoint exch pop sub exch currentpoint pop sub atan\textbackslash{}n\textbackslash{}    arrowhead\textbackslash{}n\textbackslash{}\} bind def\textbackslash{}n\textbackslash{}/point \{\textbackslash{}    newpath\textbackslash{}    2 0 360 arc fill\textbackslash{}\} def\textbackslash{}/makevec \{\textbackslash{}n\textbackslash{}    /\-Y exch def\textbackslash{}n\textbackslash{}    /\-X exch def\textbackslash{}n\textbackslash{}    /y exch def\textbackslash{}n\textbackslash{}    /x exch def\textbackslash{}n\textbackslash{}    newpath x y moveto\textbackslash{}n\textbackslash{}    X Y lineto stroke\textbackslash{}n\textbackslash{}    X Y moveto\textbackslash{}n\textbackslash{}    x y makearrow\textbackslash{}n\textbackslash{}\} def\textbackslash{}n\char`\"{}}\label{postproc_8c_ac597abe7cf610f262f7aaec53ed1d413}


Definition at line 24 of file postproc.\-c.



Referenced by gv\-\_\-postprocess().

\index{postproc.\-c@{postproc.\-c}!M2@{M2}}
\index{M2@{M2}!postproc.c@{postproc.\-c}}
\subsubsection[{M2}]{\setlength{\rightskip}{0pt plus 5cm}\#define M2~\char`\"{}/pathbox \{\textbackslash{}n\textbackslash{}    /X exch neg \%.\-5g sub def\textbackslash{}n\textbackslash{}    /\-Y exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    /x exch neg \%.\-5g sub def\textbackslash{}n\textbackslash{}    /y exch \%.\-5g sub def\textbackslash{}n\textbackslash{}    newpath x y moveto\textbackslash{}n\textbackslash{}    X y lineto\textbackslash{}n\textbackslash{}    X Y lineto\textbackslash{}n\textbackslash{}    x Y lineto\textbackslash{}n\textbackslash{}    closepath stroke\textbackslash{}n\textbackslash{}\} def\textbackslash{}n\char`\"{}}\label{postproc_8c_a2a187ef3afced0eb4c4cb99515e5429c}


Definition at line 69 of file postproc.\-c.



Referenced by gv\-\_\-postprocess().



\subsection{Function Documentation}
\index{postproc.\-c@{postproc.\-c}!dotneato\-\_\-postprocess@{dotneato\-\_\-postprocess}}
\index{dotneato\-\_\-postprocess@{dotneato\-\_\-postprocess}!postproc.c@{postproc.\-c}}
\subsubsection[{dotneato\-\_\-postprocess}]{\setlength{\rightskip}{0pt plus 5cm}void dotneato\-\_\-postprocess (
\begin{DoxyParamCaption}
\item[{{\bf Agraph\-\_\-t} $\ast$}]{g}
\end{DoxyParamCaption}
)}\label{postproc_8c_aaf5787d1af047aaad59ab2d7f0818538}


Definition at line 693 of file postproc.\-c.



References gv\-\_\-postprocess().



Referenced by circo\-\_\-layout(), dot\-\_\-layout(), osage\-\_\-layout(), pack\-\_\-graph(), patchwork\-\_\-layout(), sfdp\-\_\-layout(), and twopi\-\_\-layout().

\index{postproc.\-c@{postproc.\-c}!gv\-\_\-postprocess@{gv\-\_\-postprocess}}
\index{gv\-\_\-postprocess@{gv\-\_\-postprocess}!postproc.c@{postproc.\-c}}
\subsubsection[{gv\-\_\-postprocess}]{\setlength{\rightskip}{0pt plus 5cm}void gv\-\_\-postprocess (
\begin{DoxyParamCaption}
\item[{{\bf Agraph\-\_\-t} $\ast$}]{g, }
\item[{{\bf int}}]{allow\-Translation}
\end{DoxyParamCaption}
)}\label{postproc_8c_acdb07248fcde2766036592b450ddfcd2}


Definition at line 603 of file postproc.\-c.



References G\-D\-\_\-bb, G\-D\-\_\-flip, G\-D\-\_\-label, G\-D\-\_\-label\-\_\-pos, G\-D\-\_\-rankdir, L\-A\-B\-E\-L\-\_\-\-A\-T\-\_\-\-T\-O\-P, M1, M2, P\-A\-D, place\-\_\-graph\-\_\-label(), R\-A\-N\-K\-D\-I\-R\-\_\-\-B\-T, R\-A\-N\-K\-D\-I\-R\-\_\-\-L\-R, R\-A\-N\-K\-D\-I\-R\-\_\-\-R\-L, R\-A\-N\-K\-D\-I\-R\-\_\-\-T\-B, Show\-\_\-boxes, pointf\-\_\-s\-::x, and pointf\-\_\-s\-::y.



Referenced by dotneato\-\_\-postprocess(), fdp\-\_\-layout(), and neato\-\_\-layout().

\index{postproc.\-c@{postproc.\-c}!place\-\_\-graph\-\_\-label@{place\-\_\-graph\-\_\-label}}
\index{place\-\_\-graph\-\_\-label@{place\-\_\-graph\-\_\-label}!postproc.c@{postproc.\-c}}
\subsubsection[{place\-\_\-graph\-\_\-label}]{\setlength{\rightskip}{0pt plus 5cm}void place\-\_\-graph\-\_\-label (
\begin{DoxyParamCaption}
\item[{{\bf graph\-\_\-t} $\ast$}]{g}
\end{DoxyParamCaption}
)}\label{postproc_8c_a7c52e88bbabd160ad2a1632381acb2c3}


Definition at line 736 of file postproc.\-c.



References agroot(), B\-O\-T\-T\-O\-M\-\_\-\-I\-X, G\-D\-\_\-bb, G\-D\-\_\-border, G\-D\-\_\-clust, G\-D\-\_\-label, G\-D\-\_\-label\-\_\-pos, G\-D\-\_\-n\-\_\-cluster, place\-\_\-graph\-\_\-label(), T\-O\-P\-\_\-\-I\-X, T\-R\-U\-E, pointf\-\_\-s\-::x, and pointf\-\_\-s\-::y.



Referenced by gv\-\_\-postprocess(), and place\-\_\-graph\-\_\-label().

\index{postproc.\-c@{postproc.\-c}!translate\-\_\-bb@{translate\-\_\-bb}}
\index{translate\-\_\-bb@{translate\-\_\-bb}!postproc.c@{postproc.\-c}}
\subsubsection[{translate\-\_\-bb}]{\setlength{\rightskip}{0pt plus 5cm}void translate\-\_\-bb (
\begin{DoxyParamCaption}
\item[{{\bf graph\-\_\-t} $\ast$}]{g, }
\item[{{\bf int}}]{rankdir}
\end{DoxyParamCaption}
)}\label{postproc_8c_a3e4af217cf24402594d81a2b76ed8fd6}


Definition at line 121 of file postproc.\-c.



References G\-D\-\_\-bb, G\-D\-\_\-clust, G\-D\-\_\-label, G\-D\-\_\-n\-\_\-cluster, boxf\-::\-L\-L, R\-A\-N\-K\-D\-I\-R\-\_\-\-B\-T, R\-A\-N\-K\-D\-I\-R\-\_\-\-L\-R, translate\-\_\-bb(), boxf\-::\-U\-R, pointf\-\_\-s\-::x, and pointf\-\_\-s\-::y.



Referenced by translate\-\_\-bb().

