~ubuntu-branches/ubuntu/trusty/cuneiform/trusty

« back to all changes in this revision

Viewing changes to cuneiform_src/Kern/hhh/tigerh/h/layout.h

  • Committer: Bazaar Package Importer
  • Author(s): Jakub Wilk, c-assert.diff, slovenian-slv.diff
  • Date: 2011-01-26 21:53:07 UTC
  • mfrom: (5.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20110126215307-62x61mcesr607qb7
Tags: 1.0.0+dfsg-2
* Upload to unstable.
* Explicitly build-depend on pkg-config. Thanks to Stefano Rivera for the
  bug report.
* Add Vcs-* fields.
* Use the standard C assert() macro, rather than custom Cuneiform one.
  [c-assert.diff]
* Pass CFLAGS, CXXFLAGS and LDFLAGS (get from dpkg-buildflags) to cmake
  (closes: #608345). Thanks to Sami Liedes for the bug report.
  + Build depend on dpkg-dev (>= 1.15.7).
* Pass --parallel to dh.
  + Bump debhelper minimum version to 7.4.10.
* Update debian/copyright to the latest DEP-5 version.
* Bump year in debian/copyright.
* Explicitly link to GraphicsMagick (rather than via the ImageMagick
  compatibility layer).
* Don't ship /usr/lib/cuneiform/*.so symlinks. These libraries are
  considered private, at least until #598616 is fixed.
* Rename some private variables in debian/rules to make them lowercase.
* Update patch headers.
* Provide proper ‘build-arch’ and ‘build-indep’ targets in debian/rules.
* Document input format in the manual page (closes: #572061). Thanks to
  Janusz S. Bień for the bug report.
* Use ‘slv’ (rather than ‘slo’) as language code for Slovenian.
  [slovenian-slv.diff]
* Fix package description: Slovenian is supported, Slovak is not.
* Improve documentation of the language (-l) option (closes: #602512).
  Thanks to Jari Aalto for the bug report.
* Install reasons file for vrms.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
Copyright (c) 1993-2008, Cognitive Technologies
3
3
All rights reserved.
4
4
 
5
 
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
 
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
7
 
 
8
 
      * ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
 
        ���� ����������� �� ��������� �����, ���� ������ ������� � �����������
10
 
        ����� �� ��������.
11
 
      * ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
 
        ������ ����������, ������������ ��� ���������������, ������ �����������
13
 
        ��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
 
        ����������� ����� �� ��������.
15
 
      * �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
 
        ���� ������������ � �������� �������� ��������� �/��� �����������
17
 
        ���������, ���������� �� ���� ��, ��� ���������������� �����������
18
 
        ����������.
19
 
 
20
 
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
 
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
 
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
 
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
 
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
 
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
 
������������� ������, ��������� � �������������� ��� ���������� ����������
27
 
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
 
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
 
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
 
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
 
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
 
5
Разрешается повторное распространение и использование как в виде исходного кода,
 
6
так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
 
7
 
 
8
      * При повторном распространении исходного кода должны оставаться указанное
 
9
        выше уведомление об авторском праве, этот список условий и последующий
 
10
        отказ от гарантий.
 
11
      * При повторном распространении двоичного кода в документации и/или в
 
12
        других материалах, поставляемых при распространении, должны сохраняться
 
13
        указанная выше информация об авторском праве, этот список условий и
 
14
        последующий отказ от гарантий.
 
15
      * Ни название Cognitive Technologies, ни имена ее сотрудников не могут
 
16
        быть использованы в качестве средства поддержки и/или продвижения
 
17
        продуктов, основанных на этом ПО, без предварительного письменного
 
18
        разрешения.
 
19
 
 
20
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ ЛИЦАМИ "КАК
 
21
ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,
 
22
ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НО НЕ
 
23
ОГРАНИЧИВАЯСЬ ИМИ. НИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ
 
24
МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, НИ В КОЕМ СЛУЧАЕ НЕ
 
25
НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ
 
26
ПОСЛЕДОВАВШИЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПОНЕСЕННЫЕ ВСЛЕДСТВИЕ
 
27
НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ ПОТЕРИ ДАННЫХ, ИЛИ ДАННЫЕ,
 
28
СТАВШИЕ НЕГОДНЫМИ, ИЛИ УБЫТКИ И/ИЛИ ПОТЕРИ ДОХОДОВ, ПОНЕСЕННЫЕ ИЗ-ЗА ДЕЙСТВИЙ
 
29
ТРЕТЬИХ ЛИЦ И/ИЛИ ОТКАЗА ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ,
 
30
НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМИ СЛУЧАЯМИ), НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ДАЖЕ ЕСЛИ ТАКОЙ
 
31
ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ И ПОТЕРЬ.
32
32
 
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:
55
55
*/
56
56
 
57
57
/*
58
 
  ������������������������������������������������������������������
59
 
  ��                                                              ��
60
 
  ��     Copyright (C) 1990 Cognitive Technology Corporation.     ��
61
 
  ��     All rights reserved. This program is proprietary and     ��
62
 
  ��     a trade secret of Cognitive Technology Corporation.      ��
63
 
  ��                                                              ��
64
 
  ������������������������������������������������������������������
 
58
  ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
 
59
  ЫЫ                                                              ЫЫ
 
60
  ЫЫ     Copyright (C) 1990 Cognitive Technology Corporation.     ЫЫ
 
61
  ЫЫ     All rights reserved. This program is proprietary and     ЫЫ
 
62
  ЫЫ     a trade secret of Cognitive Technology Corporation.      ЫЫ
 
63
  ЫЫ                                                              ЫЫ
 
64
  ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
65
65
*/
66
66
 
67
67
/****************************************************************************
168
168
extern int nRootStripsOffset;
169
169
 
170
170
# ifdef LT_STAND_ALONE
171
 
BOOL RootsLoadFile (PSTR pFilename);
 
171
Bool RootsLoadFile (char * pFilename);
172
172
# endif
173
173
void CalculatePageParameters (void);
174
174
 
199
199
extern int  nHeightesAllocated;
200
200
extern int  nHeightes;
201
201
 
202
 
extern INT nIncline;
 
202
extern int16_t nIncline;
203
203
 
204
 
BOOL InclinesAccount (void);
 
204
Bool InclinesAccount (void);
205
205
void InclinesFreeData (void);
206
206
 
207
 
void IdealXY (INT x, INT y, INT *px, INT *py);
208
 
void RealXY (INT x, INT y, INT *px, INT *py);
 
207
void IdealXY (int16_t x, int16_t y, int16_t *px, int16_t *py);
 
208
void RealXY (int16_t x, int16_t y, int16_t *px, int16_t *py);
209
209
 
210
210
void RotatePageToIdeal (void);
211
211
 
212
 
// �������� ��������� � ������ �������
 
212
// пересчет координат с учетом наклона
213
213
# define IDEAL_XY(x, y)   \
214
214
         {\
215
 
             y = (INT) (y - (LONG) x * nIncline / INCLINE_FACTOR);\
216
 
             x = (INT) (x + (LONG) y * nIncline / INCLINE_FACTOR);\
 
215
             y = (int16_t) (y - (int32_t) x * nIncline / INCLINE_FACTOR);\
 
216
             x = (int16_t) (x + (int32_t) y * nIncline / INCLINE_FACTOR);\
217
217
         }
218
218
 
219
 
// ������� � ��������� �����������
 
219
// возврат к настоящим координатам
220
220
# define REAL_XY(x, y)   \
221
221
         {\
222
 
             x = (INT) (x - (LONG) y * nIncline / INCLINE_FACTOR);\
223
 
             y = (INT) (y + (LONG) x * nIncline / INCLINE_FACTOR);\
 
222
             x = (int16_t) (x - (int32_t) y * nIncline / INCLINE_FACTOR);\
 
223
             y = (int16_t) (y + (int32_t) x * nIncline / INCLINE_FACTOR);\
224
224
                }
225
225
 
226
226
/****************************************************************************
280
280
 *   Components                                                             *
281
281
 ***************************************************************************/
282
282
 
283
 
// ������������� + ������� (+ �����); �������� ������
 
283
// прямоугольник + площадь (+ номер); образуют список
284
284
struct _Component // equal to COMP
285
285
    {
286
286
        COMP    *pNext;
292
292
        int     yTop;
293
293
        int     xRight;
294
294
        int     yBottom;
295
 
        BOOL    bRectangleAccounted;
 
295
        Bool    bRectangleAccounted;
296
296
 
297
297
        STRIP   *pStripsListBegin;
298
298
        STRIP   *pStripsListEnd;
318
318
 
319
319
void CompsBuild
320
320
(
321
 
    BYTE *pMatrix,
 
321
    uchar *pMatrix,
322
322
    int   nWidth,
323
323
    int   nHeight,
324
324
    int   nSize,
375
375
# define PAGE_MATRIX_REAL_WIDTH  (PAGE_MATRIX_WIDTH  << PAGE_COMP_SHIFT)
376
376
# define PAGE_MATRIX_REAL_HEIGHT (PAGE_MATRIX_HEIGHT << PAGE_COMP_SHIFT)
377
377
 
378
 
extern BYTE *PageMatrix;   /* [PAGE_MATRIX_SIZE] */
379
 
extern BOOL bPageMatrixInitialized;
 
378
extern uchar *PageMatrix;   /* [PAGE_MATRIX_SIZE] */
 
379
extern Bool bPageMatrixInitialized;
380
380
 
381
381
void PageMatrixInit (int nWidth, int nHeight);
382
382
void SpecCompPut (MN *mn);
385
385
void PageMatrixVertGlue (void);
386
386
void PageMatrixExcludeIntersections (void);
387
387
void PageMatrixBuild (void);
388
 
void PageMatrixPutSeparators (BOOL bConvertToRealCoords);
389
 
void PageMatrixExcludeSeparators (BOOL bConvertToRealCoords);
390
 
BYTE PageMatrixFlagsByIdealXY (int xIdeal, int yIdeal);
 
388
void PageMatrixPutSeparators (Bool bConvertToRealCoords);
 
389
void PageMatrixExcludeSeparators (Bool bConvertToRealCoords);
 
390
uchar PageMatrixFlagsByIdealXY (int xIdeal, int yIdeal);
391
391
void PageMatrixFreeData (void);
392
392
 
393
393
# define PAGE_MATRIX_MARK_SHIFT  3
463
463
    BLOCK *pNext;
464
464
    BLOCK *pPrev;
465
465
 
466
 
    INT        Type;
 
466
    int16_t        Type;
467
467
    unsigned   uFlags;
468
468
    int        nNumber;
469
469
    int        nUserNum;  // Number call of User ExractBlocks Piter 08-17-95 06:20pm
470
470
    //05-25-94 03:01pm,Pit
471
 
    BYTE       language; // �� ����� ����� ��������
 
471
    uchar       language; // на каком языке написано
472
472
    RECTANGLE  Rect;
473
473
 
474
474
    int        nEmbedding;
487
487
    int        nLetters;
488
488
    int        nDust;
489
489
    int        nHeightesSum;
490
 
    int        nAverageHeight; // �������� (��. BlockSetAverageHeight()) --
491
 
                               // -- "������� ������ ���� � �����".
 
490
    int        nAverageHeight; // примерно (см. BlockSetAverageHeight()) --
 
491
                               // -- "средняя высота рута в блоке".
492
492
    int        nParents;
493
493
    int        nChildren;
494
494
    BLOCK      *pParent;
498
498
    SEPARATOR   *pLeftSep;
499
499
    SEPARATOR   *pRightSep;
500
500
 
501
 
    int        *pHorzHystogram;          // (������������) ����������� ��� ����������
502
 
                                         // �� �����������
503
 
    int        nActualHeight;            // ���� �� BlockHorzHystogramBuild() --
504
 
                                         // /��������/ ����� (Rect.bottom - Rect.top)
505
 
    int        nStartColumnWidth;            // ��. BlockCalculateBreakingParameters();
506
 
    int        nUnconditionalMinColumnWidth; // ���� ���� ������ �������,
507
 
    int        nConditionalMinColumnWidth;   // ��� 1st>=2nd>=3rd (������ ����)
 
501
    int        *pHorzHystogram;          // (вертикальная) гистограмма для разделения
 
502
                                         // ПО ГОРИЗОНТАЛИ
 
503
    int        nActualHeight;            // судя по BlockHorzHystogramBuild() --
 
504
                                         // /примерно/ равно (Rect.bottom - Rect.top)
 
505
    int        nStartColumnWidth;            // см. BlockCalculateBreakingParameters();
 
506
    int        nUnconditionalMinColumnWidth; // пока могу только сказать,
 
507
    int        nConditionalMinColumnWidth;   // что 1st>=2nd>=3rd (сверху вниз)
508
508
 
509
509
    int        *pHystogram;              // Hystogram for strings extraction
510
510
    int        nHystColumns;
511
 
    int        hPicture;                   // Pit. �������� ��������
 
511
    int        hPicture;                   // Pit. Описание картинки
512
512
};
513
513
 
514
514
extern BLOCK *pBlocksList;
520
520
extern BLOCK *pBottomBlocksList;
521
521
extern int nNextBlockNumber;
522
522
 
523
 
BOOL RectEq (RECTANGLE *p, RECTANGLE *q);
524
 
BOOL RectIsCrossed (RECTANGLE *p, RECTANGLE *q);
 
523
Bool RectEq (RECTANGLE *p, RECTANGLE *q);
 
524
Bool RectIsCrossed (RECTANGLE *p, RECTANGLE *q);
525
525
void RectAsgPlus (RECTANGLE *p, RECTANGLE *q);
526
 
BOOL RectIncludes (RECTANGLE *p, RECTANGLE *q);
 
526
Bool RectIncludes (RECTANGLE *p, RECTANGLE *q);
527
527
 
528
528
BLOCK *BlocksAddDescriptor (void);
529
529
void BlocksRemoveDescriptor (BLOCK *p);
560
560
extern int  nHystColumns;
561
561
extern int  nHystColumnWidth;
562
562
 
563
 
BOOL HystogramAllocateBody (void);
 
563
Bool HystogramAllocateBody (void);
564
564
void HystogramMakeIntegral (int *pInt, int *p, int nWidth);
565
565
void HystogramFreeData (void);
566
566
 
581
581
# define MARKED_CELL          2
582
582
# define SUSPICION_COMP_CELL  4
583
583
 
584
 
extern BYTE *pSB_Matrix;
 
584
extern uchar *pSB_Matrix;
585
585
extern int  nSB_Width;
586
586
extern int  nSB_Height;
587
587
extern int  nSB_Size;
592
592
extern BLOCK *pSB_Block;
593
593
# endif
594
594
 
595
 
BOOL SB_MatrixBuild (BLOCK *pBlock, int nCellWidth, int nCellHeight);
 
595
Bool SB_MatrixBuild (BLOCK *pBlock, int nCellWidth, int nCellHeight);
596
596
void SB_MatrixFreeData (void);
597
597
 
598
598
# define FCC_NOT_FOUND        0
602
602
 
603
603
int  CompsFindCompToCut (COMP **ppResult);
604
604
 
605
 
BOOL TrySmartBreaking (BLOCK *pBlock);
 
605
Bool TrySmartBreaking (BLOCK *pBlock);
606
606
void SmartBreakingFreeData (void);
607
607
 
608
608
/****************************************************************************
643
643
void WSB_BuildHystograms (void);
644
644
void WSB_AddPoint (WSB_POINT Point);
645
645
void WSB_BuildPoints (void);
646
 
BOOL WSB_BreakBlock (BLOCK * p, WSB_POINT Point);
647
 
BOOL WSB_CutUpperLine (BLOCK * p, WSB_POINT Point);
 
646
Bool WSB_BreakBlock (BLOCK * p, WSB_POINT Point);
 
647
Bool WSB_CutUpperLine (BLOCK * p, WSB_POINT Point);
648
648
void WhiteStripsBreaking (void);
649
649
void WSB_FreeData (void);
650
650
 
655
655
# if defined (LT_DEBUG) || defined (SE_DEBUG)
656
656
void LT_GraphicsOpen (void);
657
657
void LT_GraphicsClearScreen (void);
658
 
void LT_GraphicsTitle (char *pTitle);
 
658
void LT_GraphicsTitle (const char *pTitle);
659
659
int  LT_Getch (void);
660
660
 
661
661
void LT_GraphicsRootsOutput (const char *pTitle);
704
704
 *   Blocks processing tools                                                *
705
705
 ***************************************************************************/
706
706
 
707
 
BOOL BlockBreakOnVertical (BLOCK *p, BLOCK **pq, BLOCK **pr,
 
707
Bool BlockBreakOnVertical (BLOCK *p, BLOCK **pq, BLOCK **pr,
708
708
                           int x, int nBreakingWidth);
709
 
BOOL BlockBreakOnHorizontal (BLOCK *p, BLOCK **pq, BLOCK **pr,
 
709
Bool BlockBreakOnHorizontal (BLOCK *p, BLOCK **pq, BLOCK **pr,
710
710
                             int y);
711
 
BOOL BlockBreakByRectangle (BLOCK *p, BLOCK **pq, BLOCK **pr,
 
711
Bool BlockBreakByRectangle (BLOCK *p, BLOCK **pq, BLOCK **pr,
712
712
                            int xBegin, int yBegin, int xEnd, int yEnd);
713
713
BLOCK *BlocksGlueTwo (BLOCK *p, BLOCK *q);
714
714
void BlockRemove (BLOCK *p);
720
720
 
721
721
struct _RootBackup
722
722
{
723
 
    INT  nBlock;
 
723
    int16_t  nBlock;
724
724
    ROOT *pNext;
725
725
};
726
726
 
735
735
    BLOCK        *pBlocks;
736
736
 
737
737
    long         lPictures; // size of pictures buffer Pit 09-29-94 03:05pm
738
 
    PBYTE        pPictures; //         pictures buffer
 
738
    puchar        pPictures; //         pictures buffer
739
739
 
740
 
    int          nSheets;   // �᫮ ⠡���
741
 
    SHT          *sht;      // �� ����⥫�
 
740
    int          nSheets;   // зЁб«® в Ў«Ёж
 
741
    SHT          *sht;      // Ёе ®ЇЁб вҐ«Ё
742
742
};
743
743
 
744
744
extern BACKUP_COPY *pBC_First;
781
781
void LayoutPart2 (void);
782
782
 
783
783
# ifdef LT_DEBUG
784
 
extern BOOL bDebugTimeFlag;
 
784
extern Bool bDebugTimeFlag;
785
785
extern int  LT_DebugGraphicsLevel;
786
 
extern BOOL bDebugOptionCalibratePictureRemovingCriteria;
787
 
extern BOOL bDebugOptionCalibrateDD_RemovingCriteria;
788
 
extern BOOL bDebugOptionCalibrateLinearRemovingCriteria;
 
786
extern Bool bDebugOptionCalibratePictureRemovingCriteria;
 
787
extern Bool bDebugOptionCalibrateDD_RemovingCriteria;
 
788
extern Bool bDebugOptionCalibrateLinearRemovingCriteria;
789
789
# endif
790
790
 
791
 
extern BOOL bOptionForceOneColumn;
792
 
extern BOOL bOptionBusinessCardsLayout;
793
 
 
794
 
extern BOOL bOptionPointSizeAnalysis;
795
 
extern BOOL bOptionSmartBreaking;
796
 
extern BOOL bOptionInitialBreakingByPageMatrix;
797
 
extern BOOL bOptionBlocksRemovingByPageMatrix;
798
 
extern BOOL bOptionBlocksRemovingByDustDistribution;
799
 
extern BOOL bOptionSpecialHorizontalCutting;
800
 
extern BOOL bOptionWhiteStripsBreaking;
801
 
 
802
 
 
803
 
//BOOL AddRoot(CCOM_comp * comp);// Piter
804
 
BOOL AddRoot(CCOM_comp * comp, Bool32 FirstTime);// Roman
 
791
extern Bool bOptionForceOneColumn;
 
792
extern Bool bOptionBusinessCardsLayout;
 
793
 
 
794
extern Bool bOptionPointSizeAnalysis;
 
795
extern Bool bOptionSmartBreaking;
 
796
extern Bool bOptionInitialBreakingByPageMatrix;
 
797
extern Bool bOptionBlocksRemovingByPageMatrix;
 
798
extern Bool bOptionBlocksRemovingByDustDistribution;
 
799
extern Bool bOptionSpecialHorizontalCutting;
 
800
extern Bool bOptionWhiteStripsBreaking;
 
801
 
 
802
 
 
803
//Bool AddRoot(CCOM_comp * comp);// Piter
 
804
Bool AddRoot(CCOM_comp * comp, Bool32 FirstTime);// Roman
805
805
 
806
806
# endif
807
807