2
2
Copyright (c) 1993-2008, Cognitive Technologies
5
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
8
* ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
���� ����������� �� ��������� �����, ���� ������ ������� � �����������
11
* ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
������ ����������, ������������ ��� ���������������, ������ �����������
13
��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
����������� ����� �� ��������.
15
* �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
���� ������������ � �������� �������� ��������� �/��� �����������
17
���������, ���������� �� ���� ��, ��� ���������������� �����������
20
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
������������� ������, ��������� � �������������� ��� ���������� ����������
27
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
5
Разрешается повторное распространение и использование как в виде исходного кода,
6
так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
8
* При повторном распространении исходного кода должны оставаться указанное
9
выше уведомление об авторском праве, этот список условий и последующий
11
* При повторном распространении двоичного кода в документации и/или в
12
других материалах, поставляемых при распространении, должны сохраняться
13
указанная выше информация об авторском праве, этот список условий и
14
последующий отказ от гарантий.
15
* Ни название Cognitive Technologies, ни имена ее сотрудников не могут
16
быть использованы в качестве средства поддержки и/или продвижения
17
продуктов, основанных на этом ПО, без предварительного письменного
20
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ ЛИЦАМИ "КАК
21
ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,
22
ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НО НЕ
23
ОГРАНИЧИВАЯСЬ ИМИ. НИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ
24
МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, НИ В КОЕМ СЛУЧАЕ НЕ
25
НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ
26
ПОСЛЕДОВАВШИЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПОНЕСЕННЫЕ ВСЛЕДСТВИЕ
27
НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ ПОТЕРИ ДАННЫХ, ИЛИ ДАННЫЕ,
28
СТАВШИЕ НЕГОДНЫМИ, ИЛИ УБЫТКИ И/ИЛИ ПОТЕРИ ДОХОДОВ, ПОНЕСЕННЫЕ ИЗ-ЗА ДЕЙСТВИЙ
29
ТРЕТЬИХ ЛИЦ И/ИЛИ ОТКАЗА ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ,
30
НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМИ СЛУЧАЯМИ), НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ДАЖЕ ЕСЛИ ТАКОЙ
31
ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ И ПОТЕРЬ.
33
33
Redistribution and use in source and binary forms, with or without modification,
34
34
are permitted provided that the following conditions are met:
82
82
#define MAXRASTERSIZE 1000
84
84
int SL_IsInPoly(Point32* a, CLINE_SL_POLY* p); //
85
BOOL SL_IsPointInAB(Point32 *P,Point32 *A,Point32 *B); //
85
Bool SL_IsPointInAB(Point32 *P,Point32 *A,Point32 *B); //
86
86
void CalculateRectForRaster(DLine* pCLine, PAGEINFO* page_info); //
87
87
void CalculatePolynomia(DLine* pCLine, PAGEINFO* page_info); //
88
88
void DrowRectForRaster(Rect32* rect); //
89
89
void DrowPolynomia(DLine* pCLine); //
90
90
//void DrowGetCorrectedLineStripesIntervals(CLine* pCLine, Handle HndMyWindow);
91
91
void DrowVerticalLineStripesIntervals(CLINE_handle line, Handle HndMyWindow);
92
void CleaningRaster(DLine* pCLine, LPSTR Buffer); //
93
void DrowCleanedRaster(DLine* pCLine, LPSTR Buffer, CIMAGEBITMAPINFOHEADER* image_info, Handle* HndMyWindow); //
94
void DrowVerticalLineRaster(DLine* pCLine, LPSTR Buffer, CIMAGEBITMAPINFOHEADER* image_info, Handle* HndMyWindow); //
95
void Transpose_bit_matrixes(PCHAR buf_in,PCHAR buf_out, Rect32* rect); //
96
BOOL GetLineStripesIntervals(CLINE_handle line, DLine* pCLine, PCHAR pRaster, BOOL FlagVerticalLine); //
97
//BOOL GetCorrectedLineStripesIntervals(CLine* pCLine);
98
void FillingStripes(CLINE_handle line, int y, INT Count, WORD* pIntervals, BOOL FlagVerticalLine, DLine* pCLine); //
99
void CheckDotLines(DLine* pCLine, BOOL FlagVerticalLine); //
100
int Bits2Ints(Word8* pBits, int nByteWidth, Int32* pIntervals); //
101
void TypeIntervals(int y, INT Count, WORD* pIntervals); //
92
void CleaningRaster(DLine* pCLine, char* Buffer); //
93
void DrowCleanedRaster(DLine* pCLine, char* Buffer, CIMAGEBITMAPINFOHEADER* image_info, Handle* HndMyWindow); //
94
void DrowVerticalLineRaster(DLine* pCLine, char* Buffer, CIMAGEBITMAPINFOHEADER* image_info, Handle* HndMyWindow); //
95
void Transpose_bit_matrixes(pchar buf_in,pchar buf_out, Rect32* rect); //
96
Bool GetLineStripesIntervals(CLINE_handle line, DLine* pCLine, pchar pRaster, Bool FlagVerticalLine); //
97
//Bool GetCorrectedLineStripesIntervals(CLine* pCLine);
98
void FillingStripes(CLINE_handle line, int y, int16_t Count, uint16_t* pIntervals, Bool FlagVerticalLine, DLine* pCLine); //
99
void CheckDotLines(DLine* pCLine, Bool FlagVerticalLine); //
100
int Bits2Ints(uchar* pBits, int nByteWidth, int32_t* pIntervals); //
101
void TypeIntervals(int y, int16_t Count, uint16_t* pIntervals); //
102
102
void TypeStripe(CLINE_handle hStripe, DEvent* pStripe); //
103
BOOL GetLineFragments(CLINE_handle line, DLine* pCLine); //
103
Bool GetLineFragments(CLINE_handle line, DLine* pCLine); //
104
104
Handle DrawLineFragments(CLINE_handle line, CPDLine pCLine, Handle HndMyWindow, int ColorIndex, Bool32 ForAllLines = FALSE); //
105
105
//void DrawSeparationPoints(CLine* pCLine, Handle HndMyWindow);
106
BOOL CorrectLineFragments(CLINE_handle line, DLine* pCLine); //
107
HANDLE GetTransposedRaster(DLine* pCLine, LPSTR Buffer, LPSTR* pRaster); //
108
void FreeTransposedBuffer(HANDLE hbuf, LPSTR pRaster); //
106
Bool CorrectLineFragments(CLINE_handle line, DLine* pCLine); //
107
HANDLE GetTransposedRaster(DLine* pCLine, char* Buffer, char** pRaster); //
108
void FreeTransposedBuffer(HANDLE hbuf, char* pRaster); //
109
109
void DrowVerticalLineCutPoints(CLINE_handle line, Handle HndMyWindowVert); //
110
110
void Drow2Rects(Rect32* rect, Rect32* rect1); //
111
111
void DeleteNoiseEvents(CLINE_handle hLine, DLine* pLine);
112
void CheckUnderlining(CLINE_handle hLine, DLine* pLine, LPSTR pSourceRaster);
113
Bool32 CompareRasterParts(CPDLine pLine, LPSTR pSourceRaster, Bool32 CheckSerif);
112
void CheckUnderlining(CLINE_handle hLine, DLine* pLine, char* pSourceRaster);
113
Bool32 CompareRasterParts(CPDLine pLine, char* pSourceRaster, Bool32 CheckSerif);
114
114
//////////////////////////////////////////////////////////////////////////////////
116
116
#ifdef __RSL_EXTERN__