tesseract/training/training.cpp

199 lines
4.0 KiB
C++
Raw Normal View History

/*
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
** http://www.apache.org/licenses/LICENSE-2.0
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
#include "training.h"
#include "debug.h"
#include "memry.h"
#include "grphics.h"
#include "evnts.h"
make_int_var (LearningDebugLevel, 0, MakeLearningDebugLevel,
18, 5, SetLearningDebugLevel,
"Learning Debug Level: ");
make_int_var (NormMethod, character, MakeNormMethod,
15, 10, SetNormMethod, "Normalization Method ...")
char *demodir; /*demo home directory */
void cprintf( //Trace printf
const char *format,... //special message
)
{
}
char *c_alloc_string( //allocate string
INT32 count //no of chars required
)
{
return alloc_string(count);
}
void c_free_string( //free a string
char *string //string to free
)
{
free_string(string);
}
void *c_alloc_mem_p( //allocate permanent space
INT32 count //block size to allocate
)
{
return alloc_mem_p(count);
}
void *c_alloc_mem( //get some memory
INT32 count //no of bytes to get
)
{
return alloc_mem(count);
}
void c_free_mem( //free mem from alloc_mem
void *oldchunk //chunk to free
)
{
free_mem(oldchunk);
}
void c_check_mem( //check consistency
const char *string, //context message
INT8 level //level of check
)
{
check_mem(string,level);
}
void* c_alloc_struct( //allocate memory
INT32 count, //no of chars required
const char* name //class name
)
{
return alloc_struct(count,name);
}
void c_free_struct( //free a structure
void* deadstruct, //structure to free
INT32 count, //no of bytes
const char* name //class name
)
{
free_struct(deadstruct,count,name);
}
void c_make_current( /*move pen*/
void* win
)
{
WINDOW window=(WINDOW)win;
window->Make_picture_current();
}
void reverse32(
void* ptr
)
{
char tmp;
char* cptr=(char*)ptr;
tmp=*cptr;
*cptr=*(cptr+3);
*(cptr+3)=tmp;
tmp=*(cptr+1);
*(cptr+1)=*(cptr+2);
*(cptr+2)=tmp;
}
void reverse16(
void* ptr
)
{
char tmp;
char* cptr=(char*)ptr;
tmp=*cptr;
*cptr=*(cptr+1);
*(cptr+1)=tmp;
}
void* c_create_window( /*create a window*/
const char *name, /*name/title of window*/
INT16 xpos, /*coords of window*/
INT16 ypos, /*coords of window*/
INT16 xsize, /*size of window*/
INT16 ysize, /*size of window*/
double xmin, /*scrolling limits*/
double xmax, /*to stop users*/
double ymin, /*getting lost in*/
double ymax /*empty space*/
)
{
return create_window(name,SCROLLINGWIN,xpos,ypos,xsize,ysize,
xmin,xmax,ymin,ymax,TRUE,FALSE,FALSE,TRUE);
}
void c_line_color_index( /*set color*/
void* win,
C_COL index
)
{
WINDOW window=(WINDOW)win;
// ASSERT_HOST(index>=0 && index<=48);
if (index<0 || index>48)
index=(C_COL)1;
window->Line_color_index((COLOUR)index);
}
void c_move( /*move pen*/
void* win,
double x,
double y
)
{
WINDOW window=(WINDOW)win;
window->Move2d(x,y);
}
void c_draw( /*move pen*/
void* win,
double x,
double y
)
{
WINDOW window=(WINDOW)win;
window->Draw2d(x,y);
}
void c_clear_window( /*move pen*/
void* win
)
{
WINDOW window=(WINDOW)win;
window->Clear_view_surface();
}
char window_wait( /*move pen*/
void* win
)
{
WINDOW window=(WINDOW)win;
GRAPHICS_EVENT event;
await_event(window,TRUE,ANY_EVENT,&event);
if (event.type==KEYPRESS_EVENT)
return event.key;
else
return '\0';
}