00001 /********************************************************************** 00002 * File: polyaprx.h (Formerly polygon.h) 00003 * Description: Code for polygonal approximation from old edgeprog. 00004 * Author: Ray Smith 00005 * Created: Thu Nov 25 11:42:04 GMT 1993 00006 * 00007 * (C) Copyright 1993, Hewlett-Packard Ltd. 00008 ** Licensed under the Apache License, Version 2.0 (the "License"); 00009 ** you may not use this file except in compliance with the License. 00010 ** You may obtain a copy of the License at 00011 ** http://www.apache.org/licenses/LICENSE-2.0 00012 ** Unless required by applicable law or agreed to in writing, software 00013 ** distributed under the License is distributed on an "AS IS" BASIS, 00014 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00015 ** See the License for the specific language governing permissions and 00016 ** limitations under the License. 00017 * 00018 **********************************************************************/ 00019 00020 #ifndef POLYAPRX_H 00021 #define POLYAPRX_H 00022 00023 #include "tessclas.h" 00024 #include "poutline.h" 00025 #include "coutln.h" 00026 00027 OUTLINE *tesspoly_outline( //old approximation 00028 C_OUTLINE *c_outline, //input 00029 float //xheight 00030 ); 00031 EDGEPT *edgesteps_to_edgepts ( //convert outline 00032 C_OUTLINE * c_outline, //input 00033 EDGEPT edgepts[] //output is array 00034 ); 00035 void fix2( //polygonal approx 00036 EDGEPT *start, /*loop to approimate */ 00037 int area); 00038 EDGEPT *poly2( //second poly 00039 EDGEPT *startpt, /*start of loop */ 00040 int area /*area of blob box */ 00041 ); 00042 void cutline( //recursive refine 00043 EDGEPT *first, /*ends of line */ 00044 EDGEPT *last, 00045 int area /*area of object */ 00046 ); 00047 #define fixed_dist 20 //really an int_variable 00048 #define point_diff(p,p1,p2) (p).x = (p1).x - (p2).x ; (p).y = (p1).y - (p2).y 00049 #define CROSS(a,b) ((a).x * (b).y - (a).y * (b).x) 00050 #define LENGTH(a) ((a).x * (a).x + (a).y * (a).y) 00051 #endif