zsig 1.0.0

zsig::ZernikePolynomialsBasisT< Order, T > Class Template Reference

Zernike Polynomials Orthogonal Basis type. More...

#include <zpolbasist.hh>

List of all members.

Public Types

typedef
ZernikePolynomialsBasisT
< Order, T > 
zpolbasis_type
 This class type.
typedef std::complex< T > value_type
 Polynomial value type.
typedef std::vector< value_typeradial_polynomial
 Radial polynomial.

Public Member Functions

 ZernikePolynomialsBasisT ()
 Default Constructor.
void project (const T **_fxy, const zpolbasis_type **_zpb, const unsigned int &_szx, const unsigned int &_szy)
 Compute the projection of a function onto the Zernike basis.
void project (const T **_fxy, zpolbasis_type **_zpb, const unsigned int &_szx, const unsigned int &_szy)
void project (T **_fxy, const zpolbasis_type **_zpb, const unsigned int &_szx, const unsigned int &_szy)
void project (T **_fxy, zpolbasis_type **_zpb, const unsigned int &_szx, const unsigned int &_szy)
void project (const T **_fxy, const unsigned int &_szx, const unsigned int &_szy)
void project (T **_fxy, const unsigned int &_szx, const unsigned int &_szy)
void reconstruct (T **_fxy, const zpolbasis_type **_zpb, const unsigned int &_szx, const unsigned int &_szy) const
 Compute the reconstruction of a function using the Zernike basis.
void reconstruct (T **_fxy, zpolbasis_type **_zpb, const unsigned int &_szx, const unsigned int &_szy) const
void reconstruct (T **_fxy, const unsigned int &_szx, const unsigned int &_szy) const
compare (const zpolbasis_type &_zp) const
 Compare two Zernike polynomials representations.
radial_polynomialoperator[] (const unsigned &_p)
 Read/write operator of each radial polynomial.
const radial_polynomialoperator[] (const unsigned &_p) const
 Read operator of each radial polynomial.

Friends

std::ostream & operator<< (std::ostream &_out, const zpolbasis_type &_z)
 Output stream operator.
std::istream & operator>> (std::istream &_in, zpolbasis_type &_z)
 Input stream operator.

Related Functions

(Note that these are not member functions.)
template<class T >
fac (const int &_n)
 Compute factorial of n: $n!$.
template<class T >
compute_R (const unsigned &_p, const int &_q, const T &_r)
 Compute Radial Polynomial: $R_{p}^{q}(\rho)$.
template<class T >
std::complex< T > compute_V (const unsigned &_p, const int &_q, const T &_r, const T &_t)
 Compute Zernike Polynomial: $V_{p}^{q}(\rho, \theta)$.
template<unsigned Order, class T >
void compute_basis (ZernikePolynomialsBasisT< Order, T > **_zpb, const unsigned int &_szx, const unsigned int &_szy)
 Compute Discrete Zernike Basis: all $(V_{p}^{q})[x,y]$.
template<unsigned Order, class T , unsigned R, unsigned C>
void compute_zsig (std::vector< ZernikePolynomialsBasisT< Order, T > > &_zsig, const SignatureMeshT< T > &_m, const std::vector< SignatureT< R, C, T > > &_sig)
 Compute Zernike Signature for vertices.
template<unsigned Order, class T , unsigned R, unsigned C>
void compute_zsig (std::vector< ZernikePolynomialsBasisT< Order, T > > &_zsig, const SignatureMeshT< T > &_m)
template<unsigned Order, class T , unsigned R, unsigned C>
void compute_gwzsig (std::vector< ZernikePolynomialsBasisT< Order, T > > &_gwzsig, const SignatureMeshT< T > &_m, const std::vector< ZernikePolynomialsBasisT< Order, T > > &_zsig)
 Compute Gaussian-weighted Zernike Signature for vertices.
template<unsigned Order, class T , unsigned R, unsigned C>
void compute_gwzsig (std::vector< ZernikePolynomialsBasisT< Order, T > > &_gwzsig, const SignatureMeshT< T > &_m)

Detailed Description

template<unsigned Order = 8, class T = long double>
class zsig::ZernikePolynomialsBasisT< Order, T >

Zernike Polynomials Orthogonal Basis type.

This class is inspired from Zernike's work:

@ARTICLE{Zernike:1934,
  author = {{F}. {Z}ernike},
  title = {{B}eugungstheorie des {S}chneidenverfahrens und seiner verbesserten {F}orm, der {P}hasenkontrastmethode},
  journal = {Physica 1},
  pages = {689--704},
  year = {1934}
}   

The computational perspective of this class follows the basic idea on the paper:

@INPROCEEDINGS{Khotanzad:1988,
  author = {{K}hotanzad, {A}. and {H}ong, {Y}. {H}.},
  title = {Rotation invariant pattern recognition using {Z}ernike moments},
  booktitle = {9th {I}nternational {C}onference on {P}attern {R}ecognition},
  year = {1988},
  month = {Nov},
  volume = {1},
  pages = {326--328},
  doi = {http://dx.doi.org/10.1109/ICPR.1988.28233}
}   

However, the implementation of this class targets (and follows more closely) the paper (first-authored by me):

@ARTICLE{Maximo:2011,
  author = {A. Maximo and R. Patro and A. Varshney and R. Farias},
  title = {A Robust and Rotationally Invariant Local Surface Descriptor with Applications to Non-local Mesh Processing},
  journal = {Graphical Models},
  volume = {In Press, Accepted Manuscript},
  number = {}
  pages = { - },
  year = {2011},
  issn = {1524-0703},
  doi = {http://dx.doi.org/10.1016/j.gmod.2011.05.002}
}   
Note:
For higher order Zernike Polynomials high-precision number type is required. For instance, eighth-order basis reaches big numbers when computing the factorial for the radial polynomial $R_{p}^{q}(\rho)$ given in equation (2) computed in compute_R (see [Maximo:2011]).
Template Parameters:
OrderDefines Zernike target radial order
TDefines number precision
Examples:

app_compute_signature.cc, app_paint_signature.cc, example_sig.cc, example_zpol.cc, and example_zproj.cc.

Definition at line 163 of file zpolbasist.hh.


Member Typedef Documentation

template<unsigned Order = 8, class T = long double>
typedef ZernikePolynomialsBasisT< Order, T > zsig::ZernikePolynomialsBasisT< Order, T >::zpolbasis_type

This class type.

Definition at line 167 of file zpolbasist.hh.

template<unsigned Order = 8, class T = long double>
typedef std::complex< T > zsig::ZernikePolynomialsBasisT< Order, T >::value_type

Polynomial value type.

Definition at line 168 of file zpolbasist.hh.

template<unsigned Order = 8, class T = long double>
typedef std::vector< value_type > zsig::ZernikePolynomialsBasisT< Order, T >::radial_polynomial

Radial polynomial.

Definition at line 169 of file zpolbasist.hh.


Constructor & Destructor Documentation

template<unsigned Order = 8, class T = long double>
zsig::ZernikePolynomialsBasisT< Order, T >::ZernikePolynomialsBasisT ( ) [inline]

Default Constructor.

This class does not store: q[-4, -2, 0, 2, 4] instead it stores only: q[0, 2, 4]; since the complex conjugate of q and -q are the same V_{p}^{q} = V*_{p}^{-q}.

Definition at line 177 of file zpolbasist.hh.


Member Function Documentation

template<unsigned Order = 8, class T = long double>
void zsig::ZernikePolynomialsBasisT< Order, T >::project ( const T **  _fxy,
const zpolbasis_type **  _zpb,
const unsigned int &  _szx,
const unsigned int &  _szy 
) [inline]

Compute the projection of a function onto the Zernike basis.

This method projects a function onto the Zernike Polynomials Orthogonal Basis as described in equation (3) below (see [Maximo:2011] -- the discrete version). This projection is the $(z_{p}^{q}(f))[x,y]$ associated with all possible orders $p$ and repetitions $q$ as follows:

\begin{equation} z_{p}^{q}(f) = \frac{p+1}{\pi} \sum_{ (x,y) \in \mathbf{S} } (\bar{V_{p}}^{q})[x,y] f[x,y] \end{equation}

The domain of the function $f(x,y)$ is considered to be a discrete grid (of a given size) in the range [-1, 1] and it is converted to polar coordinates $(\rho, \theta)$, evaluating only in the unit circle (where the Zernike basis is defined) centered at the origin.

Note:
This method uses the Discret Zernike Basis: $(V_{p}^{q})[x,y]$ (computed by compute_basis); which can be pre-computed and stored since the basis is valid to project any function in the same normalized domain.
Parameters:
[in]_fxyDiscrete function to look up values (at [x, y] or _fxy[x][y])
[in]_zpbZernike Polynomials Basis for each [x, y]
[in]_szxFunction domain size on the x-direction
[in]_szyFunction domain size on the y-direction

Definition at line 211 of file zpolbasist.hh.

template<unsigned Order = 8, class T = long double>
void zsig::ZernikePolynomialsBasisT< Order, T >::project ( const T **  _fxy,
zpolbasis_type **  _zpb,
const unsigned int &  _szx,
const unsigned int &  _szy 
) [inline]

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters:
[in]_fxyDiscrete function to look up values (at [x, y] or _fxy[x][y])
[in]_zpbZernike Polynomials Basis for each [x, y]
[in]_szxFunction domain size on the x-direction
[in]_szyFunction domain size on the y-direction

Definition at line 241 of file zpolbasist.hh.

References zsig::ZernikePolynomialsBasisT< Order, T >::project().

template<unsigned Order = 8, class T = long double>
void zsig::ZernikePolynomialsBasisT< Order, T >::project ( T **  _fxy,
const zpolbasis_type **  _zpb,
const unsigned int &  _szx,
const unsigned int &  _szy 
) [inline]

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters:
[in]_fxyDiscrete function to look up values (at [x, y] or _fxy[x][y])
[in]_zpbZernike Polynomials Basis for each [x, y]
[in]_szxFunction domain size on the x-direction
[in]_szyFunction domain size on the y-direction

Definition at line 255 of file zpolbasist.hh.

References zsig::ZernikePolynomialsBasisT< Order, T >::project().

template<unsigned Order = 8, class T = long double>
void zsig::ZernikePolynomialsBasisT< Order, T >::project ( T **  _fxy,
zpolbasis_type **  _zpb,
const unsigned int &  _szx,
const unsigned int &  _szy 
) [inline]

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters:
[in]_fxyDiscrete function to look up values (at [x, y] or _fxy[x][y])
[in]_zpbZernike Polynomials Basis for each [x, y]
[in]_szxFunction domain size on the x-direction
[in]_szyFunction domain size on the y-direction

Definition at line 269 of file zpolbasist.hh.

References zsig::ZernikePolynomialsBasisT< Order, T >::project().

template<unsigned Order = 8, class T = long double>
void zsig::ZernikePolynomialsBasisT< Order, T >::project ( const T **  _fxy,
const unsigned int &  _szx,
const unsigned int &  _szy 
) [inline]

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

The overloaded version of the project method does not use the Discrete Zernike Basis and, therefore, has to compute the complex conjugate of V ( $(\bar{V_{p}^{q}})[x,y]$) as in compute_basis.

Parameters:
[in]_fxyDiscrete function to look up values (at [x, y] or _fxy[x][y])
[in]_szxFunction domain size on the x-direction
[in]_szyFunction domain size on the y-direction

Definition at line 287 of file zpolbasist.hh.

References zsig::ZernikePolynomialsBasisT< Order, T >::compute_V().

template<unsigned Order = 8, class T = long double>
void zsig::ZernikePolynomialsBasisT< Order, T >::project ( T **  _fxy,
const unsigned int &  _szx,
const unsigned int &  _szy 
) [inline]

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters:
[in]_fxyDiscrete function to look up values (at [x, y] or _fxy[x][y])
[in]_szxFunction domain size on the x-direction
[in]_szyFunction domain size on the y-direction

Definition at line 317 of file zpolbasist.hh.

References zsig::ZernikePolynomialsBasisT< Order, T >::project().

template<unsigned Order = 8, class T = long double>
void zsig::ZernikePolynomialsBasisT< Order, T >::reconstruct ( T **  _fxy,
const zpolbasis_type **  _zpb,
const unsigned int &  _szx,
const unsigned int &  _szy 
) const [inline]

Compute the reconstruction of a function using the Zernike basis.

This method reconstructs a function using the Zernike Polynomials Orthogonal Basis, considering this polynomial object as the representation of the function via Zernike coefficients and a given Zernike Polynomial Basis as $(V_{p}^{q})[x,y]$.

Parameters:
[out]_fxyDiscrete function to reconstruct (at [x, y] or _fxy[x][y])
[in]_zpbZernike Polynomials Basis for each [x, y]
[in]_szxFunction domain size on the x-direction
[in]_szyFunction domain size on the y-direction

Definition at line 336 of file zpolbasist.hh.

template<unsigned Order = 8, class T = long double>
void zsig::ZernikePolynomialsBasisT< Order, T >::reconstruct ( T **  _fxy,
zpolbasis_type **  _zpb,
const unsigned int &  _szx,
const unsigned int &  _szy 
) const [inline]

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters:
[out]_fxyDiscrete function to reconstruct (at [x, y] or _fxy[x][y])
[in]_zpbZernike Polynomials Basis for each [x, y]
[in]_szxFunction domain size on the x-direction
[in]_szyFunction domain size on the y-direction

Definition at line 363 of file zpolbasist.hh.

References zsig::ZernikePolynomialsBasisT< Order, T >::reconstruct().

template<unsigned Order = 8, class T = long double>
void zsig::ZernikePolynomialsBasisT< Order, T >::reconstruct ( T **  _fxy,
const unsigned int &  _szx,
const unsigned int &  _szy 
) const [inline]

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

The overloaded version of the reconstruct method does not use the Discrete Zernike Basis and, therefore, has to compute V ( $(V_{p}^{q})[x,y]$) as in compute_basis.

Parameters:
[out]_fxyDiscrete function to reconstruct (at [x, y] or _fxy[x][y])
[in]_szxFunction domain size on the x-direction
[in]_szyFunction domain size on the y-direction

Definition at line 380 of file zpolbasist.hh.

References zsig::ZernikePolynomialsBasisT< Order, T >::compute_V().

template<unsigned Order = 8, class T = long double>
T zsig::ZernikePolynomialsBasisT< Order, T >::compare ( const zpolbasis_type _zp) const [inline]

Compare two Zernike polynomials representations.

The representation of a function is given by the Zernike coefficients computed by the projection into the basis. This method compares this polynomial coefficients with a given another polynomial coefficients computing the Euclidean distance between the two in Zernike space.

Parameters:
[in]_zpZernike polynomial to compare to
Returns:
Euclidean distance between Zernike coefficients

Definition at line 419 of file zpolbasist.hh.

template<unsigned Order = 8, class T = long double>
radial_polynomial& zsig::ZernikePolynomialsBasisT< Order, T >::operator[] ( const unsigned &  _p) [inline]

Read/write operator of each radial polynomial.

Parameters:
[in]_pRadial order
Returns:
Radial polynomial of order _p

Definition at line 437 of file zpolbasist.hh.

template<unsigned Order = 8, class T = long double>
const radial_polynomial& zsig::ZernikePolynomialsBasisT< Order, T >::operator[] ( const unsigned &  _p) const [inline]

Read operator of each radial polynomial.

Parameters:
[in]_pRadial order
Returns:
Constant radial polynomial of order _p

Definition at line 444 of file zpolbasist.hh.


Friends And Related Function Documentation

template<unsigned Order = 8, class T = long double>
std::ostream& operator<< ( std::ostream &  _out,
const zpolbasis_type _z 
) [friend]

Output stream operator.

Parameters:
[in,out]_outOutput stream
[in]_zZernike Polynomials Basis to output
Returns:
Output stream

Definition at line 452 of file zpolbasist.hh.

template<unsigned Order = 8, class T = long double>
std::istream& operator>> ( std::istream &  _in,
zpolbasis_type _z 
) [friend]

Input stream operator.

Parameters:
[in,out]_inInput stream
[out]_zZernike Polynomials Basis to input
Returns:
Input stream

Definition at line 469 of file zpolbasist.hh.

template<class T >
T fac ( const int &  _n) [related]

Compute factorial of n: $n!$.

See also:
ZernikePolynomialsBasisT
Parameters:
[in]_nNumber to compute the factorial of
Returns:
Factorial of n
Template Parameters:
TDefines number precision

Definition at line 33 of file zpolbasist.hh.

template<class T >
T compute_R ( const unsigned &  _p,
const int &  _q,
const T &  _r 
) [related]

Compute Radial Polynomial: $R_{p}^{q}(\rho)$.

This function computes the value returned by equation (1) below (see [Maximo:2011]), that is the Radial Polynomial associated with order $p$ and repetition $q$ as follows:

\begin{equation} R_{p}^{q}(\rho) = \mathop{\sum_{k=|q|}^{p}}_{|p-q| \mathrm{even}} \frac{(-1)^{\frac{p-k}{2}} \frac{p+k}{2}!}{\frac{p-k}{2}! \frac{k-q}{2}! \frac{k+q}{2}!}\rho^{k} \label{eq:Rpq} \end{equation}

See also:
ZernikePolynomialsBasisT
Parameters:
[in]_pRadial order
[in]_qFrequency repetition
[in]_rDomain radius $\rho$ to compute the polynomial
Returns:
Radial Polynomial $R_{p}^{q}(\rho)$
Template Parameters:
TDefines number precision

Definition at line 61 of file zpolbasist.hh.

template<class T >
std::complex< T > compute_V ( const unsigned &  _p,
const int &  _q,
const T &  _r,
const T &  _t 
) [related]

Compute Zernike Polynomial: $V_{p}^{q}(\rho, \theta)$.

This function computes the value returned by equation (2) below (see [Maximo:2011]), that is the Zernike Polynomial associated with order $p$ and repetition $q$ as follows:

\begin{equation} V_{p}^{q}(\rho, \theta) = R_{p}^{q}(\rho) e^{iq\theta} \end{equation}

See also:
ZernikePolynomialsBasisT
Parameters:
[in]_pRadial order
[in]_qFrequency repetition
[in]_rDomain radius $\rho$ to compute the polynomial
[in]_tDomain angle $\theta$ to compute the polynomial
Returns:
Zernike Polynomial $V_{p}^{q}(\rho, \theta)$
Template Parameters:
TDefines number precision

Definition at line 102 of file zpolbasist.hh.

template<unsigned Order, class T >
void compute_basis ( ZernikePolynomialsBasisT< Order, T > **  _zpb,
const unsigned int &  _szx,
const unsigned int &  _szy 
) [related]

Compute Discrete Zernike Basis: all $(V_{p}^{q})[x,y]$.

This function computes the orthogonal basis used in equation (3) below (from [Maximo:2011] -- the discrete version), that is the Zernike basis $(V_{p}^{q})[x,y]$ associated with all possible orders $p$ and repetitions $q$ related with the target function $f(x,y)$ to be projected, as follows:

\begin{equation} z_{p}^{q}(f) = \frac{p+1}{\pi} \sum_{ (x,y) \in \mathbf{S} } (\bar{V_{p}}^{q})[x,y] f[x,y] \end{equation}

The domain of the function $f(x,y)$ is considered to be a discrete grid (of a given size) in the range [-1, 1] and it is converted to polar coordinates $(\rho, \theta)$, evaluating only in the unit circle (where the Zernike basis is defined) centered at the origin.

Note:
This function computes only: q[0, 2, 4] (i.e. the indices qi[0, 1, 2]) and not: q[-4, -2, 0, 2, 4]; since the conjugate of q and -q are the same V_{p}^{q} = V*_{p}^{-q}.
See also:
ZernikePolynomialsBasisT
Parameters:
[out]_zpbZernike Polynomials Basis for each [x, y]
[in]_szxDomain size of the x-direction
[in]_szyDomain size of the y-direction
Template Parameters:
ODefines Zernike target radial order
TDefines number precision

Definition at line 524 of file zpolbasist.hh.

template<unsigned Order, class T , unsigned R, unsigned C>
void compute_zsig ( std::vector< ZernikePolynomialsBasisT< Order, T > > &  _zsig,
const SignatureMeshT< T > &  _m,
const std::vector< SignatureT< R, C, T > > &  _sig 
) [related]

Compute Zernike Signature for vertices.

Given a mesh _m and the Heighmap-based vertex signatures _sig (see compute_sig function), compute the Zernike-based vertex signatures for all mesh vertices. The output is a vector of Zernike signatures _zsig.

See also:
SignatureT
SignatureMeshT
ZernikePolynomialsBasisT
Parameters:
[out]_zsigZernike-based vertex signatures
[in]_mMesh to compute signatures of vertices
[in]_sigHeightmap-based vertex signatures previous computed
Template Parameters:
OrderDefines Zernike target radial order
TSignature value type
RSignature row dimension
CSignature column dimension

Definition at line 182 of file zsig.hh.

References zsig::SignatureT< R, C, T >::clear(), and zsig::SignatureMeshT< T >::size_of_vertices().

template<unsigned Order, class T , unsigned R, unsigned C>
void compute_zsig ( std::vector< ZernikePolynomialsBasisT< Order, T > > &  _zsig,
const SignatureMeshT< T > &  _m 
) [related]

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also:
SignatureT
SignatureMeshT
ZernikePolynomialsBasisT
Parameters:
[out]_zsigZernike-based vertex signatures
[in]_mMesh to compute signatures of vertices
Template Parameters:
OrderDefines Zernike target radial order
TSignature value type
RSignature row dimension
CSignature column dimension

Definition at line 217 of file zsig.hh.

template<unsigned Order, class T , unsigned R, unsigned C>
void compute_gwzsig ( std::vector< ZernikePolynomialsBasisT< Order, T > > &  _gwzsig,
const SignatureMeshT< T > &  _m,
const std::vector< ZernikePolynomialsBasisT< Order, T > > &  _zsig 
) [related]

Compute Gaussian-weighted Zernike Signature for vertices.

Given a mesh _m and the Zernike-based vertex signatures _zsig (see compute_zsig function), compute the Gaussian-weighted Zernike-based vertex signatures for all mesh vertices. The output is a vector of Gaussian-weighted Zernike signatures _gwzsig. This new vector of Zernike coefficients is computed using equation (1) below (see [Maximo:2011] cited in ZernikePolynomialsBasisT) as follows:

\begin{equation} \mathbf{z}_{i}^{\sigma} = \frac{ \sum_{ v_{j} \in \mathcal{N}(v_{i}, 2\sigma)} \mathbf{z}_{i} \; e^{- \frac{\left|v_{i} - v_{j}\right|^{2}}{2\sigma^{2}}} }{\sum_{ v_{j} \in \mathcal{N}(v_{i}, 2\sigma)} e^{- \frac{\left|v_{i} - v_{j}\right|^{2}}{2\sigma^{2}}} } \end{equation}

See also:
SignatureT
SignatureMeshT
ZernikePolynomialsBasisT
Parameters:
[out]_gwzsigGaussian-weighted Zernike-based vertex signatures
[in]_mMesh to compute signatures of vertices
[in]_zsigZernike-based vertex signatures previous computed
Template Parameters:
OrderDefines Zernike target radial order
TSignature value type
RSignature row dimension
CSignature column dimension

Definition at line 257 of file zsig.hh.

References zsig::vec< D, T >::clear(), zsig::SignatureMeshT< T >::compute_neighborhood(), zsig::SignatureMeshT< T >::maximum_search_distance(), zsig::SignatureMeshT< T >::size_of_vertices(), and zsig::SignatureMeshT< T >::vertices().

template<unsigned Order, class T , unsigned R, unsigned C>
void compute_gwzsig ( std::vector< ZernikePolynomialsBasisT< Order, T > > &  _gwzsig,
const SignatureMeshT< T > &  _m 
) [related]

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also:
SignatureT
SignatureMeshT
ZernikePolynomialsBasisT
Parameters:
[out]_gwzsigGaussian-weighted Zernike-based vertex signatures
[in]_mMesh to compute signatures of vertices
Template Parameters:
OrderDefines Zernike target radial order
TSignature value type
RSignature row dimension
CSignature column dimension

Definition at line 331 of file zsig.hh.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Friends