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

« back to all changes in this revision

Viewing changes to cuneiform_src/Kern/usage/line_vp_2_am.cpp

  • 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:
54
54
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
55
55
*/
56
56
 
57
 
/**********  ���������  **********/
58
 
/*  �����      :  ��������� ��������                                          */
59
 
/*  ��������   :  13.03.01                                                    */
60
 
/*  ����       :  'Line_VP_2_AM.CPP'                                          */
61
 
/*  ���������� :  ������� ������ � �������.                                   */
62
 
/*  ���������� :  ����������� ������ � �������.                               */
 
57
/**********  Заголовок  **********/
 
58
/*  Автор      :  Александр Михайлов                                          */
 
59
/*  Редакция   :  13.03.01                                                    */
 
60
/*  Файл       :  'Line_VP_2_AM.CPP'                                          */
 
61
/*  Содержание :  Функции работы с памятью.                                   */
 
62
/*  Назначение :  Оптимизация работы с памятью.                               */
63
63
/*----------------------------------------------------------------------------*/
64
64
#include <stdio.h>
65
65
#include <math.h>
80
80
#include "puma_err.h"
81
81
/*------------own functions---------------------------------------------------*/
82
82
Bool FullMyLines_Mod (void *vLns, int nLns, void *vB, int *pForw, int *SizeForw
83
 
        , int ShifValuForw, Rect16 *pRcReg, Int32 SkewReg, Bool Hori, char *pStr, Bool ContWarn);
 
83
        , int ShifValuForw, Rect16 *pRcReg, int32_t SkewReg, Bool Hori, char *pStr, Bool ContWarn);
84
84
Bool FullMyLines_Mod (void *vLines, int count, void *vB, int *pForw, int *SizeForw
85
 
        , Rect16 *pRcReg, Int32 SkewReg, Bool Hori, char *pStr, Bool ContWarn);
 
85
        , Rect16 *pRcReg, int32_t SkewReg, Bool Hori, char *pStr, Bool ContWarn);
86
86
void FullNewMyLine (RLT_LINE *pLine, LineInfo *pLns, Bool Hori, Bool ContWarn);
87
87
void FullNewMyLine (RLT_LINE* pLine,DLine* pline,Bool Hori,Bool ContWarn);
88
88
/*----------------------------------------------------------------------------*/
89
89
 
90
90
Bool ConvertLinesToAM_rv (int FromType, int ToType, void *vB, int *pForw
91
 
                                        , int SizeForw, Rect16 *pRcReg, Int32 SkewReg, char *pStr, Bool ContWarn)
 
91
                                        , int SizeForw, Rect16 *pRcReg, int32_t SkewReg, char *pStr, Bool ContWarn)
92
92
{
93
93
        int i, Aim, Ind, nFrom, ShifValuForw, SizeF;
94
94
        int *pF;
99
99
        switch ((UN_LOADDATA)FromType)
100
100
        {
101
101
                case UN_LD_LinesVP :
102
 
                        /*  �������������� ���������� ����� ��������������� ������.  */
 
102
                        /*  Инициализируем постоянную часть преобразованных данных.  */
103
103
                        ret = TakeFixedPlace_rv (vB, UN_DT_RltLinePool, UN_DA_Linii, pStr); // f-t-d
104
104
                        if (ret!=RV_TRUE)
105
105
                                return ret;
106
 
                        /*  �������������� ���������� ����� ��������������� ������.  */
 
106
                        /*  Инициализируем переменную часть преобразованных данных.  */
107
107
                        pB->vPart[pB->nPart] = pB->vCurr;
108
108
                        pB->nPartUnits[pB->nPart] = 0;
109
109
                        pB->SizePartTotal[pB->nPart] = 0;
127
127
                                        pF = pForw + nFrom;
128
128
                                        SizeF = SizeForw - nFrom;
129
129
                                }
130
 
                                /*  ������ � ������������� ������.  */
 
130
                                /*  Доступ к преобразуемым данным.  */
131
131
                                Ind = FindSuchAimedData (vB, UN_DT_LineInfo, Aim);
132
132
                                if (Ind < 0)
133
133
                                        continue;
134
 
                                /*  ��������������� ������.  */
 
134
                                /*  Преобразовываем данные.  */
135
135
                                vFrom = pB->vPart[Ind];
136
136
                                nFrom = pB->nPartUnits[Ind];
137
137
                                ret = FullMyLines_Mod (vFrom, nFrom, vB, pF, &SizeF
146
146
                        LastForLinesAM (vB);
147
147
                        return ret;
148
148
                case UN_LD_LinesVP2 :
149
 
                        /*  �������������� ���������� ����� ��������������� ������.  */
 
149
                        /*  Инициализируем постоянную часть преобразованных данных.  */
150
150
                        ret = TakeFixedPlace_rv (vB, UN_DT_RltLinePool, UN_DA_Linii, pStr); // f-t-d
151
151
                        if (ret!=RV_TRUE)
152
152
                                return ret;
153
 
                        /*  �������������� ���������� ����� ��������������� ������.  */
 
153
                        /*  Инициализируем переменную часть преобразованных данных.  */
154
154
                        pB->vPart[pB->nPart] = pB->vCurr;
155
155
                        pB->nPartUnits[pB->nPart] = 0;
156
156
                        pB->SizePartTotal[pB->nPart] = 0;
172
172
                                        SizeF = SizeForw - nFrom;
173
173
                                        Hori = FALSE;
174
174
                                }
175
 
                                /*  ������ � ������������� ������.  */
 
175
                                /*  Доступ к преобразуемым данным.  */
176
176
                                Ind = FindSuchAimedData(vB,UN_DT_ClineLine,Aim);
177
177
                                if (Ind < 0)
178
178
                                        continue;
179
 
                                /*  ��������������� ������.  */
 
179
                                /*  Преобразовываем данные.  */
180
180
                                vFrom = pB->vPart[Ind];
181
181
                                nFrom = pB->nPartUnits[Ind];
182
182
                                ret = FullMyLines_Mod (vFrom, nFrom, vB, pF, &SizeF
196
196
}
197
197
/*----------------------------------------------------------------------------*/
198
198
Bool FullMyLines_Mod (void *vLns, int nLns, void *vB, int *pForw, int *SizeForw
199
 
        , int ShifValuForw, Rect16 *pRcReg, Int32 SkewReg, Bool Hori, char *pStr, Bool ContWarn)
 
199
        , int ShifValuForw, Rect16 *pRcReg, int32_t SkewReg, Bool Hori, char *pStr, Bool ContWarn)
200
200
{
201
201
        int i, nLine, SizeCurr, nTeor, LentOld, LentNew;
202
202
        LineInfo *pLns;
229
229
                LentOld  = (int)sqrt ((double)LentOld);
230
230
                if (*SizeForw <= 0)
231
231
                {
232
 
                        sprintf (pStr, "�� ������� ������ ��� 1 ��������� ������� ��������!");
 
232
                        sprintf (pStr, "Не хватило памяти под 1 очередной элемент эволюции!");
233
233
                        return RV_DOUBT;
234
234
                }
235
235
                pForw[i] = -1;
255
255
                        FullNewMyLine (pLine, pLns, Hori, ContWarn);
256
256
                        if (nTeor > pB->SizeCurr)
257
257
                        {
258
 
                                sprintf (pStr, "�� ������� ������ ��� 1 ��������� ��������� RLT_LINE!");
 
258
                                sprintf (pStr, "Не хватило памяти под 1 очередную структуру RLT_LINE!");
259
259
                                return RV_DOUBT;
260
260
                        }
261
261
                        pForw[i] = nLine + ShifValuForw;
265
265
                }
266
266
                pLns++;
267
267
        }
268
 
        /*  ������������ � �������  */
 
268
        /*  формальности с буфером  */
269
269
        pB->SizePartUnits[pB->nPart-1] = nTeor;
270
270
        pB->nPartUnits[pB->nPart-1] += nLine;
271
271
        pB->SizePartTotal[pB->nPart-1] += nLine * nTeor;
275
275
}
276
276
/*----------------------------------------------------------------------------*/
277
277
Bool FullMyLines_Mod (void *vLines, int count, void *vB, int *pForw, int *SizeForw
278
 
        , Rect16 *pRcReg, Int32 SkewReg, Bool Hori, char *pStr, Bool ContWarn)
 
278
        , Rect16 *pRcReg, int32_t SkewReg, Bool Hori, char *pStr, Bool ContWarn)
279
279
{
280
280
        int i, nLine, SizeCurr, nTeor, LentOld, LentNew;
281
281
        int move=0;
294
294
                move=pB->nPartUnits[pB->nPart-1];
295
295
        for (i=0; i<count; i++,pline++)
296
296
        {
297
 
                LinBeg.x =(Int16)pline->Line.Beg_X;
298
 
                LinBeg.y =(Int16)pline->Line.Beg_Y;
299
 
                LinEnd.x =(Int16)pline->Line.End_X;
300
 
                LinEnd.y =(Int16)pline->Line.End_Y;
 
297
                LinBeg.x =(int16_t)pline->Line.Beg_X;
 
298
                LinBeg.y =(int16_t)pline->Line.Beg_Y;
 
299
                LinEnd.x =(int16_t)pline->Line.End_X;
 
300
                LinEnd.y =(int16_t)pline->Line.End_Y;
301
301
                LentOld  =  (LinEnd.x-LinBeg.x)*(LinEnd.x-LinBeg.x);
302
302
                LentOld += ((LinEnd.y-LinBeg.y)*(LinEnd.y-LinBeg.y));
303
303
                LentOld  = (int)sqrt ((double)LentOld);
304
304
                if (*SizeForw <= 0)
305
305
                {
306
 
                        sprintf (pStr, "�� ������� ������ ��� 1 ��������� ������� ��������!");
 
306
                        sprintf (pStr, "Не хватило памяти под 1 очередной элемент эволюции!");
307
307
                        return RV_DOUBT;
308
308
                }
309
309
                pForw[i] = -1;
329
329
                        FullNewMyLine (pLine, pline, Hori, ContWarn);
330
330
                        if (nTeor > pB->SizeCurr)
331
331
                        {
332
 
                                sprintf (pStr, "�� ������� ������ ��� 1 ��������� ��������� RLT_LINE!");
 
332
                                sprintf (pStr, "Не хватило памяти под 1 очередную структуру RLT_LINE!");
333
333
                                return RV_DOUBT;
334
334
                        }
335
335
                        pForw[i] = nLine+move;
338
338
                        SizeCurr -= nTeor;
339
339
                }
340
340
        }
341
 
        /*  ������������ � �������  */
 
341
        /*  формальности с буфером  */
342
342
        pB->SizePartUnits[pB->nPart-1] = nTeor;
343
343
        pB->nPartUnits[pB->nPart-1] += nLine;
344
344
        pB->SizePartTotal[pB->nPart-1] += nLine * nTeor;
356
356
        {
357
357
     #ifdef Almi
358
358
                if (ContWarn)
359
 
           AM_Console ("Rlt-Warning-Continue : ���������� ����� ��������������� �������!");
 
359
           AM_Console ("Rlt-Warning-Continue : Обнаружена линия неположительной толщины!");
360
360
     #endif
361
361
                pLine->Wid = 1;
362
362
        }
381
381
{
382
382
        NR_SimpLine* pSLine=&(pline->Line);
383
383
        pLine->Wid   = pSLine->Wid10/10;
384
 
        pLine->nSeg  = (Int16)pline->n_event;
 
384
        pLine->nSeg  = (int16_t)pline->n_event;
385
385
        pLine->Plot  = (pline->Qual*255)/100;
386
386
//      pLine->nSeg=1;
387
387
        if (pLine->Wid<=0)
388
388
        {
389
389
     #ifdef Almi
390
390
                if (ContWarn)
391
 
                        AM_Console ("Rlt-Warning-Continue : ���������� ����� ��������������� �������!");
 
391
                        AM_Console ("Rlt-Warning-Continue : Обнаружена линия неположительной толщины!");
392
392
     #endif
393
393
                pLine->Wid = 1;
394
394
        }