如何重写 AcDbEntity::transformBy 以在移动或缩放时获取自定义实体转换

How to override AcDbEntity::transformBy to get custom entity transformation while moving or scaling?

本文关键字:缩放 移动 获取 转换 实体 自定义 何重写 重写 transformBy AcDbEntity      更新时间:2023-10-16

我正在实现一个派生自 AcDbEntity 的自定义实体。我在重载的 subWorldDraw 函数中绘制了一些线条和文本标签,我希望我的实体能够缩放、移动、旋转,因此据我所知,我应该覆盖 AcDbEntity::transformBy,如此处所写。但是当我尝试添加此方法时,编译器会出现一个错误,该错误告诉此方法是密封的。是否有其他方法可以使我的实体负责用户完成的转换?

我在这里找到了答案 - 在新的ObjectArx版本中,不是AcDbEntity::transformBy,而是可以覆盖AcDbEntity::subTransformBy方法。它还涉及其他虚拟方法,如AcDbEntity::worldDraw -> AcDbEntity::subWorldDraw。