00001 /* -*-C-*- 00002 ******************************************************************************** 00003 * 00004 * File: makechop.h (Formerly makechop.h) 00005 * Description: 00006 * Author: Mark Seaman, SW Productivity 00007 * Created: Fri Oct 16 14:37:00 1987 00008 * Modified: Mon Jul 29 13:33:23 1991 (Mark Seaman) marks@hpgrlt 00009 * Language: C 00010 * Package: N/A 00011 * Status: Reusable Software Component 00012 * 00013 * (c) Copyright 1987, Hewlett-Packard Company. 00014 ** Licensed under the Apache License, Version 2.0 (the "License"); 00015 ** you may not use this file except in compliance with the License. 00016 ** You may obtain a copy of the License at 00017 ** http://www.apache.org/licenses/LICENSE-2.0 00018 ** Unless required by applicable law or agreed to in writing, software 00019 ** distributed under the License is distributed on an "AS IS" BASIS, 00020 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00021 ** See the License for the specific language governing permissions and 00022 ** limitations under the License. 00023 * 00024 *********************************************************************************/ 00025 #ifndef MAKECHOP_H 00026 #define MAKECHOP_H 00027 00028 /*---------------------------------------------------------------------- 00029 I n c l u d e s 00030 ----------------------------------------------------------------------*/ 00031 #include "chop.h" 00032 #include "olutil.h" 00033 00034 /*---------------------------------------------------------------------- 00035 M a c r o s 00036 ---------------------------------------------------------------------*/ 00037 /********************************************************************** 00038 * is_split_outline 00039 * 00040 * Check to see if both sides of the split fall within the bounding 00041 * box of this outline. 00042 **********************************************************************/ 00043 00044 #define is_split_outline(outline,split) \ 00045 (point_in_outline (split->point1, outline) && \ 00046 point_in_outline (split->point2, outline)) \ 00047 00048 00049 /*---------------------------------------------------------------------- 00050 Public Function Prototypes 00051 ----------------------------------------------------------------------*/ 00052 void apply_seam(TBLOB *blob, TBLOB *other_blob, SEAM *seam); 00053 00054 void divide_blobs(TBLOB *blob, TBLOB *other_blob, inT32 location); 00055 00056 void form_two_blobs(TBLOB *blob, TBLOB *other_blob, inT32 location); 00057 00058 void make_double_split(TBLOB *blob, TBLOB *other_blob, SEAM *seam); 00059 00060 void make_single_split(TESSLINE *outlines, SPLIT *split); 00061 00062 void make_split_blobs(TBLOB *blob, TBLOB *other_blob, SEAM *seam); 00063 00064 void make_triple_split(TBLOB *blob, TBLOB *other_blob, SEAM *seam); 00065 00066 void undo_seam(TBLOB *blob, TBLOB *other_blob, SEAM *seam); 00067 00068 void undo_single_split(TBLOB *blob, SPLIT *split); 00069 #endif