用于网格模型孔洞解除的数据处理方法及装置制造方法
【专利摘要】本发明公开了一种用于网格模型孔洞解除的数据处理方法及装置。该方法包括:确定网格模型,其中,网格模型包括外边,外边为网格模型中仅存在于一个三角形中的边,外边包括第一外边,第一外边具有第一端点和第二端点,第一端点为非多边点;判断第二端点是否为多边点,其中,多边点为被两条以上外边共用的端点;如果第二端点为多边点,则确定与第二端点拓扑连续的端点为第三端点,其中,第三端点为第二外边的端点,第二外边和第一外边共用第二端点;执行孔洞解除处理,其中,按照拓扑连续的方向对网格模型包括的外边的端点进行遍历,获取网格模型中的单连通孔洞。通过本发明,解决了对网格模型中的孔洞进行解除处理时执行效率低的问题。
【专利说明】用于网格模型孔洞解除的数据处理方法及装置
【技术领域】
[0001]本发明涉及数据处理领域,具体而言,涉及一种用于网格模型孔洞解除的数据处理方法及装置。
【背景技术】
[0002]随着产品迭代速度与个性化需求的不断提高,产品设计要求越来越迅速与准确,因此基于原型的改型设计被广泛应用。逆向工程利用3D扫描技术获得产品原型的点云数据,并进一步处理得到数字化产品网格模型,可以大大加快改型设计的速度。
[0003]但在3D扫描中,由于设备限制或产品自身特点,生成的点云常不能包含完整连续的原型特征,导致随后的网格模型拥有大量孔洞。这些孔洞对基于网格模型的进一步改型设计有重大影响。为解决这个问题,逆向工程的建模引入了孔洞修补的概念。
[0004]在孔洞修补中,由于实际产品形状常为复杂型面实体,3D扫描得到的三维点云数据常常在局部区域存在空间点分布不均匀以及曲率变化剧烈的情况。由这类点云数据生成的网格模型很容易出现孔洞缺陷,且孔洞本身形状很不规则,出现诸如单点连多三角形孔洞)等复杂孔洞的情况,如图1为单点连多三角形孔洞的示意图。单点连多三角形孔洞形式多样,可能是连环孔洞(如图2为连环洞形式的单点连多三角形孔洞的示意图)、岛(如图3为岛形式的单点连多三角形孔洞的示意图)、桥(如图4为桥形式的单点连多三角形孔洞的示意图)等多种情况,这种孔洞形式往往造成孔洞形状变得崎岖纠结,若未进行处理而直接修补可能导致孔洞修补算法产生畸形网格甚至无法建立拓扑结构。
[0005]为了修复单点连多三角形等复杂孔洞,需要解除复杂孔洞,将复杂孔洞分解为多个单连通环域,为后续的孔洞修补做好准备。
[0006]针对单点连多三角形孔洞,现有的解除方法是先找到连多孔洞的单点,从该点处开始对所有可能边缘路径进行遍历,直到找到闭合的最小回路,再从下一个连多孔洞的单点开始遍历查找,循环递归,直到所有子孔洞被分离。遍历所有可能路径的方法会耗费大量时间,主要原因在于:
[0007](I) 一个单点的遍历需要耗费时间。
[0008]一个单点可能需要遍历的次数较多,并且每个单点都要进行路径回路长度比较,二者均会耗费时间。在某些情况下,这种时间耗费可能会加倍。如图4所示,一个大孔洞内增加了一片桥状悬浮片,导致此连环孔洞内有两个单点需要循环,而且每个单点都有6条闭合路径可供选择,总共需要遍历12次,外加比较回路长度和选取回路,若是大规模的孔洞,将耗费大量的时间。
[0009](2)多点复杂环路的遍历过程需要耗费时间。
[0010]当针对拥有多个单点的复杂环路时,路径可能会急剧增加,对一个点的所有路径进行遍历,耗费了一定的时间;当解开一个孔洞后,再解下一个点的连环孔洞时,这种几个点解环遍历叠加在一起也会降低软件运行的效率。
[0011]针对相关技术中对网格模型中的孔洞进行解除处理时执行效率低的问题,目前尚未提出有效的解决方案。
【发明内容】
[0012]本发明的主要目的在于提供一种用于网格模型孔洞解除的数据处理方法及装置,以解决对网格模型中的孔洞进行解除处理时执行效率低的问题。
[0013]为了实现上述目的,根据本发明的一个方面,提供了一种用于网格模型孔洞解除的数据处理方法。
[0014]根据本发明的用于网格模型孔洞解除的数据处理方法包括:确定网格模型,其中,网格模型包括外边,外边为网格模型中仅存在于一个三角形中的边,外边包括第一外边,第一外边具有第一端点和第二端点,第一端点为非多边点,非多边点为仅被两条外边共用的端点;判断第二端点是否为多边点,其中,多边点为被两条以上外边共用的端点;如果第二端点为多边点,则确定与第二端点拓扑连续的端点为第三端点,其中,第三端点为第二外边的端点,第二外边和第一外边共用第二端点;执行孔洞解除处理,其中,按照拓扑连续的方向对网格模型包括的外边的端点进行遍历,获取网格模型中的单连通孔洞。
[0015]进一步地,确定与第二端点拓扑连续的端点为第三端点包括:确定第一拓扑结构,其中,第一拓扑结构为第一外边所属的拓扑结构,第一拓扑结构为一层拓扑结构;确定第二拓扑结构,其中,第二拓扑结构为与第一拓扑结构连续的拓扑结构,并且第二拓扑结构为包含第二端点的一层拓扑结构;确定第二拓扑结构包含的与第二端点共同属于一条外边的端点为第三端点。
[0016]进一步地,通过以下方法确定第一端点和第二端点:获取外边集合,其中,外边集合为网格模型中包含的所有的外边的集合;确定端点集合,其中,端点集合为网格模型中包含的所有的外边的端点的集合;建立外边集合和端点集合的映射关系,其中,映射关系为外边和端点的对应关系;从端点集合中查找一个非多边点作为第一端点;根据映射关系确定第二端点。
[0017]进一步地,执行孔洞解除处理包括:判断按照拓扑连续的方向对网格模型包括的外边的端点进行遍历的过程中是否再次出现第一端点;如果过程中再次出现第一端点,则结束遍历,并获取遍历路径;判断遍历路径中是否包含多边点;如果遍历路径中不包含多边点,则获取遍历路径对应的单连通孔洞。
[0018]进一步地,在判断遍历路径中是否包含多边点之后,该方法还包括:如果遍历路径中包含多边点,则按照多边点分割遍历路径,获取多个分割结果;分别获取对应多个分割结果的多个单连通孔洞。
[0019]进一步地,按照多边点分割遍历路径包括:按照遍历路径的方向依次对遍历路径包含的所有端点利用字符加以标识,其中,不同端点对应的字符不同;根据字符确定遍历路径对应的字符串;检测字符串中重复字符出现的位置;根据重复字符出现的位置对述字符串进行分割,获取多个子字符串,分别获取对应多个分割结果的多个单连通孔洞包括:分别获取多个子字符串对应的遍历路径所对应的多个单连通孔洞。
[0020]进一步地,在判断第二端点是否为多边点之后,该方法还包括:如果第二端点不是多边点,则确定第三外边,其中,第三外边和第一外边共用第二端点;确定第三外边包含的除第二端点之外的另外一个端点为第三端点。
[0021]为了实现上述目的,根据本发明的另一方面,提供了一种用于网格模型孔洞解除的数据处理装置。
[0022]根据本发明的用于网格模型孔洞解除的数据处理装置包括:第一确定单元,用于确定网格模型,其中,网格模型包括外边,外边为网格模型中仅存在于一个三角形中的边,外边包括第一外边,第一外边具有第一端点和第二端点,第一端点为非多边点,非多边点为仅被两条外边共用的端点;判断单元,用于判断第二端点是否为多边点,其中,多边点为被两条以上外边共用的端点;第二确定单元,用于在第二端点为多边点时,确定与第二端点拓扑连续的端点为第三端点,其中,第三端点为第二外边的端点,第二外边和第一外边共用第二端点;执行单元,用于执行孔洞解除处理,其中,按照拓扑连续的方向对网格模型包括的外边的端点进行遍历,获取网格模型中的单连通孔洞。
[0023]进一步地,第二确定单元包括:第一确定模块,用于确定第一拓扑结构,其中,第一拓扑结构为第一外边所属的拓扑结构,第一拓扑结构为一层拓扑结构;第二确定模块,用于确定第二拓扑结构,其中,第二拓扑结构为与第一拓扑结构连续的拓扑结构,并且第二拓扑结构为包含第二端点的一层拓扑结构;第三确定模块,用于确定第二拓扑结构包含的与第二端点共同属于一条外边的端点为第三端点。
[0024]进一步地,通过以下模块确定第一端点和第二端点:获取模块,用于获取外边集合,其中,外边集合为网格模型中包含的所有的外边的集合;第四确定模块,用于确定端点集合,其中,端点集合为网格模型中包含的所有的外边的端点的集合;建立模块,用于建立外边集合和端点集合的映射关系,其中,映射关系为外边和端点的对应关系;查找模块,用于从端点集合中查找一个非多边点作为第一端点;第五确定模块,用于根据映射关系确定第二端点。
[0025]通过本发明,采用包括以下步骤的方法:确定网格模型,其中,网格模型包括外边,外边为网格模型中仅存在于一个三角形中的边,外边包括第一外边,第一外边具有第一端点和第二端点,第一端点为非多边点,非多边点为仅被两条外边共用的端点;判断第二端点是否为多边点,其中,多边点为被两条以上外边共用的端点;如果第二端点为多边点,则确定与第二端点拓扑连续的端点为第三端点,其中,第三端点为第二外边的端点,第二外边和第一外边共用第二端点;执行孔洞解除处理,其中,按照拓扑连续的方向对网格模型包括的外边的端点进行遍历,获取网格模型中的单连通孔洞,解决了对网格模型中的孔洞进行解除处理时执行效率低的问题,进而通过按照拓扑连续的方向对网格模型包括的外边的端点进行遍历,获取网格模型中的单连通孔洞,达到了提高网格模型中孔洞解除的执行效率的效果。
【专利附图】
【附图说明】
[0026]构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0027]图1是单点连多三角形孔洞的示意图;
[0028]图2是连环洞形式的单点连多三角形孔洞的示意图;
[0029]图3是岛形式的单点连多三角形孔洞的示意图;
[0030]图4是桥形式的单点连多三角形孔洞的示意图;
[0031]图5是根据本发明的用于网格模型孔洞解除的数据处理方法的第一实施例的流程图;
[0032]图6是根据本发明实施例的分割遍历路径的示意图;
[0033]图7是根据本发明的用于网格模型孔洞解除的数据处理方法的第二实施例的流程图;
[0034]图8是根据本发明实施例的进行遍历方向选择的示意图;
[0035]图9是根据本发明实施例的设置新起点的示意图;
[0036]图10是根据本发明实施例的解离多边点的示意图;
[0037]图11是根据本发明实施例的获取遍历路径的示意图;以及
[0038]图12是根据本发明的用于网格模型孔洞解除的数据处理装置的实施例的示意图。
【具体实施方式】
[0039]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0040]为了使本【技术领域】的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0041]需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0042]根据本发明的实施例,提供了一种用于网格模型孔洞解除的数据处理方法。
[0043]图5是根据本发明的用于网格模型孔洞解除的数据处理方法的第一实施例的流程图。如图5所示,该方法包括步骤S102至步骤S108:
[0044]步骤S102,确定网格模型,其中,网格模型包括外边,外边为网格模型中仅存在于一个三角形中的边,外边包括第一外边,第一外边具有第一端点和第二端点,第一端点为非多边点,非多边点为仅被两条外边共用的端点。
[0045]通常,在网格模型中包含大量的边,其中,只存在于一个三角形中的边为外边,每条外边具有两个端点。端点分为两种类型:多边点和非多边点。多边点是指两条以上外边所共有的端点,非多边点是仅两条外边共有的端点。这里,需要说明的是,第一外边具有的第一端点为非多边点,即只有第一外边和另外一条外边所共有。
[0046]可选地,可以通过以下方法确定第一端点和第二端点:获取外边集合,其中,外边集合为网格模型中包含的所有的外边的集合;确定端点集合,其中,端点集合为网格模型中包含的所有的外边的端点的集合;建立外边集合和端点集合的映射关系,其中,映射关系为外边和端点的对应关系;从端点集合中查找一个非多边点作为第一端点;根据映射关系确定第二端点。
[0047]首先获取网格模型中包含的所有的外边,以及这些外边的端点;其次,根据外边和端点的对应关系建立端点到外边的映射;再次,从端点中获取一个非多边点作为遍历的起始点,再根据该多边点确定第二端点。例如,端点I为非多边点,为外边I的一个端点,则夕卜边I的另外一个端点为第二端点。
[0048]步骤S104,判断第二端点是否为多边点,其中,多边点为被两条以上外边共用的端点。
[0049]第二端点可能为多边点,也可能为非多边点。这里,对第二端点的端点性质进行判断是用于后续遍历方向的选择,针对第二端点不同的端点性质,后续选择的遍历方向是不同的。
[0050]步骤S106,如果第二端点为多边点,则确定与第二端点拓扑连续的端点为第三端点,其中,第三端点为第二外边的端点,第二外边和第一外边共用第二端点。
[0051]例如,第二端点为端点1,为外边1、外边2 (另一个端点为端点2)、外边3 (另一个端点为端点3)和外边4(另一个端点为端点4)的公共端点,其中,端点I与端点2拓扑连续,与端点3、端点4均不是拓扑连续,则可以将端点2作为第三端点。
[0052]可选地,确定与第二端点拓扑连续的端点为第三端点可通过如下步骤进行:确定第一拓扑结构,其中,第一拓扑结构为第一外边所属的拓扑结构,第一拓扑结构为一层拓扑结构;确定第二拓扑结构,其中,第二拓扑结构为与第一拓扑结构连续的拓扑结构,并且第二拓扑结构为包含第二端点的一层拓扑结构;确定第二拓扑结构包含的与第二端点共同属于一条外边的端点为第三端点。
[0053]例如,第二端点为端点1,是外边I的一个端点。外边I是网格模型中一个三角形的外边,该三角形位于第一拓扑结构。根据第一拓扑结构以及端点I可以确定第二拓扑结构,即包含端点I并且与第一拓扑结构连续的拓扑结构。在第二拓扑结构上获取第三端点,即与端点I属于同一条外边的另外一个端点。需要说明的是,经过上述步骤确定的第三端点可能有多个,即遍历路径中第二端点可能仍旧是多边点。
[0054]步骤S108,执行孔洞解除处理,其中,按照拓扑连续的方向对网格模型包括的外边的端点进行遍历,获取网格模型中的单连通孔洞。
[0055]可选地,可以按照如下步骤执行孔洞解除处理:判断按照拓扑连续的方向对网格模型包括的外边的端点进行遍历的过程中是否再次出现第一端点;如果过程中再次出现第一端点,则结束遍历,并获取遍历路径;判断遍历路径中是否包含多边点;如果遍历路径中不包含多边点,则获取遍历路径对应的单连通孔洞。
[0056]按照上述确定第三端点的方法,按照拓扑连续的方向对网格模型包括的外边的端点进行遍历,直到再次返回第一端点。当再次出现第一端点,则获取整个遍历的路径。由于在遍历的过程中,多边点可能没有被完全消除,因此,最后还需要判断遍历路径中是否包含多边点。如果多边点已经被消除,则获取的遍历路径即为单连通路径,网格模型中的复杂孔洞被解除;如果多边点依旧存在,则需要对遍历结果作进一步的处理。
[0057]可选地,在判断遍历路径中是否包含多边点之后,该方法还可以包括:如果遍历路径中包含多边点,则按照多边点分割遍历路径,获取多个分割结果;分别获取对应多个分割结果的多个单连通孔洞。为了获取单连通孔洞,需要将遍历路径中包含的多边点全部清除。根据多边点分割遍历路径,可以获取对应多个分割结果的多个单连通孔洞,即实现了解除网格模型中复杂孔洞的目的。
[0058]优选地,可以根据如下方法按照多边点分割遍历路径:按照遍历路径的方向依次对遍历路径包含的所有端点利用字符加以标识,其中,不同端点对应的字符不同;根据字符确定遍历路径对应的字符串;检测字符串中重复字符出现的位置;根据重复字符出现的位置对述字符串进行分割,获取多个子字符串,分别获取对应多个分割结果的多个单连通孔洞包括:分别获取多个子字符串对应的遍历路径所对应的多个单连通孔洞。
[0059]例如,图6是根据本发明实施例的分割遍历路径的示意图。如图6所示,遍历路径包含的端点为端点1、端点2、端点3、端点4和端点5。遍历路径对应的字符串可以表示为{1,2,3,4,2,5},其中,端点2为多边点。端点2出现的位置为字符串中的位置2和位置4。可以直接截取位置2至位置4的字符组成新的字符串,8卩{2,3,4};剩余的字符组成另外一个字符串{1,2,5}。上述得到的两个字符串对应的路径即为最终分割之后的两个单连通路径。
[0060]可选地,在判断第二端点是否为多边点之后,该方法还可以包括:如果第二端点不是多边点,则确定第三外边,其中,第三外边和第一外边共用第二端点;确定第三外边包含的除第二端点之外的另外一个端点为第三端点。如果判断出第二端点不是多边点,则可以直接将第二端点所属于的外边的另外一个端点作为遍历的下一个端点。
[0061]该实施例由于采用了如下步骤:确定网格模型,其中,网格模型包括外边,外边为网格模型中仅存在于一个三角形中的边,外边包括第一外边,第一外边具有第一端点和第二端点,第一端点为非多边点,非多边点为仅被两条外边共用的端点;判断第二端点是否为多边点,其中,多边点为被两条以上外边共用的端点;如果第二端点为多边点,则确定与第二端点拓扑连续的端点为第三端点,其中,第三端点为第二外边的端点,第二外边和第一外边共用第二端点;执行孔洞解除处理,其中,按照拓扑连续的方向对网格模型包括的外边的端点进行遍历,获取网格模型中的单连通孔洞,解决了对网格模型中的孔洞进行解除处理时执行效率低的问题,进而通过按照拓扑连续的方向对网格模型包括的外边的端点进行遍历,获取网格模型中的单连通孔洞,达到了提高网格模型中孔洞解除的执行效率的效果。
[0062]图7是根据本发明的用于网格模型孔洞解除的数据处理方法的第二实施例的流程图。该实施例可以作为图5所示实施例的一种优选实施方式。如图7所示,该方法包括步骤S201至步骤S210:
[0063]步骤S201,构建外边集合,建立点、外边映射。
[0064]获取网格模型中包含的所有的外边,以及外边的端点,根据外边和端点之间的对应关系建立外边和端点之间的映射。
[0065]步骤S202,设置终点、起点。
[0066]例如,可以在外边集合中抽取任意一条没有多边点的边,选取一个搜索方向,并将该边两端的点设为起始点与终点。图8为根据本发明实施例的进行遍历方向选择的示意图。如图8所示,AB表示遍历开始时选择的第一条外边,A为起点,B为终点(也是预设的整个遍历过程结束的终点),C表示遍历进行的方向。
[0067]步骤S203,寻找下一个端点。
[0068]利用起始点的点-外边映射,找到下一条外边,并找到该外边的另一端点,设置为新的起始点。图9是根据本发明实施例的设置新起点的示意图。如图9所示,AB表示遍历开始时选择的第一条外边,AD为遍历的第二条外边,A为遍历起点,B为遍历第一条外边时的终点,D为遍历第二条外边时新的起点。
[0069]步骤S204,判断该端点是否为多边点。
[0070]步骤S205,如果判断出该端点为多边点,则解析该多边点一层拓扑结构。
[0071]判断上述新起始点是否被多条外边共用,即多边点,若是多边点,则获取该点附近一层的拓扑结构,找到与该多边点拓扑连续的并与其在同一条外边上的点,设置该点为下一个搜索的起始点,即将搜索方向导向拓扑连续的方向。图10是根据本发明实施例的解离多边点的示意图。如图10所示,A为遍历起点,B为遍历第一条外边时的终点,E为多边点,F为与端点E拓扑连续的点。
[0072]步骤S206,设置拓扑连续的点为下一个点。
[0073]如图10所示,即将F作为下一个点遍历的端点。
[0074]步骤S207,判断该拓扑连续的点是否为终点。
[0075]步骤S208,如果该拓扑连续的点是终点,则获取环路。
[0076]图11是根据本发明实施例的获取遍历路径的示意图。如图11所示,A为遍历起点,B为遍历第一条外边时的终点,E和G均为多边点。当遍历再次返回预设终点B,则遍历结束,获取整个遍历路径。
[0077]步骤S209,判断环路是否存在多边点。
[0078]如果获取的遍历路径中不存在多边点,则获取该环路,即单连通孔洞。
[0079]步骤S210,如果环路存在多边点,则分割环路。
[0080]如果获取的遍历路径中存在多边点,则按照多边点分割获取的遍历路径,使得最终结果为多个单连通路径。
[0081]本实施例提供的用于网格模型孔洞解除的数据处理方法主要包括:通过多边点周边的一层拓扑结构将外边搜索方向强制导向与其拓扑连续的另一侧外边,进行孔洞点序列的排序,使用环路中的多边点序列,将有序复杂多连通孔洞直接分割成若干单连通孔洞。该方法采用通过多边点周边的一层拓扑结构来强制导向巡边的技术,在占用资源最少的情况下将巡边次数降到了最低,可以快速、准确地解开单点连多三角形等复杂孔洞;将单点连多三角形复杂孔洞变成若干个简单的单连通孔洞,大大降低对修补漏洞模块的要求,使得修补漏洞模块变得简单迅速,大大减轻了软件开发者的工作量和难度;在一个三维模型中,孔洞都以简单的单连通孔洞的形式存在,可以支持更多的交互补洞手段,如删除岛、删除悬浮片、桥接等操作,使得修补漏洞模块更加灵活多变,适应设计人员的需求,从而可以有效地还原原型实物的形状。利用该方法,单点连多三角形的复杂孔洞的多种形态均可用实现快速、有效地解离,减少了补洞复杂性,增加了灵活性。
[0082]需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0083]根据本发明的实施例,提供了一种用于网格模型孔洞解除的数据处理装置。需要说明的是,本发明实施例的用于网格模型孔洞解除的数据处理装置可以用于执行本发明实施例所提供的用于网格模型孔洞解除的数据处理方法,本发明实施例的用于网格模型孔洞解除的数据处理方法也可以通过本发明实施例所提供的用于网格模型孔洞解除的数据处理装置来执行。
[0084]图12是根据本发明的用于网格模型孔洞解除的数据处理装置的实施例的示意图。如图12所示,该装置包括:第一确定单元10、判断单元20、第二确定单元30和执行单元40。
[0085]第一确定单元10,用于确定网格模型,其中,网格模型包括外边,外边为网格模型中仅存在于一个三角形中的边,外边包括第一外边,第一外边具有第一端点和第二端点,第一端点为非多边点,非多边点为仅被两条外边共用的端点。
[0086]可选地,可以通过以下模块确定第一端点和第二端点:获取模块,用于获取外边集合,其中,外边集合为网格模型中包含的所有的外边的集合;第四确定模块,用于确定端点集合,其中,端点集合为网格模型中包含的所有的外边的端点的集合;建立模块,用于建立外边集合和端点集合的映射关系,其中,映射关系为外边和端点的对应关系;查找模块,用于从端点集合中查找一个非多边点作为第一端点;第五确定模块,用于根据映射关系确定第二端点。
[0087]判断单元20,用于判断第二端点是否为多边点,其中,多边点为被两条以上外边共用的端点。
[0088]第二确定单元30,用于在第二端点为多边点时,确定与第二端点拓扑连续的端点为第三端点,其中,第三端点为第二外边的端点,第二外边和第一外边共用第二端点。
[0089]可选地,第二确定单元30可以包括:第一确定模块,用于确定第一拓扑结构,其中,第一拓扑结构为第一外边所属的拓扑结构,第一拓扑结构为一层拓扑结构;第二确定模块,用于确定第二拓扑结构,其中,第二拓扑结构为与第一拓扑结构连续的拓扑结构,并且第二拓扑结构为包含第二端点的一层拓扑结构;第三确定模块,用于确定第二拓扑结构包含的与第二端点共同属于一条外边的端点为第三端点。
[0090]执行单元40,用于执行孔洞解除处理,其中,按照拓扑连续的方向对网格模型包括的外边的端点进行遍历,获取网格模型中的单连通孔洞。
[0091]本实施例提供的用于网格模型孔洞解除的数据处理装置包括:第一确定单元10、判断单元20、第二确定单元30和执行单元40。通过该装置,解决了对网格模型中的孔洞进行解除处理时执行效率低的问题,进而通过执行单元40按照拓扑连续的方向对网格模型包括的外边的端点进行遍历,获取网格模型中的单连通孔洞,达到了提高网格模型中孔洞解除的执行效率的效果。
[0092]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0093]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种用于网格模型孔洞解除的数据处理方法,其特征在于,包括: 确定网格模型,其中,所述网格模型包括外边,所述外边为所述网格模型中仅存在于一个三角形中的边,所述外边包括第一外边,所述第一外边具有第一端点和第二端点,所述第一端点为非多边点,所述非多边点为仅被两条外边共用的端点; 判断所述第二端点是否为多边点,其中,所述多边点为被两条以上外边共用的端点;如果所述第二端点为所述多边点,则确定与所述第二端点拓扑连续的端点为第三端点,其中,所述第三端点为第二外边的端点,所述第二外边和所述第一外边共用所述第二端点;以及 执行孔洞解除处理,其中,按照所述拓扑连续的方向对所述网格模型包括的外边的端点进行遍历,获取所述网格模型中的单连通孔洞。
2.根据权利要求1所述的方法,其特征在于,确定与所述第二端点拓扑连续的端点为第三端点包括: 确定第一拓扑结构,其中,所述第一拓扑结构为所述第一外边所属的拓扑结构,所述第一拓扑结构为一层拓扑结构; 确定第二拓扑结构,其中,所述第二拓扑结构为与所述第一拓扑结构连续的拓扑结构,并且所述第二拓扑结构为包含所述第二端点的一层拓扑结构;以及 确定所述第二拓扑结构包含的与所述第二端点共同属于一条外边的端点为所述第三端点。
3.根据权利要求1所述的方法,其特征在于,通过以下方法确定所述第一端点和所述第二端点: 获取外边集合,其中,所述外边集合为所述网格模型中包含的所有的外边的集合; 确定端点集合,其中,所述端点集合为所述网格模型中包含的所有的外边的端点的集合; 建立所述外边集合和所述端点集合的映射关系,其中,所述映射关系为所述外边和所述端点的对应关系; 从所述端点集合中查找一个非多边点作为所述第一端点;以及 根据所述映射关系确定所述第二端点。
4.根据权利要求1所述的方法,其特征在于,执行孔洞解除处理包括: 判断按照所述拓扑连续的方向对所述网格模型包括的外边的端点进行遍历的过程中是否再次出现所述第一端点; 如果所述过程中再次出现所述第一端点,则结束遍历,并获取遍历路径; 判断所述遍历路径中是否包含所述多边点;以及 如果所述遍历路径中不包含所述多边点,则获取所述遍历路径对应的单连通孔洞。
5.根据权利要求4所述的方法,其特征在于,在判断所述遍历路径中是否包含所述多边点之后,所述方法还包括: 如果所述遍历路径中包含所述多边点,则按照所述多边点分割所述遍历路径,获取多个分割结果;以及 分别获取对应所述多个分割结果的多个单连通孔洞。
6.根据权利要求5所述的方法,其特征在于, 按照所述多边点分割所述遍历路径包括: 按照所述遍历路径的方向依次对所述遍历路径包含的所有端点利用字符加以标识,其中,不同端点对应的字符不同; 根据所述字符确定所述遍历路径对应的字符串; 检测所述字符串中重复字符出现的位置;以及 根据所述重复字符出现的位置对所述述字符串进行分割,获取多个子字符串, 分别获取对应所述多个分割结果的多个单连通孔洞包括:分别获取所述多个子字符串对应的遍历路径所对应的多个单连通孔洞。
7.根据权利要求1所述的方法,其特征在于,在判断所述第二端点是否为多边点之后,所述方法还包括: 如果所述第二端点不是所述多边点,则确定第三外边,其中,所述第三外边和所述第一外边共用所述第二端点;以及 确定所述第三外边包含的除所述第二端点之外的另外一个端点为所述第三端点。
8.一种用于网格模型孔洞解除的数据处理装置,其特征在于,包括: 第一确定单元,用于确定网格模型,其中,所述网格模型包括外边,所述外边为所述网格模型中仅存在于一个三角形中的边,所述外边包括第一外边,所述第一外边具有第一端点和第二端点,所述第一端点为非多边点,所述非多边点为仅被两条外边共用的端点; 判断单元,用于判断所述第二端点是否为多边点,其中,所述多边点为被两条以上外边共用的端点; 第二确定单元,用于在所述第二端点为所述多边点时,确定与所述第二端点拓扑连续的端点为第三端点,其中,所述第三端点为第二外边的端点,所述第二外边和所述第一外边共用所述第二端点;以及 执行单元,用于执行孔洞解除处理,其中,按照所述拓扑连续的方向对所述网格模型包括的外边的端点进行遍历,获取所述网格模型中的单连通孔洞。
9.根据权利要求8所述的装置,其特征在于,所述第二确定单元包括: 第一确定模块,用于确定第一拓扑结构,其中,所述第一拓扑结构为所述第一外边所属的拓扑结构,所述第一拓扑结构为一层拓扑结构; 第二确定模块,用于确定第二拓扑结构,其中,所述第二拓扑结构为与所述第一拓扑结构连续的拓扑结构,并且所述第二拓扑结构为包含所述第二端点的一层拓扑结构;以及第三确定模块,用于确定所述第二拓扑结构包含的与所述第二端点共同属于一条外边的端点为所述第三端点。
10.根据权利要求8所述的装置,其特征在于,通过以下模块确定所述第一端点和所述第二端点: 获取模块,用于获取外边集合,其中,所述外边集合为所述网格模型中包含的所有的外边的集合; 第四确定模块,用于确定端点集合,其中,所述端点集合为所述网格模型中包含的所有的外边的端点的集合; 建立模块,用于建立所述外边集合和所述端点集合的映射关系,其中,所述映射关系为所述外边和所述端点的对应关系;查找模块,用于从所述端点集合中查找一个非多边点作为所述第一端点;以及第五确定模块,用于根据所述映射关系确定所述第二端点。
【文档编号】G06T5/00GK104504660SQ201410814479
【公开日】2015年4月8日 申请日期:2014年12月23日 优先权日:2014年12月23日
【发明者】王超, 余强 申请人:北京数码大方科技股份有限公司