CN116149633A - 针对3d对象编辑实现可撤销操作的方法、系统及设备 - Google Patents
针对3d对象编辑实现可撤销操作的方法、系统及设备 Download PDFInfo
- Publication number
- CN116149633A CN116149633A CN202211103915.6A CN202211103915A CN116149633A CN 116149633 A CN116149633 A CN 116149633A CN 202211103915 A CN202211103915 A CN 202211103915A CN 116149633 A CN116149633 A CN 116149633A
- Authority
- CN
- China
- Prior art keywords
- command
- subclass
- class
- defining
- base class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000006870 function Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004048 modification Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 5
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 abstract description 4
- 230000009466 transformation Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种针对3D对象编辑实现可撤销操作的方法、系统及设备,属于计算机技术应用领域,其中方法内容包括:定义基类;定义子类;定义命令接口与实现所述命令接口的命令类以及命令管理器;通过所述命令接口,由所述命令管理器对命令对象进行压栈出栈操作,所述命令对象是所述命令类的实例化。本发明解决了3D场景的编辑过程中因增加新类导致代码开发和维护成本增加的问题,实现了使用固定数量命令类的命令模式在编辑3D对象中的可撤销操作。
Description
技术领域
本发明涉及计算机技术应用领域,具体涉及一种针对3D对象编辑实现可撤销操作的方法、系统及设备。
背景技术
目前在3D对象编辑过程中,使用命令模式实现可撤销操作的功能,命令模式是GOF(Gang of Four,四人组)定义的设计模式的一种,具体是通过把实现其他对象行为的命令类抽象成统一的实现接口的命令对象,达到存储行为,并通过压栈出栈的操作方式实现可撤销的功能。随着产品功能的增加,新类会随着功能的增加而产生和不断增加,那么随之而来就会增加与之相关的命令类,这样就会产生代码开发成本以及维护成本增加问题。目前这种类膨胀问题还没有技术解决。
发明内容
为解决现有技术中的不足,本发明提出了一种针对3D对象编辑实现可撤销操作的方法、系统及设备。
第一方面,本发明提出了一种针对3D对象编辑实现可撤销操作的方法,包括如下步骤:
步骤S1:定义基类,定义两个或两个以上成员变量,所述基类包括状态基类和对象基类,所述成员变量的类型继承于状态基类;
步骤S2:定义子类,所述子类继承于对象基类,定义专属于所述子类的成员变量状态子类,所述成员变量状态子类用来描述所述子类的特殊属性,并继承于其中一成员变量的状态基类,所属成员变量包含子类信息,所述子类信息为子类独有;
步骤S3:定义命令接口、实现所述命令接口的命令类以及命令管理器;
步骤S4:通过所述命令接口,由所述命令管理器对命令对象进行压栈出栈操作,所述命令对象是所述命令类的实例化。
所述定义基类,还包括定义方法,所述方法用于输入继承于状态基类类型的状态对象,根据所述状态对象的状态类型,更新相同状态类型的成员变量。
定义实现所述命令接口的命令类包括:定义创建对象命令类、定义删除对象命令类和定义更改属性命令类。
所述命令接口,包括实现执行操作方法和实现撤销操作方法。
所述定义创建对象命令类,包括:
初始化构造函数的时候记录3D对象信息,所述3D对象信息为所述成员变量的属性值;
通过创建3D对象实现执行操作方法,所述创建3D对象是根据所述3D对象信息创建的;
通过删除3D对象实现撤销操作方法。
所述定义删除对象命令类,包括:
初始化构造函数的时候记录3D对象信息;
通过删除3D对象实现执行操作方法;
通过重新创建3D对象实现撤销操作方法,所述重新创建3D对象是根据所述3D对象信息创建的。
所述定义更改属性命令类,包括:
初始化构造函数传入的预修改成员变量值,所述预修改成员变量值对应的成员变量类型继承于状态基类,保存所述预修改成员变量值,同时记录所述成员变量的原成员变量值;
通过采用基类中定义方法传入所述预修改成员变量值实现执行操作方法;
通过传入对应修改成员变量的原成员变量值实现撤销操作方法。
第二方面,本发明提出了一种针对3D对象编辑实现可撤销操作的系统,包括:
基类定义模块,用于定义基类,定义两个或两个以上成员变量,所述基类包括状态基类和对象基类,所述成员变量的类型继承于状态基类;
子类定义模块,用于定义子类,所述子类继承于对象基类,定义专属于所述子类的成员变量状态子类,所述成员变量状态子类用来描述所述子类的特殊属性,并继承于其中一成员变量的状态基类,所述成员变量包含子类信息,所述子类信息为子类独有;
命令接口定义模块,用于定义命令接口、实现所述命令接口的命令类以及命令管理器;
命令实现模块,用于通过所述命令接口,由所述命令管理器对命令对象进行压栈出栈操作,所述命令对象是所述命令类的实例化。
第三方面,本发明提出了一种针对3D对象编辑实现可撤销操作的设备,包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发设备执行所述的一种针对3D对象编辑实现可撤销操作的方法。
第四方面,本发明提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序指令,当其在计算机上运行时,使得计算机执行所述的一种针对3D对象编辑实现可撤销操作的方法。
本发明采用一种使用固定数量命令类的命令模式实现3D对象编辑的可撤销操作功能,解决了目前在3D场景内进行对象编辑过程中,以增加新类方式实现可撤销操作功能,导致代码开发成本和维护成本增加的问题。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明实施例的一种针对3D对象编辑实现可撤销操作的方法流程图;
图2为本发明实施例的一种针对3D对象编辑实现可撤销操作的系统原理框图;
图3为本发明实施例的成员变量状态子类、成员变量与状态基类之间类型继承关系示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实施例只用于解释本发明,并非用于限定本发明的范围。
针对目前在实现3D对象编辑的可撤销操作的功能中,现有技术面临类膨胀导致的代码开发成本和维护成本增加的问题,本发明提出使用固定数量命令类的命令模式实现可撤销操作功能,具体是在现有命令模式的基础上加以改进。
目前基于命令模式,可以实现3D对象编辑中的undo(撤销)和redo(重做)操作,所述命令模式使用的所有命令对象,所述命令对象是所述命令类的实例化结果,都是实现于命令接口,每个命令对象里执行的动作都是对3D对象进行编辑,命令接口只有方法,传统方法中对命令对象中每类3D对象的不同操作,需要实现不同的命令类,结果就会造成随着命令类的增多,命令对象就会增多,代码开发和维护成本增大。而本发明的改进是采用3D对象继承于基类的命令模式,基类有数据和方法,基类所含方法在编辑器中可以实现根据输入3D对象对编辑器成员变量更新前后属性值的保存和记录,此特征保证了3D对象属性每次都是重新生成的,而不是在其基础上修改,这样就保证了数据的不变性,因此在3D对象编辑过程中进行创建、修改、删除的时候,可以直接使用3D对象的属性,不用担心其会被外部修改。
本发明把3D对象属性集中到四个成员变量,因为四个成员变量类型都继承于BaseState(基本状态)基类,以下简称状态基类,修改命令里只需要存储状态基类类型的数据,这样修改3D对象属性的命令就只需一个实现命令就可以了,剩下的就是增删的命令,一共只有三个命令。这样就不用担心随着产品功能扩展,产生和增加新3D(three-dimension,三维)类,命令类也会随之膨胀而产生的类膨胀问题。
初始化构造函数为创建命令对象时候调用的方法,在本发明具体实施例里代表定义子类时记录预修改成员变量值,以及原成员变量值。
第一方面,本发明提出了一种针对3D对象编辑实现可撤销操作的方法,如图1所示,包括如下步骤:
步骤S1:定义基类,定义两个或两个以上成员变量,所述基类包括状态基类和对象基类,所述成员变量的类型继承于状态基类;
步骤S2:定义子类,所述子类继承于对象基类,定义专属于所述子类的成员变量状态子类,所述成员变量状态子类用来描述所述子类的特殊属性,并继承于其中一成员变量的状态基类,所述成员变量包含子类信息,所述子类信息为子类独有;
步骤S3:定义命令接口、实现所述命令接口的命令类以及命令管理器;
步骤S4:通过所述命令接口,由所述命令管理器对命令对象进行压栈出栈操作,所述命令对象是所述命令类的实例化。
因为所述命令类的实例化是本领域技术人员常规技术,故本发明不再赘述。
现通过具体实施例针对每一步骤详细阐述如下:
步骤S1为定义基类,定义两个或两个以上成员变量,所述基类包括对象基类与状态基类,所述成员变量类型继承于状态基类;
在本具体实施例中,定义基类的所有成员变量,其中一个成员变量,用于表示3D对象专有数据,其他成员变量表示公共数据;
定义基类A,在基类A定义四个成员变量:Transformation(变换)、Relationship(关系)、Information(信息)、TypeState(类型状态),具体定义成员变量内容如下:
(1)Transformation,是位置、缩放、旋转的数据集合,内部有三个子成员变量,其为Position(位置)、Scale(缩放)、Quaternion(旋转);
(2)Relationship,是父子关系的数据集合,内部两个子成员变量为Parent(父亲)代表父亲、Children(孩子)代表孩子;
(3)Information,是额外信息的集合,例如Name(名称)、UserID(用户标识)、属性等;
(4)TypeState,是子类自己独有信息的集合,根据子类代表事物的不同,则信息也不同,对于基类A来说,本实施例用一个空的继承于TypeState的类来赋值,对于子类B来说,需要定义一个成员变量状态子类,所述成员变量状态子类,继承于类型为TypeState的成员变量类型,并把所述成员变量状态子类实例化的状态对象赋值给该类型为TypeState的成员变量;
(5)这四个成员变量的类型都继承于BaseState(基本状态)基类,以下简称状态基类;
(6)所述定义基类A,还包括定义方法,所述方法用于输入继承于状态基类类型的状态对象,所述状态对象是成员变量状态子类的实例化,根据所述状态对象的状态类型,更新相同状态类型的成员变量。
具体到本实施例:定义方法With,该方法输入状态基类类型的状态对象,根据输入状态对象实际的类型,来更新对应相同类型的成员变量,比如,如果传入With的是Transformation类型的状态对象,则更新Transformation成员变量。
对于编辑3D对象来说,本实施例定义的4个成员变量已经足够日常使用。其中除了类型状态成员变量,其余三个都是公用的属性分类,在日常操作中不会因为新3D类的增加而发生变动。所述成员变量数量最少可以分两大部分,公用属性的成员变量和依据3D类发生变化的成员变量。如果标准允许,也可以定义比三个成员变量数目多,这取决于按什么标准划分。故本发明并不对成员变量的个数上限进行具体限定,成员变量的数量最小为两个,当定义成员变量完成后,其成员变量数量是固定不变的。
步骤S2为定义子类,所述子类继承于对象基类,定义专属于所述子类的成员变量状态子类,所述成员变量状态子类用来描述所述子类的特殊属性,并继承于其中一成员变量的状态基类,所述成员变量包含子类信息,所述子类信息为子类独有;
具体到本实施例所述定义子类,包括:子类继承于对象基类,定义所述子类专属的成员变量的状态类,所述成员变量的状态类用来描述所述子类的特殊属性,继承于成员变量的状态基类;本实施例成员变量的状态类继承于TypeState类,并在其中定义属于所述子类的数据,在实例化所述子类的时候,也需要实例化所述子类的成员变量的状态类,并赋值给类型为成员变量的状态类的成员变量,本实施例赋值给所述子类的成员变量T。
本实施例中四个成员变量分别继承于状态基类,成员变量状态子类与成员变量、状态基类之间类型继承关系,如图3所示,下面举例说明成员变量状态子类是如何在实际中使用的,现假定表示TypeState的成员变量为T’,TypeState本身是不能实例化,需要成员变量状态子类根据自己的特殊属性或者状态,去继承TypeState,比如PlacementTypeState(摆放物体类型状态),包含了关于placement(摆放物体)的特殊属性的数据,然后实例化PlacementTypeState,赋值给T’,因为PlacementTypeState继承于TypeState,所以也属于TypeState类型,Placement子类就是这样赋值。其他的成员变量状态子类使用依次类推。
步骤S3为定义命令接口、实现所述命令接口的命令类以及命令管理器,所述命令接口用来实现3D对象编辑功能,所述命令管理器用来记录命令对象,显而易见的,所述3D对象为已定义基类和子类的3D对象;
所述命令接口,包括实现执行操作方法和实现撤销操作方法。
本实施例中具体为根据命令模式,定义ICommand(命令)接口,里面有两个方法Execute(执行指令)、UnExecute(撤销指令),分别代表执行、撤销的操作。
定义实现所述命令接口的命令类包括:定义创建对象命令类、定义删除对象命令类和定义更改属性命令类,分别介绍如下;
所述定义创建对象命令类,包括:
初始化构造函数的时候记录3D对象信息,所述3D对象信息为所述成员变量的属性值;
通过创建3D对象实现执行操作方法,所述创建3D对象是根据所述3D对象信息创建的;
通过删除3D对象实现撤销操作方法。
本发明实施例中定义CreateObjectCommand类,实现ICommand接口,这里的Object(对象)指继承于基类A的3D对象,定义方式如下:
(1)初始化构造函数的时候记录下创建3D对象信息,这时候并不创建3D对象,这里信息是指基类A里定义的四个成员变量(即Transformation、Relationship、Information、TypeState)属性值;
(2)实现Execute方法,在此方法里为根据(1)记录的3D对象信息,创建3D对象;
(3)实现UnExecute方法,在此方法里为删除3D对象。
所述定义删除对象命令类,包括:
初始化构造函数的时候记录3D对象信息;
通过删除3D对象实现执行操作方法;
通过重新创建3D对象实现撤销操作方法,所述重新3D创建对象是根据所述3D对象信息创建的。
本发明实施例中定义DeleteObjectCommand类,实现ICommand接口,这里的Object指继承于基类A的3D对象,具体定义方式如下:
(1)初始化构造函数的时候,保存要删除的3D对象的信息,即四个成员变量(Transformation、Relationship、Information、TypeState)属性值;
(2)实现Execute方法,在此方法里为删除3D对象;
(3)实现UnExecute方法,具体为在此方法里,根据(1)记录的3D对象信息,重新创建3D对象。
所述定义更改属性命令类,包括:
初始化构造函数传入的预修改成员变量值,所述预修改成员变量值对应的成员变量类型继承于状态基类,保存所述预修改成员变量值,同时记录所述成员变量的原成员变量值;
通过采用基类中定义方法传入所述预修改成员变量值实现执行操作方法;
通过传入对应修改成员变量的原成员变量值实现撤销操作方法。
本发明实施例中定义ChangePropertyCommand类,实现ICommand接口,具体定义步骤如下:
(1)初始化构造函数传入的预修改成员变量值,这个成员变量是继承于状态基类的对象,保存该成员变量值,同时记录下对应要修改属性的原成员变量值,比如传入的成员变量值是Transformation类型的值,则要保存3D对象身上原有的Transformation类型的值,其他以此类推;
(2)实现Execute方法,在此方法里,调用3D对象的With接口(即基类中定义方法),传入新的修改值,这个With接口是指在第1步实现的方法;
(3)实现Unexcute方法,在此方法里,调用3D对象的With接口,传入(1)保存的原成员变量值。
步骤S4为通过所述命令接口,由所述命令管理器对所述命令对象进行压栈出栈操作,所述命令对象是所述命令类的实例化。
本具体实施例中通过命令模式中实现命令类的管理器,用压栈出栈命令实现,此为本领域技术人员常规技术,此处不赘述。
第二方面,本发明提出了一种针对3D对象编辑实现可撤销操作的系统,如图2所示,包括:基类定义模块、子类定义模块、命令接口定义模块、命令实现模块,各模块依次顺序连接,其中各模块功能如下:
基类定义模块,用于定义基类,定义两个或两个以上成员变量,所述基类包括状态基类和对象基类,所述成员变量的类型继承于状态基类;
子类定义模块,用于定义子类,所述子类继承于对象基类,定义专属于所述子类的成员变量状态子类,所述成员变量状态子类用来描述所述子类的特殊属性,并继承于其中一成员变量的状态基类,所述成员变量包含子类信息,所述子类信息为子类独有;
命令接口定义模块,用于定义命令接口、实现所述命令接口的命令类以及命令管理器,所述命令管理器用来记录命令对象;
命令实现模块,用于通过所述命令接口,由所述命令管理器对命令对象进行压栈出栈操作,所述命令对象是所述命令类的实例化。
第三方面,本发明提出了一种针对3D对象编辑实现可撤销操作的设备,包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发设备执行所述的一种针对3D对象编辑实现可撤销操作的方法。
第四方面,本发明提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序指令,当其在计算机上运行时,使得计算机执行所述的一种针对3D对象编辑实现可撤销操作的方法。
应理解,在不违背本发明构思的前提下,本领域技术人员可以将上述实施方式进行任意组合,均在本发明的保护范围内。
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种针对3D对象编辑实现可撤销操作的方法,其特征在于,包括如下步骤:
步骤S1:定义基类,定义两个或两个以上成员变量,所述基类包括状态基类和对象基类,所述成员变量的类型继承于状态基类;
步骤S2:定义子类,所述子类继承于对象基类,定义专属于所述子类的成员变量状态子类,所述成员变量状态子类用来描述所述子类的特殊属性,并继承于其中一成员变量的状态基类,所述成员变量包含子类信息,所述子类信息为子类独有;
步骤S3:定义命令接口、实现所述命令接口的命令类以及命令管理器;
步骤S4:通过所述命令接口,由所述命令管理器对命令对象进行压栈出栈操作,所述命令对象是所述命令类的实例化。
2.根据权利要求1所述的针对3D对象编辑实现可撤销操作的方法,其特征在于,所述定义基类,还包括定义方法,所述方法用于输入继承于状态基类类型的状态对象,根据所述状态对象的状态类型,更新相同状态类型的成员变量。
3.根据权利要求2所述的针对3D对象编辑实现可撤销操作的方法,其特征在于,定义实现所述命令接口的命令类包括:定义创建对象命令类、定义删除对象命令类和定义更改属性命令类。
4.根据权利要求1所述的针对3D对象编辑实现可撤销操作的方法,其特征在于,所述命令接口,包括实现执行操作方法和实现撤销操作方法。
5.根据权利要求3所述的针对3D对象编辑实现可撤销操作的方法,其特征在于,所述定义创建对象命令类,包括:
初始化构造函数的时候记录3D对象信息,所述3D对象信息为所述成员变量的属性值;
通过创建3D对象实现执行操作方法,所述创建3D对象是根据所述3D对象信息创建的;
通过删除3D对象实现撤销操作方法。
6.根据权利要求3所述的针对3D对象编辑实现可撤销操作的方法,其特征在于,所述定义删除对象命令类,包括:
初始化构造函数的时候记录3D对象信息;
通过删除3D对象实现执行操作方法;
通过重新创建3D对象实现撤销操作方法,所述重新创建3D对象是根据所述3D对象信息创建的。
7.根据权利要求3所述的针对3D对象编辑实现可撤销操作的方法,其特征在于,所述定义更改属性命令类,包括:
初始化构造函数传入的预修改成员变量值,所述预修改成员变量值对应的成员变量类型继承于状态基类,保存所述预修改成员变量值,同时记录所述成员变量的原成员变量值;
通过采用基类中定义方法传入所述预修改成员变量值实现执行操作方法;
通过传入对应修改成员变量的原成员变量值实现撤销操作方法。
8.一种针对3D对象编辑实现可撤销操作的系统,其特征在于,包括:
基类定义模块,用于定义基类,定义两个或两个以上成员变量,所述基类包括状态基类和对象基类,所述成员变量的类型继承于状态基类;
子类定义模块,用于定义子类,所述子类继承于对象基类,定义专属于所述子类的成员变量状态子类,所述成员变量状态子类用来描述所述子类的特殊属性,并继承于其中一成员变量的状态基类,所述成员变量包含子类信息,所述子类信息为子类独有;
命令接口定义模块,用于定义命令接口、实现所述命令接口的命令类以及命令管理器;
命令实现模块,用于通过所述命令接口,由所述命令管理器对命令对象进行压栈出栈操作,所述命令对象是所述命令类的实例化。
9.一种针对3D对象编辑实现可撤销操作的设备,其特征在于,包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发设备执行权利要求1-7的任一项所述的一种针对3D对象编辑实现可撤销操作的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序指令,当其在计算机上运行时,使得计算机执行权利要求1-7的任一项所述的一种针对3D对象编辑实现可撤销操作的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211103915.6A CN116149633A (zh) | 2022-09-09 | 2022-09-09 | 针对3d对象编辑实现可撤销操作的方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211103915.6A CN116149633A (zh) | 2022-09-09 | 2022-09-09 | 针对3d对象编辑实现可撤销操作的方法、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116149633A true CN116149633A (zh) | 2023-05-23 |
Family
ID=86349616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211103915.6A Pending CN116149633A (zh) | 2022-09-09 | 2022-09-09 | 针对3d对象编辑实现可撤销操作的方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116149633A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116954951A (zh) * | 2023-09-18 | 2023-10-27 | 成都数之联科技股份有限公司 | 一种基于unity的撤销与重做的方法及系统 |
-
2022
- 2022-09-09 CN CN202211103915.6A patent/CN116149633A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116954951A (zh) * | 2023-09-18 | 2023-10-27 | 成都数之联科技股份有限公司 | 一种基于unity的撤销与重做的方法及系统 |
CN116954951B (zh) * | 2023-09-18 | 2023-11-21 | 成都数之联科技股份有限公司 | 一种基于unity的撤销与重做的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8869100B1 (en) | Data objects for model-based design | |
CN114091251A (zh) | 面向多智能体群体行为的仿真系统及方法 | |
CN110275876A (zh) | 用于数据库横向扩展的方法及装置 | |
CN116149633A (zh) | 针对3d对象编辑实现可撤销操作的方法、系统及设备 | |
CN113722936A (zh) | 一种面向智能制造的领域建模方法及系统 | |
CN109408322B (zh) | 一种云平台的自动业务流程实现方法 | |
CN112418447B (zh) | 提供机器学习服务的系统、方法、介质和设备 | |
Dahchour et al. | A role model and its metaclass implementation | |
CN112966328A (zh) | 基于BIM的应用Dynamo自动化创建共享参数方法 | |
CN109669671B (zh) | 一种基于微服务的多层次自适应方法 | |
CN116166245A (zh) | 一种领域建模方法、装置、计算机设备和存储介质 | |
CN108399068A (zh) | 函数程序持久化的方法、电子设备及存储介质 | |
Waszkowski | Low-code Development Platform for Business Process Automation: Aurea BPM | |
CN111722597B (zh) | 准备用于工业控制系统的工程数据的方法和系统 | |
CN112784417A (zh) | 一种基于SysML的航电分布式联合仿真方法及系统 | |
Greenwood et al. | A support framework for dynamic organizations | |
Protic | Configuration management for models: Generic methods for model comparison and model co-evolution | |
Sarjoughian et al. | System modeling with mixed object and data models. | |
US6910103B2 (en) | Caching data | |
CN115501609A (zh) | 实例的运行方法、装置、设备及介质 | |
CN115495066A (zh) | 实例的编辑方法、装置、设备及介质 | |
CN116661768B (zh) | 基于知识图谱的页面代码生成方法、系统、装置和介质 | |
CN117215543B (zh) | 适用于不同业务场景类型的组件开发方法及其对应的系统 | |
CN117742840A (zh) | 一种基于有限状态机的数字地球标绘事件管理方法 | |
Pavkovic et al. | Object-oriented modelling of the design process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 105, first floor, building 82, No. 10, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Applicant after: Beijing Youhao Technology Co.,Ltd. Address before: Room 105, first floor, building 82, No. 10, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Applicant before: BEIJING YOUNUO TECHNOLOGY Co.,Ltd. |