在编辑器中显示物体的方法、系统、设备和介质与流程

文档序号:16879534发布日期:2019-02-15 21:59阅读:170来源:国知局
在编辑器中显示物体的方法、系统、设备和介质与流程

本发明涉及二维(2d)/三维(3d)建模技术领域,特别涉及在编辑器中显示物体的方法、系统、设备和介质。



背景技术:

在2d/3d建模软件的编辑器中,用户通过对多个简单的物体进行计算,可以得到复合的物体。计算包括取交集、取并集、取反集等,这类计算一般被称为布尔运算。此外,为了得到更为复杂的复合的物体,往往需要多次布尔运算,其中后一次布尔运算在之前布尔运算的结果基础上进行。

在现有技术中,如图1所示,为了在编辑器中得到一个圆角的转角墙体,通常包括以下步骤:1)生成一个圆柱体1;2)生成一个圆柱体2,将它设置为反相状态;3)将圆柱体1与圆柱体2的反相状态合并,形成第一物体,即空心圆柱体;4)生成一个长方体3,将它设置为反相状态;5)将第一物体与长方体3的反相状态合并,形成第二物体,即二分之一的空心圆柱体;6)生成一个长方体4,将它设置为反相状态;7)将第二物体与长方体4的反相状态合并,形成第三物体,即四分之一的空心圆柱体;8)生成长方体5以及长方体6;9)将第三物体与长方体5以及长方体6合并,形成第四物体,即圆角的转角墙体。

然而,在现有技术中,只存储经过多次布尔运算得到的圆角的转角墙体。如果用户希望例如修改墙体的厚度,如减小圆柱体2的直径,则只能重新进行上述步骤。因此,现有技术只显示经过多次布尔运算得到的最终的物体,不能直观地显示最终的物体与中间的物体的从属关系,并且无法直接对中间的物体进行修改。



技术实现要素:

本发明的目的在于提供在编辑器中显示物体的方法、系统、设备和介质,解决现有技术只显示经过多次布尔运算得到的最终的物体,不能直观地显示最终的物体与中间的物体的从属关系,并且无法直接对中间的物体进行修改的技术问题。

本发明的实施方式公开了一种在编辑器中显示物体的方法,编辑器包括空间窗口和资源列表,方法包括:

确定布尔运算以及空间窗口中的多个物体;

根据布尔运算,对空间窗口中的多个物体进行计算,得到空间窗口中的复合的物体;

在资源列表中建立多个对象,多个对象分别与复合的物体以及为了得到复合的物体而进行计算的多个物体相对应,将多个物体所对应的对象设置为复合的物体所对应的对象的子节点;

返回到确定布尔运算以及空间窗口中的多个物体,其中当确定没有布尔运算时,得到的空间窗口中的复合的物体为最终的复合的物体,在资源列表中建立的多个对象为最终的对象。

可选地,在确定空间窗口中的多个物体时,该多个物体包括复合的物体。

可选地,如果被设置为子节点的对象所对应的物体为复合的物体,则在资源列表中再建立多个对象,该多个对象分别与为了得到该复合的物体而进行计算的多个物体相对应,将该多个对象设置为该被设置为子节点的对象的子节点。

可选地,具有子节点的对象包括展开状态和收起状态。

可选地,当具有子节点的对象从收起状态切换为展开状态时,

在资源列表中将该具有子节点的对象以及被设置为子节点的对象设置为显示;

在空间窗口中将该具有子节点的对象所对应的物体设置为隐藏,将被设置为子节点的对象所对应的物体设置为显示。

可选地,如果被设置为子节点的对象所对应的物体为复合的物体,则将该复合的物体所对应的对象从收起状态切换为展开状态。

可选地,当具有子节点的对象从展开状态切换为收起状态时,

确定被设置为子节点的对象所对应的物体是否被修改;

如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中建立多个新的对象,多个新的对象分别与新的复合的物体以及修改后的物体和其余未被修改的物体相对应,并且替换该具有子节点的对象以及被设置为子节点的对象;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏;

如果被设置为子节点的对象所对应的物体均未被修改,则在资源列表中将该具有子节点的对象设置为显示,将被设置为子节点的对象设置为隐藏;在空间窗口中将该具有子节点的对象所对应的物体设置为显示,将被设置为子节点的对象所对应的物体设置为隐藏。

可选地,如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中建立多个新的对象,多个新的对象分别与新的复合的物体以及修改后的物体相对应,并且替换该具有子节点的对象以及被修改的物体所对应的对象;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏。

可选地,如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中将该具有子节点的对象对应于新的复合的物体,将被修改的物体所对应的对象对应于修改后的物体;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏。

可选地,如果被修改的物体为复合的物体,则将该复合的物体所对应的对象从展开状态切换为收起状态。

本发明的实施方式还公开了一种在编辑器中显示物体的系统,编辑器包括空间窗口和资源列表,系统包括:

确定单元,用于确定布尔运算以及空间窗口中的多个物体;

计算单元,用于根据布尔运算,对空间窗口中的多个物体进行计算,得到空间窗口中的复合的物体;

对象建立单元,用于在资源列表中建立多个对象,多个对象分别与复合的物体以及为了得到复合的物体而进行计算的多个物体相对应,将多个物体所对应的对象设置为复合的物体所对应的对象的子节点;

返回到确定单元,其中当确定单元确定没有布尔运算时,计算单元得到的空间窗口中的复合的物体为最终的复合的物体,对象建立单元在资源列表中建立的多个对象为最终的对象。

可选地,在确定空间窗口中的多个物体时,该多个物体包括复合的物体。

可选地,如果被设置为子节点的对象所对应的物体为复合的物体,则对象建立单元在资源列表中再建立多个对象,该多个对象分别与为了得到该复合的物体而进行计算的多个物体相对应,将该多个对象设置为该被设置为子节点的对象的子节点。

可选地,具有子节点的对象包括展开状态和收起状态。

可选地,系统还包括对象状态切换单元,当具有子节点的对象从收起状态切换为展开状态时,对象状态切换单元用于:

在资源列表中将该具有子节点的对象以及被设置为子节点的对象设置为显示;

在空间窗口中将该具有子节点的对象所对应的物体设置为隐藏,将被设置为子节点的对象所对应的物体设置为显示。

可选地,如果被设置为子节点的对象所对应的物体为复合的物体,则对象状态切换单元用于将该复合的物体所对应的对象从收起状态切换为展开状态。

可选地,系统还包括对象状态切换单元,当具有子节点的对象从展开状态切换为收起状态时,对象状态切换单元用于:

确定被设置为子节点的对象所对应的物体是否被修改;

如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中建立多个新的对象,多个新的对象分别与新的复合的物体以及修改后的物体和其余未被修改的物体相对应,并且替换该具有子节点的对象以及被设置为子节点的对象;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏;

如果被设置为子节点的对象所对应的物体均未被修改,则在资源列表中将该具有子节点的对象设置为显示,将被设置为子节点的对象设置为隐藏;在空间窗口中将该具有子节点的对象所对应的物体设置为显示,将被设置为子节点的对象所对应的物体设置为隐藏。

可选地,如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中建立多个新的对象,多个新的对象分别与新的复合的物体以及修改后的物体相对应,并且替换该具有子节点的对象以及被修改的物体所对应的对象;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏。

可选地,如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中将该具有子节点的对象对应于新的复合的物体,将被修改的物体所对应的对象对应于修改后的物体;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏。

可选地,如果被修改的物体为复合的物体,则对象状态切换单元用于将该复合的物体所对应的对象从展开状态切换为收起状态。

本发明的实施方式还公开了一种在编辑器中显示物体的设备,设备包括存储有计算机可执行指令的存储器和处理器,处理器被配置为执行指令以实施在编辑器中显示物体的方法。

本发明的实施方式还公开了一种使用计算机程序编码的非易失性计算机存储介质,计算机程序包括指令,指令被一个以上的计算机执行以实施在编辑器中显示物体的方法。

本发明实施方式与现有技术相比,主要区别及其效果在于:

在本发明中,资源列表中的对象分别与空间窗口中的物体相对应,并且资源列表中的对象之间具有层级关系,从而直观地显示空间窗口中的复合的物体以及为了得到复合的物体而进行计算的多个物体之间的从属关系。另外,具有子节点的对象包括展开状态和收起状态,用户可以直接对被设置为子节点的对象进行修改,从而修改该具有子节点的对象所对应的物体。

附图说明

图1示出根据现有技术的在编辑器中得到圆角的转角墙体的示意图;

图2示出在编辑器中显示物体的方法的流程示意图;

图3示出资源列表中的多个对象的层级关系的示意图;

图4示出资源列表中的多个对象的层级关系的另一示意图;

图5示出资源列表中的多个对象的层级关系的又一示意图;

图6示出资源列表中的所有具有子节点的对象都处于展开状态的示意图;

图7示出资源列表中的所有具有子节点的对象都处于收起状态的示意图;

图8示出在编辑器中显示物体的系统的结构示意图;

图9示出在编辑器中显示物体的系统的另一结构示意图。

具体实施方式

在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。

本发明的第一实施方式涉及一种在编辑器中显示物体的方法。编辑器包括空间窗口和资源列表,空间窗口可以显示物体的2d/3d模型,资源列表可以显示对象之间的层级关系。图2示出在编辑器中显示物体的方法的流程示意图。如图2所示,方法100包括:

步骤102,确定布尔运算以及空间窗口中的多个物体。

具体地,可以从用户处接收布尔运算以及空间窗口中的多个物体。其中,布尔运算包括取交集、取并集、取反集等,多个物体包括2d的几何物体,如圆柱形、长方形、圆形等,和/或3d的几何物体,如圆柱体、长方体、球体等。通过步骤102,可以确定为了得到复合的物体而进行计算的布尔运算以及多个物体。

步骤104,根据布尔运算,对空间窗口中的多个物体进行计算,得到空间窗口中的复合的物体。

其中,复合的物体包括2d的几何物体,如多边形等,和/或3d的几何物体,如圆角的转角墙体等。通过步骤104,可以得到复合的物体。

步骤106,在资源列表中建立多个对象,多个对象分别与复合的物体以及为了得到复合的物体而进行计算的多个物体相对应,将多个物体所对应的对象设置为复合的物体所对应的对象的子节点。

通过步骤106,可以实现资源列表中的对象与空间窗口中的物体之间的对应关系,并且资源列表中的对象之间具有层级关系,从而可以直观地显示空间窗口中的复合的物体以及为了得到复合的物体而进行计算的多个物体之间的从属关系。

返回到步骤102,其中当确定没有布尔运算时,得到的空间窗口中的复合的物体为最终的复合的物体,在资源列表中建立的多个对象为最终的对象。

具体地,当不再从用户处接收到布尔运算时,得到的空间窗口中的复合的物体为最终的复合的物体,在资源列表中建立的多个对象为最终的对象。

图3示出资源列表中的多个对象的层级关系的示意图。如图3所示,例如,确定布尔运算为取交集,以及确定空间窗口中的多个物体为圆柱体geometry1和反相的圆柱体geometry2(反相)。根据布尔运算,对空间窗口中的多个物体geometry1、geometry2(反相)进行计算,得到空间窗口中的复合的物体geometry1.1。在资源列表中建立多个对象object1.1、object1、object2(反相),多个对象object1.1、object1、object2(反相)分别与复合的物体geometry1.1以及为了得到复合的物体geometry1.1而进行计算的多个物体geometry1、geometry2(反相)相对应,将多个物体geometry1、geometry2(反相)所对应的对象object1、object2(反相)设置为复合的物体geometry1.1所对应的对象object1.1的子节点。

返回到确定布尔运算以及空间窗口中的多个物体,其中当确定没有布尔运算时,得到的空间窗口中的复合的物体geometry1.1为最终的复合的物体,在资源列表中建立的多个对象object1.1、object1、object2(反相)为最终的对象。

可选地,在确定空间窗口中的多个物体时,该多个物体包括复合的物体。

具体地,可以从用户处接收复合的物体和/或新增的物体。因此,用户可以对复合的物体再次进行计算,从而通过多次布尔运算得到更为复杂的复合的物体,其中后一次布尔运算在之前布尔运算的结果基础上进行。

图4示出资源列表中的多个对象的层级关系的另一示意图。如图4所示,如图3所讨论的示例,返回到确定布尔运算以及空间窗口中的多个物体,确定布尔运算为取交集,以及确定空间窗口中的多个物体为反相的长方体geometry3(反相)和复合的物体geometry1.1。根据布尔运算,对空间窗口中的多个物体geometry3(反相)、geometry1.1进行计算,得到空间窗口中的复合的物体geometry1.2。在资源列表中建立多个对象object1.2、object3(反相)、object1.1,多个对象object1.2、object3(反相)、object1.1分别与复合的物体geometry1.2以及为了得到复合的物体geometry1.2而进行计算的多个物体geometry3(反相)、geometry1.1相对应,将多个物体geometry3(反相)、geometry1.1所对应的对象object3(反相)、object1.1设置为复合的物体geometry1.2所对应的对象object1.2的子节点。

返回到确定布尔运算以及空间窗口中的多个物体,确定布尔运算为取交集,以及确定空间窗口中的多个物体为反相的长方体geometry4(反相)和复合的物体geometry1.2。根据布尔运算,对空间窗口中的多个物体geometry4(反相)、geometry1.2进行计算,得到空间窗口中的复合的物体geometry1.3。在资源列表中建立多个对象object1.3、object4(反相)、object1.2,多个对象object1.3、object4(反相)、object1.2分别与复合的物体geometry1.3以及为了得到复合的物体geometry1.3而进行计算的多个物体geometry4(反相)、geometry1.2相对应,将多个物体geometry4(反相)、geometry1.2所对应的对象object4(反相)、object1.2设置为复合的物体geometry1.3所对应的对象object1.3的子节点。

返回到确定布尔运算以及空间窗口中的多个物体,确定布尔运算为取交集,以及确定空间窗口中的多个物体为长方体geometry5、长方体geometry6和复合的物体geometry1.3。根据布尔运算,对空间窗口中的多个物体geometry5、geometry6、geometry1.3进行计算,得到空间窗口中的复合的物体geometry1.4。在资源列表中建立多个对象object1.4、object5、object6、object1.3,多个对象object1.4、object5、object6、object1.3分别与复合的物体geometry1.4以及为了得到复合的物体geometry1.4而进行计算的多个物体geometry5、geometry6、geometry1.3相对应,将多个物体geometry5、geometry6、geometry1.3所对应的对象object5、object6、object1.3设置为复合的物体geometry1.4所对应的对象object1.4的子节点。

返回到确定布尔运算以及空间窗口中的多个物体,其中当确定没有布尔运算时,得到的空间窗口中的复合的物体geometry1.4为最终的复合的物体,在资源列表中建立的多个对象object1.4、object5、object6、object1.3为最终的对象。

可选地,如果被设置为子节点的对象所对应的物体为复合的物体,则在资源列表中再建立多个对象,该多个对象分别与为了得到该复合的物体而进行计算的多个物体相对应,将该多个对象设置为该被设置为子节点的对象的子节点。

因此,资源列表中的对象之间具有更清晰的层级关系,从而可以直观地显示空间窗口中的多个物体之间的更清晰的从属关系。

图5示出资源列表中的多个对象的层级关系的又一示意图。如图5所示,如图4所讨论的示例,被设置为子节点的对象object1.3所对应的物体geometry1.3为复合的物体,在资源列表中再建立多个对象object4(反相)、object1.2,该多个对象object4(反相)、object1.2分别与为了得到该复合的物体geometry1.3而进行计算的多个物体geometry4(反相)、geometry1.2相对应,将该多个对象object4(反相)、object1.2设置为该被设置为子节点的对象object1.3的子节点。

被设置为子节点的对象object1.2所对应的物体geometry1.2为复合的物体,在资源列表中再建立多个对象object3(反相)、object1.1,该多个对象object3(反相)、object1.1分别与为了得到该复合的物体geometry1.2而进行计算的多个物体geometry3(反相)、geometry1.1相对应,将该多个对象object3(反相)、object1.1设置为该被设置为子节点的对象object1.2的子节点。

被设置为子节点的对象object1.1所对应的物体geometry1.1为复合的物体,在资源列表中再建立多个对象object1、object2(反相),该多个对象object1、object2(反相)分别与为了得到该复合的物体geometry1.1而进行计算的多个物体geometry1、geometry2(反相)相对应,将该多个对象object1、object2(反相)设置为该被设置为子节点的对象object1.1的子节点。

可选地,具有子节点的对象包括展开状态和收起状态。

因此,用户可以直接对被设置为子节点的对象进行修改,从而修改该具有子节点的对象所对应的物体。

图6示出资源列表中的所有具有子节点的对象都处于展开状态的示意图。如图6所示,如图5所讨论的示例,所有具有子节点的对象都处于展开状态。

图7示出资源列表中的所有具有子节点的对象都处于收起状态的示意图。如图7所示,如图5所讨论的示例,所有具有子节点的对象都处于收起状态。

可选地,当具有子节点的对象从收起状态切换为展开状态时,在资源列表中将该具有子节点的对象以及被设置为子节点的对象设置为显示;在空间窗口中将该具有子节点的对象所对应的物体设置为隐藏,将被设置为子节点的对象所对应的物体设置为显示。

如图7所讨论的示例,当具有子节点的对象object1.4从收起状态切换为展开状态时,在资源列表中将该具有子节点的对象object1.4以及被设置为子节点的对象object5、object6、object1.3设置为显示;在空间窗口中将该具有子节点的对象object1.4所对应的物体geometry1.4设置为隐藏,将被设置为子节点的对象object5、object6、object1.3所对应的物体geometry5、geometry6、geometry1.3设置为显示。

可选地,如果被设置为子节点的对象所对应的物体为复合的物体,则将该复合的物体所对应的对象从收起状态切换为展开状态。

因为如果被设置为子节点的对象所对应的物体为复合的物体,则该复合的物体所对应的对象具有子节点,所以也包括展开状态和收起状态。

如上面所讨论的示例,由于被设置为子节点的对象object1.3所对应的物体geometry1.3为复合的物体,则将该复合的物体所对应的对象object1.3从收起状态切换为展开状态。在资源列表中将该具有子节点的对象object1.3以及被设置为子节点的对象object4(反相)、object1.2设置为显示;在空间窗口中将该具有子节点的对象object1.3所对应的物体geometry1.3设置为隐藏,将被设置为子节点的对象object4(反相)、object1.2所对应的物体geometry4(反相)、geometry1.2设置为显示。

由于被设置为子节点的对象object1.2所对应的物体geometry1.2为复合的物体,则将该复合的物体所对应的对象object1.2从收起状态切换为展开状态。在资源列表中将该具有子节点的对象object1.2以及被设置为子节点的对象object3(反相)、object1.1设置为显示;在空间窗口中将该具有子节点的对象object1.2所对应的物体geometry1.2设置为隐藏,将被设置为子节点的对象object3(反相)、object1.1所对应的物体geometry3(反相)、geometry1.1设置为显示。

由于被设置为子节点的对象object1.1所对应的物体geometry1.1为复合的物体,则将该复合的物体所对应的对象object1.1从收起状态切换为展开状态。在资源列表中将该具有子节点的对象object1.1以及被设置为子节点的对象object1、object2(反相)设置为显示;在空间窗口中将该具有子节点的对象object1.1所对应的物体geometry1.1设置为隐藏,将被设置为子节点的对象object1、object2(反相)所对应的物体geometry1、geometry2(反相)设置为显示。

最终,可以将所有具有子节点的对象都从收起状态切换为展开状态。当然,也可以只展开部分具有子节点的对象。

可选地,当具有子节点的对象从展开状态切换为收起状态时,

确定被设置为子节点的对象所对应的物体是否被修改;

如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中建立多个新的对象,多个新的对象分别与新的复合的物体以及修改后的物体和其余未被修改的物体相对应,并且替换该具有子节点的对象以及被设置为子节点的对象;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏;

如果被设置为子节点的对象所对应的物体均未被修改,则在资源列表中将该具有子节点的对象设置为显示,将被设置为子节点的对象设置为隐藏;在空间窗口中将该具有子节点的对象所对应的物体设置为显示,将被设置为子节点的对象所对应的物体设置为隐藏。

具体地,被修改的物体可以是一个或多个。修改包括对物体的大小、位置、方向等属性进行修改。替换后的对象在资源列表中所处的层级与被替换的对象在资源列表中所处的层级相同。

如图6所讨论的示例,当具有子节点的对象object1.4从展开状态切换为收起状态时,确定被设置为子节点的对象object5、object6、object1.3所对应的物体geometry5、geometry6、geometry1.3是否被修改。

如果被设置为子节点的对象object5、object6、object1.3所对应的物体geometry5、geometry6、geometry1.3被修改,例如物体geometry5被修改为物体geometry5’,则对修改后的物体geometry5’和其余未被修改的物体geometry6、geometry1.3重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象object1.4所对应的物体geometry1.4而进行计算的布尔运算,即取交集,以获得空间窗口中的新的复合的物体geometry1.4’;在资源列表中建立多个新的对象object1.4(新)、object5(新)、object6(新)、object1.3(新),多个新的对象object1.4(新)、object5(新)、object6(新)、object1.3(新)分别与新的复合的物体geometry1.4’以及修改后的物体geometry5’和其余未被修改的物体geometry6、geometry1.3相对应,并且替换该具有子节点的对象object1.4以及被设置为子节点的对象object5、object6、object1.3;将新的复合的物体geometry1.4’所对应的对象object1.4(新)设置为显示,将修改后的物体geometry5’和其余未被修改的物体geometry6、geometry1.3所对应的对象object5(新)、object6(新)、object1.3(新)设置为隐藏;在空间窗口中将新的复合的物体geometry1.4’设置为显示,将修改后的物体geometry5’和其余未被修改的物体geometry6、geometry1.3设置为隐藏。

如果被设置为子节点的对象object5、object6、object1.3所对应的物体geometry5、geometry6、geometry1.3均未被修改,则在资源列表中将该具有子节点的对象object1.4设置为显示,将被设置为子节点的对象object5、object6、object1.3设置为隐藏,在空间窗口中将该具有子节点的对象object1.4所对应的物体geometry1.4设置为显示,将被设置为子节点的对象object5、object6、object1.3所对应的物体geometry5、geometry6、geometry1.3设置为隐藏。

可选地,如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中建立多个新的对象,多个新的对象分别与新的复合的物体以及修改后的物体相对应,并且替换该具有子节点的对象以及被修改的物体所对应的对象;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏。

如上面所讨论的示例,如果被设置为子节点的对象object5、object6、object1.3所对应的物体geometry5、geometry6、geometry1.3被修改,例如物体geometry5被修改为物体geometry5’,则对修改后的物体geometry5’和其余未被修改的物体geometry6、geometry1.3重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象object1.4所对应的物体geometry1.4而进行计算的布尔运算,即取交集,以获得空间窗口中的新的复合的物体geometry1.4’;在资源列表中建立多个新的对象object1.4(新)、object5(新),多个新的对象object1.4(新)、object5(新)分别与新的复合的物体geometry1.4’以及修改后的物体geometry5’相对应,并且替换该具有子节点的对象object1.4以及被修改的物体geometry5所对应的对象object5;将新的复合的物体geometry1.4’所对应的对象object1.4(新)设置为显示,将修改后的物体geometry5’和其余未被修改的物体geometry6、geometry1.3所对应的对象object5(新)、object6、object1.3设置为隐藏;在空间窗口中将新的复合的物体geometry1.4’设置为显示,将修改后的物体geometry5’和其余未被修改的物体geometry6、geometry1.3设置为隐藏。

可选地,如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中将该具有子节点的对象对应于新的复合的物体,将被修改的物体所对应的对象对应于修改后的物体;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏。

具体地,将该具有子节点的对象对应于新的复合的物体,并且不再对应于之前的物体,将被修改的物体所对应的对象对应于修改后的物体,并且不再对应于被修改的物体。

如上面所讨论的示例,如果被设置为子节点的对象object5、object6、object1.3所对应的物体geometry5、geometry6、geometry1.3被修改,例如物体geometry5被修改为物体geometry5’,则对修改后的物体geometry5’和其余未被修改的物体geometry6、geometry1.3重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象object1.4所对应的物体geometry1.4而进行计算的布尔运算,即取交集,以获得空间窗口中的新的复合的物体geometry1.4’;在资源列表中将该具有子节点的对象object1.4对应于新的复合的物体geometry1.4’,将被修改的物体geometry5所对应的对象object5对应于修改后的物体geometry5’;将新的复合的物体geometry1.4’所对应的对象object1.4设置为显示,将修改后的物体geometry5’和其余未被修改的物体geometry6、geometry1.3所对应的对象object5、object6、object1.3设置为隐藏;在空间窗口中将新的复合的物体geometry1.4’设置为显示,将修改后的物体geometry5’和其余未被修改的物体geometry6、geometry1.3设置为隐藏。

可选地,如果被修改的物体为复合的物体,则将该复合的物体所对应的对象从展开状态切换为收起状态。

因为如果被修改的物体为复合的物体,则该复合的物体所对应的对象具有子节点,所以也包括展开状态和收起状态。

如上面所讨论的示例,例如物体geometry1.3被修改。由于被修改的物体geometry1.3为复合的物体,则将该复合的物体所对应的对象object1.3从展开状态切换为收起状态。确定被设置为子节点的对象object4(反相)、object1.2所对应的物体geometry4(反相)、geometry1.2是否被修改。如果被设置为子节点的对象object4(反相)、object1.2所对应的物体geometry4(反相)、geometry1.2被修改,例如物体geometry1.2被修改。

由于被修改的物体geometry1.2为复合的物体,则将该复合的物体所对应的对象object1.2从展开状态切换为收起状态。确定被设置为子节点的对象object3(反相)、object1.1所对应的物体geometry3(反相)、geometry1.1是否被修改。如果被设置为子节点的对象object3(反相)、object1.1所对应的物体geometry3(反相)、geometry1.1被修改,例如物体geometry1.1被修改。

由于被修改的物体geometry1.1为复合的物体,则将该复合的物体所对应的对象object1.1从展开状态切换为收起状态。确定被设置为子节点的对象object1、object2(反相)所对应的物体geometry1、geometry2(反相)是否被修改。如果被设置为子节点的对象object1、object2(反相)所对应的物体geometry1、geometry2(反相)被修改,例如物体geometry2(反相)被修改为物体geometry2’(反相),则对修改后的物体geometry2’(反相)和其余未被修改的物体geometry1重新进行布尔运算,该布尔运算是为了得到具有子节点的对象object1.1所对应的物体geometry1.1而进行计算的布尔运算,即取交集,以获得空间窗口中的新的复合的物体geometry1.1’;在资源列表中将该具有子节点的对象object1.1对应于新的复合的物体geometry1.1’,将被修改的物体geometry2(反相)所对应的对象object2(反相)对应于修改后的物体geometry2’(反相);将新的复合的物体geometry1.1’所对应的对象object1.1设置为显示,将修改后的物体geometry2’(反相)和其余未被修改的物体geometry1所对应的对象object2(反相)、object1设置为隐藏;在空间窗口中将新的复合的物体geometry1.1’设置为显示,将修改后的物体geometry2’(反相)和其余未被修改的物体geometry1设置为隐藏。

接下来,继续将复合的物体所对应的对象object1.2从展开状态切换为收起状态,对修改后的物体geometry1.1’和其余未被修改的物体geometry3(反相)重新进行布尔运算,该布尔运算是为了得到具有子节点的对象object1.2所对应的物体geometry1.2而进行计算的布尔运算,即取交集,以获得空间窗口中的新的复合的物体geometry1.2’;在资源列表中将该具有子节点的对象object1.2对应于新的复合的物体geometry1.2’,将被修改的物体geometry1.1所对应的对象object1.1对应于修改后的物体geometry1.1’;将新的复合的物体geometry1.2’所对应的对象object1.2设置为显示,将修改后的物体geometry1.1’和其余未被修改的物体geometry3(反相)所对应的对象object1.1、object3(反相)设置为隐藏;在空间窗口中将新的复合的物体geometry1.2’设置为显示,将修改后的物体geometry1.1’和其余未被修改的物体geometry3(反相)设置为隐藏。

接下来,继续将复合的物体所对应的对象object1.3从展开状态切换为收起状态,对修改后的物体geometry1.2’和其余未被修改的物体geometry4(反相)重新进行布尔运算,该布尔运算是为了得到具有子节点的对象object1.3所对应的物体geometry1.3而进行计算的布尔运算,即取交集,以获得空间窗口中的新的复合的物体geometry1.3’;在资源列表中将该具有子节点的对象object1.3对应于新的复合的物体geometry1.3’,将被修改的物体geometry1.2所对应的对象object1.2对应于修改后的物体geometry1.2’;将新的复合的物体geometry1.3’所对应的对象object1.3设置为显示,将修改后的物体geometry1.2’和其余未被修改的物体geometry4(反相)所对应的对象object1.2、object4(反相)设置为隐藏;在空间窗口中将新的复合的物体geometry1.3’设置为显示,将修改后的物体geometry1.2’和其余未被修改的物体geometry4(反相)设置为隐藏。

接下来,继续将复合的物体所对应的对象object1.4从展开状态切换为收起状态,对修改后的物体geometry1.3’和其余未被修改的物体geometry5、geometry6重新进行布尔运算,该布尔运算是为了得到具有子节点的对象object1.4所对应的物体geometry1.4而进行计算的布尔运算,即取交集,以获得空间窗口中的新的复合的物体geometry1.4’;在资源列表中将该具有子节点的对象object1.4对应于新的复合的物体geometry1.4’,将被修改的物体geometry1.3所对应的对象object1.3对应于修改后的物体geometry1.3’;将新的复合的物体geometry1.4’所对应的对象object1.4设置为显示,将修改后的物体geometry1.3’和其余未被修改的物体geometry5、geometry6所对应的对象object1.3、object5、object6设置为隐藏;在空间窗口中将新的复合的物体geometry1.4’设置为显示,将修改后的物体geometry1.3’和其余未被修改的物体geometry5、geometry6设置为隐藏。

最终,可以将所有具有子节点的对象都从展开状态切换为收起状态。当然,也可以只收起部分具有子节点的对象。

本发明的第二实施方式涉及一种在编辑器中显示物体的系统。编辑器包括空间窗口和资源列表。图8示出在编辑器中显示物体的系统的结构示意图。如图8所示,系统200包括:

确定单元202,用于确定布尔运算以及空间窗口中的多个物体;

计算单元204,用于根据布尔运算,对空间窗口中的多个物体进行计算,得到空间窗口中的复合的物体;

对象建立单元206,用于在资源列表中建立多个对象,多个对象分别与复合的物体以及为了得到复合的物体而进行计算的多个物体相对应,将多个物体所对应的对象设置为复合的物体所对应的对象的子节点;

返回到确定单元202,其中当确定单元202确定没有布尔运算时,计算单元204得到的空间窗口中的复合的物体为最终的复合的物体,对象建立单元206在资源列表中建立的多个对象为最终的对象。

可选地,在确定空间窗口中的多个物体时,该多个物体包括复合的物体。

可选地,如果被设置为子节点的对象所对应的物体为复合的物体,则对象建立单元在资源列表中再建立多个对象,该多个对象分别与为了得到该复合的物体而进行计算的多个物体相对应,将该多个对象设置为该被设置为子节点的对象的子节点。

可选地,具有子节点的对象包括展开状态和收起状态。

图9示出在编辑器中显示物体的系统的另一结构示意图。如图9所示,可选地,系统200还包括对象状态切换单元208,当具有子节点的对象从收起状态切换为展开状态时,对象状态切换单元208用于:

在资源列表中将该具有子节点的对象以及被设置为子节点的对象设置为显示;

在空间窗口中将该具有子节点的对象所对应的物体设置为隐藏,将被设置为子节点的对象所对应的物体设置为显示。

可选地,如果被设置为子节点的对象所对应的物体为复合的物体,则对象状态切换单元208用于将该复合的物体所对应的对象从收起状态切换为展开状态。

可选地,系统200还包括对象状态切换单元208,当具有子节点的对象从展开状态切换为收起状态时,对象状态切换单元208用于:

确定被设置为子节点的对象所对应的物体是否被修改;

如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中建立多个新的对象,多个新的对象分别与新的复合的物体以及修改后的物体和其余未被修改的物体相对应,并且替换该具有子节点的对象以及被设置为子节点的对象;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏;

如果被设置为子节点的对象所对应的物体均未被修改,则在资源列表中将该具有子节点的对象设置为显示,将被设置为子节点的对象设置为隐藏;在空间窗口中将该具有子节点的对象所对应的物体设置为显示,将被设置为子节点的对象所对应的物体设置为隐藏。

可选地,如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中建立多个新的对象,多个新的对象分别与新的复合的物体以及修改后的物体相对应,并且替换该具有子节点的对象以及被修改的物体所对应的对象;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏。

可选地,如果被设置为子节点的对象所对应的物体被修改,则对修改后的物体和其余未被修改的物体重新进行布尔运算,该布尔运算是为了得到该具有子节点的对象所对应的物体而进行计算的布尔运算,以获得空间窗口中的新的复合的物体;在资源列表中将该具有子节点的对象对应于新的复合的物体,将被修改的物体所对应的对象对应于修改后的物体;将新的复合的物体所对应的对象设置为显示,将修改后的物体和其余未被修改的物体所对应的对象设置为隐藏;在空间窗口中将新的复合的物体设置为显示,将修改后的物体和其余未被修改的物体设置为隐藏。

可选地,如果被修改的物体为复合的物体,则对象状态切换单元208用于将该复合的物体所对应的对象从展开状态切换为收起状态。

第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

本发明的第三实施方式涉及一种在编辑器中显示物体的设备,设备包括存储有计算机可执行指令的存储器和处理器,处理器被配置为执行指令以实施在编辑器中显示物体的方法。

第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

本发明的第四实施方式涉及一种使用计算机程序编码的非易失性计算机存储介质,计算机程序包括指令,指令被一个以上的计算机执行以实施在编辑器中显示物体的方法。

第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

需要说明的是,本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(programmablearraylogic,简称“pal”)、随机存取存储器(randomaccessmemory,简称“ram”)、可编程只读存储器(programmablereadonlymemory,简称“prom”)、只读存储器(read-onlymemory,简称“rom”)、电可擦除可编程只读存储器(electricallyerasableprogrammablerom,简称“eeprom”)、磁盘、光盘、数字通用光盘(digitalversatiledisc,简称“dvd”)等等。

需要说明的是,本发明各设备实施方式中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。

需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1