\doxysection{/home/chr/devel/\+Ph\+D/\+Environment/pub/\+PCBEnv/pcbenv/cxx/\+Rasterizer.hpp File Reference}
\hypertarget{Rasterizer_8hpp}{}\label{Rasterizer_8hpp}\index{/home/chr/devel/PhD/Environment/pub/PCBEnv/pcbenv/cxx/Rasterizer.hpp@{/home/chr/devel/PhD/Environment/pub/PCBEnv/pcbenv/cxx/Rasterizer.hpp}}
{\ttfamily \#include "{}Uniform\+Grid25.\+hpp"{}}\newline
{\ttfamily \#include "{}AShape.\+hpp"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structIndexRange}{Index\+Range}}
\item 
class \mbox{\hyperlink{classBaseROP}{Base\+ROP}}
\item 
class \mbox{\hyperlink{classRecordRangesROP}{Record\+Ranges\+ROP}}
\item 
class \mbox{\hyperlink{classRasterizer}{Rasterizer$<$ ROP $>$}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{Rasterizer_8hpp_a1d00f6595338a3e542972b73a883fcc8}{RASTERIZE\+\_\+\+CAPS\+\_\+\+MASK\+\_\+\+SOURCE}}~0x1
\item 
\#define \mbox{\hyperlink{Rasterizer_8hpp_a578816d298dee467fda48a65a70cfba7}{RASTERIZE\+\_\+\+CAPS\+\_\+\+MASK\+\_\+\+TARGET}}~0x2
\item 
\#define \mbox{\hyperlink{Rasterizer_8hpp_a88ae9bad09210170cfafc6d3a180c170}{RASTERIZE\+\_\+\+CAPS\+\_\+\+MASK\+\_\+\+BOTH}}~(\mbox{\hyperlink{Rasterizer_8hpp_a1d00f6595338a3e542972b73a883fcc8}{RASTERIZE\+\_\+\+CAPS\+\_\+\+MASK\+\_\+\+SOURCE}} \texorpdfstring{$\vert$}{|} \mbox{\hyperlink{Rasterizer_8hpp_a578816d298dee467fda48a65a70cfba7}{RASTERIZE\+\_\+\+CAPS\+\_\+\+MASK\+\_\+\+TARGET}})
\item 
\#define \mbox{\hyperlink{Rasterizer_8hpp_a4096194abc0362d553c65834418b89ba}{RASTERIZE\+\_\+\+MASK\+\_\+\+SEGMENTS}}~0x1
\item 
\#define \mbox{\hyperlink{Rasterizer_8hpp_ae62544021ca190d8b28c4383175af333}{RASTERIZE\+\_\+\+MASK\+\_\+\+VIAS}}~0x2
\item 
\#define \mbox{\hyperlink{Rasterizer_8hpp_a1b80db84636afdce7ffd545ef201832c}{RASTERIZE\+\_\+\+MASK\+\_\+\+CAPS}}~0x4
\item 
\#define \mbox{\hyperlink{Rasterizer_8hpp_ab8d5677824cdd9fcf5a0b1b298d44426}{RASTERIZE\+\_\+\+MASK\+\_\+\+JUNCTIONS}}~0x8
\item 
\#define \mbox{\hyperlink{Rasterizer_8hpp_ab09107ed4a026eb459595c131e149351}{RASTERIZE\+\_\+\+MASK\+\_\+\+ALL}}~0xf
\item 
\#define \mbox{\hyperlink{Rasterizer_8hpp_a7a5f5ea62e18f1ce1884ea5664390eaa}{RASTERIZE\+\_\+\+MASK\+\_\+\+CAPS\+\_\+\+AND\+\_\+\+JUNCTIONS}}~(\mbox{\hyperlink{Rasterizer_8hpp_a1b80db84636afdce7ffd545ef201832c}{RASTERIZE\+\_\+\+MASK\+\_\+\+CAPS}} \texorpdfstring{$\vert$}{|} \mbox{\hyperlink{Rasterizer_8hpp_ab8d5677824cdd9fcf5a0b1b298d44426}{RASTERIZE\+\_\+\+MASK\+\_\+\+JUNCTIONS}})
\end{DoxyCompactItemize}


\label{doc-define-members}
\Hypertarget{Rasterizer_8hpp_doc-define-members}
\doxysubsection{Macro Definition Documentation}
\Hypertarget{Rasterizer_8hpp_a88ae9bad09210170cfafc6d3a180c170}\index{Rasterizer.hpp@{Rasterizer.hpp}!RASTERIZE\_CAPS\_MASK\_BOTH@{RASTERIZE\_CAPS\_MASK\_BOTH}}
\index{RASTERIZE\_CAPS\_MASK\_BOTH@{RASTERIZE\_CAPS\_MASK\_BOTH}!Rasterizer.hpp@{Rasterizer.hpp}}
\doxysubsubsection{\texorpdfstring{RASTERIZE\_CAPS\_MASK\_BOTH}{RASTERIZE\_CAPS\_MASK\_BOTH}}
{\footnotesize\ttfamily \label{Rasterizer_8hpp_a88ae9bad09210170cfafc6d3a180c170} 
\#define RASTERIZE\+\_\+\+CAPS\+\_\+\+MASK\+\_\+\+BOTH~(\mbox{\hyperlink{Rasterizer_8hpp_a1d00f6595338a3e542972b73a883fcc8}{RASTERIZE\+\_\+\+CAPS\+\_\+\+MASK\+\_\+\+SOURCE}} \texorpdfstring{$\vert$}{|} \mbox{\hyperlink{Rasterizer_8hpp_a578816d298dee467fda48a65a70cfba7}{RASTERIZE\+\_\+\+CAPS\+\_\+\+MASK\+\_\+\+TARGET}})}

\Hypertarget{Rasterizer_8hpp_a1d00f6595338a3e542972b73a883fcc8}\index{Rasterizer.hpp@{Rasterizer.hpp}!RASTERIZE\_CAPS\_MASK\_SOURCE@{RASTERIZE\_CAPS\_MASK\_SOURCE}}
\index{RASTERIZE\_CAPS\_MASK\_SOURCE@{RASTERIZE\_CAPS\_MASK\_SOURCE}!Rasterizer.hpp@{Rasterizer.hpp}}
\doxysubsubsection{\texorpdfstring{RASTERIZE\_CAPS\_MASK\_SOURCE}{RASTERIZE\_CAPS\_MASK\_SOURCE}}
{\footnotesize\ttfamily \label{Rasterizer_8hpp_a1d00f6595338a3e542972b73a883fcc8} 
\#define RASTERIZE\+\_\+\+CAPS\+\_\+\+MASK\+\_\+\+SOURCE~0x1}

This is generic rasterization code that works for any class derived from \doxylink{classUniformGrid25}{Uniform\+Grid25}. Transforms shapes to the set of grid indices they cover. All you need to do is implement the rasterizatin operation and pass it as a template parameter to the rasterizer (for speed purposes). You can also use \doxylink{classRecordRangesROP}{Record\+Ranges\+ROP} implemented here to simply get the index ranges back. \Hypertarget{Rasterizer_8hpp_a578816d298dee467fda48a65a70cfba7}\index{Rasterizer.hpp@{Rasterizer.hpp}!RASTERIZE\_CAPS\_MASK\_TARGET@{RASTERIZE\_CAPS\_MASK\_TARGET}}
\index{RASTERIZE\_CAPS\_MASK\_TARGET@{RASTERIZE\_CAPS\_MASK\_TARGET}!Rasterizer.hpp@{Rasterizer.hpp}}
\doxysubsubsection{\texorpdfstring{RASTERIZE\_CAPS\_MASK\_TARGET}{RASTERIZE\_CAPS\_MASK\_TARGET}}
{\footnotesize\ttfamily \label{Rasterizer_8hpp_a578816d298dee467fda48a65a70cfba7} 
\#define RASTERIZE\+\_\+\+CAPS\+\_\+\+MASK\+\_\+\+TARGET~0x2}

\Hypertarget{Rasterizer_8hpp_ab09107ed4a026eb459595c131e149351}\index{Rasterizer.hpp@{Rasterizer.hpp}!RASTERIZE\_MASK\_ALL@{RASTERIZE\_MASK\_ALL}}
\index{RASTERIZE\_MASK\_ALL@{RASTERIZE\_MASK\_ALL}!Rasterizer.hpp@{Rasterizer.hpp}}
\doxysubsubsection{\texorpdfstring{RASTERIZE\_MASK\_ALL}{RASTERIZE\_MASK\_ALL}}
{\footnotesize\ttfamily \label{Rasterizer_8hpp_ab09107ed4a026eb459595c131e149351} 
\#define RASTERIZE\+\_\+\+MASK\+\_\+\+ALL~0xf}

\Hypertarget{Rasterizer_8hpp_a1b80db84636afdce7ffd545ef201832c}\index{Rasterizer.hpp@{Rasterizer.hpp}!RASTERIZE\_MASK\_CAPS@{RASTERIZE\_MASK\_CAPS}}
\index{RASTERIZE\_MASK\_CAPS@{RASTERIZE\_MASK\_CAPS}!Rasterizer.hpp@{Rasterizer.hpp}}
\doxysubsubsection{\texorpdfstring{RASTERIZE\_MASK\_CAPS}{RASTERIZE\_MASK\_CAPS}}
{\footnotesize\ttfamily \label{Rasterizer_8hpp_a1b80db84636afdce7ffd545ef201832c} 
\#define RASTERIZE\+\_\+\+MASK\+\_\+\+CAPS~0x4}

\Hypertarget{Rasterizer_8hpp_a7a5f5ea62e18f1ce1884ea5664390eaa}\index{Rasterizer.hpp@{Rasterizer.hpp}!RASTERIZE\_MASK\_CAPS\_AND\_JUNCTIONS@{RASTERIZE\_MASK\_CAPS\_AND\_JUNCTIONS}}
\index{RASTERIZE\_MASK\_CAPS\_AND\_JUNCTIONS@{RASTERIZE\_MASK\_CAPS\_AND\_JUNCTIONS}!Rasterizer.hpp@{Rasterizer.hpp}}
\doxysubsubsection{\texorpdfstring{RASTERIZE\_MASK\_CAPS\_AND\_JUNCTIONS}{RASTERIZE\_MASK\_CAPS\_AND\_JUNCTIONS}}
{\footnotesize\ttfamily \label{Rasterizer_8hpp_a7a5f5ea62e18f1ce1884ea5664390eaa} 
\#define RASTERIZE\+\_\+\+MASK\+\_\+\+CAPS\+\_\+\+AND\+\_\+\+JUNCTIONS~(\mbox{\hyperlink{Rasterizer_8hpp_a1b80db84636afdce7ffd545ef201832c}{RASTERIZE\+\_\+\+MASK\+\_\+\+CAPS}} \texorpdfstring{$\vert$}{|} \mbox{\hyperlink{Rasterizer_8hpp_ab8d5677824cdd9fcf5a0b1b298d44426}{RASTERIZE\+\_\+\+MASK\+\_\+\+JUNCTIONS}})}

\Hypertarget{Rasterizer_8hpp_ab8d5677824cdd9fcf5a0b1b298d44426}\index{Rasterizer.hpp@{Rasterizer.hpp}!RASTERIZE\_MASK\_JUNCTIONS@{RASTERIZE\_MASK\_JUNCTIONS}}
\index{RASTERIZE\_MASK\_JUNCTIONS@{RASTERIZE\_MASK\_JUNCTIONS}!Rasterizer.hpp@{Rasterizer.hpp}}
\doxysubsubsection{\texorpdfstring{RASTERIZE\_MASK\_JUNCTIONS}{RASTERIZE\_MASK\_JUNCTIONS}}
{\footnotesize\ttfamily \label{Rasterizer_8hpp_ab8d5677824cdd9fcf5a0b1b298d44426} 
\#define RASTERIZE\+\_\+\+MASK\+\_\+\+JUNCTIONS~0x8}

\Hypertarget{Rasterizer_8hpp_a4096194abc0362d553c65834418b89ba}\index{Rasterizer.hpp@{Rasterizer.hpp}!RASTERIZE\_MASK\_SEGMENTS@{RASTERIZE\_MASK\_SEGMENTS}}
\index{RASTERIZE\_MASK\_SEGMENTS@{RASTERIZE\_MASK\_SEGMENTS}!Rasterizer.hpp@{Rasterizer.hpp}}
\doxysubsubsection{\texorpdfstring{RASTERIZE\_MASK\_SEGMENTS}{RASTERIZE\_MASK\_SEGMENTS}}
{\footnotesize\ttfamily \label{Rasterizer_8hpp_a4096194abc0362d553c65834418b89ba} 
\#define RASTERIZE\+\_\+\+MASK\+\_\+\+SEGMENTS~0x1}

\Hypertarget{Rasterizer_8hpp_ae62544021ca190d8b28c4383175af333}\index{Rasterizer.hpp@{Rasterizer.hpp}!RASTERIZE\_MASK\_VIAS@{RASTERIZE\_MASK\_VIAS}}
\index{RASTERIZE\_MASK\_VIAS@{RASTERIZE\_MASK\_VIAS}!Rasterizer.hpp@{Rasterizer.hpp}}
\doxysubsubsection{\texorpdfstring{RASTERIZE\_MASK\_VIAS}{RASTERIZE\_MASK\_VIAS}}
{\footnotesize\ttfamily \label{Rasterizer_8hpp_ae62544021ca190d8b28c4383175af333} 
\#define RASTERIZE\+\_\+\+MASK\+\_\+\+VIAS~0x2}

