📄 expandblob.cpp
字号:
/************************************************************************** * Revision 5.1 89/07/27 11:46:53 11:46:53 ray () * (C) Copyright 1989, 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. ***************************************************************************/#include "mfcpch.h"#include "expandblob.h"#include "tessclas.h"#include "const.h"#include "structures.h"#include "freelist.h"/***********************************************************************free_blob(blob) frees the blob and everything it is connected to,i.e. outlines, nodes, edgepts, bytevecs, ratings etc*************************************************************************/void free_blob( /*blob to free */ register TBLOB *blob) { if (blob == NULL) return; /*duff blob */ free_tree (blob->outlines); /*do the tree of outlines */ oldblob(blob); /*free the actual blob */}/***************************************************************************free_tree(outline) frees the current outlineand then its sub-tree*****************************************************************************/void free_tree( /*outline to draw */ register TESSLINE *outline) { if (outline == NULL) return; /*duff outline */ if (outline->next != NULL) free_tree (outline->next); if (outline->child != NULL) free_tree (outline->child); /*and sub-tree */ free_outline(outline); /*free the outline */}/*******************************************************************************free_outline(outline) frees an outline and anything connected to it*********************************************************************************/void free_outline( /*outline to free */ register TESSLINE *outline) { if (outline->compactloop != NULL) /*no compact loop */ memfree (outline->compactloop); if (outline->loop != NULL) free_loop (outline->loop); oldoutline(outline);}/*********************************************************************************free_loop(startpt) frees all the elements of the closed loopstarting at startpt***********************************************************************************/void free_loop( /*outline to free */ register EDGEPT *startpt) { register EDGEPT *edgept; /*current point */ if (startpt == NULL) return; edgept = startpt; do { edgept = oldedgept (edgept); /*free it and move on */ } while (edgept != startpt);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -