zoukankan      html  css  js  c++  java
  • DeepCloneObjects 和 DeepClone

    ARX AcDbDatabase 中的方法 deepCloneObjects() 和 wblock() 区别以及和 AcDbObject 方法 clone() 和 deepClone() 的关系

    AcDbDataBase的deepCloneOjbects接口的功能
    Acad::ErrorStatus
    deepCloneObjects(AcDbObjectIdArray& objectIds,AcDbObjectId& owner,AcDbIdMapping& idMap,bool deferXlation = false);
    objectIds
    输入要深度克隆的对象的数组
    owner
    输入要作为克隆的拥有者的对象的对象ID
    idMap
    返回用于转化对象ID关系的AcDbIdPair对象的数组
    deferXlation
    输入布尔值,表示是否要执行ID转化
    克隆objectId数组中的所有对象并将它们增加至由owner指定的容器对象中。idMap储存AcDbIdPair对象,这个AcDbIdPair对象包含原始的和克隆的对象对的objectId实体。这个数组可用于包含在深度克隆操作中的对象的前处理。
    当所有要被克隆的对象没有相同的宿主,则必须建立独立的AcDbObjectIdArray实体,每一个AcDbObjectIdArray实体包含具有所有相同的宿主的对象。再将deferXlation设置为Adesk::kTrue,对每一个数组调用deepCloneObject方法,除了最后一个调用。

    AcDbObject的deepClone接口
    AcDbIdMapping IdMap;
    Acad::ErrorStatus es = spEntity->deepClone(spBlkTblRcd, pClonedObject, IdMap);
    spEntity:被复制对象。
    spBlkTblRcd: 新创建对象的Owner,如能要放到图里,通常就是当前的Model Space指针。
    pClonedObject:新创建的对象。
    IdMap:可以用来创建一个对应关系,原对象的ID和新对象的ID的对应关系。

    AcDbDatabase::wblock 函数
    Acad::ErrorStatus wblock(AcDbDatabase*& pOutputDb,const AcDbObjectIdArray& outObjIds,const AcGePoint3d& basePoint);
    pOutputDb
    返回用于写出的数据库的指针
    outObjIds
    输入被写块的所有对象的对象ID实体的数组
    basePoint
    输入pOutputDb中使用的基点(在pOutputDb的WCS坐标中)
    创建一个新的AcDbDatabase对象,设置pOutputDb指向它,再使用wblockClone机制将outObjId实体指定的对象的数组写出至pOutputDb指定的数据库的模型空间块表记录中,其中使用basePoint作为pOutputDb的基点值。
    就是把指定的一些实体,拷贝指定数据库是的新建块中。

    AcDbObject中的clone就是所谓的浅克隆,并不会将实体与其它实体的关系等相关信息clone进去。

  • 相关阅读:
    Azure PowerShell (2) 修改Azure订阅名称
    Windows Azure Platform Introduction (11) 了解Org ID、Windows Azure订阅、账户
    Azure PowerShell (3) 上传证书
    Azure PowerShell (1) PowerShell入门
    Windows Azure Service Bus (2) 队列(Queue)入门
    Windows Azure Service Bus (1) 基础
    Windows Azure Cloud Service (10) Role的生命周期
    Windows Azure Cloud Service (36) 在Azure Cloud Service配置SSL证书
    Android studio 使用心得(一)—android studio快速掌握快捷键
    android 签名、混淆打包
  • 原文地址:https://www.cnblogs.com/xzh1993/p/5742078.html
Copyright © 2011-2022 走看看