mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-12-27 18:50:40 +08:00
81 lines
2.9 KiB
C
81 lines
2.9 KiB
C
|
/*====================================================================*
|
||
|
- Copyright (C) 2001 Leptonica. All rights reserved.
|
||
|
- This software is distributed in the hope that it will be
|
||
|
- useful, but with NO WARRANTY OF ANY KIND.
|
||
|
- No author or distributor accepts responsibility to anyone for the
|
||
|
- consequences of using this software, or for whether it serves any
|
||
|
- particular purpose or works at all, unless he or she says so in
|
||
|
- writing. Everyone is granted permission to copy, modify and
|
||
|
- redistribute this source code, for commercial or non-commercial
|
||
|
- purposes, with the following restrictions: (1) the origin of this
|
||
|
- source code must not be misrepresented; (2) modified versions must
|
||
|
- be plainly marked as such; and (3) this notice may not be removed
|
||
|
- or altered from any source or modified source distribution.
|
||
|
*====================================================================*/
|
||
|
|
||
|
#ifndef LEPTONICA_PTRA_H
|
||
|
#define LEPTONICA_PTRA_H
|
||
|
|
||
|
/*
|
||
|
* Contains the following structs:
|
||
|
* struct L_Ptra
|
||
|
* struct L_Ptraa
|
||
|
*
|
||
|
* Contains definitions for:
|
||
|
* L_Ptra compaction flags for removal
|
||
|
* L_Ptra shifting flags for insert
|
||
|
* L_Ptraa accessor flags
|
||
|
*/
|
||
|
|
||
|
|
||
|
/*------------------------------------------------------------------------*
|
||
|
* Generic Ptr Array Structs *
|
||
|
*------------------------------------------------------------------------*/
|
||
|
|
||
|
/* Generic pointer array */
|
||
|
struct L_Ptra
|
||
|
{
|
||
|
l_int32 nalloc; /* size of allocated ptr array */
|
||
|
l_int32 imax; /* greatest valid index */
|
||
|
l_int32 nactual; /* actual number of stored elements */
|
||
|
void **array; /* ptr array */
|
||
|
};
|
||
|
typedef struct L_Ptra L_PTRA;
|
||
|
|
||
|
|
||
|
/* Array of generic pointer arrays */
|
||
|
struct L_Ptraa
|
||
|
{
|
||
|
l_int32 nalloc; /* size of allocated ptr array */
|
||
|
struct L_Ptra **ptra; /* array of ptra */
|
||
|
};
|
||
|
typedef struct L_Ptraa L_PTRAA;
|
||
|
|
||
|
|
||
|
|
||
|
/*------------------------------------------------------------------------*
|
||
|
* Array flags *
|
||
|
*------------------------------------------------------------------------*/
|
||
|
|
||
|
/* Flags for removal from L_Ptra */
|
||
|
enum {
|
||
|
L_NO_COMPACTION = 1, /* null the pointer only */
|
||
|
L_COMPACTION = 2 /* compact the array */
|
||
|
};
|
||
|
|
||
|
/* Flags for insertion into L_Ptra */
|
||
|
enum {
|
||
|
L_AUTO_DOWNSHIFT = 0, /* choose based on number of holes */
|
||
|
L_MIN_DOWNSHIFT = 1, /* downshifts min # of ptrs below insert */
|
||
|
L_FULL_DOWNSHIFT = 2 /* downshifts all ptrs below insert */
|
||
|
};
|
||
|
|
||
|
/* Accessor flags for L_Ptraa */
|
||
|
enum {
|
||
|
L_HANDLE_ONLY = 0, /* ptr to L_Ptra; caller can inspect only */
|
||
|
L_REMOVE = 1 /* caller owns; destroy or save in L_Ptraa */
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif /* LEPTONICA_PTRA_H */
|