\section{gear\-:\-:T\-P\-C\-Module Class Reference}
\label{classgear_1_1TPCModule}\index{gear\-::\-T\-P\-C\-Module@{gear\-::\-T\-P\-C\-Module}}


A wrapper Class for \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D} which converts between the actual pad layouts local coodinate system and the T\-P\-Cs global coordinate systems.  




{\ttfamily \#include $<$T\-P\-C\-Module.\-h$>$}

Inheritance diagram for gear\-:\-:T\-P\-C\-Module\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classgear_1_1TPCModule}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class {\bf No\-Z\-Position\-Exception}
\begin{DoxyCompactList}\small\item\em An exception that is special for the \doxyref{T\-P\-C\-Module}{p.}{classgear_1_1TPCModule}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual {\bf $\sim$\-T\-P\-C\-Module} ()\label{classgear_1_1TPCModule_ac1fd310180bd6d9636401f6caf66e008}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
virtual int {\bf get\-Pad\-Layout\-Type} () const =0\label{classgear_1_1TPCModule_a115e1ba6cacd753fdc9843c026dc8136}

\begin{DoxyCompactList}\small\item\em The type of the row layout\-: Pad\-Row\-Layout2\-D.\-C\-A\-R\-T\-E\-S\-I\-A\-N or Pad\-Row\-Layout2\-D.\-P\-O\-L\-A\-R. \end{DoxyCompactList}\item 
virtual int {\bf get\-Pad\-Shape} () const =0\label{classgear_1_1TPCModule_a397315c543081f5ff3af271ad10cc9f0}

\begin{DoxyCompactList}\small\item\em The shape of the pads, one of Pad\-Row\-Layout2\-D.\-R\-E\-C\-T\-A\-N\-G\-L\-E (Keystone) , Pad\-Row\-Layout2\-D.\-D\-I\-A\-M\-O\-N\-D, Pad\-Row\-Layout2\-D.\-H\-E\-X\-A\-G\-O\-N, Pad\-Row\-Layout2\-D.\-C\-H\-E\-V\-R\-O\-N. \end{DoxyCompactList}\item 
virtual int {\bf get\-N\-Pads} () const =0\label{classgear_1_1TPCModule_a415687e173dfdf9305402fcad612c89d}

\begin{DoxyCompactList}\small\item\em The total number of pads on this module. \end{DoxyCompactList}\item 
virtual int {\bf get\-N\-Rows} () const =0\label{classgear_1_1TPCModule_a217a9a31ddbb1b030d82818730e2e3c8}

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

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

\begin{DoxyCompactList}\small\item\em The width of the pad at pad\-Index in mm (C\-A\-R\-T\-E\-S\-I\-A\-N) or radians (P\-O\-L\-A\-R). \end{DoxyCompactList}\item 
virtual {\bf Vector2\-D} {\bf get\-Pad\-Center} (int pad\-Index) const =0\label{classgear_1_1TPCModule_a3f02926795679452eb3dc0eef739e2c4}

\begin{DoxyCompactList}\small\item\em The center of the pad in global 2\-D coordinates, (x,y) or (r,phi). \end{DoxyCompactList}\item 
virtual double {\bf get\-Pad\-Height} (int pad\-Index) const =0\label{classgear_1_1TPCModule_a6f9c3586b92ccc47aee50916e95817fd}

\begin{DoxyCompactList}\small\item\em The height of the pad in mm. \end{DoxyCompactList}\item 
virtual const std\-::vector$<$ int $>$ \& {\bf get\-Pads\-In\-Row} (int row\-Number) const =0\label{classgear_1_1TPCModule_a790063bcc39a9e68e4f13cbdb094a518}

\begin{DoxyCompactList}\small\item\em Indices of all pads in row {\ttfamily row\-Number} (row indices start from 0 at the bottom (C\-A\-R\-T\-E\-S\-I\-A\-N) or at the center (P\-O\-L\-A\-R)). \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf get\-Plane\-Extent} () const =0  throw (\-Exception, std\-::exception )
\begin{DoxyCompactList}\small\item\em Inherited from \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D}. \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf get\-Module\-Extent} () const =0
\begin{DoxyCompactList}\small\item\em Maximal extent of the sensitive plane, defined relative to global origin -\/ [xmin,xmax,ymin,ymax] C\-A\-R\-T\-E\-S\-I\-A\-N or [rmin,rmax,phimin,phimax] P\-O\-L\-A\-R, may contain dead space due to conversion from local to global coordinate system. \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf get\-Local\-Module\-Extent} () const =0
\begin{DoxyCompactList}\small\item\em The module extent in local coordinates. \end{DoxyCompactList}\item 
virtual int {\bf get\-Row\-Number} (int pad\-Index) const =0\label{classgear_1_1TPCModule_a769f5f274d0109924c0f3cc683f39f66}

\begin{DoxyCompactList}\small\item\em The number of the row within this module that contains the pad at pad\-Index -\/ numbering starts at lowest r/y. \end{DoxyCompactList}\item 
virtual int {\bf get\-Pad\-Number} (int pad\-Index) const =0\label{classgear_1_1TPCModule_ad3926dab42faca994e835c852e5ea365}

\begin{DoxyCompactList}\small\item\em The pad number (column) within the row -\/ numbering starts at lowest phi/x. \end{DoxyCompactList}\item 
virtual int {\bf get\-Pad\-Index} (int row\-Num, int pad\-Num) const =0\label{classgear_1_1TPCModule_a699ec06e519e20d90e514812168c40c7}

\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 =0\label{classgear_1_1TPCModule_a6e81adbeb0f8de704586a2209fdb52de}

\begin{DoxyCompactList}\small\item\em The index of the pad nearest to the given point in global 2\-D coordinates, (x,y,) or (r,phi). \end{DoxyCompactList}\item 
virtual int {\bf get\-Right\-Neighbour} (int pad\-Index) const =0\label{classgear_1_1TPCModule_a84c30056d78e20b39a4e02c4043a862a}

\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 =0\label{classgear_1_1TPCModule_ab37f1e9785b64af23ba0058394620fea}

\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 =0\label{classgear_1_1TPCModule_ad2710da853ce21909c3b20b22f2521d7}

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

\begin{DoxyCompactList}\small\item\em True if global coordinate (c0,c1) is within any pad. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Inside\-Module} (double c0, double c1) const =0
\begin{DoxyCompactList}\small\item\em True if global coordinate (c0,c1) is within this modules area of amplification/interest. \end{DoxyCompactList}\item 
virtual double {\bf get\-Readout\-Frequency} () const =0\label{classgear_1_1TPCModule_a7cacc2cb4be7b0db9740a87a4e3cfe59}

\begin{DoxyCompactList}\small\item\em The readout frequency in Hz. \end{DoxyCompactList}\item 
virtual const {\bf Vector2\-D} \& {\bf get\-Offset} () const =0\label{classgear_1_1TPCModule_a0198f378cc20b104662a2097b0c8e12c}

\begin{DoxyCompactList}\small\item\em Returns the offest of Modules origin from the global origin A vector from Global (0,0) to module (0,0) \end{DoxyCompactList}\item 
virtual double {\bf get\-Z\-Position} () const =0  throw (\-T\-P\-C\-Module\-::\-No\-Z\-Position\-Exception)
\begin{DoxyCompactList}\small\item\em Returns the z position of the module. \end{DoxyCompactList}\item 
virtual double {\bf get\-Angle} () const =0\label{classgear_1_1TPCModule_a9609649b33236e891c2c4eaa5f6658e6}

\begin{DoxyCompactList}\small\item\em Returns the rotation of the module, in Rads, with respect to the modules internal origin. \end{DoxyCompactList}\item 
virtual double {\bf get\-Distance\-To\-Pad} (double c0, double c1, int index) const =0\label{classgear_1_1TPCModule_a4a8b9ddcbf37046a289c090d94141c47}

\begin{DoxyCompactList}\small\item\em Returns the distance from a global coodinate (c0,c1), to a given pad's nearest boundery; (c0,c1,index) \end{DoxyCompactList}\item 
virtual double {\bf get\-Distance\-To\-Module} (double c0, double c1) const =0\label{classgear_1_1TPCModule_aa6ab4875bde33bbcf1508da16dd68616}

\begin{DoxyCompactList}\small\item\em Returns distastance from a global coodinate (c0,c1), to the module's nearest boundery; (c0,c1) \end{DoxyCompactList}\item 
virtual int {\bf get\-Module\-I\-D} () const =0\label{classgear_1_1TPCModule_a90a7385d74607bd460b3f95d8b4cbd03}

\begin{DoxyCompactList}\small\item\em Returns module I\-D. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Overlapping} ({\bf T\-P\-C\-Module} $\ast$test\-This\-Module) const =0\label{classgear_1_1TPCModule_ad446d595dca80329bfcf4cc02f772938}

\begin{DoxyCompactList}\small\item\em Returns True if this and The given module $\ast$ overlap pad regions Note\-: overlaping sensitive regions is ok, Just no two pads with shared physical space. \end{DoxyCompactList}\item 
virtual double {\bf get\-Border\-Width} () const =0
\begin{DoxyCompactList}\small\item\em Returns the amount by which the pad plane has been extended to produce the module plane. \end{DoxyCompactList}\item 
virtual int {\bf get\-T\-P\-C\-Coordinate\-Type} () const =0
\begin{DoxyCompactList}\small\item\em Returns the T\-P\-Cs coordinate type. \end{DoxyCompactList}\item 
virtual const {\bf Pad\-Row\-Layout2\-D} \& {\bf get\-Local\-Pad\-Layout} () const =0
\begin{DoxyCompactList}\small\item\em Returns a reference to the instance of the underlaying pad layout. \end{DoxyCompactList}\item 
virtual {\bf Vector2\-D} {\bf global\-To\-Local} (double c0, double c1) const =0
\begin{DoxyCompactList}\small\item\em Returns the local coordinates for a point in global coordinates. \end{DoxyCompactList}\item 
virtual {\bf Vector2\-D} {\bf local\-To\-Global} (double c0, double c1) const =0
\begin{DoxyCompactList}\small\item\em Returns the global coordinates for a point in local coordinates. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
A wrapper Class for \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D} which converts between the actual pad layouts local coodinate system and the T\-P\-Cs global coordinate systems. 

Adds some module appropriate functionality.

The local pad layout, which is contained in the module, can have an offset and be rotated with respect to the global coordinate system, and it can have a different coodinate type.

The global coordinate type of the T\-P\-C can be chosen by the user (usually cartesian is the right choise. Global polar coordinates only make sense if there is no offset and the local coordinate systems are also polar). The local coordinate type is determinded by the local pad geometry (type of the pad layout).

For a visualisation of the module specific parameters please refer to the documentation of the X\-M\-L syntax in \doxyref{T\-P\-C\-Module\-X\-M\-L}{p.}{classgear_1_1TPCModuleXML}.

New in v00-\/15\-: The z position of the module can be set to distinguish the two end plates. \begin{DoxyAttention}{Attention}
For the \char`\"{}negative\char`\"{} half T\-P\-C (the half with drift direction in negative z direction) the x coodinate of global system is mirrored. The reason is that in case of two identical end plates, the one mounted on the negative side is rotated by 180 degrees around the y axis, which changes the z coordinate (drift direction) and the x coordinate. The prototype case, which is described by z\-Position = 0, also has the drift direction in negative z direction.
\end{DoxyAttention}
original author F. Gaede, D\-E\-S\-Y \begin{DoxyAuthor}{Author}
M. Killenberg, (Bonn) S. Turnbull, (Saclay/\-Carleton) 
\end{DoxyAuthor}


Definition at line 41 of file T\-P\-C\-Module.\-h.



\subsection{Member Function Documentation}
\index{gear\-::\-T\-P\-C\-Module@{gear\-::\-T\-P\-C\-Module}!get\-Border\-Width@{get\-Border\-Width}}
\index{get\-Border\-Width@{get\-Border\-Width}!gear::TPCModule@{gear\-::\-T\-P\-C\-Module}}
\subsubsection[{get\-Border\-Width}]{\setlength{\rightskip}{0pt plus 5cm}virtual double gear\-::\-T\-P\-C\-Module\-::get\-Border\-Width (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCModule_a1925357556737a3cd3d31764d5234f1e}


Returns the amount by which the pad plane has been extended to produce the module plane. 

In cartesian coordinates the plane is extended in x and y by this ammount on all sides.

In polar coordinates the r-\/coordinate is extended by the borderwidth, in $\varphi$ it is extended by an angle corresponding to {\ttfamily border\-Width/r\-Min}, so that the border is at least boder\-Width at the inner radius and somewhat wider for larger r. 

Implemented in {\bf gear\-::\-T\-P\-C\-Module\-Impl} \doxyref{}{p.}{classgear_1_1TPCModuleImpl_ad3e20cb489e1525276758b64c786eee4}.



Referenced by gear\-::\-T\-P\-C\-Module\-X\-M\-L\-::to\-X\-M\-L().

\index{gear\-::\-T\-P\-C\-Module@{gear\-::\-T\-P\-C\-Module}!get\-Local\-Module\-Extent@{get\-Local\-Module\-Extent}}
\index{get\-Local\-Module\-Extent@{get\-Local\-Module\-Extent}!gear::TPCModule@{gear\-::\-T\-P\-C\-Module}}
\subsubsection[{get\-Local\-Module\-Extent}]{\setlength{\rightskip}{0pt plus 5cm}virtual const std\-::vector$<$double$>$\& gear\-::\-T\-P\-C\-Module\-::get\-Local\-Module\-Extent (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCModule_aa04a3b5994d79a2b06d03718dfc9eeb0}


The module extent in local coordinates. 

This is the (local) pad plane, enlarged by the border. As the plane extent in global coordinates does not correspond to the actual shape, this is the only way to describe the module extent without dead space (everything in the module extent is considerred active, for instance due to a resistive coating which causes signals even if there is no pad at the specific position). \begin{DoxyAttention}{Attention}
Returns L\-O\-C\-A\-L coordinates! 
\end{DoxyAttention}


Implemented in {\bf gear\-::\-T\-P\-C\-Module\-Impl} \doxyref{}{p.}{classgear_1_1TPCModuleImpl_aea3359b39fa355a475718bd387ec7da4}.

\index{gear\-::\-T\-P\-C\-Module@{gear\-::\-T\-P\-C\-Module}!get\-Local\-Pad\-Layout@{get\-Local\-Pad\-Layout}}
\index{get\-Local\-Pad\-Layout@{get\-Local\-Pad\-Layout}!gear::TPCModule@{gear\-::\-T\-P\-C\-Module}}
\subsubsection[{get\-Local\-Pad\-Layout}]{\setlength{\rightskip}{0pt plus 5cm}virtual const {\bf Pad\-Row\-Layout2\-D}\& gear\-::\-T\-P\-C\-Module\-::get\-Local\-Pad\-Layout (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCModule_ad303950c816efb8f9d7c3e5d2961324e}


Returns a reference to the instance of the underlaying pad layout. 

\begin{DoxyAttention}{Attention}
This pad layout has it's own, local coordinate system! Usually it is not necessary to deal with the pad layout directly. It is preferred to use the modules memberfunctions, since the module is an implementation of \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D} which is implemented such that all coordinates are delivered in global coordinates. However there are cases it can be handy to have the local coordinates available, for instance for debugging or to perform the coordinate transformations on the graphics processor for an event display. 
\end{DoxyAttention}


Implemented in {\bf gear\-::\-T\-P\-C\-Module\-Impl} \doxyref{}{p.}{classgear_1_1TPCModuleImpl_a374f320a4aa59d715623f0ee4155edbe}.



Referenced by gear\-::\-T\-P\-C\-Module\-X\-M\-L\-::to\-X\-M\-L().

\index{gear\-::\-T\-P\-C\-Module@{gear\-::\-T\-P\-C\-Module}!get\-Module\-Extent@{get\-Module\-Extent}}
\index{get\-Module\-Extent@{get\-Module\-Extent}!gear::TPCModule@{gear\-::\-T\-P\-C\-Module}}
\subsubsection[{get\-Module\-Extent}]{\setlength{\rightskip}{0pt plus 5cm}virtual const std\-::vector$<$double$>$\& gear\-::\-T\-P\-C\-Module\-::get\-Module\-Extent (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCModule_a6a8d2a14d6267baa03f81122951d0d77}


Maximal extent of the sensitive plane, defined relative to global origin -\/ [xmin,xmax,ymin,ymax] C\-A\-R\-T\-E\-S\-I\-A\-N or [rmin,rmax,phimin,phimax] P\-O\-L\-A\-R, may contain dead space due to conversion from local to global coordinate system. 

The sensitive plane / amplification plane is the pad plane extended by a border (see \doxyref{get\-Border\-Width()}{p.}{classgear_1_1TPCModule_a1925357556737a3cd3d31764d5234f1e}). This allows the gas amplification structure to be larger than the pad plane, which in the case of a resistive coating will also produce signal on the pad plane for electrons arriving within this border.

Note\-: Amplification planes may overlap, pad planes may not. 

Implemented in {\bf gear\-::\-T\-P\-C\-Module\-Impl} \doxyref{}{p.}{classgear_1_1TPCModuleImpl_a3760ac00187fcf086ffef6e66c3b88e4}.



Referenced by gear\-::\-T\-P\-C\-Parameters\-Impl\-::add\-Module().

\index{gear\-::\-T\-P\-C\-Module@{gear\-::\-T\-P\-C\-Module}!get\-Plane\-Extent@{get\-Plane\-Extent}}
\index{get\-Plane\-Extent@{get\-Plane\-Extent}!gear::TPCModule@{gear\-::\-T\-P\-C\-Module}}
\subsubsection[{get\-Plane\-Extent}]{\setlength{\rightskip}{0pt plus 5cm}virtual const std\-::vector$<$double$>$\& gear\-::\-T\-P\-C\-Module\-::get\-Plane\-Extent (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const throw  {\bf Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCModule_a4b6ad9de8281c0acd67692b54cd4cd4a}


Inherited from \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D}. 

It gives the minimal set of global coodinates that contains the pad plane. In general this does not mean that the global plane extent if fully covered with avtive area, but only that there is no active area outside the plane extent. 

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



Implemented in {\bf gear\-::\-T\-P\-C\-Module\-Impl} \doxyref{}{p.}{classgear_1_1TPCModuleImpl_a22257a5dc661a85f49f6cf4af34ec752}.

\index{gear\-::\-T\-P\-C\-Module@{gear\-::\-T\-P\-C\-Module}!get\-T\-P\-C\-Coordinate\-Type@{get\-T\-P\-C\-Coordinate\-Type}}
\index{get\-T\-P\-C\-Coordinate\-Type@{get\-T\-P\-C\-Coordinate\-Type}!gear::TPCModule@{gear\-::\-T\-P\-C\-Module}}
\subsubsection[{get\-T\-P\-C\-Coordinate\-Type}]{\setlength{\rightskip}{0pt plus 5cm}virtual int gear\-::\-T\-P\-C\-Module\-::get\-T\-P\-C\-Coordinate\-Type (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCModule_af6d94a3ec26784495aaf80b30ebd4861}


Returns the T\-P\-Cs coordinate type. 

Note that this is N\-O\-T the coordinate type of the (local) pad plane on the module but of the end plate this module is mounted in. 

Implemented in {\bf gear\-::\-T\-P\-C\-Module\-Impl} \doxyref{}{p.}{classgear_1_1TPCModuleImpl_aeb1c69d33a7f892ae9878208557fb95a}.



Referenced by gear\-::\-T\-P\-C\-Parameters\-Impl\-::add\-Module().

\index{gear\-::\-T\-P\-C\-Module@{gear\-::\-T\-P\-C\-Module}!get\-Z\-Position@{get\-Z\-Position}}
\index{get\-Z\-Position@{get\-Z\-Position}!gear::TPCModule@{gear\-::\-T\-P\-C\-Module}}
\subsubsection[{get\-Z\-Position}]{\setlength{\rightskip}{0pt plus 5cm}virtual double gear\-::\-T\-P\-C\-Module\-::get\-Z\-Position (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const throw  {\bf T\-P\-C\-Module\-::\-No\-Z\-Position\-Exception}) \hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCModule_ab457f9c80ed7459c611549200bd0baa3}


Returns the z position of the module. 

This is the position of the anode surface terminating the drift volume. For prototypes this will typically be 0 so z is propotional to the drift distance. For a full detector positive and negative values correspond to modules on the first and second end cap, resepctively. It throws a \doxyref{gear\-::\-T\-P\-C\-Module\-::\-No\-Z\-Position\-Exception}{p.}{classgear_1_1TPCModule_1_1NoZPositionException} in case set\-Z\-Position has not been called before. 

Implemented in {\bf gear\-::\-T\-P\-C\-Module\-Impl} \doxyref{}{p.}{classgear_1_1TPCModuleImpl_a416867a3e1627346800ee640c42ab2cf}.



Referenced by gear\-::\-T\-P\-C\-Parameters\-Impl\-::add\-Module(), and gear\-::\-T\-P\-C\-Module\-X\-M\-L\-::to\-X\-M\-L().

\index{gear\-::\-T\-P\-C\-Module@{gear\-::\-T\-P\-C\-Module}!global\-To\-Local@{global\-To\-Local}}
\index{global\-To\-Local@{global\-To\-Local}!gear::TPCModule@{gear\-::\-T\-P\-C\-Module}}
\subsubsection[{global\-To\-Local}]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf Vector2\-D} gear\-::\-T\-P\-C\-Module\-::global\-To\-Local (
\begin{DoxyParamCaption}
\item[{double}]{c0, }
\item[{double}]{c1}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCModule_a127cdcaec185421761c15d2703437897}


Returns the local coordinates for a point in global coordinates. 

It performs a complete coordinate transformation, applying the translation, rotation and coordinate conversion to the coordinate type of the local pad layout. Use \doxyref{get\-Local\-Pad\-Layout()}{p.}{classgear_1_1TPCModule_ad303950c816efb8f9d7c3e5d2961324e}-\/$>$\doxyref{get\-Coordinate\-Type()}{p.}{classgear_1_1PadRowLayout2D_a69e6ddeb62d37250d51a462e1ad13ebb} to interpret the return value correctly.

Usally you don't need this function since all member functions of the module use global coordinates only. 

Implemented in {\bf gear\-::\-T\-P\-C\-Module\-Impl} \doxyref{}{p.}{classgear_1_1TPCModuleImpl_a9edb3bb2d1b0204984b141126bffd572}.

\index{gear\-::\-T\-P\-C\-Module@{gear\-::\-T\-P\-C\-Module}!is\-Inside\-Module@{is\-Inside\-Module}}
\index{is\-Inside\-Module@{is\-Inside\-Module}!gear::TPCModule@{gear\-::\-T\-P\-C\-Module}}
\subsubsection[{is\-Inside\-Module}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool gear\-::\-T\-P\-C\-Module\-::is\-Inside\-Module (
\begin{DoxyParamCaption}
\item[{double}]{c0, }
\item[{double}]{c1}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCModule_a780ce904b15eb8e41938db05532e3557}


True if global coordinate (c0,c1) is within this modules area of amplification/interest. 

i.\-e. the pad plane plus the surrounding border (see \doxyref{get\-Border\-Width()}{p.}{classgear_1_1TPCModule_a1925357556737a3cd3d31764d5234f1e} ). 

Implemented in {\bf gear\-::\-T\-P\-C\-Module\-Impl} \doxyref{}{p.}{classgear_1_1TPCModuleImpl_a43406436f2a07acfb594414afb5dcac0}.

\index{gear\-::\-T\-P\-C\-Module@{gear\-::\-T\-P\-C\-Module}!local\-To\-Global@{local\-To\-Global}}
\index{local\-To\-Global@{local\-To\-Global}!gear::TPCModule@{gear\-::\-T\-P\-C\-Module}}
\subsubsection[{local\-To\-Global}]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf Vector2\-D} gear\-::\-T\-P\-C\-Module\-::local\-To\-Global (
\begin{DoxyParamCaption}
\item[{double}]{c0, }
\item[{double}]{c1}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCModule_a4752611361384cf66f8cf3213e21d2e6}


Returns the global coordinates for a point in local coordinates. 

It performs a complete coordinate transformation, applying the coordinate conversion from the coordinate type of the local pad layout to the global coordinate type, rotation and translation. Use \doxyref{get\-Local\-Pad\-Layout()}{p.}{classgear_1_1TPCModule_ad303950c816efb8f9d7c3e5d2961324e}-\/$>$\doxyref{get\-Coordinate\-Type()}{p.}{classgear_1_1PadRowLayout2D_a69e6ddeb62d37250d51a462e1ad13ebb} to produce the input in the correct coordinate type.

Usally you don't need this fuction since all member functions of the module use global coordinates only. 

Implemented in {\bf gear\-::\-T\-P\-C\-Module\-Impl} \doxyref{}{p.}{classgear_1_1TPCModuleImpl_af53dd42b26d323b3055ab60112ef9f42}.



The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
T\-P\-C\-Module.\-h\end{DoxyCompactItemize}
