Leptonica  1.54
Файл src/ptabasic.c
#include <string.h>
#include "allheaders.h"

Функции

static l_int32 ptaExtendArrays (PTA *pta)
static l_int32 ptaaExtendArray (PTAA *ptaa)
PTAptaCreate (l_int32 n)
PTAptaCreateFromNuma (NUMA *nax, NUMA *nay)
void ptaDestroy (PTA **ppta)
PTAptaCopy (PTA *pta)
PTAptaCopyRange (PTA *ptas, l_int32 istart, l_int32 iend)
PTAptaClone (PTA *pta)
l_int32 ptaEmpty (PTA *pta)
l_int32 ptaAddPt (PTA *pta, l_float32 x, l_float32 y)
l_int32 ptaInsertPt (PTA *pta, l_int32 index, l_int32 x, l_int32 y)
l_int32 ptaRemovePt (PTA *pta, l_int32 index)
l_int32 ptaGetRefcount (PTA *pta)
l_int32 ptaChangeRefcount (PTA *pta, l_int32 delta)
l_int32 ptaGetCount (PTA *pta)
l_int32 ptaGetPt (PTA *pta, l_int32 index, l_float32 *px, l_float32 *py)
l_int32 ptaGetIPt (PTA *pta, l_int32 index, l_int32 *px, l_int32 *py)
l_int32 ptaSetPt (PTA *pta, l_int32 index, l_float32 x, l_float32 y)
l_int32 ptaGetArrays (PTA *pta, NUMA **pnax, NUMA **pnay)
PTAptaRead (const char *filename)
PTAptaReadStream (FILE *fp)
l_int32 ptaWrite (const char *filename, PTA *pta, l_int32 type)
l_int32 ptaWriteStream (FILE *fp, PTA *pta, l_int32 type)
PTAAptaaCreate (l_int32 n)
void ptaaDestroy (PTAA **pptaa)
l_int32 ptaaAddPta (PTAA *ptaa, PTA *pta, l_int32 copyflag)
l_int32 ptaaGetCount (PTAA *ptaa)
PTAptaaGetPta (PTAA *ptaa, l_int32 index, l_int32 accessflag)
l_int32 ptaaGetPt (PTAA *ptaa, l_int32 ipta, l_int32 jpt, l_float32 *px, l_float32 *py)
l_int32 ptaaInitFull (PTAA *ptaa, PTA *pta)
l_int32 ptaaReplacePta (PTAA *ptaa, l_int32 index, PTA *pta)
l_int32 ptaaAddPt (PTAA *ptaa, l_int32 ipta, l_float32 x, l_float32 y)
l_int32 ptaaTruncate (PTAA *ptaa)
PTAAptaaRead (const char *filename)
PTAAptaaReadStream (FILE *fp)
l_int32 ptaaWrite (const char *filename, PTAA *ptaa, l_int32 type)
l_int32 ptaaWriteStream (FILE *fp, PTAA *ptaa, l_int32 type)

Переменные

static const l_int32 INITIAL_PTR_ARRAYSIZE = 20

Функции

l_int32 ptaaAddPt ( PTAA ptaa,
l_int32  ipta,
l_float32  x,
l_float32  y 
)

ptaaAddPt()

Input: ptaa ipta (to the i-th pta) x,y (point coordinates) Return: 0 if OK; 1 on error

l_int32 ptaaAddPta ( PTAA ptaa,
PTA pta,
l_int32  copyflag 
)

ptaaAddPta()

Input: ptaa pta (to be added) copyflag (L_INSERT, L_COPY, L_CLONE) Return: 0 if OK, 1 on error

ptaaCreate()

Input: n (initial number of ptrs) Return: ptaa, or null on error

l_int32 ptaAddPt ( PTA pta,
l_float32  x,
l_float32  y 
)

ptaAddPt()

Input: pta x, y Return: 0 if OK, 1 on error

void ptaaDestroy ( PTAA **  pptaa)

ptaaDestroy()

Input: &ptaa <to be="" nulled>=""> Return: void

static l_int32 ptaaExtendArray ( PTAA ptaa) [static]

ptaaExtendArray()

Input: ptaa Return: 0 if OK, 1 on error

l_int32 ptaaGetCount ( PTAA ptaa)

ptaaGetCount()

Input: ptaa Return: count, or 0 if no ptaa

l_int32 ptaaGetPt ( PTAA ptaa,
l_int32  ipta,
l_int32  jpt,
l_float32 px,
l_float32 py 
)

ptaaGetPt()

Input: ptaa ipta (to the i-th pta) jpt (index to the j-th pt in the pta) &x (<optional return>=""> float x value) &y (<optional return>=""> float y value) Return: 0 if OK; 1 on error

PTA* ptaaGetPta ( PTAA ptaa,
l_int32  index,
l_int32  accessflag 
)

ptaaGetPta()

Input: ptaa index (to the i-th pta) accessflag (L_COPY or L_CLONE) Return: pta, or null on error

l_int32 ptaaInitFull ( PTAA ptaa,
PTA pta 
)

ptaaInitFull()

Input: ptaa (can have non-null ptrs in the ptr array) pta (to be replicated into the entire ptr array) Return: 0 if OK; 1 on error

PTAA* ptaaRead ( const char *  filename)

ptaaRead()

Input: filename Return: ptaa, or null on error

PTAA* ptaaReadStream ( FILE *  fp)

ptaaReadStream()

Input: stream Return: ptaa, or null on error

l_int32 ptaaReplacePta ( PTAA ptaa,
l_int32  index,
PTA pta 
)

ptaaReplacePta()

Input: ptaa index (to the index-th pta) pta (insert and replace any existing one) Return: 0 if OK, 1 on error

Notes: (1) Any existing pta is destroyed, and the input one is inserted in its place. (2) If the index is invalid, return 1 (error)

l_int32 ptaaTruncate ( PTAA ptaa)

ptaaTruncate()

Input: ptaa Return: 0 if OK, 1 on error

Notes: (1) This identifies the largest index containing a pta that has any points within it, destroys all pta above that index, and resets the count.

l_int32 ptaaWrite ( const char *  filename,
PTAA ptaa,
l_int32  type 
)

ptaaWrite()

Input: filename ptaa type (0 for float values; 1 for integer values) Return: 0 if OK, 1 on error

l_int32 ptaaWriteStream ( FILE *  fp,
PTAA ptaa,
l_int32  type 
)

ptaaWriteStream()

Input: stream ptaa type (0 for float values; 1 for integer values) Return: 0 if OK; 1 on error

l_int32 ptaChangeRefcount ( PTA pta,
l_int32  delta 
)
PTA* ptaClone ( PTA pta)

ptaClone()

Input: pta Return: ptr to same pta, or null on error

PTA* ptaCopy ( PTA pta)

ptaCopy()

Input: pta Return: copy of pta, or null on error

PTA* ptaCopyRange ( PTA ptas,
l_int32  istart,
l_int32  iend 
)

ptaCopyRange()

Input: ptas istart (starting index in ptas) iend (ending index in ptas; use 0 to copy to end) Return: 0 if OK, 1 on error

ptaCreate()

Input: n (initial array sizes) Return: pta, or null on error.

PTA* ptaCreateFromNuma ( NUMA nax,
NUMA nay 
)

ptaCreateFromNuma()

Input: nax (<optional> can be null) nay Return: pta, or null on error.

void ptaDestroy ( PTA **  ppta)

ptaDestroy()

Input: &pta (<to be="" nulled>="">) Return: void

Note:

  • Decrements the ref count and, if 0, destroys the pta.
  • Always nulls the input ptr.
l_int32 ptaEmpty ( PTA pta)

ptaEmpty()

Input: pta Return: 0 if OK, 1 on error

Note: this only resets the "n" field, for reuse

static l_int32 ptaExtendArrays ( PTA pta) [static]

ptaExtendArrays()

Input: pta Return: 0 if OK; 1 on error

l_int32 ptaGetArrays ( PTA pta,
NUMA **  pnax,
NUMA **  pnay 
)

ptaGetArrays()

Input: pta &nax (<optional return>=""> numa of x array) &nay (<optional return>=""> numa of y array) Return: 0 if OK; 1 on error or if pta is empty

Notes: (1) This copies the internal arrays into new Numas.

l_int32 ptaGetCount ( PTA pta)

ptaGetCount()

Input: pta Return: count, or 0 if no pta

l_int32 ptaGetIPt ( PTA pta,
l_int32  index,
l_int32 px,
l_int32 py 
)

ptaGetIPt()

Input: pta index (into arrays) &x (<optional return>=""> integer x value) &y (<optional return>=""> integer y value) Return: 0 if OK; 1 on error

l_int32 ptaGetPt ( PTA pta,
l_int32  index,
l_float32 px,
l_float32 py 
)

ptaGetPt()

Input: pta index (into arrays) &x (<optional return>=""> float x value) &y (<optional return>=""> float y value) Return: 0 if OK; 1 on error

l_int32 ptaInsertPt ( PTA pta,
l_int32  index,
l_int32  x,
l_int32  y 
)

ptaInsertPt()

Input: pta index (at which pt is to be inserted) x, y (point values) Return: 0 if OK; 1 on error

PTA* ptaRead ( const char *  filename)

ptaRead()

Input: filename Return: pta, or null on error

PTA* ptaReadStream ( FILE *  fp)

ptaReadStream()

Input: stream Return: pta, or null on error

l_int32 ptaRemovePt ( PTA pta,
l_int32  index 
)

ptaRemovePt()

Input: pta index (of point to be removed) Return: 0 if OK, 1 on error

Notes: (1) This shifts pta[i] --> pta[i - 1] for all i > index. (2) It should not be used repeatedly on large arrays, because the function is O(n).

l_int32 ptaSetPt ( PTA pta,
l_int32  index,
l_float32  x,
l_float32  y 
)

ptaSetPt()

Input: pta index (into arrays) x, y Return: 0 if OK; 1 on error

l_int32 ptaWrite ( const char *  filename,
PTA pta,
l_int32  type 
)

ptaWrite()

Input: filename pta type (0 for float values; 1 for integer values) Return: 0 if OK, 1 on error

l_int32 ptaWriteStream ( FILE *  fp,
PTA pta,
l_int32  type 
)

ptaWriteStream()

Input: stream pta type (0 for float values; 1 for integer values) Return: 0 if OK; 1 on error


Переменные

const l_int32 INITIAL_PTR_ARRAYSIZE = 20 [static]