NAME
Image::Leptonica::Func::ptabasic
VERSION
version 0.04
ptabasic.c
ptabasic.c
Pta creation, destruction, copy, clone, empty
PTA *ptaCreate()
PTA *ptaCreateFromNuma()
void ptaDestroy()
PTA *ptaCopy()
PTA *ptaCopyRange()
PTA *ptaClone()
l_int32 ptaEmpty()
Pta array extension
l_int32 ptaAddPt()
static l_int32 ptaExtendArrays()
Pta insertion and removal
l_int32 ptaInsertPt()
l_int32 ptaRemovePt()
Pta accessors
l_int32 ptaGetRefcount()
l_int32 ptaChangeRefcount()
l_int32 ptaGetCount()
l_int32 ptaGetPt()
l_int32 ptaGetIPt()
l_int32 ptaSetPt()
l_int32 ptaGetArrays()
Pta serialized for I/O
PTA *ptaRead()
PTA *ptaReadStream()
l_int32 ptaWrite()
l_int32 ptaWriteStream()
Ptaa creation, destruction
PTAA *ptaaCreate()
void ptaaDestroy()
Ptaa array extension
l_int32 ptaaAddPta()
static l_int32 ptaaExtendArray()
Ptaa accessors
l_int32 ptaaGetCount()
l_int32 ptaaGetPta()
l_int32 ptaaGetPt()
Ptaa array modifiers
l_int32 ptaaInitFull()
l_int32 ptaaReplacePta()
l_int32 ptaaAddPt()
l_int32 ptaaTruncate()
Ptaa serialized for I/O
PTAA *ptaaRead()
PTAA *ptaaReadStream()
l_int32 ptaaWrite()
l_int32 ptaaWriteStream()
FUNCTIONS
ptaAddPt
l_int32 ptaAddPt ( PTA *pta, l_float32 x, l_float32 y )
ptaAddPt()
Input: pta
x, y
Return: 0 if OK, 1 on error
ptaClone
PTA * ptaClone ( PTA *pta )
ptaClone()
Input: pta
Return: ptr to same pta, or null on error
ptaCopy
PTA * ptaCopy ( PTA *pta )
ptaCopy()
Input: pta
Return: copy of pta, or null on error
ptaCopyRange
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
PTA * ptaCreate ( l_int32 n )
ptaCreate()
Input: n (initial array sizes)
Return: pta, or null on error.
ptaCreateFromNuma
PTA * ptaCreateFromNuma ( NUMA *nax, NUMA *nay )
ptaCreateFromNuma()
Input: nax (<optional> can be null)
nay
Return: pta, or null on error.
ptaDestroy
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.
ptaEmpty
l_int32 ptaEmpty ( PTA *pta )
ptaEmpty()
Input: pta
Return: 0 if OK, 1 on error
Note: this only resets the "n" field, for reuse
ptaGetArrays
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.
ptaGetCount
l_int32 ptaGetCount ( PTA *pta )
ptaGetCount()
Input: pta
Return: count, or 0 if no pta
ptaGetIPt
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
ptaGetPt
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
ptaInsertPt
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
ptaRead
PTA * ptaRead ( const char *filename )
ptaRead()
Input: filename
Return: pta, or null on error
ptaReadStream
PTA * ptaReadStream ( FILE *fp )
ptaReadStream()
Input: stream
Return: pta, or null on error
ptaRemovePt
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).
ptaSetPt
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
ptaWrite
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
ptaWriteStream
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
ptaaAddPt
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
ptaaAddPta
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
PTAA * ptaaCreate ( l_int32 n )
ptaaCreate()
Input: n (initial number of ptrs)
Return: ptaa, or null on error
ptaaDestroy
void ptaaDestroy ( PTAA **pptaa )
ptaaDestroy()
Input: &ptaa <to be nulled>
Return: void
ptaaGetCount
l_int32 ptaaGetCount ( PTAA *ptaa )
ptaaGetCount()
Input: ptaa
Return: count, or 0 if no ptaa
ptaaGetPt
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
ptaaGetPta
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
ptaaInitFull
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
ptaaRead
PTAA * ptaaRead ( const char *filename )
ptaaRead()
Input: filename
Return: ptaa, or null on error
ptaaReadStream
PTAA * ptaaReadStream ( FILE *fp )
ptaaReadStream()
Input: stream
Return: ptaa, or null on error
ptaaReplacePta
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)
ptaaTruncate
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.
ptaaWrite
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
ptaaWriteStream
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
AUTHOR
Zakariyya Mughal <zmughal@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Zakariyya Mughal.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.