\section{gear\-:\-:Fixed\-Pad\-Angle\-Disk\-Layout Class Reference}
\label{classgear_1_1FixedPadAngleDiskLayout}\index{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}}


Implementation of \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D} for a disk with fixed angled keystone pads.  




{\ttfamily \#include $<$Fixed\-Pad\-Angle\-Disk\-Layout.\-h$>$}

Inheritance diagram for gear\-:\-:Fixed\-Pad\-Angle\-Disk\-Layout\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classgear_1_1FixedPadAngleDiskLayout}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf Fixed\-Pad\-Angle\-Disk\-Layout} (double r\-Min, double r\-Max, int n\-Row, double phi\-Min, double phi\-Max, int n\-Pads\-In\-Row)\label{classgear_1_1FixedPadAngleDiskLayout_a53958329f4accbf12c8b856d9244202e}

\begin{DoxyCompactList}\small\item\em Construct the \doxyref{Fixed\-Pad\-Angle\-Disk\-Layout}{p.}{classgear_1_1FixedPadAngleDiskLayout} from the given parameters r\-Min, r\-Max, n\-Row, phi\-Min, phi\-Max, and n\-Pads\-In\-Row. \end{DoxyCompactList}\item 
{\bf Fixed\-Pad\-Angle\-Disk\-Layout} (const {\bf Fixed\-Pad\-Angle\-Disk\-Layout} \&)
\begin{DoxyCompactList}\small\item\em The copy constructor. \end{DoxyCompactList}\item 
{\bf Fixed\-Pad\-Angle\-Disk\-Layout} \& {\bf operator=} (const {\bf Fixed\-Pad\-Angle\-Disk\-Layout} \&)\label{classgear_1_1FixedPadAngleDiskLayout_aa34a2489c5b109bf970e7bb6dbd1bc06}

\begin{DoxyCompactList}\small\item\em The assignment operator. \end{DoxyCompactList}\item 
virtual {\bf $\sim$\-Fixed\-Pad\-Angle\-Disk\-Layout} ()\label{classgear_1_1FixedPadAngleDiskLayout_a08bc6b44e32b4692064de99e6bfcf75b}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
{\bf Pad\-Row\-Layout2\-D} $\ast$ {\bf clone} () const 
\begin{DoxyCompactList}\small\item\em Returns a copy (clone) of this class. \end{DoxyCompactList}\item 
virtual double {\bf get\-Pad\-Gap} () const 
\begin{DoxyCompactList}\small\item\em The gap width in mm that was given in the C'tor. \end{DoxyCompactList}\item 
virtual double {\bf get\-Fixed\-Pad\-Angle} () const \label{classgear_1_1FixedPadAngleDiskLayout_a05a0a4a1a922014a3ba494d364157687}

\begin{DoxyCompactList}\small\item\em The fixed width of the pads in mm. \end{DoxyCompactList}\item 
virtual int {\bf get\-Pad\-Layout\-Impl\-Type} () const \label{classgear_1_1FixedPadAngleDiskLayout_a81bcbeb861af0519cc547e7273947eb0}

\begin{DoxyCompactList}\small\item\em The type of the row layout implementation\-: Pad\-Row\-Layout2\-D.\-F\-I\-X\-E\-D\-P\-A\-D\-A\-N\-G\-L\-E\-D\-I\-S\-K\-L\-A\-Y\-O\-U\-T. \end{DoxyCompactList}\item 
virtual int {\bf get\-N\-Pads} () const \label{classgear_1_1FixedPadAngleDiskLayout_ad31e12d1e8850a8566d1b3e40717b69f}

\begin{DoxyCompactList}\small\item\em The total number of pads in the T\-P\-C. \end{DoxyCompactList}\item 
virtual int {\bf get\-N\-Rows} () const \label{classgear_1_1FixedPadAngleDiskLayout_a2762c6680ad207246138ca0d6cf2c53f}

\begin{DoxyCompactList}\small\item\em The number of rows. \end{DoxyCompactList}\item 
virtual double {\bf get\-Row\-Height} (int row\-Number) const \label{classgear_1_1FixedPadAngleDiskLayout_aac93ca9a8f2e35e7b570af74dbfaf146}

\begin{DoxyCompactList}\small\item\em The row height in mm. \end{DoxyCompactList}\item 
virtual double {\bf get\-Pad\-Height} (int pad\-Index) const \label{classgear_1_1FixedPadAngleDiskLayout_a2bbc04041cc85e7a189e8ab5d014d937}

\begin{DoxyCompactList}\small\item\em The height of the pad in mm. \end{DoxyCompactList}\item 
virtual double {\bf get\-Pad\-Width} (int pad\-Index) const \label{classgear_1_1FixedPadAngleDiskLayout_af36b507638e94f37bca3f676f5bd59dc}

\begin{DoxyCompactList}\small\item\em The width of the pad in radians! (In this implementation there is no gap, identical to the pad pitch) \end{DoxyCompactList}\item 
virtual double {\bf get\-Pad\-Pitch} (int pad\-Index) const \label{classgear_1_1FixedPadAngleDiskLayout_a8e6777a612007db973a02027d228f401}

\begin{DoxyCompactList}\small\item\em The pitch of the pad in radians! (In this implementation there is no gap, identical to the pad width) \end{DoxyCompactList}\item 
virtual {\bf Vector2\-D} {\bf get\-Pad\-Center} (int pad\-Index) const \label{classgear_1_1FixedPadAngleDiskLayout_aeec5bdc871bd61e4d2552ff9229e3983}

\begin{DoxyCompactList}\small\item\em The center of the pad in 2d coordinates (r,phi). \end{DoxyCompactList}\item 
virtual int {\bf get\-N\-Pads\-In\-Row} () const 
\begin{DoxyCompactList}\small\item\em Get the (fixed) number of pads per row. \end{DoxyCompactList}\item 
virtual const std\-::vector$<$ int $>$ \& {\bf get\-Pads\-In\-Row} (int row\-Number) const \label{classgear_1_1FixedPadAngleDiskLayout_a8a13bbd4a7f002e724657511d6015be0}

\begin{DoxyCompactList}\small\item\em Indices of all pads in row row\-Number (row indices start at r\-Min). \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf get\-Plane\-Extent} () const \label{classgear_1_1FixedPadAngleDiskLayout_a6a16d4d04358b0bcaa13caa2e21a90a5}

\begin{DoxyCompactList}\small\item\em Extent of the sensitive plane [rmin,rmax,phimin,phimax]. \end{DoxyCompactList}\item 
virtual int {\bf get\-Pad\-Index} (int row\-Num, int pad\-Num) const \label{classgear_1_1FixedPadAngleDiskLayout_a39da1ad3852ce56c3f3e4e7f95dd917d}

\begin{DoxyCompactList}\small\item\em Create a pad\-Index for the given row and pad ( column ) number. \end{DoxyCompactList}\item 
virtual int {\bf get\-Nearest\-Pad} (double c0, double c1) const \label{classgear_1_1FixedPadAngleDiskLayout_ac6200650cb8b6657b02a367c3a129518}

\begin{DoxyCompactList}\small\item\em The index of the pad nearest to the given point in 2d coordinates (r, phi). \end{DoxyCompactList}\item 
virtual int {\bf get\-Right\-Neighbour} (int pad\-Index) const \label{classgear_1_1FixedPadAngleDiskLayout_ae4d819b00482cc494f1e4d0f9aeda18c}

\begin{DoxyCompactList}\small\item\em The index of the right neighbour pad. \end{DoxyCompactList}\item 
virtual int {\bf get\-Left\-Neighbour} (int pad\-Index) const \label{classgear_1_1FixedPadAngleDiskLayout_a7204d7f98412825ae59f4e2e0547583a}

\begin{DoxyCompactList}\small\item\em The index of the left neighbour pad. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Inside\-Pad} (double c0, double c1, int pad\-Index) const \label{classgear_1_1FixedPadAngleDiskLayout_a287f6fb421b948f27a70b133f2cbd6af}

\begin{DoxyCompactList}\small\item\em True if coordinate (c0,c1) is within the given pad. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Inside\-Pad} (double c0, double c1) const \label{classgear_1_1FixedPadAngleDiskLayout_a4dde889c235907c316c31e9b2f676ab1}

\begin{DoxyCompactList}\small\item\em True if coordinate (c0,c1) is within any pad. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void {\bf copy\-\_\-and\-\_\-assign} (const {\bf Fixed\-Pad\-Angle\-Disk\-Layout} \&)
\begin{DoxyCompactList}\small\item\em Function to copy all internal variables, incl. the objects pointed to and owned by the \doxyref{Fixed\-Pad\-Angle\-Disk\-Layout}{p.}{classgear_1_1FixedPadAngleDiskLayout}. \end{DoxyCompactList}\item 
void {\bf cleanup} ()
\begin{DoxyCompactList}\small\item\em Function to delete all the objects pointed to and owned by the \doxyref{Fixed\-Pad\-Angle\-Disk\-Layout}{p.}{classgear_1_1FixedPadAngleDiskLayout}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
double {\bfseries \-\_\-r\-Min}\label{classgear_1_1FixedPadAngleDiskLayout_a38f71bddfff1f2f6650790f7e231de6b}

\item 
double {\bfseries \-\_\-r\-Max}\label{classgear_1_1FixedPadAngleDiskLayout_a5de042cbf019434fd3bc9908717e84eb}

\item 
int {\bfseries \-\_\-n\-Row}\label{classgear_1_1FixedPadAngleDiskLayout_a1e8ee0068c7da3705db63e81b35c96c7}

\item 
double {\bfseries \-\_\-row\-Height}\label{classgear_1_1FixedPadAngleDiskLayout_a66fd3429b7414ef73aa5ab2ea40d554b}

\item 
double {\bfseries \-\_\-phi\-Min}\label{classgear_1_1FixedPadAngleDiskLayout_ab25923f2c808b2b2e1dab9b618d94a27}

\item 
double {\bfseries \-\_\-phi\-Max}\label{classgear_1_1FixedPadAngleDiskLayout_ad192853311e4f1ff20a44810e4b77f0d}

\item 
double {\bfseries \-\_\-pad\-Angle}\label{classgear_1_1FixedPadAngleDiskLayout_a8f8cf3dbf4b77d28fa9f12621253724e}

\item 
int {\bfseries \-\_\-n\-Pads\-In\-Row}\label{classgear_1_1FixedPadAngleDiskLayout_a0055268c13d7d6290b72022b44694efb}

\item 
int {\bfseries \-\_\-n\-Pad}\label{classgear_1_1FixedPadAngleDiskLayout_af1fb5ccb2320d42b9913015687d57ad8}

\item 
std\-::vector$<$ double $>$ {\bfseries \-\_\-extent}\label{classgear_1_1FixedPadAngleDiskLayout_a2ae0373ad9dbb9676b7fadd03045c3ed}

\item 
std\-::vector$<$ std\-::vector$<$ int $>$ $\ast$ $>$ {\bfseries \-\_\-pad\-Indices}\label{classgear_1_1FixedPadAngleDiskLayout_ad58808c2c67e06c5999536d6c13e0bce}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Implementation of \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D} for a disk with fixed angled keystone pads. 

The number of pads is distrubuted on a wedge shaped segment starting with the right edge of the first pad in the row at phi\-Min to the left edge of the last pad in the row at phi\-Max. All rows have the same height, starting at rmin for the lower edge of the first row to rmax for the upper edge of the last row. The row height is calculated from the number of pads.

Row height and pad height are identical, and pad gap is 0 (the only thing that matters is the effective pitch).

\begin{DoxyAuthor}{Author}
M. Killenberg, University of Bonn 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}

\end{DoxyVersion}
\begin{DoxyParagraph}{Id\-:}
\doxyref{Fixed\-Pad\-Angle\-Disk\-Layout.\-h}{p.}{FixedPadAngleDiskLayout_8h_source} 380 2011-\/08-\/26 12\-:24\-:46\-Z gaede 
\end{DoxyParagraph}


Definition at line 24 of file Fixed\-Pad\-Angle\-Disk\-Layout.\-h.



\subsection{Constructor \& Destructor Documentation}
\index{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}!Fixed\-Pad\-Angle\-Disk\-Layout@{Fixed\-Pad\-Angle\-Disk\-Layout}}
\index{Fixed\-Pad\-Angle\-Disk\-Layout@{Fixed\-Pad\-Angle\-Disk\-Layout}!gear::FixedPadAngleDiskLayout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}}
\subsubsection[{Fixed\-Pad\-Angle\-Disk\-Layout}]{\setlength{\rightskip}{0pt plus 5cm}gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout\-::\-Fixed\-Pad\-Angle\-Disk\-Layout (
\begin{DoxyParamCaption}
\item[{const {\bf Fixed\-Pad\-Angle\-Disk\-Layout} \&}]{right}
\end{DoxyParamCaption}
)}\label{classgear_1_1FixedPadAngleDiskLayout_a7bf4a25ef1ec1cabdcd26840f3a8d8d9}


The copy constructor. 

Needed because \-\_\-pad\-Indices allocates memory dynamically 

Definition at line 110 of file Fixed\-Pad\-Angle\-Disk\-Layout.\-cc.



References copy\-\_\-and\-\_\-assign().



\subsection{Member Function Documentation}
\index{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}!cleanup@{cleanup}}
\index{cleanup@{cleanup}!gear::FixedPadAngleDiskLayout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}}
\subsubsection[{cleanup}]{\setlength{\rightskip}{0pt plus 5cm}void gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout\-::cleanup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}\label{classgear_1_1FixedPadAngleDiskLayout_a6f692527760ae5630b4dc002777c1702}


Function to delete all the objects pointed to and owned by the \doxyref{Fixed\-Pad\-Angle\-Disk\-Layout}{p.}{classgear_1_1FixedPadAngleDiskLayout}. 

Used by destructor and assignment operator to avoid code duplication. 

Definition at line 21 of file Fixed\-Pad\-Angle\-Disk\-Layout.\-cc.



Referenced by operator=(), and $\sim$\-Fixed\-Pad\-Angle\-Disk\-Layout().

\index{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}!clone@{clone}}
\index{clone@{clone}!gear::FixedPadAngleDiskLayout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}}
\subsubsection[{clone}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Pad\-Row\-Layout2\-D} $\ast$ gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout\-::clone (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classgear_1_1FixedPadAngleDiskLayout_a9e3f35ad618ffe04b89ceeb22a4213fc}


Returns a copy (clone) of this class. 

As \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D} is an abstract interface with several implementation, this is used get a copy of the actual implementation without having to know what the actual implementation is. 

Implements {\bf gear\-::\-Pad\-Row\-Layout2\-D} \doxyref{}{p.}{classgear_1_1PadRowLayout2D_acf245931002c3e22a86b2d1d64cb4c43}.



Definition at line 16 of file Fixed\-Pad\-Angle\-Disk\-Layout.\-cc.



References Fixed\-Pad\-Angle\-Disk\-Layout().

\index{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}!copy\-\_\-and\-\_\-assign@{copy\-\_\-and\-\_\-assign}}
\index{copy\-\_\-and\-\_\-assign@{copy\-\_\-and\-\_\-assign}!gear::FixedPadAngleDiskLayout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}}
\subsubsection[{copy\-\_\-and\-\_\-assign}]{\setlength{\rightskip}{0pt plus 5cm}void gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout\-::copy\-\_\-and\-\_\-assign (
\begin{DoxyParamCaption}
\item[{const {\bf Fixed\-Pad\-Angle\-Disk\-Layout} \&}]{right}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}\label{classgear_1_1FixedPadAngleDiskLayout_a66edef75a39c2fc99806169093d844a8}


Function to copy all internal variables, incl. the objects pointed to and owned by the \doxyref{Fixed\-Pad\-Angle\-Disk\-Layout}{p.}{classgear_1_1FixedPadAngleDiskLayout}. 

Used by constructor and assignment operator to avoid code duplication. 

Definition at line 122 of file Fixed\-Pad\-Angle\-Disk\-Layout.\-cc.



Referenced by Fixed\-Pad\-Angle\-Disk\-Layout(), and operator=().

\index{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}!get\-N\-Pads\-In\-Row@{get\-N\-Pads\-In\-Row}}
\index{get\-N\-Pads\-In\-Row@{get\-N\-Pads\-In\-Row}!gear::FixedPadAngleDiskLayout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}}
\subsubsection[{get\-N\-Pads\-In\-Row}]{\setlength{\rightskip}{0pt plus 5cm}virtual int gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout\-::get\-N\-Pads\-In\-Row (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}\label{classgear_1_1FixedPadAngleDiskLayout_a2b3c71d8e39bb85265f522bad9c6cd59}


Get the (fixed) number of pads per row. 

Just returns the value set in the constructor. 

Definition at line 145 of file Fixed\-Pad\-Angle\-Disk\-Layout.\-h.



Referenced by gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout\-X\-M\-L\-::to\-X\-M\-L().

\index{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}!get\-Pad\-Gap@{get\-Pad\-Gap}}
\index{get\-Pad\-Gap@{get\-Pad\-Gap}!gear::FixedPadAngleDiskLayout@{gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout}}
\subsubsection[{get\-Pad\-Gap}]{\setlength{\rightskip}{0pt plus 5cm}virtual double gear\-::\-Fixed\-Pad\-Angle\-Disk\-Layout\-::get\-Pad\-Gap (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}\label{classgear_1_1FixedPadAngleDiskLayout_a713a1f94a0cefd6a8c1bd8a805df7543}


The gap width in mm that was given in the C'tor. 

Always 0 in this implementation. 

Definition at line 87 of file Fixed\-Pad\-Angle\-Disk\-Layout.\-h.



The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Fixed\-Pad\-Angle\-Disk\-Layout.\-h\item 
Fixed\-Pad\-Angle\-Disk\-Layout.\-cc\end{DoxyCompactItemize}
