用于交互式基于特征的地球科学几何建模的场景图的构造和维护的制作方法

文档序号:6428548阅读:382来源:国知局
专利名称:用于交互式基于特征的地球科学几何建模的场景图的构造和维护的制作方法
技术领域
本发明总的来说涉及计算机图形成象以及几何建模,更具体而言,本发明涉及交互式地构造、编辑、绘制以及操纵地球科学模型。
相关技术背景地质学家、地球物理学家以及石油工程师使用包括计算机化模型在内的地壳模型,来计划勘探与生产碳氢化合物以及更少程度的其他矿物。由于碳氢化合物变得越来越多稀少,所以对限制定位以及生产碳氢化合物的成本以及诸如汽油和燃料油之类的碳氢化合物产品的相关成本来说,计算机化模型的准确度变得日益重要。
对存储在计算机化模型中的地球物理学及地质数据的解释,依赖于以能够辨别和编辑包含于模型中的信息的方式来显示模型的能力,交互式几何建模库(IGM)(参见Lu等人提出的第6,191,787号美国专利)集成了几何引擎和图形引擎。这种集成提供了一种高级接口,所述高级接口支持交互式的基于特征的3D地球科学几何模型的构建、绘制及编辑。
场景图是一种由图形引擎对场景图的表示。高效的场景图构造和维护会直接影响到交互式系统的性能。这篇专利申请描述了几种用于构造和维护场景图的新技术,这些技术极大地增强了IGM的性能并且为IGM增添了新的功能。
IGM使用的几何引擎是几何查询接口(GQI)(参见Assa等人提出的第6,128,577号美国专利)。所述GQI是一个从XOX公司建立在称为“Shapes”的几何核心顶上的层。所述图形引擎称为OpenInventor。所述IGM将这两个引擎进行集成,以实现交互式的基于特性的几何建模。
所述GQI使用布尔运算、经由不规则空间的划分来构建几何模型。作为结果得到的模型是边界表示(b-rep)模型。所述GQI提供了地球科学应用的基于特性的建模,其中这些特征是对涉及几何组的最终用户有意义的实体以及模型中的拓扑元素。
对于构造和维护用于构建地球科学模型的场景图来说,必须考虑几个因素。该过程以及所生成的地球科学几何模型不同于传统的CAD工业中的那些。下面列出了涉及本发明的这些差异中的一些。这些差异影响用于绘制的场景图的构造和维护方式。
第一,经由其中将输入特性分割成片的不规则空间划分来构建模型,而CAD工业一般使用经由布尔运算来组合输入特性的构造性立体几何(Constructive Solid Geometry)。第二,地球科学几何模型中的材料性质一般是空间改变的,而且以特征级相附连,而CAD工业中模型的每个元素一般具有恒定的材料性质。第三,在地球科学模型中,裂缝是正常的,但是在CAD模型中裂缝也许是一个缺陷。
类似于CAD工业中的用户需要,地球科学用户希望能够与输入特征的身份进行交互并维护输入特征的身份,且希望能够指定新的特征并与新的特征进行交互。
对于地球科学应用程序来说,一般需要以下两种视图。第一类型是表面视图,用于绘制模型中的表面单元或者特征。第二类型是体积视图,用于绘制所述模型中的体积单元或者特征。表面单元具有其自身的身份。它还充当共用它的两个体积单元的边界单元。用户可能还希望这两种类型组合。因此,对于同一几何模型来说存在不止一种的图解表示。
最后,与地球科学应用相关的软件通常消耗相当大的计算机资源,时常需要不易移动的大功率工作站。然而,在野外定位(fieldlocation)具有上述的能力将是合乎需要的。因此,在本领域中存在将地球科学软件的效率提高到可以将其安装在标准的移动计算装置上的需要,所述标准的移动计算装置诸如是膝上型计算机。
发明概要依照本发明,通过以下方法可以解决与现有技术相关联的缺点和问题,所述方法是通过一种新的场景图构造方法来减少内存需求的,并且还提供了一种有限状态机,其用于处理图形对象(无论设置为可视的还是不可视的、以及有效的或者无效的)与其对应的几何对象之间的一致性,借此能够只对其几何结构或者拓扑结构已经改变的、并由用户设置为可视的那些图形对象进行选择或者局部更新,由此进一步增强了性能。
本发明包括一种用于交互式地编辑模型的方法,所述方法包括第一表面方法,其在具有处理器、存储系统以及至少一个输入装置和至少一个输出装置的可编程计算机上实现。优选地,将所述模型存储在可编程计算机可读的介质上,或者可以存储在诸如磁带、硬盘、CD-ROM等等的其他介质上。可利用存储系统操作的数据库以及处理器均存储了各种能在一个或多个场景图上察看的对象的模型。
在本发明方法的最简单实施例中,将数据库中表示第一表面特征的数据载入到本发明计算机系统的随机存取存储器或者系统存储器中。为第一表面特征创建聚合(aggregate)特征。创建所述聚合特征之后,根据所述聚合特征来创建第一图形对象。然后,将第一图形对象添加到所述应用场景图中。此后,创建聚合特征的几何对象,然后在所述模型中编辑第一表面特征。编辑所述表面特征之后,有选择地更新所述模型的图形,以便使只有其几何对象已经改变并且没有由用户设置为可视的那些图形对象是不被更新的,由此来节省时间和资源。选择性更新是本发明的一个重要特征,而且也是本发明与现有技术的区别,而不管那些对象是否是可视的和/或是否已经改变。本发明仅更新模型中向用户所显示的那些图形。例如,如果将所讨论的图形对象设置为对用户来说是不可视的,那么不立即更新它们。一旦完成所述更新步骤,从所述应用场景图中移除第一图形对象。
本发明还提供了一种接口,和一种利用所述接口操作的IGM,以及利用所述IGM操作的GQI。所述接口用于选择一种要对第二表面特征执行的操作,并且还将该接口开发为通知IGM用户已经作出的选择。该操作一经发生,所述IGM就可以利用GQI来调用操作。此后,在执行所述操作期间,执行来自于所述GQI的至少一次回调(CallBack)以通知所述IGM,以便可以执行对模型的图形对象的更新以刷新所述输出装置。
优选的是,所述编辑是通过不规则空间的划分来完成的,并且图形对象的更新包括创建图形对象,或者,如果回调的执行引起了聚合特征的状态变化,那么就将聚合特征状态变化记录在本发明的一致性有限状态机中。所述一致性有限状态机管理几何结构以及图形之间的一致性。所述一致性有限状态机有助于有选择性地(部分地)更新呈现给所述用户的图形。
本发明的方法还包括一种回调方法,该方法包括使聚合特征的图形对象无效。所述回调方法还可以执行使聚合特征的几何结构有效,以便在无效图形以及有效几何结构之间可以进行区别。
本发明的回调方法包括提供一组有助于回调的对象,即第一几何模型特征对象。所述方法中还包括改变的几何对象,所述改变的几何对象包含在几何模型或者特征对象中。还存在与改变的几何对象相关联的第一元性质属性对象(first meta-propertyattribute)。此外,还提供了与元性质属性对象相关联的第一元性质对象。所述第一元性质对象具有许多与它相关联的属性,主要为点集保存属性、点集保存属性策略对象、单元反向指针性质对象、聚合反向指针性质策略对象、与单元反向指针对象相关联的几何单元对象、与所述几何单元相关联的聚合单元对象以及与所述聚合单元对象相关联的显示单元图形对象。此外,还包括与所述几何模型特征对象相关联的第二元性质对象以及与第二元性质属性对象相关联的第二元性质对象。第二元性质对象具有许多与所述第一元性质对象相同的对象以及特征。换句话说,第二元性质对象具有点集保存属性对象、点集保存属性策略对象、特征反向指针性质对象、第二聚合反向指针属性策略对象、与所述特征反向指针属性对象相关联的几何特征对象,与几何特征对象相关联的聚合特征对象以及与所述聚合特征对象相关联的显示特征对象。
在一系列子步骤中执行回调。例如,如果回调针对体积对象,那么执行针对体积特征的编辑,否则执行表面特征的编辑。在更新图形的情况下,优选的是,仅对那些已经在几何结构上发生改变的单元执行更新。作为选择,图形中的更新可以仅包括已经发生拓扑改变的那些特征。然而,本发明的另一个实施例包括对已经拓扑地改变或者几何地改变的那些特征的图形进行更新。最后,可以对既拓扑地又几何地改变的那些特征进行更新。
在一系列的子步骤中执行对模型的聚合特征的图形创建。通常,可以根据所述模型获取相关的表面特征,并且对于每个相关的表面来说,如果所述表面特征具有图形对象,那么更新所述图形对象。否则,首先创建图形对象,然后将更新的图形对象或是创建的图形对象添加到表面场景图根节点。
本发明的操作本发明可以作为一种用于交互式地编辑模型的方法来描述,所述方法在计算机上实现,所述计算机包括处理器、数据存储器系统、至少一个输入装置以及至少一个输出装置,包括但不限于计算机监视器、存储装置或者打印输出。优选的是,将所述模型存储在计算机可读介质上。所述模型自身至少具有一第一表面,不过通常可以建立许多表面的模型。
所述方法从数据库加载第一表面特征的数据开始,其中所述数据库存储在数据存储器系统中。接下来,为所述第一表面特征创建聚合特征。这样允许根据聚合特征来创建第一图形对象。此后,将所述第一图形对象添加到应用场景图。接下来,为所述聚合特征创建几何对象。然后随心所欲地编辑模型中的所述第一表面特征。一旦编辑完成(例如,用户退出编辑模式,或者必需的时间周期期满),就有选择地更新模型的图形。所述有选择性地更新使各种装置不必重新计算以及显示所有的更新和改变。而是仅仅对影响用户体验的那些更新进行更新。最后,将所述第一表面特征的第一图形对象从应用场景图上移除。
编辑和更新编辑自身的过程由几个步骤组成。首先,必须提供一个接口。接下来,必须还提供利用所述接口操作的IGM。提供了利用IGM来操作以便能够进行几何建模的GQI。这使用户能够通过所述接口来选择要对第二表面特征执行的操作。将所述接口设计成能通知IGM用户的选择。所述操作本身是利用GQI来调用的。在所述编辑过程期间,在执行所述操作期间、有必要执行从GQI到IGM的至少一次回调。所述回调用于更新模型的图形对象以便刷新输出装置。可以经由不规则空间的划分来实现编辑,不过依照本发明也能够使用其它的编辑技术。一旦完成编辑,就可以开始更新图形,这一般通过创建所述图形对象来实现。本发明具有这样一种特殊特征,其中更新步骤包括只对那些已经几何地和/或拓扑地改变了的单元更新图形。所述更新步骤还可以包括参考可视性有限状态机。所述可视性有限状态机有助于管理图形对象的更新操作,以及图形对象的可视性更新操作。使用可视性有限状态机能够只更新那些被指定为(对用户来说)可视的图形对象。所述可视性有限状态机可用于指定图形对象为可视的,并且还可用于检查图形对象的有效性。如果所述图形对象是有效的,那么可以将所述图形对象添加到场景图。否则,可以更新图形对象、然后将其添加到场景图。
更新过程可以包含几个步骤。例如,更新过程可以包括检验场景图中每个特征的状态。通常,如果特征的图形是有效的、或者如果特征的几何图形是无效的,那么不更新所述特征的图形对象。然而,如果特征的几何图形是有效的、而图形是无效的,那么更新所述特征的图形对象。
更新过程的另一个方式可以包括检验场景图中每个单元的状态。在这种情形下,如果所述单元的图形是有效的、或者如果该单元的几何图形是无效的,那么不更新所述单元的图形对象。如果所述单元的几何图形是有效的、而所述单元的图形是无效的,那么更新所述单元的图形对象。
本发明的方法还可以含概如下的那些情况,即其中所述模型内不包含第二表面特征,不过所述第二特征当然也可以包含在模型中。
创建图形本发明的方法还涉及为各种实体创建图形,诸如聚合特征。通常,此过程涉及获取模型中的所有相关的表面特征。对于每个相关的表面特征来说,如果该表面特征具有图形对象,那么更新该图形对象。否则,为所述表面特征创建图形对象。然后,将表面特征的图形对象添加到表面场景图根节点。
除前段中略述的步骤之外,可以选择性地实现其他步骤,例如,可以获取所述表面特征的所有二维单元的聚合对象。接下来,每个单元的聚合对象可以被提示以获取至少一个有效的图形对象,并且将该图形对象添加到表面特征的子场景图。一旦完成所述步骤,就可以使表面特征的图形对象有效。
对于上面刚略述的方法来说,还可采用更多的步骤。例如,为单元获取有效的图形对象的步骤可以包括检验以确定所述单元的图形对象是否存在。如果所述图形对象不存在,就创建所述单元的图形对象并使其有效。如果所述单元的图形对象存在但不是有效的,则更新所述单元的图形对象并使其有效。
作为选择,用于创建图形的本发明的方法还可以包括根据所述模型为至少一个体积单元创建图形。这种可选的方法包括获取模型中至少一个相关的有效体积单元。一旦获取,可以执行检验以确保每个体积单元的所有二维单元的图形对象都已创建。然后,对于每个二维单元,可以获取聚合。如果二维单元聚合不存在,则可以创建新的聚合。然后,检验每个二维单元以确保它具有有效的图形。此后,可以为每个体积单元创建图形对象。然后,对于每个体积单元来说,在没有彩色材料的情况下,优选的是,将所述体积单元的每个二维单元的图形内容添加到所述体积单元的图形对象的子场景图。最后,为每个体积单元、将图形对象添加到体积场景图根节点。在没有彩色材料的情况下,优选的是,将图形地表示二维单元的图形内容的实例化由至少一个包含把二维单元作为孩子的表面特征的图形对象、以及包含把二维单元作为其部分边界的一个体积单元或者两个体积单元的图形对象的至少一个场景图所共用。
回调本发明在对象框架内广泛应用回调。例如,回调可以引起聚合特征的状态变化。优选的是,所述聚合特征是一致性有限状态机,以便有效地方便利用所述回调。此外优选的是,所述一致性有限状态机管理几何结构和图形之间的一致性。回调还可以用于使聚合特征的图形对象无效,以及用于使聚合特征的几何结构有效。例如,如果所述回调针对体积对象,那么特定的回调用于所述体积特征。否则,为表面特征执行编辑回调。
依照本发明的回调能够以各种配置和环境来形成。例如,用于体积特征的编辑回调包括利用几何建模器接口注册元性质分割回调类方法。所述几何建模器接口要在发生体积分割情况时被调用。此后,将第一元性质属性附加到由体积特征包含的至少一个体积对象。然后,从几何建模器接口接收回调,其指定第一体积对象、受第一体积对象的变化影响的第二体积以及第一元性质属性。然后,从第一元性质属性来获取指针值,第一元性质属性而后允许反引用指针值来定位第一元性质对象。利用第一元性质属性、第一体积对象和第二体积对象在第一元性质对象中调用分割回调。此最后一步本身包含获取第一点集保存性质实例和来自所述性质实例的点集保存策略实例,以及利用点集保存性质实例、第一体积对象和第二体积对象启动对点集保存策略实例的第一分割回调。这最后的子步骤本身包括获取第一体积对象的至少一个包含特征,以及利用所述包含特征和第二体积对象在所述几何建模器接口上启动特征添加孩子更新。然后,获取单元反向指针性质实例,以便可以从所述单元反向指针性质实例获取聚合反向指针性质策略实例,因此使用所述单元反向指针性质实例启动针对聚合反向指针性质策略实例的第二分割回调。后者的回调本身包括从所述单元反向指针性质实例获取体积几何单元对象,并且启动对体积几何单元对象的单元分割调用。后者的子步骤可以包含启动对体积几何单元对象的体积单元聚合主顾(aggregate patron)的调用,以便使第一体积的所述图形无效。
为体积特征执行特征添加孩子回调包括利用所述几何建模器接口注册所述元性质添加孩子回调类方法,所述几何建模器接口要在发生特征添加孩子事件时加以调用。此步骤可以包括将第二元性质属性实例附加到所述体积特征;并且接收来自于所述几何建模器接口的添加孩子回调,所述添加孩子回调指定体积特征、体积对象以及第二元性质属性。然后,获取来自于第二元性质属性的指针值,然后反引用所述指针值来定位第二元性质对象。在第二元性质对象中调用添加孩子回调。后者的步骤包括获取第二点集保存性质实例;从第二点集保存性质实例来获取第二点集保存性质策略实例;并且利用体积特征以及体积几何对象来启动第二点集策略对象的添加孩子回调方法。后者的子步骤本身包括将所述点集保存性质附加到所述体积单元;获取特征反向指针性质实例;从特征反向指针性质实例来获取第二聚合反向指针性质策略实例;以及利用体积特征、体积几何对象以及体积特征反向指针性质来启动第二聚合反向指针性质策略实例的添加孩子回调方法。后者的子步骤本身包括启动对所述特征反向指针性质实例标识的体积特征几何对象的添加孩子通知方法调用。后者的子步骤本身包括启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的几何结构有效;并且启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的图形无效。
本发明的方法的又一个方面涉及为表面特征执行编辑回调。所述方法的此方面包括利用所述几何建模器接口注册元性质分割回调类方法,所述几何建模器接口要在发生表面分割事件时被调用;将第一元性质属性附加到由所述表面特征包含的至少一个表面对象上;从几何建模器接口接收用于指定第一表面对象、受第一表面对象的改变影响的第二表面以及第一元性质属性的回调;从第一元性质属性获取指针值并且反引用所述指针值以定位第一元性质对象;利用第一元性质属性、第一表面对象和第二表面对象在第一元性质对象中调用分割回调。后者的步骤本身包括获取第一点集保存性质实例;从所述性质实例来获取第一点集保存策略实例;利用点集保存性质实例、第一表面对象以及第二表面对象,启动对所述点集保存策略实例的第一分割回调。后者的子步骤本身包括获取第一表面对象的至少一个包含特征;并且利用所述包含特征以及第二表面对象在所述几何建模器接口上来启动特征添加孩子更新;获取单元反向指针性质实例;从所述单元反向指针性质实例来获取聚合反向指针性质策略实例;以及利用单元反向指针性质实例来启动对聚合反向指针性质策略实例的第二分割回调。后者的子步骤本身包括从单元反向指针性质实例来获取表面几何单元对象;以及启动对表面几何单元对象的单元分割调用。此后者的子步骤包括启动对表面几何单元对象的表面单元聚合主顾的调用,以便使第一表面的图形无效。
执行特征添加回调的步骤(前段中所提到的)本身包括利用几何建模器接口注册元性质添加孩子回调类方法,所述几何建模器接口要在发生特征添加孩子事件时被调用;将第二元性质属性实例附加到表面特征;从几何建模器接口接收用于指定表面特征、表面对象以及第二元性质属性的添加孩子回调;从第二元性质属性来获取指针值并且反引用所述指针值来定位第二元性质对象;以及在第二元性质属性对象中调用添加孩子回调。此后者的子步骤本身包括获取第二点集保存性质实例;从第二点集保存性质实例来获取第二点集保存性质策略实例;以及利用表面特征和表面几何对象来启动对第二点集策略对象的添加孩子回调方法。此后者的子步骤本身包括将点集保存性质附加到表面单元;获取特征反向指针性质实例;从特征反向指针性质实例来获取第二聚合反向指针性质策略实例;并且利用表面特征、表面几何对象以及表面特征反向指针性质来启动对第二聚合反向指针性质策略实例的添加孩子回调方法。此后者的子步骤本身包括启动对表面特征几何对象的添加孩子通知调用,所述表面特征几何对象是由特征反向指针性质实例标识的。此后者的子步骤本身包括启动对表面特征对象的表面特征聚合主顾的调用,以便使表面特征对象的几何结构有效;并且启动对表面特征对象的表面特征聚合主顾的调用,以便使表面特征对象的图形无效。
回调可以对本发明的不同对象产生许多影响。例如,执行所述回调可以引起单元的状态改变。可以将所述单元的状态变化记录在一致性有限状态机中。
本发明的方法的另一个方面是为体积特征执行编辑回调。本发明方法的此方面包括利用几何建模器接口来注册元性质合并回调类方法,所述几何建模器接口要在发生体积合并事件时被调用;将第一元性质属性附加到由体积特征包含的至少一个体积对象上;从几何建模器接口接收用于指定第一体积对象、第二体积对象、原先划界第一和第二体积对象并且已经从所述模型中移除的表面对象、以及元性质属性;根据几何建模属性来获取指针值并且反引用所述指针值来定位第一元性质对象;以及在第一元性质对象中调用合并回调。后者的子步骤本身包括获取第一点集保存性质实例;从所述性质实例来获取第一点集保存策略实例;以及利用点集保存性质实例、第一体积对象、第二体积对象以及表面对象启动对点集保存策略实例的第一合并回调。此后者的子步骤本身包括获取第一体积对象的至少一个包含特征;以及利用所述包含特征以及第二体积对象在对几何建模器接口上来启动特征移除孩子更新;获取单元反向指针性质策略实例;从单元反向指针性质实例来获取聚合反向指针性质策略实例;并且利用单元反向指针性质实例、第一体积对象、第二体积对象以及表面对象,来启动对聚合反向指针性质策略实例的第二合并回调。后者的子步骤本身包括从单元反向指针性质实例来获取体积几何单元对象;并且启动对体积几何单元对象的单元合并调用。此后者的子步骤本身包括启动对体积几何单元对象的体积单元聚合主顾的调用,以便使第一体积的图形无效。
用于对体积特征执行编辑回调的方法本身选择性地具有孩子编辑回调的移除。该子方法包括利用几何建模器接口注册元性质移除孩子回调类方法,所述几何建模器接口要在发生特征移除孩子事件时被调用;将第二元性质属性实例附加到体积特征上;从几何建模器接口接收指定了体积特征、体积对象以及第二元性质属性的移除孩子回调;根据第二元性质属性来获取指针值并且反引用所述指针值来定位第二元性质对象;并且在第二元性质对象中调用移除孩子回调。后者的子步骤包括获取第二点集保存性质实例;从第二点集保存性质实例来获取第二点集保存性质策略实例;利用体积特征和体积几何对象来启动对第二点集策略对象的移除孩子回调方法。后者的子步骤包括从体积单元移除点集保存性质;获取特征反向指针性质实例;从特征反向指针性质实例来获取第二聚合反向指针性质策略实例;并且利用体积特征、体积几何对象以及体积特征反向指针性质,来启动对第二聚合反向指针性质策略实例的移除孩子回调方法。后者的子步骤包括启动对由特征反向指针性质实例标识的体积特征几何对象的移除孩子通知调用。此后者的子步骤包括启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的几何结构有效;以及启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的图形无效。
执行对表面体积的编辑回调与为体积特征执行编辑回调方法(上面描述的)相似。具体来讲,为表面特征执行编辑回调的步骤包括利用几何建模器接口注册元性质合并回调类方法,所述几何建模器接口要在发生表面合并事件时被调用;将第一元性质属性附加到由表面特征包含的至少一个表面对象上;从几何建模器接口接收用于指定第一表面对象、第二表面对象以及曲线对象的回调,其中所述曲线对象原先划界第一和第二表面并且已经被从所述模型以及元性质属性中移除;根据几何模型属性获取指针值并且反引用所述指针值来定位第一元性质对象;并且在第一元性质对象中调用合并回调。后者的子步骤包括获取第一点集保存性质实例;从所述性质实例来获取第一点集保存策略实例;以及利用点集保存性质实例、第一表面对象、第二表面对象以及曲线对象来启动对点集保存策略实例的第一合并回调。后者的子步骤包括获取第一表面对象的至少一个包含特征;以及利用所述包含特征以及第二体积对象在几何建模器接口上来启动特征移除孩子更新;获取单元反向指针性质实例;从单元反向指针性质实例来获取聚合反向指针性质策略实例;并且利用单元反向指针性质实例、第一表面对象、第二表面对象以及曲线对象,来启动对聚合反向指针性质策略实例的第二合并回调。后者的子步骤包括从单元反向指针性质实例来获取表面几何单元对象;以及启动对表面几何单元对象的单元合并调用。后者的子步骤本身包括启动对表面几何单元对象的表面单元聚合主顾的调用,以便使第一表面的图形无效。
最后,执行表面特征的特征移除回调的步骤包括利用几何建模器接口注册元性质移除孩子回调类方法,所述几何建模器接口要在发生特征移除孩子事件时被调用;将第二元性质属性实例附加到表面特征;从几何建模器接口接收用于指定表面特征、表面对象以及第二元性质属性的移除孩子回调;根据第二元性质属性来获取指针值并且反引用所述指针值来定位第二元性质对象;并且在具有第二元性质属性的第二元性质属性对象、表面特征以及表面几何对象中调用移除孩子回调。后者的子步骤包括获取第二点集保存性质实例;从第二点集保存性质实例来获取第二点集保存性质策略实例;以及利用表面特征和表面几何对象启动第二点集策略对象的移除孩子回调方法。后者的子步本身包括将点集保存性质从表面单元移除;获取特征反向指针性质实例;从特征反向指针性质实例来获取第二聚合反向指针性质策略实例;并且利用表面特征、表面几何对象以及表面特征反向指针性质来启动第二聚合反向指针性质策略实例的移除孩子回调方法。后者的子步骤包括启动对由特征反向指针性质实例标识的表面特征几何对象的移除孩子通知调用。后者的子步骤本身包括启动表面特征对象的表面特征聚合主顾的调用,以便使表面特征对象的几何结构有效;并且启动表面特征对象的表面特征聚合主顾的调用,以便使表面特征对象的图形无效。
能够以多种方式执行回调。然而,通常是以一个或多个对象集来实现所述回调的。一般来讲,该对象集包括第一几何模型特征对象;几何模型特征对象中包含的改变了的几何对象;可选择地与改变了的几何对象相关联的第一元性质属性对象;与第一元性质属性相关联的第一元性质对象;与几何模型特征对象相关联的第二元性质属性对象;以及与第二元性质属性对象相关联的第二元性质对象。
所述第一元性质对象本身具有对象集,比如点集保存性质对象;点集保存性质策略对象;单元反向指针性质对象;聚合反向指针性质策略对象;与单元反向指针对象相关联的几何单元对象;与几何单元对象相关联的聚合单元对象;以及与聚合单元对象相关联的显示单元图形对象。
第二元性质属性对象本身具有对象集,包括第二点集保存性质对象;第二点集保存性质策略对象;特征反向指针性质对象;第二聚合反向指针性质策略对象;与特征反向指针性质对象相关联的几何特征对象;与几何特征对象相关联的聚合特征对象;以及与聚合特征对象相关联的显示特征图形对象。
附图简述为了更彻底的理解本发明及其优点,现在将结合附图进行以下的描述,其中

图1和7是框图。
图2、5a和5b是将要建模的项的表示。
图3,4a和4b是建模过程中各阶段的表示。
图5c是几何模型的表示。
图6是图形模型的表示。
图8-14是表示对象关系的图。
图15是状态图。
图16是举例说明本发明的两个体积以及表面单元和它们的各个节点表示。
图17将举例说明具有共同表面的本发明的两个体积以及表面单元以及它们的各个节点表示。
图18a以及18b是举例说明表面和体积特征与本发明的节点表示之间的通信的框图。
图19是本发明的状态图。
图20是本发明的主框架的框图。
图21是举例说明本发明的各种对象的关系的框图。
图22是举例说明本发明的各种对象关系的框图。
图23是举例说明本发明的各种对象关系的框图。
图24是举例说明本发明的各种对象关系的框图。
图25是举例说明本发明的各种对象关系的框图。
图26是举例说明本发明的各种对象关系的框图。
图27-40举例说明了本发明的各种方法。
发明的详细说明几何模型的构建和编辑很大程度上是需要足够图形支持的一种交互式过程。给定交互式计算机制图的复杂性,理想情况是使用诸如OPEN INVENTOR、面向对象的图形库之类的高级开发工具来编写应用程序。
Schlumberger有限公司的GEOFRAME产品,即一种用于执行地球科学建模的应用程序,包括称为GEOMETRY QUERY INTERFACE(“GQI”)的几何建模部件,该部件用于提供应用编程接口(“API”)来构建和编辑立体3D几何建模。立体3D几何模型包含模型中包含的各种几何元素之间的关系。所述GQI的几何建模功能的一部分是由商业的几何引擎提供的,诸如由XOX公司的SHAPES包提供。
图形系统如此显示图形信息以便可以使诸如几何模型中包含的那些复杂的关系可视化。所述SHAPES包包括基于OpenGL的图形系统。然而,由于性能的原因,使图形交互和几何处理分开是十分重要的。此外,事实上所有的地球科学应用程序都需要可视化或者交互式图形,而不是所有的地球科学应用程序都需要几何建模。因此,本发明简化了开发过程,以便运用一种普遍适用的图形系统来编写应用程序,并且只在需要的地方添加几何引擎。
当设计一种既包括图形又包括几何系统的应用程序时,设计问题不仅在于如何绘制几何模型并可视地与之交互,而且还在于如何使几何引擎与图形引擎平滑地合作。在OPEN INVENTOR和GQI/SHAPES的情况下,两个引擎都是自含的并且管理他们自己的对象和对那些对象的操作。对于等效的对象来说,所述两个引擎使用不同的内部表示来描述它们的几何结构、拓扑关系以及物理性能。这导致了两个引擎对同一对象的操作的不一致性。两个引擎的集成要求添加一些机构来跟踪那些不一致并且协调那些不一致。
一种这样的设计、诸如交互式几何建模库(“IGM”)10集成了高级图形系统(“图形系统”)12以及高级几何建模包(“几何系统”)14,向应用程序16提供两个子系统的一致性视图,如图1中所示。所述IGM提供了一种用于集成图形系统和几何系统以便允许交互地构造、编辑以及可视化地球科学模型的体系结构。
除传统的CAD包满足的那些需求之外,地球科学应用程序具有特定的几何建模需求。地下结构通常形成“层式蛋糕”20,其中具有诸如水平线22a、22b、22c,水平线24a、24b,以及水平线26和28的“水平线”,诸如分段的层30a、30b,分段的层32a、32b,分段的层34a、34b的独立层,以及层36和38,如图2中所示。往往将层式蛋糕分解为“断层块”,诸如断层块30a、30b、32a、32b、34a、34b,所述断层块由诸如断层40和42的“断层”分界。就几何建模而言,这意味着所使用的几何引擎必须支持非流形几何结构(non-manifold geometries)的表示和计算,所述非流形几何结构也就是具有混合维数的几何结构(即3D断层块和2D断层块)。
水平线形成各层的边界;断层区分并且偏移各层的块。即使将各层和水平线例如象分割层32a、32b与层34a、34b的水平线22a、22b、22c那样被分裂并且在空间被分开,那么逻辑上它们也被认为是单个对象。
兴趣区域50可以通过插入表面52a、52b被再分,以便产生层式蛋糕54,如图3中所示。首先,所述再分仅出现在屏幕上。一旦所述应用程序满足于表面位置,它“提交”56,计算相交,并且在组装中的所有对象之间建立连接关系,以便产生层式蛋糕58并将这些层绘制在屏幕上以提供屏幕视图59。
构建地下结构的几何建模或者地球模型在很大程度上是一种迭代过程,其中当新的地下数据变成有效时细化模型。在图3中,使下部表面52b变形以产生水平线71,这样将其上方的层60的几何结构改变为楔形或者“变薄”。此外,应用程序得以满足之后,它提交62,令所述改变反映在几何模型64中并且显示在屏幕66上。特别是,所述IGM合并两个层70和72以产生层74,在所述过程中移除了水平线76。为了适应这种变化,对模型编辑的充分支持与便于从头开始构建模型一样重要。
地球模型可以是大型的并且可以包含几十到几百个表面,在棋盘格状的表面的情况下,所述表面均由几万到几十万的三角形表示。所述IGM必须很好地执行庞大的数据集。虽然它也许是可接受的、乃至是需要的,但是对于一些以批处理来运行的应用程序来说,必须能够与地球模型交互式地工作。这包括察看模型以及编辑其对象以及它们的属性。
不同的应用程序必须能够共用所述地球模型。这意味着持久的存储器必须包括组成模型的所有形状、拓扑关系以及属性。
大多数的商业几何建模系统使用边界表示法,并且从体系结构上区分形状、拓扑的表示以及诸如材料性质之类的属性。一些系统能够表示非流形几何结构,例如具有嵌入式表面的3D对象或者具有嵌入式曲线的2D对象。在这种对象中,边界在相邻部件之间共用,例如,断层42由断层块30b、32a以及32b共用,如图2中所示。
传统的计算机辅助设计(“CAD”)应用程序,通过组合诸如块以及圆柱之类的基本3D砌块来构建了复杂的3D几何图形。将这称为构造性立体几何(CSG)模型。例如,如图4a中所示,将子体积80a-d从最初的形状82中减去。此外,将子体积84a-c减掉以产生最后形状86。CSG建模不适合用来构建这样一种地球模型,即其中诸如地层的3D对象的形状必须根据对它们分界的2D对象来推断,所述2D对象比如是水平线和断层面之类的对象。
不规则的空间分区(“ISP”)提供了用于构建地球模型的能力,因为它按照再分和插入的顺序来操作,如图4b中所示。兴趣区域90由表面92a和92b进行再分以产生层式蛋糕94。将表示盐穹的子体积96插入层式蛋糕94中,并且编辑对象之间的边界形状以产生最后的模型98。
此外,ISP模型可以平滑地表示材料性能场的改变,其可以包含沿不同的边界发生的内部的不连续性。不连续边界的位置组成模型的形状和结构。不连续边界的形状被明确地表示出来。这些边界可以位于无限空间中的任何地方,具有任意的形状并且彼此相交以便将空间划分为不同子区域集。
通过定义“兴趣区域”以及用更低维数的对象来再分它,以构建ISP模型,例如,通过地层的边界将地下区域再分成层。除再分区域之外,可以将其它区域嵌入它们。ISP建模的GQI实现支持特征概念,所述特征概念能够将区域的聚合视为统一的对象。
几何引擎为形状提供了各种表示,包括分析、参数曲线以及表面表示。在地球科学中,将三角网广泛的用于表面表示。
模型中的拓扑关系以图的形式来表示,其中节点是拓扑实体,诸如顶点、曲线、表面以及体积,并且其中边是连通性关系。这被称作边界表示或者“b-rep”。CSG和ISP建模都可以生成b-reps。
例如,图5a示出了由具有共用边界106的两个相邻矩形102、104组成的对象100。图5b中所示的对象100的分解图版本显示出它包括两个面108、110,七个边106、112、114、116、118、120和122以及六个顶点124,126,128,130,132和134。这些几何元素之间的拓扑关系在图5C中作了举例说明,图5C包括圆圈136和138,分别表示面108和110。面108与四个边120、122、112和106相连,并且以这四个边为界,这四个边分别由圆圈140,142,144和146表示。所述“以……为界”的关系由线150,152,154和156表示。表面110与四个边缘114、116、118和106相连,并以这四个边缘为界,所述四个边缘分别由圆圈158、160、162和146表示。所述“以……为界”的关系由线164、166、168和170表示。
属性通常与拓扑实体相关联。例如,所述矩形的色彩属性172和174可以分别与它们相应的面136和138相关联。
几何建模系统支持综合的几何操作集。这些包括曲线/曲线、平面/平面和平面/曲线相交以及诸如立体对象的并、减以及交的布尔运算。对立体对象的布尔运算也称为(拓扑)分类。对非流形对象的支持暗指一些分类、即再分操作产生组成式而不是“整体(monolithic)”式对象。例如,考虑由图3中的两个表面52a和52b对兴趣区域50的再分。除表面52a和52b之外,结果形成的模型包含替换所述初始块的三个层180,182和184。
许多几何计算运行在“交互时间”,也就是说,它们以少于几秒的时间完成。然而,涉及数量级大约50万的三角形组成的网格的布尔运算可能花费分钟数量级。
单个对象的变换是飞快的;转换同一对象,如果它形成一件较庞大的组装,那么因为需要再分类而要花费更多的时间。
GQI/SHAPES实现了用于支持非流形对象的表示和计算的几何建模系统。GQI/SHAPES提供了具有封装的抽象数据类型的C语言API。通过SHAPES属性机制来给出可扩展性,所述SHAPES属性机制允许应用程序利用属性来注册回调。作为分类算法触发的回调改变了它们关联对象的状态。GQI/SHAPES为永久性存储器定义了专有的文件格式。
高级3D图形系统是这样一个库,其中封装形状和属性表示,绘制方法并且交互方法。商业产品包括OPEN INVENTOR、IRISPERFORMER、HOOPS、RENDERWARE、COSMO 3D及其他。所述模型使用OPEN INVENTOR,一种可扩展的、面向对象的3D图形库。应用程序使用OPEN INVENTOR调用来创建3D对象并且以有向无环图(DAG)来安排它们,所述有向无环图就是所谓的场景图。
例如,具有在图5a中举例说明的共用边的两个矩形可以由图6中所示的屏幕图来表示。所述屏幕图中的遍历顺序是从上到下、从左到右。组节点190是遍历的开始。下一个节点192建立材料性质,即色彩(灰色40)。节点194建立图像的开始坐标,节点196建立“IndexedFaceSet”,即左侧矩形的顶点标志。节点198将彩色材料性质的值改变为灰色20,节点200建立右侧的三角形的“IndexedFaceSet”。当遍历此屏幕图时,将图5a中所示图像显示在屏幕上。
特定的类集、即所调用的动作,允许应用程序创建遍历场景图并且对其节点执行操作的对象。例如,存在绘制动作来显示场景图中的对象,存在搜索动作来寻找场景图中的对象等等。场景图的角色在于定义遍历顺序。在任何操作必须维护一种状态的地方使用动作,所述状态不存储在对象中而是在遍历期间执行的操作的副作用。例如,图6中的场景图包含与两个IndexedFaceSets共用其坐标的一个坐标节点194。在遍历期间,维护“当前坐标”数组。每个IndexedFaceSet表示一个矩形并且包含其角坐标的标志。类似于坐标,直到由新材料节点覆盖前,材料值都保持有效。因此,在图6中,按比第二矩形更暗的灰色阴影来绘制第一矩形。
另一个称为传感器的类集可用于监视节点以及场景图的子图。应用程序可以将回调与传感器关联,每当“所感测的”对象状态改变时触发所述传感器。
0pen Inventor对象包括诸如框、球体以及圆柱之类的固有的(implicit)形状,以及包括诸如NURBS曲线和曲面以及三角网的带参数的形状。虽然能够创建并且显示这些形状,但是除了坐标变换以及射线对象交集(ray-object),没有对于几何计算的支持。这些操作通常快速地运行,并且如果需要重绘制,则受绘制时间的支配。只要可达到的帧速率支持,就能够进行交互式工作。例如,如果可以在0.1秒内绘制一场景图,那么就可以将对象以每秒10帧的速度在该场景图周围移动。
存在几个由几何以及图形子系统的IGM集成满足的重要的必要条件。第一,所述IGM提供一致的、用于交互式地构造、绘制、编辑以及操纵3D对象的面向对象的接口。第二,所述IGM就开销而言是轻量的。每个子系统本身是复杂的,而集成使额外的开销最小化,并且不会使性能恶化。第三,所述接口是可定制的并且是可扩展的。
此外,在上述几何以及图形系统的概述中存在由IGM致力于解决的三个主要争问题。它们在任一的系统的几何对象表示中是失配的,在对象属性的表示中是失配的,而且在处理速度方面存在差异。
几何系统中的对象表示与图形系统中的不匹配。虽然几何系统中的对象明确地通过拓扑图相连,如图5c所示,但是在场景图中仅仅指令了图形对象,如图6所示。
此外,在地球模型中,许多表面作为相邻对象之间的边界被共用,并且因此在几何系统中可作两种角色用。第一,它们是凭本身的资格用于通过在空间再分一些区域来构建地球模型的对象。第二,它们是岩层的分界接口,并且照此它们是层对象的一部分。在所述图形系统中,当绘制地球模型时,可以将其作为一表面集、作为层集或者作为两种的混合来绘制。当绘制层集时,为了良好的性能,只将共用的表面绘制一次。
因此,在几何对象和图形对象之间不存在一对一的关系。更确切地说,所述图形对象必须是几何对象的瞬态表示,当必须维护两个对象数据的表示时,这会潜在地引发数据复制。此外,数据复制需要数据一致性控制以便确保当对象的一个表示改变时,其另一个表示也一起被更新。将几何系统中的属性直接地与对象或者对象件(pieces)相关联,诸如图5c中的色彩属性172和174。图形系统中的属性没有明确地与几何对象相关联。而是,在场景图中存在“自治的”对象,诸如图6中的节点192和198,它们用于影响绘制状态并且由此间接地控制绘制的形状的外观。
所述IGM支持具有复杂的几何模型的交互式工作。能够监视用户对对象图形表示所作的改变在希望时要求用户向几何表示“提交”任何的改变。考虑图3中的例子。为再分具有表面52a和52b的兴趣区域50,所述表面必须首先被正确地定位。这可以通过仅操纵表面几何图形的图形表示交互式地执行。在这个阶段中,几何模型与屏幕上可视的几何模型不一致。接下来,执行分类以便将所述表面并入几何模型中。在这个过程之后,所述过程也许会花费一些时间,所述几何模型58与屏幕54上的绘制再一次一致。
所述图形系统及几何系统都是可扩展的系统。在集成两个系统中的初步设计选择可以是察看作为主要系统的一个系统并且通过在另一个系统中得到的功能扩展它,还是在两个子系统之上创建集成层。所述模型使用后一种方法。利用集成所述图形系统和几何系统的集成层,必要时任一的子系统可以被替换,在图形和几何操作之间存在明确的区分,并且能够进行这样一种分布式实现,其中每个子系统在不同的主机上运行。
所述集成层以C++实现。下一个设计选择是使用多继承还是对象聚合。利用多继承,孙子继承孩子的父母,而不访问任何他们的其它后代。人们曾想建立一种“堂兄弟”关系模型,其中在一个层级中的后代与其它层级中的后代相关联,因此多继承是不合适的。
此外,所述优选实施例并没有完全地封装所述子系统,而是将它们呈现给应用程序。这样做可以使开销最小化,这是因为它剩下了专用于它们各个子系统的操作的可访问对象,同时允许应用程序只管理在所述集成层中定义的对象。数据一致性控制有助于避免子系统间不一致性的因果创建。
所述模型在集成层的设计中使用了“对象聚合”。“聚合对象(AggregateObject)”210封装对象的几何对象(GeometryObject)表示212和图形对象(GraphicsObject)表示214的公共方面,如图7所示。线220和222表示一对多关系,由在一端上具有箭头的线表示,同时具有“一”的关系位于具有箭头的那端。例如,线222表示单个应用程序228管理多个AggregateObject,其中一个AggregateObject是AggregateObject210(其它的没有示出)。线216、218表示一对一关系。在所示例子中,AggregateObject210具有一个GraphicsObject214以及一个GeometryObject212。所述GraphicsObject类可以包括同一GeometryObject的多个图形视图227和229。
在图7上所示的“IgmAction”类224封装需要用于遍历拓扑图以及生成合适的图形表示、或者用于遍历去掉了过时的GraphicsObject的场景图或者生成GeometryObject的方法。
GeometryObject类层级提供用于几何子系统中的GeometryObject的C++封装函数,如图8所示。在树的顶端处,IgmObject230是GeometryObject基本类。所述gmGeometry类232(图中所示变量名中的下划线、诸如图8中的“gm”和“Geometry”之间的那个在规范的文本部分省去)是IgmObject的子类,子类由具有箭头-头部的线表示,诸如线234。所述gmGeometry类具有两个子类,即用于特征的gmFeature236以及用于单元的gmCell 238,所述子分类由线240表示。所述gmFeature类以及gmCell类分别存储特征和单元的GQI处理。所述gmFeature类具有许多子类,包括用于平面的gmPlane 242、用于框的gmBox 244、用于web的gmweb246、用于ISP的gmISP 248及其他250,所述子分类由线252表示。
所述GraphicsObject类层级描述可以在屏幕上加以绘制的对象,如图9所示。所述GraphicsObject类负责绘制GeometryObject以及处理图形交互。在GeometryObject树的顶端是OPEN INVENTOR的SoWrapperKit 254,其提供了一个机制来构建和管理场景子图。通常,那些子图包含属性和形状节点。由此,SoWrapperKits关联属性和形状,提供简单的方式来处理图形和几何子系统之间的属性表示失配。oiBaseKit 256是SoWrapperKit的子类,由线258表示。所述oiBasekit具有许多子类,包括oiFeature类260、oiCell类262以及oinongmBasekit类264,利用线266表示所述子分类。所述oiFeature类具有许多子类,包括oiBox类268、oiweb类270、oiISP类272及其它类274,所述子分类由线276表示。此外,用于绘制不是几何模部分的对象的oinongmBaseKit具有许多子类278,所述子分类由线280表示。
除了那些不是几何模型部分的图形对象之外,图形对象包含表示它们相应的GeometryObject的当前绘制的场景图,诸如图6中所示。例如,ISP模型的GraphicsObject可以包含以表示其构成特征的GraphicsObject填充的场景图。应用程序将GraphicsObject添加到他们自己的场景图,以便绘制所期望的几何模型部分。通常,所述应用程序将新的未分类对象的GraphicsObject添加到场景图中。分类之后,所述新对象变成复合对象部分,并且将其“独立于操作系统”的表示从场景图上移除。将ISP模型的所述GraphicsObject添加到场景图或者当其已被添加时进行更新。
经由用户交互对GraphicsObject做出的改变可以由OpenInventor传感器来监控。传感器可以触发回调,用于通知变化的AggregateObject。用户经由IGM交互器(interactor)与GraphicsObject进行交互。只将所述改变图示,直到用户满意,并且所述应用程序通知AggregateObject更新所述GraphicsObject并且将所述改变传送到GeometryObject。
GraphicsObject不需要具体化为GeometryObject,不过需要时将其专业化也是可能的。多数情况下,泛型的GraphicsObject足以封装所需要的功能。例外包括存在纯粹的图解表示法的对象,也就是没有根据GeometryObject来构造,例如已经将它们分类前根据突出的(extruded)曲线来构建表面;以及需要特定交互作用的对象,诸如web表面,其需要特定交互作用来编辑或者变形。
所述AggregateObject类层级表示集成的对象,如图10所示。在AggregateObject类树的顶端是IgmObject 230,其也曾处于GeometryObject类层次结构的顶端(参见图8)。agBaseClass 280是IgmObject类230的一个子类,并且所述子类由线282表示。所述agBaseClass类具有两个子类几何类284以及nagBaseClass类286,所述子类由线288表示。所述几何类具有两个子类,一个agFeature类290以及一个agcell类292,所述子分类由线294表示。表示不是几何模型部分的对象的nagBaseClass286具有多个子类296,所述子类由线298表示。所述agFeature类具有许多子类,包括agPlane类300、agBox类302、agweb类304、agISP类306及其他类308,所述子类由线310表示。
AggregateObject表示在GraphicsObject和GeometryObject之间共用的数据以及方法的集成。例如,所述agPlane对象和其相应的GraphicsObject以及GeometryObject形成类层次结构,如图11所示。大多数层级是从图8-10中举例说明的类层级中提取出来的。已经添加了由线320表示的聚合类和图形类之间的关联、以及由线322表示的聚合类与几何类之间的关联,并且表示所述聚合。
AggregateObject可以根据对象参数而构造,例如平面的点(point)与法线(normal)。所述AggregateObject类提供了构造其相应的GraphicsObject与GeometryObject的方法。当要创建所述子对象时由应用程序控制。
作为选择,AggregateObject可以根据现有的GraphicsObject或者根据现有的GeometryObject来构造。这允许应用程序来从各包来导入对象,其中所述包只提供图形表示的等价物(例如,其他OPENINVENTOR应用程序)。更重要的是,对于永久性存储器,它允许应用程序使用将GeometryObject表示,完全具有形状、拓扑以及属性的信息。通常,当载入来自于永久性存储器的GeometryObject时,实时地创建AggregateObject和GraphicsObject。
所述三个类树相似但具有一些差异。例如,所述三个类树具有不同的深度。所有三个类支持动态类型检查。
除通用的GraphicsObject、GeometryObject以及AggregateObject之外,所述IGM定义了许多标准对象。例如,因为它们封装了可以依照几何系统建立模型的不同对象,所以所述GeometryObject类层次结构包含许多子类。因为许多GeometryObject可以使用类的方法来绘制,所以所述GraphicsObject层级包含少数对象。例如,存在用于平面、例如图8中的242的特定的GeometryObject,但没有特定的GraphicsObject,如图9所示。诸如网格表面以及复合对象的其他对象需要支持交互式的编辑,其中所述交互式的编辑以具体化的GraphicsObject来实现。复合对象可以变得十分复杂并且被封装在特殊类中,所述特殊类以每一部件为基础来管理更新。
应用程序实例化AggregateObject并且管理它们,如图7所示。AggregateObject还经由对AggregateObject的调用330来提供图形以及几何操作,其中所述AggregateObject稍后被分派给适当子类,即要么经由分派路径332被分派给给GraphicsObject214,要么经由分派路径334被分派给GeometryObject212,如图12所示。应用程序还具有分别经由调用路径336和338只读存取GraphicsObject以及GeometryObject,以便执行不影响系统一致性的操作,如图13所示。通过此示出(exposure),由于使AggregateObject中的GraphicsObject或者GeometryObject方法得以最小化,因此可以满足最小开销的必要条件。
图14中所举例说明的其根类为mpMap 340的特定类(如由线342所示,它本身是来源于Igmobject类230的),实现从物理特性到可绘制属性的必要的数据格式的转换和映射。例如,作为如线346所示的来自于mpMap类的子类的mpColorMa p类344,以及作为如线350所示的来自于mpColorMap类344的子类的mpCLutMap类348,提供了可以按照许多方式索引的色彩映射。作为由线354示出的来自于mpCLutMap类的子类的mpCLutDoubleMap类352提供了用于将色彩映射到双精度浮点数范围的方法。此外还存在作为分别来自于mpMap以及mpCLutMap类的子类的其他类356和358。
GeometryObject通过GQI/形状属性来使用有效的回调机制,同样地,GraphicsObject使用Open Inventor传感器将GeometryObject的状态改变通知给AggregateObject。
所述AggregateObject完成许多工作,其中两项工作是一致性控制和数据转换管理,这些内容将更详细地讨论。所述这些工作如下1.集成GraphicsObject和GeometryObject(,由此向几何和图形子系统提供了具有简单的一致接口的应用程序。
2.管理对象一致性。例如,当GeometryObject变换因也许需要再计算交集和拓扑关系而可能需要时间时,可以交互式地执行GraphicsObject变换。AggregateObject跟踪是否已经在两个子系统中应用了变换。
3.最小化编辑操作的副作用。ISP对象可能包括许多子类,不是所有的子类通常都受涉及复合对象的分类的影响。通过管理在边界表示级的状态改变,AggregateObject使所需要的更新局部化。
4.管理GeometryObject和GraphicsObject之间的“平面几何数据”转换。平面几何数据是在没有拓扑关系表示情况下的形状描述。
5.管理拾取。拾取将通常由GraphicsObject加以启动,但是对于一些子类来说,将通过相应的GeometryObject来执行。所述AggregateObject协调(coordinates)拾取并且传达结果。
通过IGM集成的两个子系统并不总是一致,也就是说,它们有时具有相同的地质数据的不一致的表示。往往,在延长的编辑操作时期内,有意地留下所述两个子系统,以便改进性能。
对于所述两个子类来说,存在有限数目的可能的“有效/无效”状态,并且可以将AggregateObject当作具有作为状态变量的两个子类的有限状态机,如图15所示。子类可以要么是“有效的”要么是“无效的”,这取决于它们是否表示最后用户交互的结果。AggregateObject监视并且管理从一种状态到另一种状态的转换,由此管理一致性并且解决处理速度差异的出现。
所述状态机通过响应各种事件来改变状态而操作。假定GraphicsObject和GeometryObject两者都是有效的,这意味着所述系统处于状态360。如果所述GraphicsObject分别是有效的或者无效的,那么表示诸如状态360的状态的左侧框部分是加阴影的或者不加阴影的。同样地,如果所述GeometryObject分别是有效的或者无效的,那么所述框的右半部分是加阴影的或者不加阴影的。表示状态360的所述框的两部分是加阴影的,指明GraphicsObject和GeometryObject两者都是有效的。
现在假定所述GraphicsObject改变。这种改变的一个例子会是应用程序拾取图形对象并且在没有提交去移动的情况下移动它。这种改变由转换(362)到状态364表示,其中所述GraphicsObject是有效的但所述GeometryObject是无效的。如果所述GraphicsObject被进一步地改变,那么所述系统不从此状态中转换,如转换(366)所表示的那样。
如果提交对GraphicsObject的改变,令所述改变(诸如分类所移动的表面)在所述GeometryObject中进行时,或者如果创建GeometryObject,那么所述系统转换(368)回到状态360,其中GraphicsObject以及GeometryObject两者都是有效的。相反,如果一个参数被改变,那么系统转换(370)到状态372,其中GraphicsObject以及GeometryObject两者都是无效的。进一步地设置参数或者参数的改变使系统留在状态372中。
所述系统可以在两种环境下离开状态372。如果所述系统创建了GraphicsObject,那么系统转换(374)回到状态364,其中所述GraphicsObject是有效的而所述GeometryObject是无效的。相反,如果所述系统创建了GeometryObject,那么所述系统转换(376)到状态378,其中GraphicsObject是无效的而所述GeometryObject是有效的。所述系统保持在状态378下,以便进一步地在GeometryObject380中改变。如果更新所述GraphicsObject或者创建所述GraphicsObject,那么所述系统转换382到状态360。相反,如果改变参数,那么系统从状态378转换(384)到状态372,其中GeometryObject和GraphicsObject两者都是无效的。
考虑图3中的例子,其中所述用户在屏幕上定位新的表面。自从表面的图形表示具有用户预定的形状和位置,它们就是有效的。因为所述对象覆盖了现有的对象、而没有在它们之间建立拓扑关系,所以所述几何建模是无效的。由此,所述系统处于状态364。一旦所述用户提交改变,所述系统转换(368)到状态360,由此改变GeometryObject并且更新所述GraphicsObject。
用于执行GeometryObject和GraphicsObject间复杂的转换的方法以其自己的类来实现,并且将它们的基本类称作IgmAction224,如图7所示。IgmAction包括gg_Action(及其子类),其用于根据几何结构来生成图形。gm_object借助于ag_object或者oi_object、根据图形对象生成GeometryObject(gqi实例)。从igm_Object类派生的gg_Action对象可以遍历拓扑图,以便视情况而定来对个体的对象执行所期望的操作和调用方法。ggAction是用于处理子系统之间几何对象表示失配的方面的组件。它由AggregateObject使用来支持一致性管理。
一个例子是可以依照几个不同的绘制模式、根据GeometryObject来创建或者更新GraphicsObject的IgmAction,这取决于GraphicsObject包含的不同属性以及要绘制的形状。绘制模式包括1.子体积的绘制,其中每个体积的分界接口被绘制(相邻体积之间的边界只绘制一次)。在此模式中,拾取(picks)返回体积对象并且将剪切的体积绘制为闭合的对象(看上去是切开的对象相反);2.划分空间的表面的绘制。拾取返回表面并且在表面中剪切可以产生一些洞。
绘制模式的管理举例说明了GraphicsObject是它们相应的GeometryObject的可视化表示。如上所述,在所述两个对象类型之间不存在一对一的关系。例如,由表示一个体积的GraphicsObject绘制的形状,取决于相邻对象以及剪切平面的存在。
不是所有的将要在3D视图中显示的对象都必需是形成或者意欲形成几何模型部分的对象。这些例子包括文本、符号以及点符。此外,许多应用程序处理具有几何解释的数据,其中所述几何解释被绘制但不是几何模型部分。来自于地球科学的例子是钻孔轨迹(borehole trajectory),所述钻孔轨迹可被绘制仅用于参考。所述IGM提供了agBaseClass 280(图10),根据所述agBaseClass 280可以派生出用于这种“非几何模型”对象的nagBaseClass 286。nagBaseClass的等效GraphicsObject是oinongmBaseKit 264(图9)。
这个方法允许应用程序管理一个泛类型的对象,无论它们是否将用于所述几何模型。例如,SceneManager类可以被编写为跟踪被显示或者隐藏在一个或多个应用程序窗口中的对象。此外,nagBaseClass的子类可以将GraphicObjects的绑定封装到存储在数据库中的实体。
本发明可以采用硬件或软件或者两者的结合来实现。然而,优选的是,本发明可以采用在可编程计算机上执行的计算机程序来实现,其中所述可编程计算机均包括处理器、数据存储器系统(包括易失性以及非易失性存储器和/或存储元件)、至少一个输入装置以及至少一个输出装置。将程序代码应用于输入数据以便执行上面描述的功能并且生成输出信息。按已知的方式,将所述输出信息应用于一个或多个输出装置。
优选的是,每个程序以一种面向高级过程或者对象的编程语言(诸如C++或者C)的方式来实现,以便与计算机系统进行通信。然而,如果希望的话,所述程序能够以汇编语言或者机器语言的方式来实现。在任何情况下,所述语言可以是编译或者解释语言。
优选的是,将每个这种计算机程序存储在存储介质或者通用的或者专用的可编程计算机可读的装置(例如ROM或者磁/光盘或者软盘),以便当所述存储介质或装置由计算机读取时配置以及操作计算机来执行此处所述的过程。所述有创造性的系统还可以认为是作为计算机可读存储介质实现的,依照计算机程序来配置,其中如此配置的所述存储介质令计算机以一种特定的并且预定的方式来执行此处所述的功能。
注意图16,其中第一体积400和第二体积402由表面单元401分开。在所述体积单元400和402右边,是一系列由对应于表面单元401的表面特征404表示的注释解释。所述表面特征节点404包含节点MP 406、MB 408和面410,这些是没有彩色材料的图形内容。所述体积单元400具有体积412的节点表示,所述体积412具有MP414、MB 416和面418。某个第二体积402具有以体积2节点420转移方向的注释表示,具有MP 422、MB 424和面426。
图17示出了不同的实现方式,其中具有体积428和体积430的相似的体积表面单元安排由表面单元429加以区分。所述节点表示与图16的节点表示相比具有重大差别。像图16的节点表示一样,如图17所示,存在表面特征节点432、体积节点438和体积节点444。然而,本发明的多个实施例具有公共面450,如图17所示,所述公共面450与表面特征节点432、体积节点438和体积节点444相连。诸如MP 434、MP 440、MP 446以及MB 436、MB 442和MB 448的其它元素如图17中所示那样进行连接。
图18a示出了依照本发明举例说明的各种体积和表面特征的二维表示。特别是,体积A1 452、A2 454和B2 458由表面特征H1 460、F1 464、F2 466、H2 462和F3 468来分开。将图18a的不同表面和体积在图18b中以节点形式表示。具体来讲,所述表面根470包含所有表面节点。所述体积根486包含所有体积节点。例如,表面特征H 472具有分别对应于图18a的H1 460和H2 462的表面特征H1 474和H2 476。同样地,存在对应于图18a的表面特征F1 464、F2 466和F3 468的其它表面特征F1 480、F2 482和F3 484。图18a中示出的体积单元具有在图18b右侧上的相应节点表示。具体来讲,节点体积488、节点体积490、节点体积492与节点体积494对应于图18a的体积452,454,456和458。所述图形内容,即面474,476,480,482和484由位于表面根470的根的表面场景图和位于体积根486的根的体积场景图共用。
本发明的框架本发明以一种新的框架来代替其它实现方式的低级GQI C结构机制。为了进一步提高性能,上面描述的核心gmMP框架类不再具有对IGM的任何依赖。本发明由一组对象实例组成,所述对象实例作为软件例如在数字计算机上实现。然而,本发明适合完全以硬件方式来实现,或者以硬件和软件的一些组合。
图20举例说明了本发明的框架2002,其包括一组相互联系的模块化应用程序实体。例如,存在建模部应用程序(Modeling OfficeApplication)2004、双子应用程序(Gemini Application)2006、地质导向应用程序(GeoSteering Application)2008、大角度最佳评估应用程序(High-Angle Well Evaluation Application)2010和一个或多个研究原型模块2012,所有的这些应用程序以共同模型构建器2014设施来操作,如图20中所示。所述共同模型构建器2014向其基本类中的图20的其它模块的服务提供接口。所述各种应用程序直接地使用共同模型构建器基本类或者从它们派生的内容来实现具体化的行为。那些其它服务包括交互式几何建模库(IGM)2016和应用数据接口ADI 2026,所述ADI是用于GeoFrame的数据存取API。所述几何查询接口(GQI)2020利用IGM 2016和ADI 2026两者来操作。IGM 2016和GQI 2020两者都分别具有材料性质(material property)元素IGM MP 2018和GQI MP 2022。如图20中示出的那样,所述IGM MP 2018利用GQI MP 2022操作。最后,所述图形库2024实现各种模块(modules)所使用的数据的图形表示。所述图形库2024可利用IGM 2016来操作,如图20中示出的。
图21举例说明了用于GQI材料性质框架的一组对象。具体来讲,所述GQI材料性质框架2022包含一组包括gmMP 2104的对象,其与ccRefObj对象2150具有IsA关系,如图21中所示。还具有gmMPPolicy对象2106,其与ccRefObj对象2150具有IsA关系。存在gmMPTopologyTraversalStates对象2118,其与gmMPPolicy类2106具有组成关系(composition relationship),如图21所示。
gmMPConstant对象2120与gmMP对象2104具有IsA关系。gmUtilFtrBndPolicy对象2108与gmMPGQIPolicy对象2110具有IsA关系,如图21所示。几个其它策略对象(policy objects),其中包括gmSysPSPPolicy对象2112、gmSysRulesPolicy对象2114以及gmMPVolumePropertyPolicy对象2116,所有对象与gmMPPolicy对象2106具有IsA关系,如图21所示。此外,gmSysPSPPolicy对象2112与gmSysPSPProperty对象2124具有策略组成关系。同样,所述gmSysRulesPolicy对象2114与gmSysRules对象2122具有策略组成关系。所述gmUtilFtrBnd对象2126是最后的组,并且它连同gmSysRules2122和gmSysPSPProperty对象2124一起与gmMPConstant对象2120具有IsA关系。所述gmMPVolumePropertyPolicy对象2116还与gmMPConstant对象2120具有组成关系,如图21所示。最后,所述GQI材料性质框架2022还选择性地包括gmutil_status对象2128和mv_vt对象2130和gm_mp_atoms对象2132,所有这些对象有助于本发明的存储以及信息处理方面的于交互和联系。
图22举例说明了GQI材料性质、框架2022以及IGM材料性质框架2018之间的相互关系。所述IGM材料性质框架2018其中包括gmMPNamePropertyPolicy对象2228,所述gmMPNamePropertyPolicy对象2228与gmMPName对象2230具有组成策略关系。所述gmMPIGMPropertyPolicy对象2234与mbCeIIGMReference对象2232和mbFtrGMReference对象2236具有两个独立的组成策略关系。所述gmMPName对象2230、mbCellGMReference对象2232、mbFtrGMReference对象2236以及vspQualityProp对象2238、vspTransverseIsotroPPy对象2240和fbFtrParameters对象2242,都与gmMPConstant对象2120具有IsA关系,如22图所示。存在另一个对象子集,具体来讲是gmMPZ对象2216 及gmMPTime对象2218和gmMPDepth对象2220。后两个对象与前者对象、即gmMPZ 2216具有IsA关系。此外,在所述子集中有gmMP2DPoly对象2222、gmMP2DGrid对象2224和gmMP3DGrid对象2226。所述gmMPZ对象2216以及gmMP2DPoly对象2222、gmMP2DGrid对象2224和gmMP3DGrid对象2226,都与gmMP对象2104具有IsA关系,如图22所示。存在最后的对象子集,该子集包含IGM材料性质框架2018,即gmMPPolyXYZ对象2204,其与GQI材料性质框架2022的gmMP对象2104具有IsA关系。最后,存在与gmGradientProp对象2206具有IsA关系的四个对象,即vspDensProp对象2208、vspVelPProp对象2210、vspVelSProp对象2212和gmResistivityProp对象2214。
图23举例说明了GQI材料性质框架2022和IGM材料性质框架2018内各种对象之间的关系。具体来讲,存在gmUtilFtrBndPolicy对象2108和gmMPIGMPropertyPolicy对象2234,其中后者与gmUtilFtrBndPolicy对象2108具有IsA关系。在GQI材料性质框架2022之内有gmMPVolumePropertyPolicy对象2116。IGM材料性质框架2018的gmMPNamePropertyPolicy对象2228与gmMPVolumePropertyPolicy对象2116具有IsA关系,如图23所示。同样,所述gmMPVolumePropertyPolicy对象2116与gmMPZ对象2216和gmGradientProp对象2206具有组成关系,如图23所示。
图24举例说明了本发明的用于有助于计算和显示数据的对象装置,优选的是,计算和显示地震数据。图24举例说明了与gqi_Core对象2018具有IsA关系的gqi_AttachmentSite对象2404。存在分别用于gqi_AttachmentSite对象2404和gqi_Core对象2402两者的XAttr对象2408和2406。所述gqi_AttachmentSite对象2204与gqi_MetaProperty对象2412具有操作关系。同样地,gqi-_Core对象2402与gqi_MetaProperty对象2410具有操作关系。所述gmMP对象2104与gqi_MetaProperty 2412和gqi_MetaProperty 2410具有O..n表示的操作关系,如图24所示。所述aqi_Parameter对象2414与gmMP对象2104具有O..n操作关系(PropertyDI)。所述gmMPPolicy对象2106与gmMP对象2104具有组成关系。最后,所述gmMPTopologyTraversalState对象2416与gmMPPolicy对象2106具有操作关系。
参考图21和22,可以将料性质框架类聚合成四个类别。所述系统类(图21的2104、2106、2108、2110、2112、2114、2118、2122、2124、2126、2128、2130和2132)支持GQI的操作(例如点集保存、特征边界跟踪)。所述IGM类(图22的2232、2234和2236)(例如特征退回指针,feature back pointers)必须与系统类隔离,因为它们对IGM具有依赖性。严格地限制所述系统类以便内部的使用并且不应该从应用程序派生或者由应用程序来实例化。所述应用程序支持性质类(图21和22的2120、2204、2206、2216和2228)实现应用程序(以及系统部件)所需要的基本机构,所述应用程序用于附加(attachment)、不变量维护(invariant maintenance)以及评估。它们可以应用程序派生,在一些情况下,可以直接地由应用程序使用。更适宜的是,所述系统类还从这些应用程序支持类派生。最后,将第四类的集、即应用程序类(图22的2208、2210、2212、2214、2218、2220、2222、2224、2226、2230、2238、2240和2242)规定为由用于直接表示材料性质的应用程序来使用。
抽象基本类图21和22的gmMP类2104定义了材料性质表示类的基本行为。它直接地支持以下能力·mp_class实例的读/写,包括在读/写期间跟踪对同一实例的多个应用,数值类型scan/print/pack/unpack;
·维护对为形状编辑事件回调提供方法的附加策略(见下文)的参考;·按返回类型evalDouble、evalPtr、evalString、evalOnPolyLine、evalMinMax进行的性质评估的实例方法;·按性质名称evalPropertyDouble、evalPropertyPtr、evalPropertyString、evalPropertyMinMax进行的性质评估的类方法;·用于按评估器(evaluator)类和位点,按位点和性质DI,按位点、性质代码、(以及可选的是性质类名)查找gmMP派生类实例的混杂方法;以及·用于标志性质附加的性质DI的缺省构造。
所述gmMP基本类2104还提供了由上述方法使用的数据结构,以便管理派生类的所有实例并且支持必要的查找能力。
所述gmMPPolicy摘要基本类2106实现以下行为·维护对拓扑遍历生成器的引用,所述拓扑遍历发生器列举出符合给定策略的材料性质将被传播到的子单元;形状编辑事件处理器以及由那些事件处理器调用的哑有效实例方法。在重新设计的系统中,所有可能的回调必须得以支持。在先前的设计中,在gmMPPolicy级别处只有以下类被支持CellCopyCallback、CellDissociateCallback、CellSplitCallback、CellEmbedCallback、CellMergeCallback、CellDeleteCallback、FeatureAddChildCallback、FeatureRemoveChildCallback、FeatureReplaceChiIdCallback;·将所述gmMPPolicy类作为单例(Singleton)实现,这意味着提供了一种类方法来获取或者创建一个实例。
图21的所述gm_MPTopologyTraversalState 2118实现了几个用于不同性质传播策略的生成器,并且像迭代器一样工作以便进行遍历,同时维护遍历状态。所述被支持的生成器包括·generateNone所述哑生成器;·generateHereOnly所述列表的头、没有继承者;·generateHereAndChildren返回开列表的头;如果下一个位点是核心或者特征则继承者有下一个位点的孩子们,如果下一个位点是3单元则下级桥接;·generateHereAndChildrenNoSubs返回开列表的头;如果下一个位点是任何种类的组,则继承者是下一位点的孩子们;不生成下级;·generateChildrenOf3Cell只遍历子桥以及3单元的下级2单元。3单元本身除外;·generateHereAndPartialBridges从启动单元遍历所述拓扑结构,向下直到局部单元桥的一级。如果reference_cell是NULL,那么我们遍历现存的层级。如果reference_cell不是NULL,那么我们创建其方位匹配reference_cell的局部桥的那些局部桥;以及·generateSupBridgesOf2Cell如果参考单元是给定的,则遍历2单元的超桥,查找或者生成与参考单元的局部桥的方位匹配的局部桥。
材料性质表示方案图24中表示为“mp XATTR”2408和2406的形状属性在形状实体gqi_AttachmentSite 2404和相应的gqi_MetaProperty实例2412之间建立映射。正如可以从图24中看到的那样,已经将早期的基于C结构的方案替换为对gmMP实例2104的直接引用(directreference)。
在本发明的优选实施例中,所述核心不再管理事件处理器。在现有技术的实践中,曾确定事件处理器不是独立的。而是,将事件处理器聚集为几个相关处理器集。依照本发明,现在将所述现有技术的事件处理器由gmMPPolicy实例2106(参见图21和24)表示。因为所述gmMPPolicy 2106没有持续状态(如果支持重进入遍历的话,所述遍历状态必须被多实例化),所以使用单例来使事件处理器虚函数表的数目最小化。
本发明的评估器可以作为gmMP 2104中的虚函数(例如子函数)和从gmMP 2104派生的类来加以实现。类似于单例gmMPPolicy 2106的模式可能用来表示gmMP 2104的评估器,所述gmMP 2104是随着评估器的数目的增长而派生的类。然而,所述gmMP 2104实例由特别的“性质实例”被传播到的每个附属位点(attachment sites)共用。
本发明的对象的设计将上述两种行为分割为两个新的类对点集保存·gmSysPSPProperty 2124携带点集保存(“PSP”)的附属语义。gmSysPSPProperty 2124的顶层附属位点是模型核心本身。如果存在一个以上核心,那么生成多个PropertyDI的核心,并且每个核心被认为具有独立的附属(attachment)。对于此性质来说不存在其它的持久状态。
·图21的gmSysPSPPolicy 2112为PSP实现传播策略并且编辑回调。
规则图21的gmSysRules 2122为“核心”和“特征”附连的规则集携带附属语义。这些性质实例的状态包括实际规则附属以及它们的激发状态(firing state)。规则的状态(框架规则被附连以及规则违反(violation))由对gmSysRules性质实例2122进行的评估操作加以管理。激发规则解析器近是仅仅由gmSysRules类2122所实现的不同操作。
·gmSysRulePolicy 2114为规则实现传播策略以及编辑回调,包括激发规则检测器。
性质DI和附属语义所述性质(参数)数据项提供了非常具体的用户可视语义,如在以下的例子中所举例说明的那样。指定的Property_Code的性质、名称、修改者(及其他支持对数曲线命名约定的属性)已经由用户(或者代表用户活动的应用程序)附加。这些属性允许用户区别给定位点上的多个相似的性质。
具有称为TopLevelSite的参数的gmMP数据成员2104存储顶层附属被做到其的原始位点。如果gmMP实例2104的属性被修改(例如,缺省的,或者值),那么如果与所述修改相关联的位点不是所述顶层位点,就必须创建gmMP实例2104的副本。
为使用性质(参数)数据项和附属位点而建立了以下策略1.每个顶层分配到位点(例如到体积)的性质的分配均与唯一的(在其它顶层分配中)性质DI和gmMP子类实例2104相关联。
2.所述gmMPPolicy类2106将分配(例如体积和绑定2单元之间的桥)传播到的每个位点接收相同的性质DI和相同的gmMP实例2104。给定的策略可以令相同代码的多个性质实例借助于从两个方向的传播来附连于同一位点。由于支持多个性质实例,所以这不是问题。
3.应用程序可以将多个性质附加到附属位点的子单元,其中所述附属位点已经让相同代码的性质附加到并且传送到所述子单元。所述传播的附属不考虑顶层,但是显式地附加的性质实例是顶层附属,并且生成新的性质DI。
4.只有顶层附属可以被删除。对于性质策略类来说,在传播所述删除正象它传播所述附属一样是其职责。
有限状态机图19举例说明了本发明的有限状态机。具体来讲,图19中存在以框496示出的状态1,以框500示出的状态2,以框502示出的状态3以及以框498示出的状态4。在操作504中,从状态1转换到状态4的转换使通过将对象设置为不可视来进行的。通过在操作506中使图形无效,来完成从状态1到状态2的转换。通过在操作510中将对象设置为不可视的,来完成从状态2到状态3的转换。通过在操作508中使图形无效,来完成从状态4到状态3的转换。通过在操作512中将对象设置为可视的,来完成从状态4到状态1的转换。通过在操作516中更新所述图形,来完成从状态2到状态1的转换。最后,操作514更新并且还使所述图形有效,并且将所述对象设置为可视的,以便从状态3转换到状态1,如图19中所举例说明的那样。
回调方案图26举例说明了本发明的回调方案。图26中的对象结构举例说明了本发明的回调方面。
如图26中所示,在图26的左边以及中间部分存在的三个主对象组。如上所述,所述对象覆盖三种通常的情况几何、特征以及单元。按照符号约定的常规,在所述对象的特殊方面之前出现了用于通用类别的只取首字母的缩写词。例如,“ag”代表聚合;“gm”代表几何建模;“oi”代表OPEN INVENTOR,一个图形引擎;gqi代表几何查询接口;以及“X”代表XOX形状,几何引擎。
参见图26,首先,存在ag_BaseClass 280(参见图11),其与图26中所示的ag_Geometry对象284具有IsA关系288。所述gm_Geometry对象232与ag_Geometry对象284处于hasA关系322,并且与gqi_Geometry_t对象2608具有另一个关系2658。
聚合特征对象ag_Featurei 2638和聚合单元对象ag_Celli2644的实例分别经由IsA关系2648和2649、与聚合几何对象ag_Geometry 284相关联,如图26中所示。open inventor特征对象实例oi_Featurei 2640经由关联2699有选择地与ag_Featurei相关联。同样,所述open inventor单元对象实例oi_Cellj经由关联2696有选择地与ag_Cellj2644相连。
所述几何建模对象实例gm_Featurei 2636和gm_Cellj 2642分别经由关联2698和2694与ag_Featurei 2698和ag_Cellj 2644相连。此外,所述gm_Featurei对象2636与gm_Geometry对象232具有关系2637。所述gm_Cellj对象同样与gm_Geometry对象232具有关系2643,如图26中所示。
如图26中所示,依照本发明来提供X_Featurei对象2614。所述X_Featurei对象2614与gm_Featurei对象2636具有关系2692。所述X_Featurei对象2614与xAttrFtr对象2612具有关系2660,也与gqi_Featurei对象2610具有关系2662。所述gqi_Featurei对象2610也与所述X_Featurei对象2614具有关系2664。所述X_CelIi对象2618与所述X_Featurei对象2614具有关系2678(并且XFeaturei对象2614与所述X_Cellj对象2618具有关系2676),如图26中所示。
所述X_Featurei对象2614与gqi_Geometry_t对象2608具有关联2615,如图26所示。所述X_Featurei对象2614还与xAttrMP对象2628具有关系2666,并且其还与第一gqi_MetaPropertyj实例对象2622具有关系2668。gqi_MetaPropertyi对象2622的第一实例针对特征,并且具有一组与其关联2684的对象,诸如对象2624和FtrRefi对象2626的一个或多个实例,如图26所示。所述FtrRefi对象2626通过与gmFeaturei对象2636的关系2686和2688来有助于本发明的回调功能,如图26所示。
所述单元对象具有gqi_MetaProperty对象的并行实例,即gqi_MetaPropertyj对象2630。在本发明的这些方面中,X_Cellj对象2618与所述xAttrMP对象2620具有关系2680。所述xAttrMP对象2620也与gqi_MetaPropertyj对象2630具有关系2682,如图26所示。如同采用gqi_MetaPropertyi 2622的第一实例一样,第二gqi_MetaPropertyj对象2630与不同的对象具有关联2670,诸如与对象2632和CellRefj对象2634。所述本发明的(用于单元的)回调操作通过与gm_Cellj对象2642的关系2672和2674变得更为便利。如同采用所述X_Featurei对象2614一样,所述X_CeIIj对象2618与所述gqi_Geometry_t对象2608具有关系2619,如图26所示。最后,所述X_Cellj对象2618共用与X_Featurei对象2614的关系2678与关系2676,如图26所示。
本发明的操作本发明可以作为一种用于交互式地编辑模型的方法来描述,其中所述方法在这样一种计算机上实现,所述计算机包括处理器、数据存储器系统、至少一个输入装置和至少一个输出装置,包括但不限于计算机监视器、存储装置或打印输出。优选的是,将所述模型存储在计算机可读介质上。所述模型本身具有至少一第一表面,不过典型地也可以构建多表面的模型。
示例附加PSP性质根据以下例子,能够使本发明的能力的一般指示(generalindication)和结构的灵活性的更加显而易见。
图25举例说明了额外的核心无效特征。如图25所示,将处于“未注册”状态的水平特征(horizon feature)(称为“H1”)2501添加到模型核心C1(gqi_Core对象)2502的未分类的特征中。对于模型来说所期望的是,将作为gmSysPSPProperty 2520的GQI的行为附加到所述特征,并且将其传播给孩子们以及它们的子单元。由此,实现将孩子方法2503添加到gqi_Feature 2504(在图25中将其实例称为“IAF1”,)。所述有效特征和无效特征都具有附加的PSP性质,所以所述添加孩子方法2503将引发添加孩子事件,其接着还引起了H1的附加(attachment)。注意,PSP性质的附加作为添加孩子事件的结果而产生,因为核心的有效的和无效的特征携带所述PSP性质。
根据所述gqi_Feature对象2504,调用组添加孩子方法2505来作用于XOX形状对象2506,如图25所示。所述XOX形状对象2506然后将类组添加孩子回调方法2507调用到gqi_metaProperty对象2412上,该方法具有作为其参数的IAF1、H1以及IAF1,如图25所示。所述gqi_MetaProperty对象2412还将属性获取指针值方法2510调用到XOX处理对象2512上,该方法采用vlAttr变量作为参数,XOX处理对象2512的实例化被标记为IAFlattr。此后,通过gqi_MetaProperty对象2412将添加孩子回调方法2509调用到称为IAFlmeta 2514的gqi_MetaProperty实例,如图25所示。所述添加孩子回调方法2509把IAF1、H1以及IAF1属性作为其参数。所述gqi_MetaProperty 2412的IAFlmeta实例启用双个方法。第一,在gmSysPSPProperty对象2520的C1PSP实例上调用获取策略方法2519。第二,在gmSysPSPPolicy对象2518上调用添加孩子回调方法,所述方法令IAF1、H1以及PIAF1属性作为参数,如图25所示。最后,由gmSysPSPPolicy对象2518将到方法2521的附属调用到gmSysPSPProperty对象2520的C1PSP实例上。
其它方法描述在图27-40中举例说明了与上面特殊的例子相比、本发明方法的更概括描述。在伴随的描述中将说明在那些图中举例说明的特定步骤。
根据图27,所述方法一般从步骤2702开始。在步骤2704中,所述方法通过从数据库中装载有关第一表面特征的数据作为开始,其中所述数据库存储在数据存储器系统中。接下来,在步骤2706中,为所述第一表面特征创建聚合特征。这允许根据所述聚合特征来创建第一图形对象,步骤2708。此后,将所述第一图形对象添加到所述应用场景图,步骤2710。然后,在步骤2712中,为所述聚合特征创建几何对象。然后随心所欲地编辑所述模型中的第一表面特征,步骤2714。一旦完成编辑(例如所述用户从编辑模式中退出,或者必需的时间周期期满),有选择地更新所述模型的图形,步骤2716。所述有选择性地更新使各种装置不必重新计算以及显示所有的更新和改变。相反,只对那些能够对用户体验产生影响的更新进行更新。最后,将所述第一表面特征的第一图形对象从所述应用场景图上移除,步骤2718。
编辑和更新编辑过程本身包括几个步骤。参见图28a,首先,必须提供一个接口,步骤2804。然后,在步骤2806中,必须还提供利用所述接口操作的IGM。它有助于包括利用与IGM操作的GQI。这允许所述用户经由该接口来选择要对第二表面特征执行的操作,步骤2808。将该接口设计成能向IGM通知用户的选择,步骤2810。所述操作本身利用GQI被调用,步骤2812。在所述编辑过程期间,步骤2814,在执行所述操作期间需要从GQI到IGM执行至少一次回调。将所述回调用于更新模型的图形对象以便刷新所述输出装置。可以经由不规则空间的划分来实现编辑,不过本发明还能够采用其它的编辑技术。一旦完成所述编辑,通常就通过产生所述图形对象开始更新所述图形,步骤2816。
如图28b所示,本发明具有特定特征,其中更新步骤2816包括只对依照定义标准已经改变的那些单元的图形进行更新,所述定义标准诸如几何的和/或拓扑的,步骤2820。所述更新步骤还可以包括可视性有限状态机的参考,步骤2822。所述可视性有限状态机有助于管理图形对象的更新操作以及图形对象的可视性更新操作。利用所述可视性有限状态机来允许只对那些指定为可视的(对于用户来说)图形对象进行更新。所述可视性有限状态机可用于将图形对象指定为可视的,并且还用于检查所述图形对象的有效性。如果所述图形对象是有效的,步骤2824,那么可以将所述图形对象添加到所述场景图,步骤2826。否则,所述图形对象可以被更新,然后添加到所述场景图,步骤2828,如图28b所示。
更新的过程可以包含几个步骤。例如,更新可以包括检验所述场景图中的每个特征的状态,如在图28c的步骤2854-2856中所示。通常,如果所述特征的图形是有效的,步骤2854,那么不更新所述特征的图形对象,步骤2860。然而,如果所述特征的图形是无效的,步骤2854,而所述几何特征是有效的,步骤2856,那么特征的图形对象被更新,步骤2862,如图28c所示。
更新的另一个方式可以包括检验场景图中每个单元的状态,如图28d所示。在此方案中,如果所述单元的图形是有效的,步骤2872,那么不更新所述单元的图形对象,步骤2878。如果所述单元的图形是无效的,步骤2872,而所述单元的几何结构是有效的,步骤2876,那么更新所述单元的图形对象,步骤2880。
本发明的方法还可能包含那些情况,其中所述模型内不包含第二表面特征,不过所述模型内当然可以包含第二特征。
创建图形本发明的方法还涉及为不同的实体创建图形,所述不同的实体诸如是聚合特征,如图29中所示。通常,此过程涉及获取所述模型中的所有相关的表面特征,步骤2904。然后,对于每个相关的表面特征来说,如果该表面特征具有图形对象,步骤2905,那么更新该图形对象,步骤2906。否则,创建用于表面特征的图形对象,步骤2908。然后,将表面特征的所述图形对象添加到表面场景图根节点,步骤2910,并且图29的方法通常在步骤2912结束。
除前段中略述的步骤之外,可以选择性地实现其它的步骤,如图30所示。例如,可以获取所述表面特征的所有二维单元的聚合对象,步骤3004。然后,可以提示每个单元的聚合对象获取至少一个有效的图形对象,并且将该图形对象添加到表面特征的子场景图,步骤3006。一旦完成上述步骤,可以使所述表面特征的图形对象有效,步骤3008,并且所述方法通常在步骤3010结束。
为上面刚略述的方法可以仍可采用更多的步骤,如图31所示。例如,为单元获取有效的图形对象的步骤可以包括检验,以便判断所述单元的图形对象是否存在,步骤3104。如果所述图形对象没有存在,那么所述单元的图形对象被创建并且使其有效,步骤3106。如果所述单元的图形对象存在但不是有效的,那么更新并且使所述单元的图形对象,步骤3108。
作为选择,本发明的用于创建图形的方法还可能包括根据所述模型为至少一个体积单元创建图形,如图32所示。此可选方法包括获取所述模型中的至少一个相关的有效的体积单元,步骤3204。一旦获取,可以执行检验以确保每个体积单元的所有二维单元的图形对象已经创建,步骤3206。然后,对于每个所述二维单元来说,可以获取聚合,步骤3208。如果所述二维单元聚合不存在,那么可以创建新的聚合,步骤3210。然后,检验每个二维单元以便确保它具有有效的图形,步骤3212。此后,可以为每个体积单元创建图形对象,步骤3214。然后,为每个体积单元,将所述体积单元的每个二维单元的图形内容添加到体积单元的图形对象的子场景图中,步骤3214。最后,为每个体积单元将所述图形对象添加到体积场景图根节点,步骤3216。另外,在没有彩色材料情况下,图形地表示二维单元的图形内容的例示,可以由包含让所述二维单元作为孩子的表面特征的图形对象的至少一个场景图、以及包含一个体积单元或者两个体积单元的图形对象的至少一个场景图来共用,其中所述两个体积单元让所述二维单元作为它们的边界部分。
回调本发明在所述对象框架内广泛地应用了回调。例如,回调可以令所述聚合特征的状态变化。优选的是,所述聚合特征元素是一致性有限状态机,以便有效地辅助所述回调。此外优选的是,所述一致性有限状态机管理几何和图形之间的一致性。还将回调用于使聚合特征的图形对象无效,并且用于使聚合特征的几何结构有效。例如,如果所述回调针对体积对象,那么将特殊的回调用于体积特征。否则为表面特征执行编辑回调。
能够以多种方式来执行回调。然而,所述回调通常利用一个或多个对象集来实现。通常,该对象集包括第一几何模型特征对象;所述几何模型特征对象中包含的改变的几何对象;有选择性地与改变的几何对象相关联的第一元性质属性对象;与所述第一元性质属性相关联的第一元性质对象;与所述几何模型特征对象相关联的第二元性质属性对象;以及与第二元性质属性对象相关联的第二元性质对象。
所述第一元性质对象本身具有一组对象,比如点集保存性质对象;点集保存性质策略对象;单元反向指针性质对象;聚合反向指针性质策略对象;与所述回调指针对象相关联的几何单元对象;与所述几何单元对象相关联的聚合单元对象;以及与所述聚合单元对象相关联的显示单元图形对象。
第二元性质属性对象本身具有一组对象,包括第二点集保存性质对象;第二点集保存性质策略对象;特征反向指针性质对象;第二聚合反向指针性质策略对象;与所述特征反向指针性质对象相关联的几何特征对象;与所述几何特征对象相关联的聚合特征对象;以及与所述聚合特征对象相关联的显示特征图形对象。
依照本发明的回调可以在各种配置以及环境中实现。例如,图33举例说明了体积特征的编辑回调,所述过程包括利用几何建模器接口来注册所述元性质分割回调类方法,步骤3304。当发生体积分割事件时打算调用所述几何建模器接口。此后,在步骤3306中,第一元性质属性附加到由体积特征包含的至少一个体积对象。然后,在步骤3308中,从所述几何建模器接口接收回调,所述回调指定了第一体积对象、受第一体积对象改变影响的第二体积以及第一元性质属性。然后从第一元性质属性来获取指针值,然后,允许反引用所述指针值来定位第一元性质对象,步骤3310。利用第一元性质属性、第一体积对象以及第二体积对象在第一元性质对象中调用分割回调。此最后一步本身包括获取第一点集保存性质实例,步骤3312,以及从所述性质实例来获取第一点集保存策略实例,步骤3314,以及利用点集保存性质实例、第一体积对象以及第二体积对象对点集保存策略实例,来启动第一分割回调。此后者的子步骤本身包括获取至少一个第一体积对象的包含特征,步骤3316,以及利用包含特征以及第二体积对象在所述几何建模器接口上来启动特征添加孩子更新,步骤3318。然后,获取单元反向指针性质实例,以便可以从所述单元反向指针性质实例获取聚合反向指针性质策略实例,因此利用所述单元反向指针性质实例针启动对聚合反向指针性质策略实例的第二分割回调。然后,获取单元反向指针性质实例,以便可以从所述单元反向指针性质实例处获取聚合反向指针性质策略实例,因此利用所述单元反向指针性质实例启动对聚合反向指针性质策略实例的第二分割回调。后者的回调本身包括从所述单元反向指针性质实例来获取体积几何单元对象,步骤3320,并且启动对所述体积几何单元的单元分割调用。后者的子步骤可以包括启动对体积几何单元对象的体积单元聚合主顾(aggregate patron)的调用,以便使第一体积的所述图形无效,步骤3322。
图34举例说明了为体积特征执行特征添加孩子回调,包括利用所述几何建模器接口来注册所述元性质添加孩子回调类方法,当发生特征添加孩子事件时将要调用所述几何建模器接口,步骤3404。此步骤可以包括将第二元性质属性实例附加到所述体积特征上,步骤3406;并且接收来自于所述几何建模器接口的添加孩子回调,所述添加孩子回调指定了体积特征、体积对象以及第二元性质属性,步骤3408。然后,在步骤3410中,从第二元性质属性获取指针值,然后反引用所述指针值以便定位第二元性质对象。在第二元性质对象中调用添加孩子回调。后者的步骤包括获取第二点集保存性质实例,步骤3412;从第二点集保存性质实例来获取第二点集保存性质策略实例,步骤3414;以及利用体积特征以及体积几何对象来启动第二点集策略对象的添加孩子回调方法。后者的子步骤本身包括将所述点集保存性质附加到所述体积单元,步骤3416;获取特征反向指针性质实例,步骤3418;以及从所述特征反向指针性质实例来获取第二聚合反向指针性质策略实例;以及利用体积特征、体积几何对象以及体积特征反向指针性质,来启动第二聚合反向指针性质策略实例的添加孩子回调方法。后者的子步骤本身包括启动对体积特征几何对象的添加孩子通知方法调用,其中所述体积特征几何对象由所述特征反向指针性质实例标识。此后者的子步骤本身包括启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的几何结构有效,步骤3420;以及启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的图形无效,步骤3422。
本发明的方法的又一个方面涉及为表面特征执行编辑回调。所述方法的这方面包括利用几何建模器接口注册所述元性质分割回调类方法,所述几何建模器接口要在发生表面分割事件时被调用,步骤3504;将第一元性质属性附加到由所述表面特征包含的至少一个表面对象,步骤3506;从几何建模器接口接收指定第一表面对象、受第一表面改变影响的第二表面以及第一元性质属性的回调,步骤3508;从第一元性质属性来获取指针值并且反引用所述指针值来定位第一元性质对象,步骤3510;利用第一表面对象、第二表面对象以及第一元性质属性、其本身,在所述第一元性质对象中调用分割回调。后者的步骤包括获取第一点集保存性质实例,步骤3512;从所述性质实例来获取第一点集保存策略实例,步骤3514,以及利用点集保存性质实例、第一表面对象以及第二表面对象启动对点集保存策略实例的第一分割回调。后者的子步骤本身包括获取第一表面对象的至少一个包含特征,步骤3516;以及利用包含特征以及第二表面对象在几何建模器接口上启动特征添加孩子更新,步骤3518;获取单元反向指针性质实例,步骤3520;从所述单元反向指针性质实例来获取聚合反向指针性质策略实例,步骤3522;以及利用所述单元反向指针性质实例来启动对聚合反向指针性质策略实例的第二分割回调。后者的子步骤本身包括从所述单元反向指针性质实例来获取表面几何图形单元对象,步骤3524;以及启动对表面几何图形单元对象的单元分割调用。后者的子步骤包括启动对表面几何图形单元对象的表面单元聚合主顾的调用,以便使第一表面的图形无效,步骤3526。
图36举例说明了用于执行特征添加回调(在前段中提及)的步骤包括以下步骤利用所述几何建模器接口来注册所述元性质添加孩子回调类方法,所述几何建模器接口要在发生特征添加孩子事件时被执行,步骤3604;将第二元性质属性实例附加到所述表面特征,步骤3606;从所述几何建模器接口接收添加孩子回调,所述添加孩子回调指定表面特征、表面对象以及第二元性质属性,步骤3608;从第二元性质属性来获取指针值并且反引用所述指针值来定位第二元性质对象,步骤3610;以及在第二元性质对象中调用所述添加孩子回调。此后者的步骤本身包括获取第二点集保存性质实例,步骤3612;从第二点集保存性质实例来获取第二点集保存性质策略实例,步骤3614;以及利用表面特征以及表面几何图形对象来启动第二点集策略对象的添加孩子回调方法。此后者的子步骤本身包括将此点集保存性质附加到此表面单元,步骤3616;获取特征反向指针性质实例,步骤3618;以及从所述特征反向指针性质实例来获取第二聚合反向指针性质策略实例,步骤3620;以及利用表面特征、表面几何对象以及表面特征反向指针性质来启动第二聚合反向指针性质策略实例的添加孩子回调方法。此后者的子步骤本身包括启动对表面特征几何对象的添加孩子通知调用,所述表面特征几何对象是由特征反向指针性质实例标识的。此后者的子步骤本身包括启动对表面特征对象的表面特征聚合主顾的调用,以便使表面特征对象的几何结构有效,步骤3622;并且启动对表面特征对象的表面特征聚合主顾的调用,以便使表面特征对象的图形无效,步骤3624。
回调可以对本发明的不同对象产生许多影响。例如,执行所述回调可以引起单元的状态改变。可以将所述单元的状态变化记录在一致性有限状态机中。
本发明的方法的另一个方面在于为体积特征执行编辑回调,如图37所示。本发明方法的该方面包括利用几何建模器接口来注册元性质合并回调类方法,所述几何建模器接口要在发生体积合并事件时被调用,步骤3704;将第一元性质属性附加到由体积特征包含的至少一个体积对象上,步骤3706;从几何建模器接口接收指定第一体积对象、第二体积对象、原先限制第一和第二体积对象的以及已经从所述模型中移除的表面对象、以及元性质属性,步骤3708;根据几何模型属性获取指针值并且解关联所述指针值以便定位第一元性质对象,步骤3710;以及在所述第一元性质对象中调用合并回调。后者的子步骤本身包括获取第一点集保存性质实例,步骤3712;从所述性质实例来获取第一点集保存策略实例,步骤3714;以及利用点集保存性质实例、第一体积对象、第二体积对象以及表面对象,对点集保存策略实例启动第一合并回调。此后者的子步骤本身包括获取第一体积对象的至少一个包含特征,步骤3716;以及利用包含特征以及第二体积对象在几何建模器接口上启动特征移除孩子更新,步骤3718;然后在步骤3719中获取单元反向指针性质实例。接下来,在步骤3720中,从所述单元反向指针性质实例来获取聚合反向指针性质策略实例;并且利用单元反向指针性质实例、第一体积对象、第二体积对象以及表面对象,启动对聚合反向指针性质策略实例的第二合并回调。后者的子步骤本身包括从单元反向指针性质实例来获取体积几何单元对象,步骤3722,并且启动对体积几何单元对象的单元合并调用。此后者的子步骤本身包括启动对体积几何单元对象的体积单元聚合主顾的调用,以便使第一体积的图形无效,步骤3724。
图38举例说明了用于对体积特征执行编辑回调的方法,所述体积特征本身选择性地去移除孩子编辑回调。此子方法包括利用几何建模器接口注册元性质移除孩子回调类方法,所述几何建模器接口要在发生特征移除孩子事件时被调用,步骤3804;将第二元性质属性实例附加到体积特征上,步骤3806;从几何建模器接口接收指定了体积特征、体积对象以及第二元性质属性的移除孩子回调,步骤3808;从第二元性质属性来获取指针值并且反引用所述指针值来定位第二元性质对象,步骤3810;并且在第二元性质对象中调用移除孩子回调。后者的子步骤包括获取第二点集保存性质实例,步骤3812;从第二点集保存性质实例来获取第二点集保存性质策略实例,步骤3814;利用体积特征和体积几何对象来启动第二点集策略对象的移除孩子回调方法。后者的子步骤包括从体积单元移除点集保存性质,步骤3816;获取特征反向指针性质实例,步骤3818;从特征反向指针性质实例来获取第二聚合反向指针性质策略实例,步骤3820;并且利用体积特征、体积几何对象以及体积特征反向指针性质,来启动第二聚合反向指针性质策略实例的移除孩子回调方法。后者的子步骤包括启动对由特征反向指针性质实例标识的体积特征几何对象的移除孩子通知调用。此后者的子步骤包括启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的几何结构有效,步骤3822;以及启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的图形无效,步骤3824。
图39举例说明了对表面体积的编辑回调的执行,其与体积特征的方法(上面描述的)类似。具体来讲,为表面特征执行编辑回调的步骤包括利用几何建模器接口注册元性质合并回调类方法,所述几何建模器接口要在发生表面合并事件时被调用,步骤3904;将第一元性质属性附加到由表面特征包含的至少一个表面对象上,步骤3906;从几何建模器接口接收指定第一表面对象、第二表面对象以及曲线对象的回调,其中所述曲线对象原先限制第一和第二表面并且已经从所述模型以及元性质属性中移除,步骤3908;从几何建模属性获取指针值并且反引用所述指针值来定位第一元性质对象,步骤3910;并且在所述第一元性质对象中调用合并回调。后者的子步骤本身包括获取第一点集保存性质实例,步骤3912;从所述性质实例来获取第一点集保存策略实例,步骤3914;以及利用点集保存性质实例、第一体积对象、第二体积对象以及曲线对象,对点集保存策略实例启动第一合并回调。后者的子步骤包括获取第一表面对象的包含特征,步骤3916;并且利用包含特征和第二表面对象在几何建模器接口上启动特征移除孩子更新,步骤3918;获取单元反向指针性质实例;从单元反向指针性质实例来获取聚合反向指针性质策略实例,步骤3920;并且利用单元反向指针性质实例、第一表面对象、第二表面对象和曲线对象,对聚合反向指针性质策略实例启动第二合并回调。后者的子步骤包括从单元反向指针性质实例来获取表面几何图形单元对象,步骤3922;并且启动对表面几何单元对象的单元合并。后者的子步骤本身包括启动对表面几何单元对象的表面单元聚合主顾的调用,以便使第一表面的图形无效,步骤3924。
最后,图40举例说明了执行表面特征的特征移除回调的步骤,其中所述方法包括利用几何建模器接口注册元性质移除孩子回调类方法,所述几何建模器接口要在发生特征移除孩子事件时被调用,步骤4004;将第二元性质属性实例附加到表面特征,步骤4006;从几何建模器接口接收移除用于指定表面特征、表面对象以及第二元性质属性的孩子回调,步骤4008;从第二元性质属性来获取指针值并且反引用所述指针值来定位第二元性质对象,步骤4010;并且利用依照第二元性质属性、表面特征以及表面几何对象,来第二元性质对象中调用移除孩子回调。后者的子步骤包括获取第二点集保存性质实例,步骤4012;根据第二点集保存性质实例来获取第二点集保存性质策略实例,步骤4014;利用表面特征和表面几何对象来启动第二点集策略对象的移除孩子回调方法。后者的子步骤本身包括从表面单元移除点集保存性质,步骤4016;获取特征反向指针性质实例,步骤4018;从特征反向指针性质实例来获取第二聚合反向指针性质策略实例,步骤4020;并且依照表面特征、表面几何对象以及表面特征反向指针性质来启动第二聚合反向指针性质策略实例的移除孩子回调方法。后者的子步骤本身包括启动对由特征反向指针性质实例标识的表面特征几何对象的移除孩子通知调用。此后者的子步骤本身包括启动对表面特征对象的表面特征聚合主顾的调用,以便使表面特征对象的几何结构无效,步骤4022;并且启动对表面特征对象的表面特征聚合主顾的调用,以便使表面特征对象的图形无效,步骤4024。
因此,本发明适合于执行所述对象并且实现所提及的目标和优点,以及其中固有的其他权益。虽然已经描述了本发明,并且所述描述是通过参考本发明特定的实施例来限制的,但是,这种参考不暗指对本发明的限制,并且也不会推断出这种限制。本发明可以在形式和/或功能方面进行相当大的修改、更替、变化以及等价物置换,正如本领域技术人员将想到的。所述描述的以及说明的本发明的实施例仅仅是示范性的,而不是本发明的范围的穷举。因此,本发明仅仅由所附权利要求书的精神和范围来限定,所述权利要求书给出了在各个方面的等价物的完全的认定。
权利要求
1.一种用于交互式地编辑包括第一表面的模型的方法,所述方法在计算机上实现,所述计算机包括处理器、数据存储器系统、至少一个输入装置和至少一个输出装置,所述模型被存储在计算机可读介质上,所述方法包括从存储在数据存储器系统中的数据库中装载第一表面特征的数据;为第一表面特征创建聚合特征;根据所述聚合特征创建第一图形对象;将第一图形对象添加到应用场景图;为聚合特征创建几何对象;编辑所述模型中的第一表面特征;有选择地更新用于模型的图形;以及从应用场景图中移除第一表面特征的第一图形对象。
2.如权利要求1所述的方法,其中所述编辑步骤包括提供一接口;提供利用所述接口操作的IGM;提供利用所述IGM操作的GQI;经由所述接口,选择用来执行第二表面特征的操作,所述接口被构造并且设置成用于向IGM通知所述选择;利用GQI调用操作;在执行所述操作期间,执行从GQI到IGM的至少一次回调;以及更新所述模型的图形对象以便刷新输出装置。
3.如权利要求1所述的方法,其中所述编辑步骤通过不规则空间的划分来实现。
4.如权利要求1所述的方法,其中更新图形对象的步骤包括创建图形对象。
5.如权利要求2所述的方法,其中执行回调的步骤引起聚合特征状态的变化。
6.如权利要求5所述的方法,其中聚合特征状态的变化处于一致性有限状态机中。
7.如权利要求6所述的方法,其中所述一致性有限状态机管理几何结构和图形之间的一致性。
8.如权利要求5所述的方法,其中执行回调的步骤包括使聚合特征的图形对象无效。
9.如权利要求5所述的方法,其中执行回调的步骤包括使聚合特征的几何结构有效。
10.如权利要求5所述的方法,其中执行回调的步骤包括提供一组对象,所述对象包括第一几何建模器特征对象;几何建模器特征对象中包含的改变了的几何对象;可操作地与改变了的几何对象相关联的第一元性质属性对象;与第一元性质属性对象相关联的第一元性质对象,所述第一元性质对象具有点集保存性质对象;点集保存性质策略对象;单元反向指针性质对象;聚合反向指针性质策略对象;与单元反向指针对象相关联的几何单元对象;与几何单元对象相关联的聚合单元对象;以及与聚合单元对象相关联的显示单元图形对象;与几何建模器特征对象相关联的第二元性质属性对象;以及与第二元性质属性对象相关联的第二元性质对象,第二元性质对象具有第二点集保存性质对象;第二点集保存性质策略对象;特征反向指针性质对象;第二聚合反向指针性质策略对象;与特征反向指针性质对象相关联的几何特征对象;与几何特征对象相关联的聚合特征对象;以及与聚合特征对象相关联的显示特征图形对象。
11.如权利要求10所述的方法,其中执行回调的步骤包括如果所述回调针对体积对象,那么为体积特征执行编辑回调;否则为表面特征执行编辑回调。
12.如权利要求1所述的方法,其中更新步骤包括更新只用于那些已经几何地改变的单元的图形。
13.如权利要求1所述的方法,其中更新步骤包括只为那些已经拓扑地改变的特征更新图形。
14.如权利要求1所述的方法,其中创建用于来自模型的至少一个聚合特征的图形的步骤包括获取模型中所有相关的表面特征;对于每个相关的表面特征如果所述表面特征具有图形对象,那么更新用于表面特征的图形对象,否则创建用于表面特征的图形对象;并且将用于表面特征的图形对象添加到表面场景图根节点。
15.如权利要求14所述的方法,其中创建图形对象的步骤包括获取用于表面特征的所有二维单元的聚合对象;提示每个单元的聚合对象来获取至少一个有效的图形对象以及将图形对象添加到表面特征的子场景图;以及使表面特征的图形对象有效。
16.如权利要求15所述的方法,其中获取用于单元的有效图形对象的步骤包括如果用于所述单元的图形对象不存在,那么创建用于所述单元的图形对象,并且使所述图形有效;以及如果用于所述单元的图形对象存在但不是有效的,那么更新用于所述单元的图形对象并且使所述图形有效。
17.如权利要求1所述的方法,其中更新图形对象的步骤包括参考可视性有限状态机。
18.如权利要求17所述的方法,其中所述可视性有限状态机管理对图形对象的更新以及对图形对象可视性的更新。
19.如权利要求18所述的方法,其中所述可视性有限状态机使只对那些被指定为可视的对象图形的更新能够进行。
20.如权利要求18所述的方法,其中更新步骤包括将图形对象指定为可视的;检验图形对象的有效性;如果所述图形对象是有效的,那么将所述图形对象添加到场景图,否则,更新所述图形对象然后将所述图形对象添加到场景图。
21.如权利要求1所述的方法,其中创建用于来自模型的至少一个体积单元的图形的步骤包括获取模型中至少一个相关的有效体积单元;确保每个体积单元的所有二维单元的图形对象都已经被创建;为每个二维单元,获取聚合,并且如果二维单元聚合不存在,就创建新的聚合;确保每个二维单元都具有有效的图形;为至少一个体积单元的每个创建图形对象;为每个体积单元,将体积单元的每个二维单元的图形内容添加到体积单元的图形对象的子场景图;以及将用于每个体积单元的图形对象添加到体积场景图根节点。
22.如权利要求21所述的方法,其中二维单元的、图形内容的实例化由至少一个包含具有作为孩子的二维单元的表面特征的图形对象、以及包含具有一个体积单元或者两个体积单元的图形对象的至少一个场景图共用,其中所述两个体积单元具有作为它们的边界部分的二维单元。
23.如权利要求6所述的方法,其中所述更新步骤包括检验场景图中的每个特征的状态;如果所述图形是有效的或者如果几何结构对于所述特征来说是无效的,那么不更新所述特征的图形对象;如果所述几何结构是有效的而所述图形是无效的,那么更新所述特征的图形对象。
24.如权利要求6所述的方法,其中所述更新步骤包括检验场景图中的每个单元的状态;如果所述图形是有效的或者如果几何结构对于所述单元来说是无效的,那么不更新所述单元的图形对象;如果所述几何结构是有效的而所述图形是无效的,那么更新所述单元的图形对象。
25.如权利要求11所述的方法,其中为体积特征执行编辑回调的步骤包括利用所述几何建模器接口注册元性质分割回调类方法,所述几何建模器接口被构造并且设置成用于要在发生体积分割事件时加以调用;将第一元性质属性附加到由所述体积特征包含的至少一个体积对象上;从几何建模器接口接收用于指定第一体积对象、受第一体积对象的变化影响的第二体积以及第一元性质属性的回调;从第一元性质属性来获取指针值并且反引用所述指针值以便定位第一元性质对象;利用第一元性质属性、第一体积对象以及第二体积对象,在第一元性质对象中调用分割回调,包括获取第一点集保存性质实例;从所述性质实例来获取第一点集保存策略;利用点集保存性质实例、第一体积对象以及第二体积对象,来启动对所述点集保存策略实例的第一分割回调,包括获取用于第一体积对象的至少一个包含特征;并且利用所述包含特征以及第二体积对象在所述几何建模器接口上启动特征添加孩子更新;获取单元反向指针性质实例;并且从所述单元反向指针性质实例来获取聚合反向指针性质策略实例;以及利用单元反向指针性质实例来启动对聚合反向指针性质策略实例的第二分割回调,包括从所述单元反向指针性质实例来获取体积几何单元对象;并且启动对体积几何单元对象的单元分割调用;启动对体积几何单元对象的体积单元聚合主顾的调用,以便使第一体积的图形无效。
26.如权利要求25所述的方法,其中为体积特征执行特征添加孩子回调的步骤包括利用所述几何建模器接口注册所述元性质添加孩子回调类方法,所述几何建模器接口要在发生特征添加孩子事件时被调用;将第二元性质属性实例附加到体积特征;从所述几何建模器接口接收用于指定所述体积特征、体积对象以及第二元性质属性的添加孩子回调;从第二元性质属性来获取指针值并且反引用所述指针值来定位第二元性质对象;在第二元性质对象中调用所述添加孩子回调,包括获取第二点集保存性质实例;从第二点集保存性质实例来获取第二点集保存性质策略实例;以及利用体积特征以及体积几何对象来启动第二点集策略对象的添加孩子回调方法,包括将所述点集保存性质附加到所述体积单元;获取特征反向指针性质实例;从特征反向指针性质实例来获取第二聚合反向指针性质策略实例;以及利用体积特征、体积几何对象以及体积特征反向指针性质,来启动第二聚合反向指针性质策略实例的添加孩子回调方法,包括对由特征反向指针性质实例标识的体积特征几何对象启动添加孩子通知调用,包括启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的几何结构有效;以及启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的图形无效。
27.如权利要求11所述的方法,其中为表面特征执行编辑回调的步骤包括利用所述几何建模器接口注册元性质分割回调类方法,所述几何建模器接口要在发生表面分割事件时加以调用;将第一元性质属性附加到由所述表面特征包含的至少一个表面对象上;从几何建模器接口接收用于指定第一表面对象、受第一表面对象的变化影响的第二表面以及第一元性质属性的回调;从第一元性质属性来获取指针值并且反引用所述指针值以便定位第一元性质对象;利用第一表面对象、第二表面对象以及具有第一元性质属性在第一元性质对象中调用第一分割回调,包括获取第一点集保存性质实例;从所述性质实例来获取第一点集保存策略实例;利用点集保存性质实例、第一表面对象以及第二表面对象,来启动对所述点集保存策略实例的第一分割回调,包括获取用于第一表面对象的至少一个包含特征;并且利用所述包含特征以及第二表面对象在所述几何建模器接口上来启动特征添加孩子更新;获取单元反向指针性质实例;从所述单元反向指针性质实例来获取聚合反向指针性质策略实例;以及利用单元反向指针性质实例来启动对聚合反向指针性质策略实例的第二分割回调,包括从单元反向指针性质实例来获取表面几何单元对象;以及启动对表面几何单元对象的单元分割调用,包括启动对表面几何单元对象的表面单元聚合主顾的调用,以便使第一表面的图形无效。
28.如权利要求27所述的方法,其中执行特征添加回调的步骤包括利用所述几何建模器接口注册所述元性质添加孩子回调类方法,所述几何建模器接口要在发生特征添加孩子事件时加以调用;将第二元性质属性实例附加到表面特征;从所述几何建模器接口接收用于指定所述表面特征、表面对象以及第二元性质属性的添加孩子回调;从第二元性质属性来获取指针值并且反引用所述指针值来定位第二元性质对象;以及在第二元性质对象中调用所述添加孩子回调,包括获取第二点集保存性质实例;从第二点集保存性质实例来获取第二点集保存性质策略实例;以及利用表面特征以及表面几何对象,来启动第二点集策略对象的添加孩子回调方法,包括将所述点集保存性质附加到所述表面单元;获取特征反向指针性质实例;从特征反向指针性质实例来获取第二聚合反向指针性质策略实例;以及利用表面特征、表面几何对象以及表面特征反向指针性质,来启动第二聚合反向指针性质策略实例的添加孩子回调方法,包括启动对由特征反向指针性质实例标识的表面特征几何对象的添加孩子通知调用,包括启动对表面特征对象的表面特征聚合的主顾的调用,以便使表面特征对象的几何结构有效;以及启动对表面特征对象的表面特征聚合主顾的调用,以便使表面特征对象的图形无效。
29.如权利要求2所述的方法,其中执行回调的步骤引起所述单元状态的变化。
30.如权利要求29所述的方法,其中所述单元状态的变化处于一致性有限状态机中。
31.如权利要求2所述的方法,其中在所述模型之内不包含第二表面特征。
32.如权利要求2所述的方法,其中所述模型内包含第二表面特征。
33.如权利要求1所述的方法,其中所述输出装置是显示器。
34.如权利要求11所述的方法,其中为体积特征执行编辑回调的步骤包括利用所述几何建模器接口注册所述元性质合并回调类方法,所述几何建模器接口要在发生体积合并事件时加以调用;将第一元性质属性附加到所述体积特征包含的至少一个体积对象;从几何建模器接口接收用于指定第一体积对象、第二体积对象、原先分界第一以及第二体积对象并且已经从所述模型移除的表面对象以及元性质属性的回调;从所述几何建模器属性来获取指针值并且反引用所述指针值来定位第一元性质对象;以及在所述第一元性质对象中调用合并回调,包括获取第一点集保存性质实例;从所述性质实例来获取第一点集保存策略实例;利用点集保存性质实例、第一体积对象,第二体积对象以及表面对象,来启动对所述点集保存策略实例的第一合并回调,包括获取用于第一体积对象的至少一个包含特征;并且利用所述包含特征以及第二体积对象在所述几何建模器接口上来启动特征移除孩子更新;获取单元反向指针性质实例;从所述单元反向指针性质实例来获取聚合反向指针性质策略实例;并且利用所述单元反向指针性质实例、第一体积对象、第二体积对象以及表面对象启动对聚合反向指针性质策略实例的第二合并回调,包括从所述单元反向指针性质实例来获取体积几何单元对象;并且启动对体积几何单元对象的单元合并调用,包括启动对体积几何单元对象的体积单元聚合主顾的调用,以便使第一体积的图形无效。
35.如权利要求34所述的方法,其中执行特征移除孩子回调的步骤包括利用所述几何建模器接口注册所述元性质移除孩子回调类方法,所述几何建模器接口要在发生特征移除孩子事件时加以调用;将第二元性质属性实例附加到体积特征;从所述几何建模器接口接收用于指定所述体积特征、体积对象以及第二元性质属性的移除孩子回调;从第二元性质属性来获取指针值并且反引用所述指针值来定位第二元性质对象;并且在第二元性质对象中调用所述移除孩子回调,包括获取第二点集保存性质实例;从第二点集保存性质实例来获取第二点集保存性质策略实例;利用体积特征以及体积几何对象,来启动第二点集策略对象的移除孩子回调方法,包括将所述点集保存性质从所述体积单元移除;获取特征反向指针性质实例;从特征反向指针性质实例来获取第二聚合反向指针性质策略实例;以及利用体积特征、体积几何对象以及体积特征反向指针性质,来启动第二聚合反向指针性质策略实例的移除孩子回调方法,包括对由特征反向指针性质实例标识的体积特征几何对象启动移除孩子通知调用,包括启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的几何结构有效;以及启动对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象的图形无效。
36.如权利要求11所述的方法,其中为表面特征执行编辑回调的步骤包括利用所述几何建模器接口注册所述元性质合并回调类方法,所述几何建模器接口要在发生表面合并事件时加以调用;将第一元性质属性附加到所述表面特征包含的至少一个表面对象;从几何建模器接口接收用于指定第一表面对象、第二表面对象以及原先分界第一以及第二表面并且已经从所述模型移除的曲线对象以及元性质属性的回调;从所述几何建模器属性来获取指针值并且反引用所述指针值来定位第一元性质对象;以及在所述第一元性质对象中调用合并回调,包括获取第一点集保存性质实例;从所述性质实例来获取第一点集保存策略实例;以及利用点集保存性质实例、第一表面对象、第二表面对象以及曲线对象来启动对所述点集保存策略实例的第一合并回调,包括获取用于第一表面对象的至少一个包含特征;并且利用所述包含特征以及第二表面对象在所述几何建模器接口上来启动特征移除孩子更新;获取单元反向指针性质实例;从所述单元反向指针性质实例来获取聚合反向指针性质策略实例;并且利用所述单元反向指针性质实例、第一表面对象、第二表面对象以及曲线对象,来启动对聚合反向指针性质策略实例的第二合并回调,包括从单元反向指针性质实例来获取表面几何单元对象;以及启动对表面几何单元对象的单元合并调用,包括启动对表面几何单元对象的表面单元聚合主顾的调用,以便使第一表面的图形无效。
37.如权利要求36所述的方法,其中执行特征移除回调的步骤包括利用所述几何建模器接口注册所述元性质移除孩子回调类方法,所述几何建模器接口要在发生特征移除孩子事件时被调用;将第二元性质属性实例附加到表面特征;从所述几何建模器接口接收用于指定所述表面特征、表面对象以及第二元性质属性的移除孩子回调;从第二元性质属性来获取指针值并且反引用所述指针值来定位第二元性质对象;并且利用第二元性质属性、表面特征以及表面几何对象,在第二元性质对象中调用所述移除孩子回调,包括获取第二点集保存性质实例;从第二点集保存性质实例来获取第二点集保存性质策略实例;以及利用表面特征以及表面几何对象来启动第二点集策略对象的移除孩子回调方法,包括将所述点集保存性质从表面单元中移除;获取特征反向指针性质实例;从特征反向指针性质实例来获取第二聚合反向指针性质策略实例;以及利用表面特征、表面几何对象以及表面特征反向指针性质,来启动第二聚合反向指针性质策略实例的移除孩子回调方法,包括启动对由特征反向指针性质实例标识的表面特征几何对象的移除孩子通知调用,包括启动对表面特征对象的表面特征聚合主顾的调用,以便使表面特征对象的几何结构有效;以及启动对表面特征对象的表面特征聚合主顾的调用,以便使表面特征对象的图形无效。
38.一种用于交互式地编辑具有第一表面模型的计算机系统,所述计算机系统还具有处理器、数据存储器系统、至少一个输入装置以及至少一个输出装置,所述计算机系统还具有被构造以及设置成用于包含对象结构的随机存取存储器,所述对象结构包括几何查询接口对象,所述几何查询接口对象具有GQI材料性质框架对象,所述GQI材料性质框架对象包括cc_RefObj对象;与cc_RefObj对象具有IsA关系的gmMP对象;与cc_RefObj对象具有IsA关系的gmMPPolicy对象;以及与gmMP对象具有IsA关系的gmMPConstant对象;从公共模型构建器对象派生的交互式几何建模对象,所述交互式几何建模对象与所述GQI材料性质框架对象具有关系,以及IGM材料性质框架对象,所述IGM材料性质框架对象包括与所述gmMP对象具有IsA关系的gmMPPolyXYZ对象;与gmMP对象具有IsA关系的gmMPZ对象;与gmMPZ对象具有IsA关系的gmMPTime对象;与gmMPZ对象具有IsA关系的gmMPDepth对象;与gmMP对象具有IsA关系的gmMP2DPoly对象;与gmMP对象具有IsA关系的gmMP2DGrid对象;与gmMP对象具有IsA关系的gmMP3dGrid对象;与gmMPConstant对象具有IsA关系的gmMPName对象;与gmMPConstant对象具有IsA关系的mbCellGMReference对象;与gmMPConstant对象具有IsA关系的mbFtrGMReference对象;与所述gmMPConstant对象具有IsA关系的vspQualityProp对象;与所述gmMPConstant对象具有IsA关系的vspTransverseIsotroppy对象;以及与所述gmMPConstant对象具有IsA关系的fbFtrParameters对象;其中由所述对象结构处理数据,以便使用户能够编辑存储在所述数据库中的模型。
39.如权利要求38所述的计算机系统,所述IGM材料性质框架对象还包括gmGradientProp对象;与所述gmGradProp对象具有IsA关系的vspDensProp对象;与所述gmGradProp对象具有IsA关系的vspVelPProp对象;与所述gmGradProp对象具有IsA关系的vspVelSProp对象;以及与所述gmGradProp对象具有IsA关系的gmResistivityProp对象。
40.如权利要求38所述的计算机系统,所述IGM材料性质框架对象还包括与所述gmMPName对象具有组成关系的gmMPNamePropertyPolicy对象。
41.如权利要求38所述的计算机系统,所述IGM材料性质框架对象还包括与所述mbCellGMReference对象具有组成关联、并且与所述mbFtrGMReference对象具有组成关系的gmMPIGMPropertyPolicy对象。
42.如权利要求38所述的计算机系统,所述GQI材料性质框架对象还包括gmutil_status对象;mv_vt对象;以及gm_mp_atoms对象。
43.如权利要求38所述的计算机系统,所述GQI材料性质框架对象还包括与所述gmMPConstant对象具有IsA关系的gmSysRules对象;与所述gmMPConstant对象具有IsA关系的gmSysPSPProperty对象;与所述gmMPConstant对象具有IsA关系的gmUtilFtrBnd对象;与所述gmMPPolicy对象具有IsA关系的gmMPGQIPolicy对象;与所述gmMPPolicy对象具有IsA关系并且与所述gmSysPSPProperty对象具有组成关系的gmSysPSPolicy对象;与所述gmMPPolicy对象具有IsA关系并且与所述gmSysRules对象具有组成关系的gmSysRulesPolicy对象;以及与所述gmMPPolicy对象具有IsA关系并且与所述gmMPConstant对象具有组成关系的gmMPVolumePropertyPolicy对象。
44.如权利要求43所述的计算机系统,所述GQI材料性质框架对象还包括与所述gmMPGQIPolicy对象具有IsA关系的gmUtilFtrBndPolicy对象。
45.如权利要求43所述的计算机系统,所述GQI材料性质框架对象还包括与所述gmMPPolicy对象具有组成关系的gmMPTopologyTraversalStates对象。
46.如权利要求44所述的计算机系统,其中gmMPIGMPropertyPolicy对象与gmUtilFtrBndPolicy对象具有IsA关系。
47.如权利要求43所述的计算机系统,其中gmMPNamePropertyPolicy对象与所述gmMPVolumePropertyPolicy对象具有IsA关系。
48.如权利要求39所述的计算机系统,其中gmMPVolumePropertyPolicy对象与所述gmGradientProp对象具有第一组成关系并且与所述gmMPZ对象具有第二组成关系。
49.如权利要求38所述的计算机系统,所述计算机系统还包括与所述gmMP对象具有关系的aqi_Parameter对象;与所述gmMPPolicy对象具有关系的gmMPTopologyTraversalState对象;与所述gmMP对象具有关系的第一gqi_MetaProperty对象;与所述gmMP对象具有关系的第二gqi_MetaProperty对象;与第一gqi_MetaProperty对象具有关系的gqi_AttachmentSite对象;以及与第二gqi_MetaProperty对象具有关系并且与所述gqi_AttachmentSite对象具有IsA关系的gqi_Core对象。
50.如权利要求49所述的计算机系统,所述计算机系统还包括ag_BaseClass对象;与所述ag_BaseClass对象具有IsA关系的ag_Geometry对象;与所述ag_Geometry对象具有hasA关系的gm_Geometry对象,与所述几何对象具有关系的gm_Geometry对象;与ag_Feature对象具有关系的oi_Feature对象,与所述ag_Geometry对象具有IsA关系的ag_Feature对象,还与所述gm_Feature对象具有关系的ag_Feature对象;与ag_Cell对象具有关系的oi_Cell对象,与所述ag Cell对象具有IsA关系的ag_Cell对象,与gm_Cell对象也具有关系的ag_Cell对象;与所述gm_Feature对象具有关系的X_Feature对象,与xAttrFtr对象具有IsA关系的X_Feature对象,与gqi_Feature对象具有IsA关系的xAttrFtr对象,与X_Feature对象具有IsA关系的gqi_Feature对象;X_Cell对象,该X_Cell对象与X_Feature对象具有IsA关系,与第一xAttrMP对象具有IsA关系的X_Cell对象,与第一gqi_MetaProperty对象具有IsA关系的第一xAttrMP对象,与FtrRef对象具有关联的第一gqi_MetaProperty对象,与gm_Feature对象具有至少一个关联的FtrRef对象;以及还与第二xAttrMP对象具有IsA关系的X_Feature对象,与第二gqi_MetaProperty对象具有IsA关系的第二xAttrMP对象,与CellRef对象具有关联的第二gqi_MetaProperty对象,与所述gm_Cell对象具有至少一个关联的CellRef对象。
51.一种随机存取存储器,所述随机存取存储器具有对象结构,包括几何查询接口对象,所述几何查询接口对象具有GQI材料性质框架对象,所述GQI材料性质框架对象包括cc_RefObj对象;与所述cc_RefObj对象具有IsA关系的gmMP对象;与所述cc_RefObj对象具有IsA关系的gmMPPolicy对象;以及与所述gmMP对象具有IsA关系的gmMPConstant对象;从公共模型构建器对象派生的交互式几何建模对象,所述交互式几何建模对象与所述GQI材料性质框架对象具有关系,以及IGM材料性质框架对象,所述IGM材料性质框架对象包括与gmMP对象具有IsA关系的gmMPPolyXYZ对象;与所述gmMP对象具有IsA关系的gmMPZ对象;与所述gmMPZ对象具有IsA关系的gmMPTime对象;与所述gmMPZ对象具有IsA关系的gmMPDepth对象;与所述gmMP对象具有IsA关系的gmMP2DPoly对象;与所述gmMP对象具有IsA关系的gmMP2DGrid对象;与所述gmMP对象具有IsA关系的gmMP3dGrid对象;与所述gmMPConstant对象具有IsA关系的gmMPName对象;与所述gmMPConstant对象具有IsA关系的mbCellGMReference对象;与所述gmMPConstant对象具有IsA关系的mbFtrGMReference对象;与所述gmMPConstant对象具有IsA关系的vspQualityProp对象;与所述gmMPConstant对象具有IsA关系的vspTransverseIsotroppy对象;以及与所述gmMPConstant对象具有IsA关系的fbFtrParameters对象;其中由所述对象结构处理数据以便使用户能够编辑存储在数据库中的模型。
52.如权利要求51所述的随机存取存储器,所述IGM材料性质框架对象还包括gmGradientProp对象;与所述gmGradProp对象具有IsA关系的vspDensProp对象;与所述gmGradProp对象具有IsA关系的vspVelPProp对象;与所述gmGradProp对象具有IsA关系的vspVelSProp对象;以及与所述gmGradProp对象具有IsA关系的gmResistivityProp对象。
53.如权利要求51所述的随机存取存储器,所述IGM材料性质框架对象还包括与所述gmMPName对象具有组成关系的gmMPNamePropertyPolicy对象。
54.如权利要求51所述的随机存取存储器,所述IGM材料性质框架对象还包括与所述mbCellGMReference对象具有组成关系、并且与所述mbFtrGMReference对象具有组成关系的gmMPIGMPropertyPolicy对象。
55.如权利要求51所述的随机存取存储器,所述GQI材料性质框架对象还包括gmutil_status对象;mv_vt对象;以及gm_mp_atoms对象。
56.如权利要求51所述的随机存取存储器,所述GQI材料性质框架对象还包括与所述gmMPConstant对象具有IsA关系的gmSysRules对象;与所述gmMPConstant对象具有IsA关系的gmSysPSPProperty对象;与所述gmMPConstant对象IsA关系的gmUtilFtrBnd对象;与所述gmMPPolicy对象具有IsA关系的gmMPGQIPolicy对象;与所述gmMPPolicy对象具有IsA关系并且与所述gmSysPSPProperty对象具有组成关系的gmSysPSPolicy对象;与所述gmMPPolicy对象具有IsA关系并且与所述gmSysRules对象具有组成关系的gmSysRulesPolicy对象;以及与所述gmMPPolicy对象具有IsA关系并且与所述gmMPConstant对象具有组成关系的gmMPVolumePropertyPolicy对象。
57.如权利要求56所述的随机存取存储器,所述GQI材料性质框架对象还包括与所述gmMPGQIPolicy对象具有IsA关系的gmUtilFtrBndPolicy对象。
58.如权利要求56所述的随机存取存储器,所述GQI材料性质框架对象还包括与所述gmMPPolicy对象具有组成关系的gmMPTopologyTraversalStates对象。
59.如权利要求57所述的随机存取存储器,其中gmMPIGMPropertyPolicy对象与gmUtilFtrBndPolicy对象具有IsA关系。
60.如权利要求56所述的随机存取存储器,其中gmMPNamePropertyPolicy对象与所述gmMPVolumePropertyPolicy对象具有IsA关系。
61.如权利要求52所述的随机存取存储器,其中gmMPVolumePropertyPolicy对象与所述gmGradientProp对象具有第一组成关系并且与所述gmMPZ对象具有第二组成关系。
62.如权利要求51所述的随机存取存储器,所述随机存取存储器还包括与所述gmMP对象具有关系的aqi_Parameter对象;与所述gmMPPolicy对象具有关系的gmMPTopologyTraversalState对象;与所述gmMP对象具有关系的第一gqi_MetaProperty对象;与所述gmMP对象具有关系的第二gqi_MetaProperty对象;与第一gqi_MetaProperty对象具有关系的gqi_AttachmentSite对象;以及与第二gqi_MetaProperty对象具有关系并且与所述gqi_AttachmentSite对象具有IsA关系的gqi_Core对象。
63.如权利要求62所述的随机存取存储器,所述随机存取存储器还包括ag_BaseClass对象;与所述ag_BaseClass对象具有IsA关系的ag_Geometry对象;与所述ag_Geometry对象具有hasA关系的gm_Geometry对象,与所述Geometry对象具有关系的gm_Geometry对象;与ag_Feature对象具有关系的oi_Feature对象,与所述ag_Geometry对象具有IsA关系的ag_Feature对象,还与所述gm_Feature对象具有关系的ag_Feature对象;与ag_Cell对象具有关系的oi_Cell对象,与ag_Cell对象具有IsA关系的ag_Cell对象,与所述gm_Cell对象还具有关系的ag_Cell对象;与所述gm_Feature对象具有关系的X_Feature对象,该X_Feature对象与xAttrFtr对象具有IsA关系,与gqi_Feature对象具有IsA关系的xAttrFtr对象,以及与X_Feature对象具有IsA关系的gqi_Feature对象;X_Cell对象,该X_Cell对象与X_Feature对象具有IsA关系,与第一xAttrMP对象具有IsA关系的X_Cell对象,与第一gqi_metaproperty对象具有IsA关系的第一xAttrMP对象,与FtrRef对象具有关联的第一gqi_metaproperty对象,与gm_Feature对象具有至少一个关联的FtrRef对象;以及与第二xAttrMP对象还具有IsA关系的X_Feature对象,与第二gqi_MetaProperty对象具有IsA关系的第二xAttrMP对象,与CellRef对象具有关联的第二gqi_MetaProperty对象,与所述gm_Cell对象具有至少一个关联的CellRef对象。
全文摘要
提供了一种方法、计算机系统或者计算机程序,用于交互式地构造、编辑、绘制以及操纵地球科学模型,包括聚合几何系统以及图形系统的功能,加强几何系统以及图形系统之间的一致性,并且经由集成层将几何系统以及图形系统通过接口连接到应用程序。还提供了状态机,用于允许只对那些其几何结构或者拓扑结构已经改变并且被用户指定为可视的图形对象更新,由此提高性能。还提供了一种场景图构造技术来减少内存需求并且进一步地增强性能。其中提供了一种材料性质框架,用来将几何结构或者拓扑结构方面的变化传达到聚合对象,所述聚合对象然后确定哪些图形对象受到改变的影响,并且哪些图形对象将要被更新。
文档编号G06T17/00GK1561505SQ02819323
公开日2005年1月5日 申请日期2002年7月23日 优先权日2001年7月31日
发明者陆宏谦, D·M·恩德雷斯, Y·库登内克, E·J·舍恩 申请人:施卢默格海外有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1