<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">APM</journal-id><journal-title-group><journal-title>Advances in Pure Mathematics</journal-title></journal-title-group><issn pub-type="epub">2160-0368</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/apm.2020.102005</article-id><article-id pub-id-type="publisher-id">APM-98558</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  Euler Characteristic Scheme of Globally Searching for Flaws in Surface Modeling
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Yukun</surname><given-names>Liu</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Yong</surname><given-names>Yue</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Dongwen</surname><given-names>Zhang</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Chunhua</surname><given-names>Li</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>School of Information Science and Engineering, Hebei University of Science and Technology, Shijiazhuang, China</addr-line></aff><aff id="aff2"><addr-line>Department of Computer Science and Software Engineering, Xi’an Jiaotong-Liverpool University, Suzhou, China</addr-line></aff><pub-date pub-type="epub"><day>27</day><month>02</month><year>2020</year></pub-date><volume>10</volume><issue>02</issue><fpage>57</fpage><lpage>85</lpage><history><date date-type="received"><day>8,</day>	<month>January</month>	<year>2020</year></date><date date-type="rev-recd"><day>25,</day>	<month>February</month>	<year>2020</year>	</date><date date-type="accepted"><day>28,</day>	<month>February</month>	<year>2020</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  This paper presents a new scheme of flaw searching in surface modeling based on Euler Characteristic. This scheme can be applied to surface construction or reconstruction in computer. It is referred to as Euler Accompanying Test (EAT) algorithm in this paper. Two propositions in algebraic topology are presented, which are the foundation of the EAT algorithm. As the modeling is the first step for rendering in the animation and visualization, or computer-aided design (CAD) in related applications, the flaws can bring some serious problems in the final image or product, such as an artificial sense in animation rendering or a mistaken product in industry. To verify the EAT progressive procedure, a three-dimensional (3D) stamp model is constructed. The modeling process is accompanied by the EAT procedure. The EAT scheme is verified as the flaws in the stamp model are found and modified.
 
</p></abstract><kwd-group><kwd>Algebraic Topology</kwd><kwd> Euler Characteristic</kwd><kwd> Flaw Searching</kwd><kwd> Surface Modeling</kwd><kwd> Topologic Consistence</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Along with the development of surface construction and reconstruction, many researchers have realized that mesh models may be constructed initially with some flaws because of the complex geometrical and topological structures of surfaces, and the limitations of scanning technologies and modeling schemes [<xref ref-type="bibr" rid="scirp.98558-ref1">1</xref>] - [<xref ref-type="bibr" rid="scirp.98558-ref10">10</xref>]. They have put a lot of efforts into repairing the flaws and filling holes. Although tens of researchers have been paying quite much attention to the hole filling quite a while [<xref ref-type="bibr" rid="scirp.98558-ref1">1</xref>] - [<xref ref-type="bibr" rid="scirp.98558-ref8">8</xref>], only several researchers [<xref ref-type="bibr" rid="scirp.98558-ref9">9</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref10">10</xref>] focusing on the hole detecting are known, which cannot provide a method to find all the flaws in a model.</p><p>Since modeling is the first step for rendering in the animation and visualization [<xref ref-type="bibr" rid="scirp.98558-ref11">11</xref>] - [<xref ref-type="bibr" rid="scirp.98558-ref16">16</xref>], or design and even manufacturing in industry [<xref ref-type="bibr" rid="scirp.98558-ref17">17</xref>] - [<xref ref-type="bibr" rid="scirp.98558-ref25">25</xref>], flaws produced in modeling can bring some serious problems in the final image or product. For example, a character in an animation has a tiny gap in his or her armpit under right arm, which should be fitted together. This gap is often invisible. It can, however, be seen when the character raises the right arm.</p><p>Another example is a case in fashion design, in which two adjoining cloth patches are not defined to fit together mistakenly. This problem may result in the problem that the edges between the two adjoining patches will not be stitched together in the following process.</p><p>The third example is that during interacting with computer, a viewer is interested in a mesh model and tries to take a close look at some parts of the model where there is a minute hole. The hole may be invisible when it is occluded or at a low resolution, but it may be seen when it is zoomed in and turned to be illuminated. The third example will be displayed in Section 4 of this paper.</p><p>For the above reasons, this paper presents a new scheme to globally search a mesh model for and locate the flaws. This new scheme is based on Euler characteristic, and named Euler Accompanying Test (shortened as EAT).</p><p>To give the theory foundation of algebraic topology, two propositions are presented for the EAT scheme in this paper. They can bridge the gap between the surface construction in computer and the theory of algebraic topology.</p><p>With the trivial amount of computing, the EAT scheme can assist in repairing and generating a topologically-correct model that has the same algebraic topological structure as that of its fitting target surface.</p><p>In this research, we also construct a new model of 3D PAMA stamp shown in <xref ref-type="fig" rid="fig1">Figure 1</xref> to display the progressive procedure of EAT scheme. The stamp model is programmed with OpenGL and VC++. There are two reasons for using a new model rather than the popular 3D models of Stanford Bunny, Skeleton Hand and Happy Buddha [<xref ref-type="bibr" rid="scirp.98558-ref26">26</xref>].</p><p>The first reason is that it is more efficient and tractable to search for, locate and correct a flaw during modeling than post-processing after the whole mesh model has been constructed. It is also why the new scheme is named Euler</p><p>Accompanying Test (EAT), which means the modeling process accompanied by flaw-locating with the EAT. We will detail it in Section 3. The second reason is that this stamp mesh model consists of not only triangle facets but also polygons with more than three edges. The popular 3D models of Stanford Bunny, Skeleton Hand, and Happy Buddha [<xref ref-type="bibr" rid="scirp.98558-ref26">26</xref>] are composed of only triangle facets. We will apply these popular models gradually to the testing cases in the future.</p><p>The rest of this paper is arranged as follows: Section 2 introduces related studies; Section 3 details the EAT algorithm and the related propositions; Section 4 presents the searching cases of EAT on the PAMA stamp model; Section 5 is for the final conclusions.</p></sec><sec id="s2"><title>2. Related Studies</title><p>In studies of surface construction and reconstruction in animation [<xref ref-type="bibr" rid="scirp.98558-ref13">13</xref>], visualization [<xref ref-type="bibr" rid="scirp.98558-ref11">11</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref12">12</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref14">14</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref15">15</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref16">16</xref>], and CAD [<xref ref-type="bibr" rid="scirp.98558-ref19">19</xref>], many modeling schemes are created to construct a composite surface with a mesh model to be approximate to a targeted object surface, which is referred to as a target surface in the rest part of this paper. The input of the construction process is usually a set of points sampled on the target surface or generated with reference to the target surface.</p><p>Among the studies, [<xref ref-type="bibr" rid="scirp.98558-ref14">14</xref>] presented the results of an approach for surface reconstruction from arbitrarily large point clouds of robotic maps. The authors in [<xref ref-type="bibr" rid="scirp.98558-ref15">15</xref>] proposed an approach to improve existing techniques of polynomial surface models. The research of [<xref ref-type="bibr" rid="scirp.98558-ref16">16</xref>] focused on the design of a modeling platform for a heterogeneous object (HEO) part based on a material distribution control function and hierarchical contour loop. These studies can give a clue to the broad applications of surface construction and reconstruction.</p><p>The composite surfaces are usually polygon patches glued together [<xref ref-type="bibr" rid="scirp.98558-ref21">21</xref>] - [<xref ref-type="bibr" rid="scirp.98558-ref25">25</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref27">27</xref>] - [<xref ref-type="bibr" rid="scirp.98558-ref35">35</xref>]. Triangles and quads are mostly used as patches.</p><p>The work of [<xref ref-type="bibr" rid="scirp.98558-ref21">21</xref>] introduced an array-based algorithm for adaptive mesh refinement, which could generate millions of triangles. Their research of [<xref ref-type="bibr" rid="scirp.98558-ref22">22</xref>] proposed a local optimization method to construct triangular surface patches of high accuracy. In [<xref ref-type="bibr" rid="scirp.98558-ref24">24</xref>] and [<xref ref-type="bibr" rid="scirp.98558-ref25">25</xref>], methods of modeling surfaces composed of polygons were discussed. In [<xref ref-type="bibr" rid="scirp.98558-ref27">27</xref>], the authors presented a method that took an unorganized set of points to produce a surface of triangular facets. The study of [<xref ref-type="bibr" rid="scirp.98558-ref28">28</xref>] was the optimization of an initial triangular mesh. The research of [<xref ref-type="bibr" rid="scirp.98558-ref29">29</xref>] focused on automatic reconstruction of piecewise smooth surface models of triangular patches. In [<xref ref-type="bibr" rid="scirp.98558-ref30">30</xref>], the authors presented a method for combining a collection of range images into a single triangular mesh. The paper of [<xref ref-type="bibr" rid="scirp.98558-ref31">31</xref>] described a recursive bicubic B-spline patch subdivision algorithm which could generate rectangular control-point meshes. On the foundation of the study [<xref ref-type="bibr" rid="scirp.98558-ref31">31</xref>], the authors of [<xref ref-type="bibr" rid="scirp.98558-ref32">32</xref>] focused on the behavior of recursive division surfaces near extraordinary points. In [<xref ref-type="bibr" rid="scirp.98558-ref34">34</xref>], the authors proposed a method for refinement on B-pline surfaces with hierarchical subdivisions. The research of [<xref ref-type="bibr" rid="scirp.98558-ref35">35</xref>] developed the works of [<xref ref-type="bibr" rid="scirp.98558-ref31">31</xref>] and [<xref ref-type="bibr" rid="scirp.98558-ref32">32</xref>] to non-uniform recursive subdivision surfaces. It can be summarized that triangular patches were used by [<xref ref-type="bibr" rid="scirp.98558-ref27">27</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref28">28</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref29">29</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref30">30</xref>] and quad facets were applied to subdivision surfaces [<xref ref-type="bibr" rid="scirp.98558-ref31">31</xref>] - [<xref ref-type="bibr" rid="scirp.98558-ref35">35</xref>].</p><p>Few pentagons, hexagons and others are found in surface construction and reconstruction [<xref ref-type="bibr" rid="scirp.98558-ref36">36</xref>] - [<xref ref-type="bibr" rid="scirp.98558-ref41">41</xref>]. In [<xref ref-type="bibr" rid="scirp.98558-ref37">37</xref>], to generate features like sharp edges and corners, the authors merged Catmull Clark [<xref ref-type="bibr" rid="scirp.98558-ref31">31</xref>] and NURBS (Non-Uniform Rational B-spline) patches together to produce extended subdivision surfaces. In [<xref ref-type="bibr" rid="scirp.98558-ref38">38</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref39">39</xref>], the authors presented a subdivision method that added extraordinary vertices to NURBS of arbitrarily high degree. Like [<xref ref-type="bibr" rid="scirp.98558-ref39">39</xref>], two methods [<xref ref-type="bibr" rid="scirp.98558-ref40">40</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref41">41</xref>] could hold the geometrical details of neighboring polygons of extraordinary points.</p><p>Because of the complex geometrical and topological structures of a target surface, the limitations of scanning technologies, and the deficiency of a modeling scheme, a composite surface may be constructed with tiny holes or gaps that the target surface does not have [<xref ref-type="bibr" rid="scirp.98558-ref1">1</xref>] - [<xref ref-type="bibr" rid="scirp.98558-ref8">8</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref17">17</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref19">19</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref20">20</xref>]. That is, the composite surface does not have the same topology as that of the target surface and cannot really represent the target surface in the mathematics and applications sense.</p><p>The papers [<xref ref-type="bibr" rid="scirp.98558-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref3">3</xref>] made a survey on existing well-known hole-filling algorithms in 3D surface reconstruction and classified them. Researchers have proposed different methods to fill the holes in surface construction. In [<xref ref-type="bibr" rid="scirp.98558-ref2">2</xref>], a piecewise hole filling algorithm was presented. The study [<xref ref-type="bibr" rid="scirp.98558-ref4">4</xref>] used the method of positive definite Radial Basis Functions in progressively filling the holes in surface reconstruction. The authors of [<xref ref-type="bibr" rid="scirp.98558-ref5">5</xref>] presented a scattered point set hole-filling method to fill the holes of an incomplete surface. The paper of [<xref ref-type="bibr" rid="scirp.98558-ref6">6</xref>] introduced a technique to fill large holes of both texture and structure in a LiDAR scan. In the research of [<xref ref-type="bibr" rid="scirp.98558-ref7">7</xref>], the authors proposed a depth hole filling method to fill holes in images obtained from the Microsoft Kinect sensor. In the research of [<xref ref-type="bibr" rid="scirp.98558-ref8">8</xref>], the authors’ argument was that for accessibility reasons or reflection problems, some parts of the object might not be scanned and could be formed as digitizing holes. The authors of [<xref ref-type="bibr" rid="scirp.98558-ref17">17</xref>] mentioned that many photos contained close-up cracks in the material of the sculpture that needed to reconstruct. In the research of [<xref ref-type="bibr" rid="scirp.98558-ref19">19</xref>], authors mentioned that in trimming models in CAD might cause unavoidable gaps in the models. In [<xref ref-type="bibr" rid="scirp.98558-ref20">20</xref>], to modify a gap where neighboring B-spline surface did not match exactly, the authors presented a locally refineable subdivision scheme called T-NURCCs (Non-Uniform Rational Catmull-Clark surface with T-junctions).</p><p>With its complex geometrical and topological structures, a great number of the 3D data of points on the target surface are required to input for modeling. If the 3D data are acquired by laser-range scanning, they are unstructured point clouds and missing some information by under-sampling sometimes [<xref ref-type="bibr" rid="scirp.98558-ref9">9</xref>]. For these reasons, the modeling is susceptible to unexpected holes. And the knowledge of holes in the model is vital for many applications dealing with point set surfaces [<xref ref-type="bibr" rid="scirp.98558-ref9">9</xref>].</p><p>On the other hand, to make a composite surface hold fine local features, researchers of mesh model may add more sub-patches to some part of the composite surface with local refinement [<xref ref-type="bibr" rid="scirp.98558-ref32">32</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref37">37</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref38">38</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref40">40</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref41">41</xref>]. Along with the number of patches and sub-patches further increasing, local refinement may bring new unexpected invisible flaws into the composite surface [<xref ref-type="bibr" rid="scirp.98558-ref17">17</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref19">19</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref20">20</xref>]. As known, the consistence of global topological structure is as important as the local features for surface modeling. Holding the consistence of the global topological structure can make the model correct in the topological sense while having local features can make the model delicate. Neither of them should be ignored. Therefore, it is necessary to detect the new defects of the composite surface after local refinement.</p><p>In [<xref ref-type="bibr" rid="scirp.98558-ref9">9</xref>], the authors present a method of detecting holes in point set surfaces. Their method is based on boundary probability with three criteria: angle, half-disc, and shape criteria. It is effective to extract boundary loops by repeating the process of searching for each vertex and identifying boundary points with the criteria. Their method, however, does not guarantee to find all the unexpected holes in a surface model since it is probable.</p><p>In [<xref ref-type="bibr" rid="scirp.98558-ref10">10</xref>], the authors present an empty disk approach for detecting the inner hole boundary of a planar point set based on Delaunay triangulation. They focus on the problem of detecting the boundary of individual inner holes in a planar point set. The limitation of their method is to detect only individual holes in a two-dimensional space, which is not appropriate for finding all the holes of a 3D model that is the issue studied in this paper.</p><p>In this paper, the presented EAT algorithm is applied to testing the topological structure of a mesh model gradually and globally to find all the flaws of the model and to modify them before passing a verified model to the succeeding process. Even better, it can be used to detect new defects of the model after local refinement.</p></sec><sec id="s3"><title>3. EAT Scheme</title><p>A complicated surface model usually has a great deal of geometric details, and thus may contain a large number of vertices, edges and facets. The EAT has to scan and traverse all the vertices, edges and facets of the model to compute the Euler characteristic of the model. And then it can be compared with the Euler characteristic of its target surface. The larger number of edges and facets the model contains, the more time the EAT computing requires.</p><p>In order that the code of the EAT is not left in the modeling program after verified, we adopt the strategy that a copy of the modeling program is prepared for flaw-searching, which is called the modeling companion, shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>(a). The EAT algorithm code is inserted in the modeling companion rather than the modeling program itself. The EAT code is running only in the modeling companion.</p><p>Each time a flaw is found in the model companion, the modeling companion is revised, and the modeling program should be revised and updated as well.</p><p>Since the EAT algorithm code is running only in the model companion, the modeling program is without the EAT code in itself and thus the verified modeling program will not be slowed down by the EAT at run time.</p><p>After the model has been verified completely with the EAT scheme and all the existing flaws of model have been corrected, the verified modeling program is assembled into the rendering pipeline, shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>(b). If some flaws are related to a modeling method, the method should be modified.</p><p>After the related modeling method has been validated, the method is integrated into CAD environments in industry or the surface reconstruction systems of animation, visualization and others, shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>(c). And the succeeding procedures can be performed, as well.</p><p>Since fault-testing with the EAT is at the modeling stage, we will focus on the layer at the top of <xref ref-type="fig" rid="fig2">Figure 2</xref>(a) in this section.</p><sec id="s3_1"><title>3.1. Propositions in Algebraic Topology</title><p>The EAT algorithm is the core of the EAT scheme. It is based on the following Definition 1, Proposition 1 and Proposition 2.</p><p>Definition 1 The Euler characteristic of a triangulated surface M is</p><p>χ ( M ) = n v − n e + n f , (1)</p><p>where n v is the total number of vertices of M, n e is the total number of edges of M, and n f is the total number of triangle facets of M [<xref ref-type="bibr" rid="scirp.98558-ref42">42</xref>].</p><p>It is obvious that the invariant of Euler characteristic is independent of the meshing of a surface. It can be shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>. If two triangle facets with a common edge are replaced with a quad facet and n f is referred to as the total number of facets in identity (1), as shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>(a) and <xref ref-type="fig" rid="fig3">Figure 3</xref>(b), the identity (1) is still held. This deduction is based on the fact that the latter facet (no matter planar or curve) is homotopic to the former two triangle facets glued together. If each pair of three triangle facets has a common edge, these three triangle facets are replaced with a pentagon facet, and the identity (1) is also held, shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>(c) and <xref ref-type="fig" rid="fig3">Figure 3</xref>(d). Let us take the idea a step further. If each pair of four triangle facets has a common edge, these four triangle facets are replaced with a hexagon facet, and the identity (1) is held, too, shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>(e) and <xref ref-type="fig" rid="fig3">Figure 3</xref>(f).</p><p>With the algebraic topologies of surfaces [<xref ref-type="bibr" rid="scirp.98558-ref42">42</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref43">43</xref>], the following two propositions are obvious.</p><p>Proposition 1 A compact surface has a numerical invariant called the Euler characteristic.</p><p>Proposition 2 Suppose that there are two compact surfaces, S 1 and S 2 . If their Euler characteristics are not identical, the topological structures of S 1 and</p><p>S 2 are not consistent with each other.</p><p>As the rigorous proofs of Proposition 1 and Proposition 2 are lengthy and require the homotopy theory, we do not give the proofs of Proposition 1 and Proposition 2, and readers can refer to the homotopy theory [<xref ref-type="bibr" rid="scirp.98558-ref42">42</xref>] [<xref ref-type="bibr" rid="scirp.98558-ref43">43</xref>].</p><p>Before the exploration of EAT algorithm, we have to define three sets of vertices, edges and facets of a tested model, which most of modeling methods in surface construction and reconstruction apply to surface modeling. Here we re-organize them in a three-layer data structure, and register every vertex, edge and facet in Vertex list, Edge list and Facet list, respectively, in order to compute the Euler characteristic of the model at different modeling stages.</p></sec><sec id="s3_2"><title>3.2. Three-Layer Data Structure</title><p>In surface modeling, the input is a set of points, which may be sampled on a target surface by sensors or scanned the outward surface of an object by a scanner. The set of points can be organized as the set of original vertices, V 0 . Each element of V 0 has three fields ( x i , y i , z i ) , which are three coordinates in an orthogonal coordinate system, respectively.</p><p>According to the spatial relationships of vertices and the order of the facets’ being drawn, we construct a three-layer data structure for the modeling companion accompanied with the EAT.</p><p>The data structure is shown in <xref ref-type="fig" rid="fig4">Figure 4</xref>. At the top abstract layer is Body</p><p>container, which consists of three parts, these being Facet list F g , Edge list E g , and Vertex list V g .</p><p>&#183; F g represents the Facet list. It is used to add Facet item to it when a new facet is registered.</p><p>&#183; E g represents Edge list. It is used to add Edge item to it when a new edge is registered.</p><p>&#183; V g represents Vertex list. It is used to add Vertex item to it when a new vertex is registered.</p><p>F g , E g , and V g are at the middle abstract layer of the three-layer data structure. At the lowest layer are three types of items: Facet item f ( f I D , f v L i s t , f c ) , Edge item e ( e I D , b v P o i n t e r , e v P o i n t e r , e c ) , and Vertex item v ( v I D , x C o o r d , y C o o r d , z C o o r d , v c ) .</p><p>&#183; f ( f I D , f v L i s t , f c ) is Facet item, which consists of three fields: identification of facet f I D , facet vertex list f v L i s t , and facet counter f c . Each distinct facet has a unique f I D . Facet vertex list f v L i s t registers the vertex sequence of the facet item in the order of vertices’ being drawn. Facet counter f c is used to count the times of being drawn of the facet.</p><p>&#183; e ( e I D , b v P o i n t e r , e v P o i n t e r , e c ) is Edge item, which is composed of four fields: identification of edge e I D , a pointer to the beginning vertex b v P o i n t e r , a pointer to the end vertex e v P o i n t e r , and edge counter e c . Each distinct edge has a unique e I D . Each edge is connected to two vertices: the beginning vertex to which is pointed by the pointer of b v P o i n t e r , and the end vertex towards which is pointed by the pointer of e v P o i n t e r . The number of facets connected to the edge is counted by the counter of e c during modeling.</p><p>&#183; v ( v I D , x C o o r d , y C o o r d , z C o o r d , v c ) is Vertex item with five fields: identification of vertex v I D , X coordinate x C o o r d , Y coordinate y C o o r d , Z coordinate z C o o r d , and vertex counter v c . Every individual vertex has a unique v I D and three coordinate values ( x C o o r d , y C o o r d , z C o o r d ) in the modeling space. The number of edges connected to the vertex is counted by the counter of v c during modeling.</p></sec><sec id="s3_3"><title>3.3. EAT Algorithm</title><p>The EAT algorithm includes two different function parts. One function part is named the EAT testing algorithm (EAT-TA), shown in <xref ref-type="fig" rid="fig5">Figure 5</xref>. It is used to register a new facet, and its new vertices and new edges in Facet list, Vertex list and Edge list, respectively, and to increment each of their counters. Its code is embedded just after every facet modeling code in the model companion.</p><p>The other function part is called the EAT statistic algorithm (EAT-SA), also shown in <xref ref-type="fig" rid="fig5">Figure 5</xref>. The EAT-SA collects the statistics of the total numbers of vertices, edges and facets of the surface model, computes the Euler characteristic of the surface model, and outputs the results at different modeling stages.</p><p>1) EAT Testing Algorithm (EAT-TA)</p><p>To do exactly counting of the numbers of facets, edges and vertices of a tested surface model, the EAT-TA has to scan and traverse the model. As the modeling in surface construction and reconstruction is a dynamic and progressive process, the EAT-TA can take advantage of this process through each facet modeling accompanied by the EAT testing.</p><p><xref ref-type="fig" rid="fig6">Figure 6</xref> shows the calling site of EAT-TA and related operations in the model companion. As shown, a call of the EAT-TA is usually made just after the tested facet modeling. <xref ref-type="fig" rid="fig7">Figure 7</xref> shows the pseudocode of EAT-TA, which can be easily translated into VC++ language or other computer languages.</p><p>During a facet modeling, some vertices and edges may have not been registered while other vertices and edges may have been registered in the previous facet modeling. At this moment, the vertices and edges that have not been registered are referred to as new vertices, v n e w , and new edges, e n e w , respectively, which have not been added to Vertex list and Edge list. The vertices and edges that have been registered are called old vertices, v o l d , and old edges, e o l d , which already exist in Vertex list and Edge list, respectively, shown in <xref ref-type="fig" rid="fig7">Figure 7</xref>.</p><p>That is, a new vertex or new edge has to be registered first and then their counters increment. For an old vertex or old edge, it is not registered again, but its counter increments.</p><p>2) EAT Statistic Algorithm (EAT-SA)</p><p>The EAT-SA is for statistic computing of the numbers of vertices, edges, and facets. <xref ref-type="fig" rid="fig8">Figure 8</xref> shows the pseudocode of EAT-SA, which can be also translated easily into VC++ or other computer languages.</p><p>The EAT-SA can be put at the end of the modeling companion for the fault-detecting of the whole model. It can be also inserted at any intermediate site in the modeling companion. In this paper, these intermediate sites are called test points.</p><p>In fact, it is more effective to set a test point at a site where we want to detect whether or not the modeling before this site holds any defect.</p><p>A intermediate test point can help search for and locate the defects in the</p><p>partial modeling just before this test point and correct them in the model companion and in the modeling program as well, shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>(a).</p><p>When considering that there are numerous facets in a complicated surface model, there may exist a large number of defects in the whole unverified model [<xref ref-type="bibr" rid="scirp.98558-ref9">9</xref>]. In the progressive test way, a large problem of numerous defects can be divided into smaller ones with several defects. It is easier to conquer each of smaller sub-problems by correcting one of them at a time than the larger repair problem of the complex surface model as a whole in one step.</p></sec><sec id="s3_4"><title>3.4. Progressive EAT Procedure</title><p>As known before, a surface modeling is a progressive process, and the EAT-SA can be done at different stages as well. It means that it can be used to test an unfinished model in which some facets have been constructed and others have not been.</p><p>We can set a test point and make an EAT-SA calling just after the drawing of the unfinished model. The EAT algorithm can help check whether or not the partial model has the Euler characteristic equal to that of its corresponding part of the target surface. If yes, the partial model has been verified. If not, the EAT-TA can locate the faults that are indicated to correct.</p><p>After the previous partial model has been corrected and verified, the modeling is resumed. We call the test point that has just been verified the last verified point.</p><p>For newly modeling, a new test point can be set at a proper distance after the last verified point, and a new EAT-SA calling is inserted at this new test point. We call this new point the current test point.</p><p>As the facets before the last verified point have been verified without faults, new faults detected by the EAT-SA at the current test point exist in the facets between the last verified point and the current test point. For the model companion, these newly-detected facets are the new facets items that have been just added to Facet list. In this way, it is easy to locate the new faults.</p><p>Accompanied by the progressive EAT procedure, the newly modeling is always constructed on the foundation of the verified partial model.</p><p>If the results of EAT-SA at the current test point show that the Euler characteristic of the partial model is not identical to that of the corresponding part of the target surface, we have to know which facet modeling may cause the problem. In this situation, we can set 1 to the argument of outputting the information of vertex items and edge items of facets in the newly modeling after the last verified point, and set 0 to the arguments of the facet items before the last verified point. The setting of the arguments has been indicated in <xref ref-type="fig" rid="fig6">Figure 6</xref>. In this way, we can focus just on the newly-added facet items. It is not necessary to examine the facet items in the partial model before the last verified point.</p><p>At the modeling end of the target surface, we put the final EAT-SA at the end of model companion. The resulting numbers of total facets, edges and vertices of the model, and its Euler characteristic are outputted and displayed on the computer screen. We can compare the outputted Euler characteristic to that of the target surface. If they are not equal to each other, try to find the problem locations in the newly modeling after the last verified point and correct the related facets in the model companion and the modeling program as well. And perform the EAT algorithm again until all the faults are corrected. If two Euler characteristics are identical, the modeling has been verified. And the model can be used to represent the target surface upon the Euler characteristic invariant according to Proposition 1 and Proposition 2.</p><p>In the next section, some EAT applications will be presented, which can illustrate the progressive EAT procedure clearly.</p></sec></sec><sec id="s4"><title>4. EAT Applications and Results</title><p>In this section, the EAT algorithm is applied to test the stamp model, shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>. In Sections 4.1, 4.2, and 4.3, we present three application cases that show the models with some faults tested by the EAT scheme. In Section 4.4, we will present the model companion accompanied by the progressive EAT procedure at several stages.</p><sec id="s4_1"><title>4.1. The First Case with a Defect Tested by EAT</title><p>In this section, we present a partial stamp model that has a tiny triangle without filling. The triangle is so small that is almost invisible.</p><p>In this case, the modeling before the last verified point has been verified, shown in <xref ref-type="fig" rid="fig9">Figure 9</xref>. To make the views distinct, facets in different parts are depicted with different colors, seen in the front view and side view of fill-area images of <xref ref-type="fig" rid="fig9">Figure 9</xref>(a) and <xref ref-type="fig" rid="fig9">Figure 9</xref>(b). In <xref ref-type="fig" rid="fig1">Figure 1</xref>0, the tested results with the EAT scheme on the partial model in <xref ref-type="fig" rid="fig9">Figure 9</xref> show that the number of vertices, edges, and facets of the partial model are 1658, 2938, and 1279, respectively. Its Euler characteristic is −1, which is the same as that of the corresponding compact surface with two inside holes.</p><p>At this time, we set a new current test point and test the part between the last verified point and the current test point.</p><p><xref ref-type="fig" rid="fig1">Figure 1</xref>1 shows the tested results with the EAT scheme at the current test point. The Euler characteristic is −2, which is different from the Euler characteristic of the corresponding compact surface with two inside holes, −1. For this reason, the modeling between the last verified point and the current test point has to be checked carefully. Through exploration and location, a tiny triangle in which is not filled is found.</p><p><xref ref-type="fig" rid="fig1">Figure 1</xref>2(a) is the front view of fill-area image, and <xref ref-type="fig" rid="fig1">Figure 1</xref>2(b) is the side view of fill-area image of the partial model with the empty triangle. The empty triangle is too small to be identified in <xref ref-type="fig" rid="fig1">Figure 1</xref>2(a) and <xref ref-type="fig" rid="fig1">Figure 1</xref>2(b).</p><p>After the image with the invisible empty triangle in <xref ref-type="fig" rid="fig1">Figure 1</xref>2 having been zoomed in and turned to be illuminated, a tiny white point appears at the joint between the green and the purple parts circled by the black rectangle of <xref ref-type="fig" rid="fig1">Figure 1</xref>3(a). <xref ref-type="fig" rid="fig1">Figure 1</xref>3(b) is the image in the black rectangle in <xref ref-type="fig" rid="fig1">Figure 1</xref>3(a) that is zoomed in even closer. In <xref ref-type="fig" rid="fig1">Figure 1</xref>3(b), we can see the empty part clearly, which looks like a narrow segment. The length of one edge of this triangle is almost 0.001 of lengths of the other two. It is why the triangle is difficult to be identified.</p><p>Let us modify the defect by filling in the empty triangle and test the model again. The results of this new test are shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>4. At the top first row is the information of three vertex items of the filled triangle, these being vertex items of vIDs 1698, 1699, and 6807. The vertex counter (vc) values of them are 3, 4, and 4, respectively. 3 means the vertex item of vID 1698 joins three edges, and 4 means the vertex item of vID 1699 or 6807 links four edges.</p><p>The top second, third and fourth rows of <xref ref-type="fig" rid="fig1">Figure 1</xref>4 are the information of three edge items of the filled triangle, which are edge items with eIDs 2858, 2991, and 2996, respectively. All of their edge counter (ec) values are 2. 2 means each of them connects two facets.</p><p>The bottom four rows of <xref ref-type="fig" rid="fig1">Figure 1</xref>4 show the results at the current test point. The number of vertices is 1738, the number of edges is 3090, and the number of facets is 1351. The Euler characteristic is −1, which is the same as that of the corresponding compact surface with two inside holes, −1. This partial stamp model has been modified and verified at this stage.</p></sec><sec id="s4_2"><title>4.2. The Second Case with a Defect Tested by EAT</title><p>In this section, we present the second case with a quad that was ignored before and is tested by EAT.</p><p>The modeling before the last verified point has been verified, shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>5. <xref ref-type="fig" rid="fig1">Figure 1</xref>5(a) is the front view of fill-area image; <xref ref-type="fig" rid="fig1">Figure 1</xref>5(b) is the side view of fill-area image. In <xref ref-type="fig" rid="fig1">Figure 1</xref>6, the results at the last verified point show that the number of vertices, edges, and facets of the partial model are 2189, 3963, and 1773, respectively. Its Euler characteristic is −1, which is the same as that of the corresponding compact surface with two inside holes.</p><p>After the last verified point, some facets are added to the modeling. A new current test point is set and the EAT is executed. <xref ref-type="fig" rid="fig1">Figure 1</xref>7 shows the results at the current test point. The Euler characteristic is −2, which is different from the Euler characteristic of the corresponding compact surface with two inside holes, −1. <xref ref-type="fig" rid="fig1">Figure 1</xref>8(a) is the front view of fill-area image of the partial model before this current test point, and <xref ref-type="fig" rid="fig1">Figure 1</xref>8(b) is its side view of fill-area image. In <xref ref-type="fig" rid="fig1">Figure 1</xref>8, the fault is invisible.</p><p>Let us take a closer look at the newly-added facets, shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>9. A narrow white quad appears at the joint between the green and the orange parts marked by the black rectangle of <xref ref-type="fig" rid="fig1">Figure 1</xref>9(a). <xref ref-type="fig" rid="fig1">Figure 1</xref>9(b) is the image circled by the black rectangle in <xref ref-type="fig" rid="fig1">Figure 1</xref>9(a), which is zoomed in even closer. In <xref ref-type="fig" rid="fig1">Figure 1</xref>9(b), we can see the empty quad more clearly, which looks like a narrow belt. It is so small that it can be seen only in a proper direction. That is why the quad is difficult to be found.</p><p>Next, we modify the defect by filling in the empty quad and test the model again. The results of this test are shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>0. At the top first row is the information of four vertex items of the filled quad, these being vertex items of vIDs 7786, 7788, 7789 and 7790. The vertex counter (vc) values of them are 4, 3, 3, and 3, respectively. 4 of vc means that the vertex item of vID 7786 joins four edges, and 3 of vc means that the vertex item of vID 7788, 7789, or 7790 links</p><p>three edges.</p><p>The top second, third, fourth and fifth rows of <xref ref-type="fig" rid="fig2">Figure 2</xref>0 are the information of four edge items of the filled quad, which are edge items with eIDs 4007, 4010, 4013, and 4045, respectively. Three of their edge counter (ec) values are 2. 2 of ec means each of them connects two facets. One of them is 1, which means that when this quad facet is constructed, the edge item of eID 4045 is a new edge, shown in <xref ref-type="fig" rid="fig7">Figure 7</xref>.</p><p>The bottom four rows of <xref ref-type="fig" rid="fig2">Figure 2</xref>0 show the results at the current test point. The number of vertices is 2255, the number of edges is 4082, and the number of</p><p>facets is 1826. The Euler characteristic is −1, which is the same as that of the corresponding compact surface with two inside holes, −1. This partial stamp model is verified at this stage.</p></sec><sec id="s4_3"><title>4.3. The Third Case with a Defect by EAT</title><p>In this section, we present the third case with a fault that is counter-intuitive and tested by EAT.</p><p>In this case, we still use the partial model stage in <xref ref-type="fig" rid="fig1">Figure 1</xref>5 as the last verified point. In the newly-added facets, we set a new test point and search for a problem different from the previous two.</p><p>In <xref ref-type="fig" rid="fig2">Figure 2</xref>1, the front and side views of fill-area and wire-frame images are shown. Let us zoom in the image of <xref ref-type="fig" rid="fig2">Figure 2</xref>1(c) and take a closer look at the right top corner of the top character, circled by the blue rectangle in <xref ref-type="fig" rid="fig2">Figure 2</xref>2(a). <xref ref-type="fig" rid="fig2">Figure 2</xref>2(b) and <xref ref-type="fig" rid="fig2">Figure 2</xref>2(c) are amplified images in the blue rectangle of <xref ref-type="fig" rid="fig2">Figure 2</xref>2(a). In <xref ref-type="fig" rid="fig2">Figure 2</xref>2(c), five vertex items are marked with their vIDs 6891, 2650, 2567, 2566, and 6874, respectively.</p><p>In the geometrical sense, the pentagon bordered with five edges ({6891, 2650}, {2650, 2567}, {2567, 2566}, {2566, 6874}, and {6874, 6891}) is the same as the quad bordered with four edges ({6891, 2650}, {2650, 2567}, {2567, 6874}, and {6874, 6891}). In the topologic sense, they are, however, different. The former facet has five vertices, five edges and one facet; the latter facet consists of four vertices, four edges and one facet. And the edge of {2567, 6874}, which is the yellow one in <xref ref-type="fig" rid="fig2">Figure 2</xref>2(c), is different from the two edges, {2567, 2566} and</p><p>{2566, 6874}.</p><p>For one edge, {2567, 6874}, the results of the EAT are shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>3. It results in an Euler characteristic, −2, which is different from −1 of the corresponding compact surface with two inside holes. The reason is that the edge of {2567, 6874} is treated as one edge different from as two edges, {2567, 2566} and {2566, 6874}.</p><p>For the modeling of the neighborhood of this problem facet, two edges, {2567, 2566} and {2566, 6874}, have been added to Edge list, E<sub>g</sub>. In the topologic sense, it means that there is a crack between the new Edge {2567, 6874} and two old Edges, {2567, 2566} and {2566, 6874}. That is, this model is corresponding to a compact surface with three inside holes.</p><p>We modify this fault by dividing Edge {2567, 6874} into two Edges, {2567, 2566} and {2566, 6874}, and test it with the EAT algorithm again. The results are shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>4. Compared to the results in <xref ref-type="fig" rid="fig2">Figure 2</xref>3, there are five vertex items in <xref ref-type="fig" rid="fig2">Figure 2</xref>4, but four vertex items in <xref ref-type="fig" rid="fig2">Figure 2</xref>3. The vertex item of vID 2566 is added to this pentagon facet. There are five edge items in <xref ref-type="fig" rid="fig2">Figure 2</xref>4, but four edge items in <xref ref-type="fig" rid="fig2">Figure 2</xref>3. Among these five edge items, three edge items of eIDs 3933, 3935, and 4053 are old edges, and their edge counter (ec) values are 2. The other two edge items of eIDs 4054 and 4055 are new edges, and their edge counter (ec) values are 1. But in <xref ref-type="fig" rid="fig2">Figure 2</xref>3, there is one old edge item of eID</p><p>4053, and three new edge items of eIDs 4054, 4055, and 4056. It means one of new edge items, the edge item of eID 4056 (that is Edge {2567, 6874}) does not meet with the old ones, the edge items of eIDs 3933 and 3935 (Edges {2567, 2566} and {2566, 6874}). There is a crack between them.</p><p>In <xref ref-type="fig" rid="fig2">Figure 2</xref>3, the number of vertices is the same as 2255 in <xref ref-type="fig" rid="fig2">Figure 2</xref>4. Both numbers of facets in <xref ref-type="fig" rid="fig2">Figure 2</xref>3 and <xref ref-type="fig" rid="fig2">Figure 2</xref>4 are equal to 1826. But the number of edges, 4083, in <xref ref-type="fig" rid="fig2">Figure 2</xref>3, is one more than 4082 in <xref ref-type="fig" rid="fig2">Figure 2</xref>4. Therefore, the Euler characteristic, −2, in <xref ref-type="fig" rid="fig2">Figure 2</xref>3, is one less than that −1 in <xref ref-type="fig" rid="fig2">Figure 2</xref>4.</p><p>In Section 4.4, we will present the stamp model companion accompanied by the progressive EAT procedure at several steps until the whole model construction is finished and verified.</p></sec><sec id="s4_4"><title>4.4. Testing the Stamp Model at Several Stages with EAT</title><p>In this section, we present the construction process of the stamp model accompanied by the EAT procedure. Because of the limitation of this paper length, we only display four typical stages in this process. Of course, the real construction process of the stamp model has been tested and modified at far more than four stages because it has many details of the geometrical and topological structures.</p><p>1) Testing Fringe Ring and Middle Rows of Top Face</p><p>An unfinished model is shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>5. This unfinished model includes the fringe ring and several middle lines of top face of the stamp model. Most facets are quads. Several triangle facets are filled at corners. They are shown in the front view and side view of wire-frame images in <xref ref-type="fig" rid="fig2">Figure 2</xref>5(a) and <xref ref-type="fig" rid="fig2">Figure 2</xref>5(c). The corresponding fill-area images are shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>5(b), and <xref ref-type="fig" rid="fig2">Figure 2</xref>5(d). Facets in different parts are depicted in different colors.</p><p>In <xref ref-type="fig" rid="fig2">Figure 2</xref>6, four rows are the results of numbers of vertices, edges, and facets of the unfinished model in <xref ref-type="fig" rid="fig2">Figure 2</xref>5, and its Euler characteristic, respectively. We can see that the number of vertices is 1213, the number of edges is 2054, and the number of facets is 840. Its Euler characteristic is −1. This Euler characteristic is equal to one of the corresponding compact surface with two inside holes. Thus, this partial model is verified.</p><p>2) Testing Half Top Face</p><p>The half top face of stamp model is shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>7. This unfinished model consists of the fringe ring and half top face of the stamp.</p><p>Most facets in this unfinished model are quads. Several triangle facets are filled at corners, and several pentagons and hexagons are formed in some facets with curved borders. It is shown in the front view and side view of wire-frame images of <xref ref-type="fig" rid="fig2">Figure 2</xref>7(a) and <xref ref-type="fig" rid="fig2">Figure 2</xref>7(c). Facets of different parts are depicted in different colors in the front view and side view of fill-area images of <xref ref-type="fig" rid="fig2">Figure 2</xref>7(b) and <xref ref-type="fig" rid="fig2">Figure 2</xref>7(d).</p><p>The tested results of the model in <xref ref-type="fig" rid="fig2">Figure 2</xref>7 are shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>8. It is seen that the number of vertices is 2809, the number of edges is 5219, and the number of facets is 2410. Its Euler characteristic is 0, which is equal to that of the corresponding compact surface with one inside hole. The partial model is verified at this stage.</p><p>3) Testing Top Face, Side Ring and Back Face</p><p>The top face, side ring and back face of stamp model are constructed at this stage, shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>9. All of facets of side ring and back face are quads.</p><p><xref ref-type="fig" rid="fig2">Figure 2</xref>9(a), <xref ref-type="fig" rid="fig2">Figure 2</xref>9(c) and <xref ref-type="fig" rid="fig2">Figure 2</xref>9(e) are the front view, side front</p><p>view, and side back view of wire-frame images, respectively. <xref ref-type="fig" rid="fig2">Figure 2</xref>9(b), <xref ref-type="fig" rid="fig2">Figure 2</xref>9(d) and <xref ref-type="fig" rid="fig2">Figure 2</xref>9(f) are the front view, side front view, and side back view of fill-area images, respectively.</p><p>The tested results of the partial model in <xref ref-type="fig" rid="fig2">Figure 2</xref>9 are shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>0. We can see that the number of vertices is 5769, the number of edges is 11,134, and the number of facets is 5366. Its Euler characteristic is 1, which is equal to that of the corresponding compact surface without any inside hole. The partial model is verified at this stage.</p><p>4) Testing the Whole Stamp Modeling</p><p>The whole stamp modeling is finished at this stage, shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>1. The finished model is composed of the top face, side ring, back face and handle of the stamp model. Most facets of the handle are quads, except the triangle facets at the tip of handle.</p><p><xref ref-type="fig" rid="fig3">Figure 3</xref>1(a) and <xref ref-type="fig" rid="fig3">Figure 3</xref>1(c) are the front view and side back view of wire-frame images, respectively. <xref ref-type="fig" rid="fig3">Figure 3</xref>1(b) and <xref ref-type="fig" rid="fig3">Figure 3</xref>1(d) are the front view and side back view of fill-area images, respectively. <xref ref-type="fig" rid="fig1">Figure 1</xref> shows the front side views.</p><p>The tested results of the finished stamp model in <xref ref-type="fig" rid="fig3">Figure 3</xref>1 are shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>2. It is seen that the number of vertices is 9514, the number of edges is 18,910, and the number of facets is 9398. Its Euler characteristic is 2, which is consistent with that of the corresponding surface of a 3D ball. The whole modeling has been verified totally at this stage.</p><p>For the EAT algorithm, there are more application cases than the above. Since we cannot present all of them, we only explain some more features here.</p><p>We first explain the meanings of three more indicators of the EAT algorithm in applications, these being the face counter fc, edge counter ec and vertex counter vc.</p><p>As known before, during testing, the EAT scans facets of a model one facet after another without any repeated facet. The facet counter fc value of the scanned facet is equal to 1. If its fv is greater than 1, the facet has a defect that must be modified. Because an edge in a simply connected surface model can be connected to two facets at most, the edge counter ec value of the edge is smaller than or equal to 2. If the ec value is greater than 2, the edge has a defect that must be modified or the tested surface model is not simply connected. The value of a vertex counter vc in a scanned facet can be a positive integer, which means there are vc number of edges connected to the vertex item.</p><p>In addition, for the model companion, one of the important features of the EAT algorithm is that the defect of a facet can be tested, found, and immediately modified at the stage of this facet modeling. In this way, a verified model can be always provided to the succeeding process, shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>.</p></sec></sec><sec id="s5"><title>5. Conclusions</title><p>With the algebraic topology, the EAT algorithm opens a new test window for observing and examining surface modeling in surface construction and reconstruction. It computes the Euler characteristic of a model, and examines the topologic consistence of the model by comparing the Euler characteristic of the model with that of its target surface.</p><p>The EAT algorithm consists of two functions: EAT testing algorithm (EAT-TA) and statistic algorithm (EAT-SA). Both functions are short and flexible, so they are easily inserted in a model companion program. Even better, a clean and verified model can be provided without the EAT code left after the EAT-searching.</p><p>The EAT algorithm is adaptable and can be used to test different polygon facets of various surface models in surface construction and reconstruction. The EAT algorithm is independent of the metrics of facets. A facet much smaller than most of facets in a model can be identified.</p><p>In future, the EAT algorithm will be applied to test more forms of models that may have different values of Euler characteristics and different topologic structures. It can be sure that more potential of the EAT algorithm can be revealed.</p></sec><sec id="s6"><title>Acknowledgements</title><p>This work has been supported by Hebei Project of Sponsoring High-Level Talents [grant number C2015003045], Doctoral Research Foundation of Hebei University of Science and Technology [grant number 201417], and Hebei Project of Sponsoring Introduced Overseas Researchers [grant number C201811].</p></sec><sec id="s7"><title>Conflicts of Interest</title><p>The authors declare no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s8"><title>Cite this paper</title><p>Liu, Y.K., Yue, Y., Zhang, D.W. and Li, C.H. (2020) Euler Characteristic Scheme of Globally Searching for Flaws in Surface Modeling. Advances in Pure Mathematics, 10, 57-85. https://doi.org/10.4236/apm.2020.102005</p></sec></body><back><ref-list><title>References</title><ref id="scirp.98558-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Guo, X., Xiao, J. and Wang, Y. (2018) A Survey on Algorithms of Hole Filling in 3D Surface Reconstruction. Visual Computer, 34, 93-103. https://doi.org/10.1007/s00371-016-1316-y</mixed-citation></ref><ref id="scirp.98558-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Jun, Y. (2005) A Piecewise Hole Filling Algorithm in Reverse Engineering. Computer-Aided Design, 37, 263-270. https://doi.org/10.1016/j.cad.2004.06.012</mixed-citation></ref><ref id="scirp.98558-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Attene, M., Campen, M. and Kobbelt, L. (2013) Polygon Mesh Repairing: An Application Perspective. ACM Computing Surveys, 45, Article No. 15. https://doi.org/10.1145/2431211.2431214</mixed-citation></ref><ref id="scirp.98558-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Casciola, G., Lazzaro, D., Montefusco, L.B. and Morigi, S. (2005) Fast Surface Reconstruction and Hole Filling Using Positive Definite Radial Basis Functions. Numerical Algorithms, 39, 289-305. https://doi.org/10.1007/s11075-004-3643-8</mixed-citation></ref><ref id="scirp.98558-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Wu, X. and Chen, W. (2014) A Scattered Point Set Hole-Filling Method Based on Boundary Extension and Convergence. Proceedings of the 11th World Congress on Intelligent Control and Automation, Shenyang, 29 June-4 July 2014, 5329-5334. https://doi.org/10.1109/WCICA.2014.7053624</mixed-citation></ref><ref id="scirp.98558-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Doria, D. and Radke, R.J. (2012) Filling Large Holes in LiDAR Data by Inpainting Depth Gradients. Proceedings of 2012 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops, Providence, 16-21 June 2012, 65-72. https://doi.org/10.1109/CVPRW.2012.6238916</mixed-citation></ref><ref id="scirp.98558-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Yang, N.-E., Kim, Y.-G. and Park, R.-H. (2012) Depth Hole Filling Using the Depth Distribution of Neighboring Regions of Depth Holes in the Kinect Sensor. Proceedings of 2012 IEEE International Conference on Signal Processing, Communication and Computing, Hong Kong, 31 July-3August 2012, 658-661. https://doi.org/10.1109/ICSPCC.2012.6335696</mixed-citation></ref><ref id="scirp.98558-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Quinsat, Y. and Iartigue, C. (2015) Filling Holes in Digitized Point Cloud Using a Morphing-Based Approach to Preserve Volume Characteristics. The International Journal of Advanced Manufacturing Technology, 81, 411-421. https://doi.org/10.1007/s00170-015-7185-0</mixed-citation></ref><ref id="scirp.98558-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Bendels, G.H., Schnabel, R. and Klein, R. (2006) Detecting Holes in Point Set Surface. Journal of WSCG, 14, 89-96.</mixed-citation></ref><ref id="scirp.98558-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Methirumangalath, S., Kannan, S.S., Parakkat, A.D. and Muthuganapathy, R. (2017) Hole Detection in a Planar Point Set: An Empty Disk Approach. Computers &amp; Graphics, 66, 124-134. https://doi.org/10.1016/j.cag.2017.05.006</mixed-citation></ref><ref id="scirp.98558-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Cunningham, S. (2008) Computer Graphics: Programming in OpenGL for Visual Communication. Prentice Hall Inc., Upper Saddle River.</mixed-citation></ref><ref id="scirp.98558-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Botsch, M. and Sorkine, O. (2008) On Linear Variational Surface Deformation Methods. IEEE Transactions on Visualization and Computer Graphics, 14, 213-230. https://doi.org/10.1109/TVCG.2007.1054</mixed-citation></ref><ref id="scirp.98558-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Xu, Q., Wang, J. and An, X. (2014) A Pipeline for Surface Reconstruction of 3-Dimentional Point Cloud. Proceedings of 2014 International Conference on Audio, Language and Image Processing, Shanghai, 7-9 July 2014, 822-826. https://doi.org/10.1109/ICALIP.2014.7009909</mixed-citation></ref><ref id="scirp.98558-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Wiemann, T., Mitschke, I., Mock, A. and Hertzberg, J. (2018) Surface Reconstruction from Arbitrarily Large Point Clouds. Proceedings of 2018 Second IEEE International Conference on Robotic Computing, Laguna Hills, 31 January-2 February 2018, 278-281. https://doi.org/10.1109/IRC.2018.00059</mixed-citation></ref><ref id="scirp.98558-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Odesanya, O.S., Waggenspack, W.N. and Thompson, D.E. (1993) Construction of Biological Surface Models from Cross-Sections. IEEE Transactions on Biomedical Engineering, 40, 329-334. https://doi.org/10.1109/10.222325</mixed-citation></ref><ref id="scirp.98558-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Shi, J., Zhu, L., Li, Z., Yang, J. and Wang, X. (2017) A Design and Fabrication Method for a Heterogeneous Model of 3D Bio-Printing. IEEE Access, 5, 5347-5353. https://doi.org/10.1109/ACCESS.2017.2692248</mixed-citation></ref><ref id="scirp.98558-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Fuhrmann, M. and Goesele, M. (2014) Floating Scale Surface Reconstruction. ACM Transactions on Graphics, 33, Article No. 46. https://doi.org/10.1145/2601097.2601163</mixed-citation></ref><ref id="scirp.98558-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Lávi&amp;#269;ka, M., &amp;#352;ír, A. and Vr&amp;#353;ek, J. (2016) Smooth Surface Interpolation Using Patches with Rational Offset. Computer Aided Geometric Design, 48, 75-85. https://doi.org/10.1016/j.cagd.2016.09.002</mixed-citation></ref><ref id="scirp.98558-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">Shen, J., Kosinka, J., Sabin, M. and Dodgson, N. (2016) Converting a CAD Model into a Non-Uniform Subdivision Surface. Computer Aided Geometric Design, 48, 17-35. https://doi.org/10.1016/j.cagd.2016.07.003</mixed-citation></ref><ref id="scirp.98558-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">Sederberg, T.W., Zheng, J., Bakenov, A. and Nasri, A. (2003) T-Splines and T-NURCCs. ACM Transactions on Graphics, 22, 477-484. https://doi.org/10.1145/882262.882295</mixed-citation></ref><ref id="scirp.98558-ref21"><label>21</label><mixed-citation publication-type="other" xlink:type="simple">Coêlho, J., Gattass, M. and Lopes, H. (2019) ARTMe: A New Array-Based Algorithm for Adaptive Refinement of Triangle Meshes. Engineering with Computers, 35, 1-20. https://doi.org/10.1007/s00366-018-0579-5</mixed-citation></ref><ref id="scirp.98558-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Bock, K. and Stiller, J. (2018) Optimizing Triangular High-Order Surface Meshes by Energy-Minimization. Engineering with Computers, 34, 659-670. https://doi.org/10.1007/s00366-017-0565-3</mixed-citation></ref><ref id="scirp.98558-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">Chen, H. and Shen, J. (2018) Denoising of Point Cloud Data for Computer-Aided Design, Engineering and Manufacturing. Engineering with Computers, 34, 523-541. https://doi.org/10.1007/s00366-017-0556-4</mixed-citation></ref><ref id="scirp.98558-ref24"><label>24</label><mixed-citation publication-type="other" xlink:type="simple">Hoschek, J. and Lasser, D. (1993) Fundamentals of Computer Aided Geometric Design. A K Peters, Wellesely.</mixed-citation></ref><ref id="scirp.98558-ref25"><label>25</label><mixed-citation publication-type="other" xlink:type="simple">Baker, H. (2004) Computer Graphics with OpenGL. Third Edition, Pearson Prentice Hall, Upper Saddle River.</mixed-citation></ref><ref id="scirp.98558-ref26"><label>26</label><mixed-citation publication-type="other" xlink:type="simple">Wang, Y., Zheng, J. and Wang, H. (2019) Fast Mesh Simplification Method for Three-Dimensional Geometric Models with Feature-Preserving Efficiency. Scientific Programming, 2019, Article ID: 4926190.https://doi.org/10.1155/2019/4926190</mixed-citation></ref><ref id="scirp.98558-ref27"><label>27</label><mixed-citation publication-type="other" xlink:type="simple">Hoppe, H., DeRose, T., Duchamp, T., McDonald, J. and Stuetzle, W. (1992) Surface Reconstruction from Unorganized Points. Proceedings of SIGGRAPH’92, Chicago, 26-31 July 1992, 71-78. https://doi.org/10.1145/133994.134011</mixed-citation></ref><ref id="scirp.98558-ref28"><label>28</label><mixed-citation publication-type="other" xlink:type="simple">Hoppe, H., DeRose, T., Duchamp, T., McDonald, J. and Stuetzle, W. (1993) Mesh Optimization. Proceedings of SIGGRAPH’93, Anaheim, 2-6 August 1993, 19-26. https://doi.org/10.1145/166117.166119</mixed-citation></ref><ref id="scirp.98558-ref29"><label>29</label><mixed-citation publication-type="other" xlink:type="simple">Hoppe, H., DeRose, T., Duchamp, T., Halstead, M., Jin, H., Mcdonald, J., Schweitzer, J. and Stuetzle, W. (1994) Piecewise Smooth Surface Reconstruction. Proceedings of SIGGRAPH’94, Orlando, 24-29 July 1994, 295-302. https://doi.org/10.1145/192161.192233</mixed-citation></ref><ref id="scirp.98558-ref30"><label>30</label><mixed-citation publication-type="other" xlink:type="simple">Turk, G. and Levoy, M. (1994) Zippered Polygon Meshes from Range Images. Proceedings of SIGGRAPH’94, Orlando, 24-29 July 1994, 311-318. https://doi.org/10.1145/192161.192241</mixed-citation></ref><ref id="scirp.98558-ref31"><label>31</label><mixed-citation publication-type="other" xlink:type="simple">Catmull, E. and Clark, J. (1978) Recursively Generated B-Spline Surfaces on Arbitrary Topological Meshes. Computer-Aided Design, 10, 350-355. https://doi.org/10.1016/0010-4485(78)90110-0</mixed-citation></ref><ref id="scirp.98558-ref32"><label>32</label><mixed-citation publication-type="other" xlink:type="simple">Doo, D.W.H. and Sabin, M.A. (1978) Behaviour of Recursive Division Surfaces near Extraordinary Points. Computer-Aided Design, 10, 356-360. https://doi.org/10.1016/0010-4485(78)90111-2</mixed-citation></ref><ref id="scirp.98558-ref33"><label>33</label><mixed-citation publication-type="other" xlink:type="simple">Bolz, J. and Schr&amp;#246;der, P. (2002) Rapid Evaluation of Catmull-Clark Subdivision Surfaces. Proceedings of the Seventh International Conference on 3D Web Technology, Tempe, 24-28 February 2002, 11-17. https://doi.org/10.1145/504502.504505</mixed-citation></ref><ref id="scirp.98558-ref34"><label>34</label><mixed-citation publication-type="other" xlink:type="simple">Forsey, D.R. and Bartels, R.H. (1988) Hierarchical B-Spline Refinement. ACM SIGGRAPH Computer Graphics, Vol. 22, 205-212. https://doi.org/10.1145/54852.378512</mixed-citation></ref><ref id="scirp.98558-ref35"><label>35</label><mixed-citation publication-type="other" xlink:type="simple">Sederberg, T.W., Zheng, J., Sewell, D. and Sabin, M. (1998) Non-Uniform Recursive Subdivision Surfaces. Proceedings of ACM SIGGRAPH’98, Orlando, 19-24 July 1998, 387-394. https://doi.org/10.1145/280814.280942</mixed-citation></ref><ref id="scirp.98558-ref36"><label>36</label><mixed-citation publication-type="other" xlink:type="simple">Velho, L. and Zorin, D. (2001) 4-8 Subdivision. Computer Aided Geometric Design, 18, 397-427. https://doi.org/10.1016/S0167-8396(01)00039-5</mixed-citation></ref><ref id="scirp.98558-ref37"><label>37</label><mixed-citation publication-type="other" xlink:type="simple">Müller, K., Reusche, L. and Fellner, D. (2006) Extended Subdivision Surfaces: Building a Bridge between NURBS and Catmull-Clark Surface. ACM Transactions on Graphics, 25, 268-292. https://doi.org/10.1145/1138450.1138455</mixed-citation></ref><ref id="scirp.98558-ref38"><label>38</label><mixed-citation publication-type="other" xlink:type="simple">Cashman, T.J., Augsd&amp;#246;rfer, U.H., Dodgson, N.A. and Sabin, M.A. (2009) NURBS with Extraordinary Points: High-Degree, Non-Uniform, Rational Subdivision Schemes. ACM Transactions on Graphics, 28, Article No. 46. https://doi.org/10.1145/1531326.1531352</mixed-citation></ref><ref id="scirp.98558-ref39"><label>39</label><mixed-citation publication-type="other" xlink:type="simple">Cashman, T.J. (2010) NURBS-Compatible Subdivision Surfaces. Doctoral Thesis, University of Cambridge, Cambridge. https://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.608572</mixed-citation></ref><ref id="scirp.98558-ref40"><label>40</label><mixed-citation publication-type="other" xlink:type="simple">Shen, J., Kosinka, J., Sabin, M.A. and Dodgson, N.A. (2014) Conversion of Trimmed NURBS Surfaces to Catmull-Clark Subdivision Surfaces. Computer Aided Geometric Design, 31, 486-498. https://doi.org/10.1016/j.cagd.2014.06.004</mixed-citation></ref><ref id="scirp.98558-ref41"><label>41</label><mixed-citation publication-type="other" xlink:type="simple">Campen, M. and Zorin, D. (2017) Similarity Maps and Field-Guided T-Splines: A Perfect Couple. ACM Transactions on Graphics, 36, Article No. 91. https://doi.org/10.1145/3072959.3073647</mixed-citation></ref><ref id="scirp.98558-ref42"><label>42</label><mixed-citation publication-type="other" xlink:type="simple">Massy, W.S. (1991) Algebraic Topology: An Introduction. Springer-Verlag, Berlin/Heidelberg/New York.</mixed-citation></ref><ref id="scirp.98558-ref43"><label>43</label><mixed-citation publication-type="other" xlink:type="simple">Hirsch, M.W. (2001) Differential Topology. Springer-Verlag, Berlin/Heidelberg/New York.</mixed-citation></ref></ref-list></back></article>