Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

qgar Namespace Reference


Detailed Description

Namespace of the QgarLib library.

All classes, types, globals, etc. of the Qgar library are defined in this namespace.


Classes

class  AbstractGenPrimitive
 Geometrical primitives with coordinates of type T. More...
class  AbstractGenQgarPrimitive
 Graphical primitives, typically resulting from vectorization, with coordinates of type T. More...
class  GenArc
 Arc of circle, with coordinates of type T. More...
class  GenPoint
 Point with coordinates of type T. More...
class  GenPolygon
 Geometrical polygon, with coordinates of type T. More...
class  GenPolyline
 Geometrical polyline, with coordinates of type T. More...
class  GenQgarArc
 Arc of circle, so-called Qgar arc, with coordinates of type T. More...
class  GenQgarPolygon
 Graphical polygon, so-called Qgar polygon, with coordinates of type T. More...
class  GenQgarPolyline
 Graphical polyline, so-called Qgar polyline, with coordinates of type T. More...
class  GenQgarSegment
 Graphical segment, so-called Qgar segment, with coordinates of type T. More...
class  GenSegment
 Geometrical segment, with coordinates of type T. More...
class  AbstractFile
 Base class implementing common tools to conveniently define and use files in the Qgar way. More...
class  AbstractGenPointChain
 Base class for chain of points having coordinates of type T. More...
class  AbstractGradientImage
 Base class to define gradient images. More...
class  AbstractGraphicsFile
 Basic function to read/write graphical and geometrical primitives in graphics files like Tgif files, DXF files, etc. More...
class  AbstractMultiImage
 Root class for classes defining multi-layered images. More...
class  AbstractPbmPlusFile
 File containing an image in some PBM+ format. More...
class  AbstractQgarError
 Base class for Qgar exceptions. More...
class  BoundingBox
 A bounding box. More...
class  CannyGradientImage
 Canny Gradient image. More...
class  CleanedBinaryImage
 A Cleaned binary image. More...
class  CloseBinaryImage
 Closing of a binary image, using morphological operators. More...
class  CloseImage
 Close a greylevel image using morphological operators. More...
class  Component
 A (connected) component. More...
class  ConnectedComponents
 Connected components extracted from a binary image. More...
class  ConnectedComponentsImpl
 Implementation of the construction of connected components of a binary image. More...
class  ContrastEnhancedImage
 Morphologically contrast enhanced image. More...
class  DericheGradientImage
 Deriche's optimal edge detector. More...
class  DilatedBinaryImage
 Dilate a binary image using morphological operators. More...
class  DilatedImage
 Dilate a grey-level image using morphological operators. More...
class  Dist34BlackCCImage
class  Dist34Image
 Distance transformation of all (black and white) components of a binary image, using 3-4 Chamfer distance. More...
class  Dist8cBlackCCImage
 8-connected distance transformation of a binary image, for black components only. More...
class  DxfFile
 File including Dxf graphics. More...
class  ErodedBinaryImage
 Erode a binary image using morphological operators. More...
class  ErodedImage
 Erode a grey-level image using morphological operators. More...
class  File
 Qgar regular file. More...
class  FreemanChain
 Chain of Freeman codes. More...
class  FreemanCode
 A Freeman code, defined as a pair (direction, length). More...
class  GenConvexHull
 A convex hull represented by a series of points with coordinates of type T. More...
class  GenConvolImage
 Convolution of an image by a 1D or 2D mask. More...
class  GenEdge
 Edge of a parameterized graph containing (user-defined) data. More...
class  GenImage_NoCheck
 No-check policy. More...
class  GenImage_BoundCheck
 Policy to check bounds of pixel values. More...
class  GenImage
 Template class for a generic image with pixels of type T. More...
class  GenCluster
 A cluster, as generated by the k-means algorithm implemented by class qgar::GenKMeans. More...
class  GenKMeans
 Template class for partitioning a list of objects of type T into a (given) number of clusters using a k-means algorithm. More...
class  GenMask1d
 Generic 1D mask with coefficients of type T. More...
class  GenMask2d
 Generic 2D mask with coefficients of type T. More...
class  GenNode
 Node of a parameterized graph containing (user-defined) data. More...
class  GenPointChain
 Chain of points having coordinates of type T. More...
class  GenTreeNode
 Template class for a node of a Qgar Tree (see class qgar::GenTree). More...
class  GenTree
 A tree whose nodes contain data of type T. More...
class  GenUGraph
 Parameterized undirected graph. More...
class  GeodesicRecBinaryImage
 Complete geodesic reconstruction of a binary image by dilation. More...
class  GeodesicRecEroBinaryImage
 Complete geodesic reconstruction of a binary image by erosion. More...
class  GeodesicRecEroImage
 Complete geodesic reconstruction of a grey-level image by erosion. More...
class  GeodesicRecImage
 Complete geodesic reconstruction of a greylevel image by dilation. More...
class  GradientLocalMaxImage
 Local maxima of the Gradient. More...
class  GradientModuleImage
 Module of the Gradient of an image. More...
class  Histogram
 General representation of a histogram. More...
class  HysteresisBinaryImage
 Binary image created from the local maxima of a gradient using a hysteresis thresholding. More...
class  ISerializable
 Base interface of all serializable objects. More...
class  IsotropicDilatedBinaryImage
 Dilate a binary image using a variation of the dilation alogrithm. More...
class  KanungoBinaryImage
 Degradation of a binary image, using Kanungo et al 's method. More...
class  LabeledSkeletonImage
 Skeleton computed using the (3,4)-distance transform. More...
class  LaplacianOfGaussianImage
 Laplacian of Gaussian image. More...
class  LinDilatedBinaryImage
 Binary image dilated using a segment. More...
class  LinDilatedImage
 Grey-level image dilated using a segment. More...
class  LinErodedBinaryImage
 Binary image linearly eroded, using a segment. More...
class  LinErodedImage
 Grey-level image linearly eroded, using a segment. More...
class  LinkedChainList
 List of linked chains of integer points. More...
class  Maer
 Minimum-Area Encasing Rectangle (MAER). More...
class  MapleFile
 File containing a Maple program. More...
class  Mask1dGauss
 1D Gaussian convolution mask More...
class  Mask1dGaussD1
 First derivative of a 1D Gaussian mask. More...
class  Mask1dGaussD2
 Second derivative of a 1D Gaussian mask. More...
class  Math
 Global constants and thresholds, implemented as static data members of the class. More...
class  NiblackBinaryImage
 Binary image created by adaptive thresholding of a grey-level image. More...
class  OpenBinaryImage
 Open a binary image using morphological operators. More...
class  OpenImage
 Open a grey-level image using morphological operators. More...
class  PbmFile
 File containing a binary image in PBM format. More...
class  PgmFile
 File containing a Grey-level image in PGM format. More...
class  PruneSmallCCBinaryImage
 Prune small connected components. More...
class  QgarApp
 To handle parameters and interactive mode of an application. More...
class  QgarAppDescr
 Parses an XML description of a Qgar application and builds its representation. More...
class  QgarAppParamDescr
 Memory representation of an application parameter description. More...
class  QgarArgs
 To handle the parameters given to an application. More...
class  QgarErrorAlgorithm
 Class for Qgar algorithm exceptions. More...
class  QgarErrorDeveloper
 Class for Qgar developer exceptions. More...
class  QgarErrorDomain
 Class for Qgar domain exceptions. More...
class  QgarErrorInvalidArg
 Class for Qgar domain exceptions. More...
class  QgarErrorIO
 Class for Qgar Input/Output exceptions. More...
class  QgarErrorUser
class  RegionalMaxBinaryImage
 Regional maxima of given image. More...
class  RegionalMaxImage
 Regional maxima of given image. More...
class  RegionalMinBinaryImage
 Regional minima of given image. More...
class  RegionalMinImage
 Regional minima of given image. More...
class  RWArcVector
 A vector containing Qgar arcs. More...
class  RWTree
 Private class of class RWSegmentVector to construct a binary tree during Rosin and West's polygonal approximation. More...
class  RWSegmentVector
 Recursive polygonal approximation of a chain. More...
class  StandardDeviationImage
 Image of standard deviation. More...
struct  qstlDeleteObject
 Struct designed to delete objects. More...
struct  qstlCloneObject
 Struct designed to clone objects. More...
class  mem_ptr_fun_t
 Adaptor for member functions to a unary_function. More...
class  const_mem_ptr_fun_t
 Adaptor for const member functions to a unary_function. More...
class  mem_ptr_fun2_t
 Adaptor for member functions to a binary_function. More...
class  const_mem_ptr_fun2_t
 Adaptor for member functions to a binary_function. More...
class  TgifFile
 File including Tgif graphics (designed for Tgif version 3.0, patchlevel 17). More...
class  ThresBinaryImage
 Elementary binarization, using a constant threshold. More...
class  TTBinaryImage
 Binary image created from a grey-level image, using binarization method designed by Trier and Taxt [Trier and Taxt, 1995] from White and Rohrer's method. More...
class  UltimateErodedBinaryImage
 Compute the ultimate eroded set of a binary image. More...
class  WDSegment
 A segment resulting from a polygonal approximation performed according to Wall and Danielsson's method. More...
class  WDSegmentList
 Polygonal approximation of a chain of points, using Wall & Danielsson's method. More...

Primitive types

typedef AbstractGenPrimitive<
int > 
Primitive
 Primitive with integer coordinates.
typedef AbstractGenPrimitive<
int > 
IPrimitive
 Primitive with integer coordinates.
typedef AbstractGenPrimitive<
float > 
FPrimitive
 Primitive with float coordinates.
typedef AbstractGenPrimitive<
double > 
DPrimitive
 Primitive with double coordinates.

Qgar Abstract Primitives

typedef AbstractGenQgarPrimitive<
int > 
QgarPrimitive
 Qgar primitive with integer coordinates.
typedef AbstractGenQgarPrimitive<
int > 
IQgarPrimitive
 Qgar primitive with integer coordinates.
typedef AbstractGenQgarPrimitive<
float > 
FQgarPrimitive
 Qgar primitive with float coordinates.
typedef AbstractGenQgarPrimitive<
double > 
DQgarPrimitive
 Qgar primitive with double coordinates.

Arc types

typedef GenArc< int > Arc
 Arc with integer coordinates.
typedef GenArc< int > IArc
 Arc with integer coordinates.
typedef GenArc< float > FArc
 Arc with float coordinates.
typedef GenArc< double > DArc
 Arc with double coordinates.

Point types

typedef GenPoint< int > Point
 Points with integer coordinates.
typedef GenPoint< int > IPoint
 Points with integer coordinates.
typedef GenPoint< float > FPoint
 Points with coordinates of type float.
typedef GenPoint< double > DPoint
 Points with coordinates of type double.

Polygon types

typedef GenPolygon< int > Polygon
 Polygon with integer coordinates.
typedef GenPolygon< int > IPolygon
 Polygon with integer coordinates.
typedef GenPolygon< float > FPolygon
 Polygon with float coordinates.
typedef GenPolygon< double > DPolygon
 Polygon with double coordinates.

Polyline types

typedef GenPolyline< int > Polyline
 Polyline with integer coordinates.
typedef GenPolyline< int > IPolyline
 Polyline with integer coordinates.
typedef GenPolyline< float > FPolyline
 Polyline with float coordinates.
typedef GenPolyline< double > DPolyline
 Polyline with double coordinates.

Qgar Arcs

typedef GenQgarArc< int > QgarArc
 Qgar arc with integer coordinates.
typedef GenQgarArc< int > IQgarArc
 Qgar arc with integer coordinates.
typedef GenQgarArc< float > FQgarArc
 Qgar arc with float coordinates.
typedef GenQgarArc< double > DQgarArc
 Qgar arc with double coordinates.

Qgar Polygon types

typedef GenQgarPolygon< int > QgarPolygon
 Qgar polygon with integer coordinates.
typedef GenQgarPolygon< int > IQgarPolygon
 Qgar polygon with integer coordinates.
typedef GenQgarPolygon< float > FQgarPolygon
 Qgar polygon with float coordinates.
typedef GenQgarPolygon< double > DQgarPolygon
 Qgar polygon with double coordinates.

Qgar Polyline types

typedef GenQgarPolyline< int > QgarPolyline
 Qgar polyline with integer coordinates.
typedef GenQgarPolyline< int > IQgarPolyline
 Qgar polyline with integer coordinates.
typedef GenQgarPolyline< float > FQgarPolyline
 Qgar polyline with float coordinates.
typedef GenQgarPolyline< double > DQgarPolyline
 Qgar polyline with double coordinates.

Qgar Segments

typedef GenQgarSegment< int > QgarSegment
 Qgar segment with integer coordinates.
typedef GenQgarSegment< int > IQgarSegment
 Qgar segment with integer coordinates.
typedef GenQgarSegment< float > FQgarSegment
 Qgar segment with float coordinates.
typedef GenQgarSegment< double > DQgarSegment
 Qgar segment with double coordinates.

Segment types

typedef GenSegment< int > Segment
 Segment with integer coordinates.
typedef GenSegment< int > ISegment
 Segment with integer coordinates.
typedef GenSegment< float > FSegment
 Segment with float coordinates.
typedef GenSegment< double > DSegment
 Segment with double coordinates.

Predefined abstract point chain types

typedef AbstractGenPointChain<
int > 
AbstChain
 Abstract chain of points with integer coordinates.
typedef AbstractGenPointChain<
int > 
IAbstChain
 Abstract chain of points with integer coordinates.
typedef AbstractGenPointChain<
float > 
FAbstChain
 Abstract chain of points with float coordinates.
typedef AbstractGenPointChain<
double > 
DAbstChain
 Abstract chain of points with double coordinates.

Predefined convolution types

typedef GenConvolImage< int > IConvolImage
 Convolution of an image of integer pixels.
typedef GenConvolImage< float > FConvolImage
 Convolution of an image of float pixels.
typedef GenConvolImage< double > DConvolImage
 Convolution of an image of double pixels.
typedef GenConvolImage< double > ConvolImage
 Convolution of an image of double pixels.

Basic Image Types

typedef GenImage< unsigned
char > 
BinaryImage
 Binary image (pixels of type unsigned char).
typedef GenImage< unsigned
char > 
GreyLevelImage
 Grey-level Image (pixels of type unsigned char).
typedef GenImage< unsigned
char > 
UCharImage
 Image with unsigned char pixels.
typedef GenImage< int > IntImage
 Image with int pixels.
typedef GenImage< float > FloatImage
 Images with float pixels.
typedef GenImage< double > DoubleImage
 Images with double pixels.

Bounded Image Types

typedef GenImage< unsigned
int, GenImage_BoundCheck
BoundedBinaryImage
 Bounded Binary Image (pixel of type unsigned int).
typedef GenImage< unsigned
int, GenImage_BoundCheck
BoundedGreylevelImage
 Bounded Greylevel Image (pixel of type unsigned int).
typedef GenImage< unsigned
char, GenImage_BoundCheck
BoundedUCharImage
 Bounded image with unsigned char pixels.
typedef GenImage< int, GenImage_BoundCheckBoundedIntImage
 Bounded Image with int pixels.
typedef GenImage< float, GenImage_BoundCheckBoundedFloatImage
 Bounded Image with float pixels.
typedef GenImage< double,
GenImage_BoundCheck
BoundedDoubleImage
 Bounded Image with double pixels.

1D Masks

typedef GenMask1d< int > Mask1d
 1D mask with coefficients of type int.
typedef GenMask1d< int > IMask1d
 1D mask with coefficients of type int.
typedef GenMask1d< float > FMask1d
 1D mask with coefficients of type float.
typedef GenMask1d< double > DMask1d
 1D mask with coefficients of type double.

2D Masks

typedef GenMask2d< int > Mask2d
 2D mask with coefficients of type int.
typedef GenMask2d< int > IMask2d
 2D mask with coefficients of type int.
typedef GenMask2d< float > FMask2d
 2D mask with coefficients of type float.
typedef GenMask2d< double > DMask2d
 2D mask with coefficients of type double.

Predefined point chain types

typedef GenPointChain< int > PointChain
 Chain of points with integer coordinates.
typedef GenPointChain< int > IPointChain
 Chain of points with integer coordinates.
typedef GenPointChain< float > FPointChain
 Chain of points with float coordinates.
typedef GenPointChain< double > DPointChain
 Chain of points with double coordinates.

Types related to graphical primitives

enum  QGEcolor {
  QGE_COLOR_NONE,
  QGE_COLOR_DEFAULT,
  QGE_COLOR_BLACK,
  QGE_COLOR_DARK_GRAY,
  QGE_COLOR_GRAY,
  QGE_COLOR_LIGHT_GRAY,
  QGE_COLOR_WHITE,
  QGE_COLOR_MAGENTA,
  QGE_COLOR_PURPLE,
  QGE_COLOR_CYAN,
  QGE_COLOR_MEDIUM_BLUE,
  QGE_COLOR_BLUE,
  QGE_COLOR_OLIVE_GREEN,
  QGE_COLOR_DARK_GREEN,
  QGE_COLOR_GREEN,
  QGE_COLOR_YELLOW,
  QGE_COLOR_ORANGE,
  QGE_COLOR_RED,
  QGE_COLOR_PINK,
  QGE_COLOR_SALMON_PINK,
  QGE_COLOR_BROWN,
  QGE_COLOR_CHOCOLATE_BROWN
}
 Colors. More...
enum  QGEoutline {
  QGE_OUTLINE_NONE,
  QGE_OUTLINE_DEFAULT,
  QGE_OUTLINE_SOLID,
  QGE_OUTLINE_DASH_SSPACED,
  QGE_OUTLINE_DASH_SPACED,
  QGE_OUTLINE_DASH_REGULAR,
  QGE_OUTLINE_DASH_LS,
  QGE_OUTLINE_DASH_SS,
  QGE_OUTLINE_DASH_LSS,
  QGE_OUTLINE_DASH_LSPACED,
  QGE_OUTLINE_DOT
}
 Outline types. More...

Types related to PBM files

enum  QGEpbmFormat {
  QGE_PBM_PLAIN,
  QGE_PBM_RAW
}
 PBM+ file formats. More...

Types related to image processing

enum  QGEaxis {
  QGE_AXIS_X,
  QGE_AXIS_Y
}
 Coordinate axes. More...
enum  QGEbw {
  QGE_BW_WHITE,
  QGE_BW_BLACK
}
 Binary pixel type (black & white). More...
enum  QGEdirection {
  QGE_DIRECTION_N,
  QGE_DIRECTION_NE,
  QGE_DIRECTION_E,
  QGE_DIRECTION_SE,
  QGE_DIRECTION_S,
  QGE_DIRECTION_SW,
  QGE_DIRECTION_W,
  QGE_DIRECTION_NW
}
 The 8 cardinal directions. More...
enum  QGEorientation {
  QGE_ORIENTATION_HOR,
  QGE_ORIENTATION_DIAG_POS,
  QGE_ORIENTATION_VER,
  QGE_ORIENTATION_DIAG_NEG,
  QGE_ORIENTATION_ALL
}
 Orientations (of a line/segment). More...
enum  QGEposition {
  QGE_POSITION_TOP,
  QGE_POSITION_RIGHT,
  QGE_POSITION_BOTTOM,
  QGE_POSITION_LEFT
}
 Relative positions. More...

Global functions to compute angles between vectors

Warning:
 O
  +---------------> X
  |\    |
  | \ <-'
  |  \    angle (in radians unless specified)
  |   \
  |
  v

    Y
  • The origin of the coordinate system is at top left corner.
  • Angles are clockwise from the X axis.


template<class T>
double qgAngle (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2)
 Angle (in [0, 2PI[ radians) between the X axis and the vector formed by the two given points.
template<class T>
double qgAngleDegrees (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2)
 Same as qgar::qgAngle(const GenPoint<T>&, const GenPoint<T>&), but the result is given in [0, 360[ degrees.
template<class T>
double qgAngle (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2, const GenPoint< T > &aPt3)
 Angle (in [0, 2PI[ radians) between two vectors determined by 3 points.
template<class T>
double qgAngleDegrees (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2, const GenPoint< T > &aPt3)
 Same as qgar::qgAngle(const GenPoint<T>&,const GenPoint<T>&, const GenPoint<T>&), but the result is given in [0, 360[ degrees.
template<class T>
double qgAngle (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2, const GenPoint< T > &aPt3, const GenPoint< T > &aPt4)
 Angle (in [0, 2PI[ radians) between two vectors determined by 4 points.
template<class T>
double qgAngleDegrees (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2, const GenPoint< T > &aPt3, const GenPoint< T > &aPt4)
 Same as qgar::qgAngle(const GenPoint<T>&,const GenPoint<T>&, const GenPoint<T>&, const GenPoint<T>&), but the result is given in [0, 360[ degrees.
template<class T>
double qgSlope (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2)
 Angle (in [0, PI[ radians) between the X axis and the segment formed by the two given points.
template<class T>
double qgSlopeDegrees (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2)
 Same as qgar::qgSlope(const GenPoint<T>&, const GenPoint<T>&), but the result is given in [0, 180[ degrees.

Global functions to compute distances between primitives

template<class T>
qgDX (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2)
 Difference between X coordinates of the given points: X(aPt1) - X(aPt2).
template<class T>
qgDY (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2)
 Difference between Y coordinates of the given points: Y(aPt1) - Y(aPt2).
template<class T>
double qgDist (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2)
 Distance between two points.
template<class T>
double qgDist (const GenPoint< T > &c, const GenPoint< T > &a, const GenPoint< T > &b)
 Distance between point c and its a perpendicular projection onto the line passing through points a and b.
template<class T>
double qgDist (const GenSegment< T > &aSeg)
 Distance between point (0,0) and its perpendicular projection onto the line supporting a segment.
template<class T>
double qgDist (const GenQgarSegment< T > &aQSeg)
 Distance between point (0,0) and its perpendicular projection onto the line supporting a Qgar segment.
template<class T>
double qgDist (const GenPoint< T > &aPt, const GenSegment< T > &aSeg)
 Distance between a point and its perpendicular projection onto the line supporting a segment.
template<class T>
double qgDist (const GenPoint< T > &c, const GenQgarSegment< T > &aQSeg)
 Distance between a point and its perpendicular projection onto the line supporting a Qgar segment.
template<class T>
double qgSqr_dist (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2)
 Squared distance between two points.

Point serialization/deserialization operators

Warning:
Class qgar::GenPoint does not derive from class qgar::ISerializable to get a smaller implementation of a point, and thus to save memory space when dealing with (lots of) points; if points were serializable, they would be implemented using an extra pointer to the table for virtual functions (the destructor in this case).


template<class T>
std::istream & operator>> (std::istream &anInStream, GenPoint< T > &aPt)
 Deserialize a point (read it from an input stream).
template<class T>
std::ostream & operator<< (std::ostream &anOutStream, const GenPoint< T > &aPt)
 Serialize a point (write it into an output stream).

Global geometrical functions which compute points

template<class T>
bool qgCircleCenter (const GenPoint< T > &t, const GenPoint< T > &p, const GenPoint< T > &q, GenPoint< double > &aCenter)
 Center of the circle passing through three given points.
template<class T>
bool qgIntersect (const GenSegment< T > &ab, const GenSegment< T > &cd, GenPoint< double > &i, double anAngle=Math::epsilonRadian())
 Intersection of the lines supporting two given segments.
template<class T>
bool qgIntersect (const GenQgarSegment< T > &aQSeg1, const GenQgarSegment< T > &aQSeg2, GenPoint< double > &aPt, double anAngle=Math::epsilonRadian())
 Intersection of the lines supporting two given Qgar segments.
template<class T>
GenPoint< double > qgMiddle (const GenSegment< T > &aSeg)
 Return the middle point of a segment.
template<class T>
GenPoint< double > qgMiddle (const GenQgarSegment< T > &aQSeg)
 Return the middle point of a Qgar segment.
template<class T>
GenPoint< double > qgMiddle (const GenPoint< T > &aPt1, const GenPoint< T > &aPt2)
 Return the middle point of the segment joining two points.
template<class T>
GenPoint< double > qgProjectPoint (const GenPoint< T > &aPt, const GenSegment< T > &aSeg)
 Return the orthogonal projection of a point onto a segment.
template<class T>
void qgProject (GenPoint< double > &aPt, const GenSegment< T > &aSeg)
 Orthogonal projection of a point onto a segment.
template<class T>
GenPoint< double > qgProjectPoint (const GenPoint< T > &aPt, const GenQgarSegment< T > &aQSeg)
 Return the orthogonal projection of a point onto a Qgar segment.
template<class T>
void qgProject (GenPoint< double > &aPt, const GenQgarSegment< T > &aQSeg)
 Ortogonal projection of a point onto a Qgar segment.

Global functions which compute segments

template<class T>
GenSegment< double > qgPerpendicular (const GenPoint< T > &aPt, const GenSegment< T > &aSeg)
 Return a segment perpendicular to the given segment.
template<class T>
GenQgarSegment< double > qgPerpendicular (const GenPoint< T > &aPt, const GenQgarSegment< T > &aQSeg)
 Return a Qgar segment perpendicular to the given Qgar segment.

Global functions to translate points and primitives

template<class T>
GenPoint< T > qgTranslatedPoint (const GenPoint< T > &aPt, T aTransX, T aTransY)
 Return the given point translated along X and Y axis.
template<class T>
GenSegment< T > qgTranslatedSegment (const GenSegment< T > &aSeg, T aTransX, T aTransY)
 Return the given segment translated along X and Y axis.
template<class T>
GenArc< T > qgTranslatedArc (const GenArc< T > &anArc, T aTransX, T aTransY)
 Return the given arc translated along X and Y axis.
template<class T>
GenPolygon< T > qgTranslatedPolygon (const GenPolygon< T > &aPolygon, T aTransX, T aTransY)
 Return the given polygon translated along X and Y axis.
template<class T>
GenPolyline< T > qgTranslatedPolyline (const GenPolyline< T > &aPolyline, T aTransX, T aTransY)
 Return the given polyline translated along X and Y axis.

Global functions about array indexes

template<class T>
int qgMinElement (const T *const anArray, int aSize)
 Return the index of the minimum element of an array.
template<class T>
int qgMinElement (const T *const anArray, int aFirstIdx, int aLastIdx)
 Return the index of the minimum element of a subrange of an array.
template<class T>
int qgMaxElement (const T *const anArray, int aSize)
 Return the index of the maximum element of an array.
template<class T>
int qgMaxElement (const T *const anArray, int aFirstIdx, int aLastIdx)
 Return the index of the maximum element of a subrange of an array.
template<class T>
int qgFind (const T *const anArray, int aSize, T aValue)
 Return the index of a value in an array.
template<class T>
int qgFind (const T *const anArray, int aFirstIdx, int aLastIdx, T aValue)
 Return the index of a value in a subrange of an array.

Global functions for array initialization

template<class T>
void qgFill (T *anArray, int aSize, T aValue)
 Set all elements of an array to a value.
template<class T>
void qgFill (T *anArray, int aFirstIdx, int aLastIdx, T aValue)
 Set each element of a subrange of an array.
template<class T>
void qgMemSet (T *anArray, int aSize)
 Set all bytes of an array to 0.
template<class T>
void qgMemSet (T *anArray, int aFirstIdx, int aLastIdx)
 Set all bytes of an array to 0.

Global mapping functions on arrays

template<class T>
void qgForEach (T *const aSource, T *aDest, int aSize, T(*anOperation)(const T &, const T &))
 Apply a function to pairs of elements from two arrays.
template<class T>
void qgForEach (T *const aSource, T *aDest, int aFirstIdx, int aLastIdx, T(*anOperation)(const T &, const T &))
 Apply a given function to pairs of elements from a subrange of two arrays.

KMeans helper functions

template<class T>
std::vector< GenCluster< T > > qgKMeans (const std::vector< T > &anObjVect, double(*aDistFunction)(const T &, const T &), int aClusterCnt=3) throw (QgarErrorAlgorithm)
 Construct a partition of clusters using a distance function.
template<class T>
std::vector< GenCluster< T > > qgKMeans (const std::vector< T > &anObjVect, double(*aDistFunction)(const T &, const T &), std::vector< T * > &aCenterVector, int aClusterCnt=3) throw (QgarErrorAlgorithm)
 Construct a partition of clusters of given centers, using a distance function.

Global functions for directions

  (0,0) +--------------------------------------------->  X
        |
        |                 QGE_DIRECTION_N
        |                        |  
        |     QGE_DIRECTION_NW \ | / QGE_DIRECTION_NE
        |                       \|/
        |   QGE_DIRECTION_W -----+----- QGE_DIRECTION_E
        |                       /|\
        |     QGE_DIRECTION_SW / | \ QGE_DIRECTION_SE
        |                        |
        |                 QGE_DIRECTION_S
     Y  V


QGEdirection qgDirection (int aDx, int aDy) throw (QgarErrorDomain)
 Return the direction corresponding to a (X,Y) translation.
qgar::QGEdirection qgOpposite (qgar::QGEdirection aDir) throw (qgar::QgarErrorInvalidArg)
 Return the opposite direction of a given direction.

Global functions for black & white.

int qgBWtoInt (QGEbw aBW)
 Conversion from qgar::QGEbw (black & white) to integer. Return 1 for qgar::QGE_BW_BLACK,.
int qgBWrevInt (QGEbw aBW)
 Dual-conversion from qgar::QGEbw (black & white) to integer.
QGEbw qgIntToBW (int anInt)
 Conversion from integer to qgar::QGEbw (black & white).
QGEbw qgIntToWB (int anInt)
 Dual-conversion from integer to qgar::QGEbw (black & white).
QGEbw qgBWswitch (QGEbw aBW)
 Switch between black and white.

Global functions for object deserialization

void qgReadObjName (std::istream &anIStream, const char *aClassName) throw (QgarErrorIO)
 Read the name part of an object.
template<class T>
void qgReadObjData (std::istream &anIStream, T &anObject) throw (qgar::QgarErrorIO)
 Read a data member of class T.

Stream operators for object serialization/deserialization

std::istream & operator>> (std::istream &anInStream, ISerializable &aSerial)
 Reads a serializable object from and input stream.
std::ostream & operator<< (std::ostream &anOutStream, const ISerializable &aSerial)<