/********************************************************************** * File: polyaprx.h (Formerly polygon.h) * Description: Code for polygonal approximation from old edgeprog. * Author: Ray Smith * Created: Thu Nov 25 11:42:04 GMT 1993 * * (C) Copyright 1993, Hewlett-Packard Ltd. ** 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. * **********************************************************************/ #ifndef POLYAPRX_H #define POLYAPRX_H #include "tessclas.h" #include "poutline.h" #include "coutln.h" OUTLINE *tesspoly_outline( //old approximation C_OUTLINE *c_outline, //input float //xheight ); EDGEPT *edgesteps_to_edgepts ( //convert outline C_OUTLINE * c_outline, //input EDGEPT edgepts[] //output is array ); void fix2( //polygonal approx EDGEPT *start, /*loop to approimate */ int area); EDGEPT *poly2( //second poly EDGEPT *startpt, /*start of loop */ int area /*area of blob box */ ); void cutline( //recursive refine EDGEPT *first, /*ends of line */ EDGEPT *last, int area /*area of object */ ); #define fixed_dist 20 //really an int_variable #define point_diff(p,p1,p2) (p).x = (p1).x - (p2).x ; (p).y = (p1).y - (p2).y #define CROSS(a,b) ((a).x * (b).y - (a).y * (b).x) #define LENGTH(a) ((a).x * (a).x + (a).y * (a).y) #endif