CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2023 开发者帮助

覆盖 subWorldDraw() 和 subViewportDraw()

2024-5-18 19:00| 发布者: admin| 查看: 90| 评论: 0|原作者: admin|来自: AutoCAD

覆盖 subWorldDraw() 和 subViewportDraw()

AutoCAD 调用 and 函数来显示图元,而 and 函数又分别调用 和 来表示专用绘图功能。必须为派生自 的任何类实现该函数。该功能是可选的。 ® worldDraw()viewportDraw()subWorldDraw() subViewportDraw()subWorldDraw()AcDbEntitysubViewportDraw()

virtual Adesk::Boolean
AcDbEntity::subWorldDraw(
    AcGiWorldDraw * pWd);
 
virtual void
AcDbEntity::subViewportDraw(
    AcGiViewportDraw * pVd);

每当AutoCAD需要重新生成图形以显示图元时,将按以下方式调用和函数:worldDraw()viewportDraw()

if (!entity->worldDraw(pWd))
    for (each relevant viewport)
        entity->viewportDraw(pVd);

该函数调用用于构建实体图形表示的部分,该部分可以独立于任何特定的模型空间视图或纸张空间视口上下文进行指定。然后,该函数调用以生成实体图形的视图相关部分。如果实体的任何图形都依赖于视图,则必须返回函数并实现该函数。相反,如果实体没有与视图相关的图形,则函数必须返回自定义实体不实现该函数。worldDraw()subWorldDraw()viewportDraw()subViewportDraw()subWorldDraw()kFalsesubViewportDraw()subWorldDraw()kTrue, andsubViewportDraw()

该函数采用指向对象的指针。 是 AcGi 几何体和特征对象的容器类。具体而言,包含另外两个对象:AcDbEntity::subWorldDraw()AcGiWorldDrawAcGiWorldDrawAcGiWorldDraw

  • AcGiWorldGeometry
  • AcGiSubEntityTraits

可以使用函数从函数内部访问对象,也可以使用函数访问对象。AcGiWorldGeometryworldDraw()AcGiWorldDraw::geometry()AcGiSubEntityTraitsAcGiWorldDraw::subEntityTraits()

该对象使用其一组图形图元将矢量写入 AutoCAD 的刷新内存。基元是用于绘制图形实体的最低级指令。世界几何对象具有以下功能,用于在世界坐标中绘制图元:AcGiWorldGeometry

  • 圆弧
  • 折线
  • 多边形
  • 网孔
  • 发短信
  • Xline系列
  • 射线

该对象使用以下特征函数集设置图形属性值:AcGiSubEntityTraits

  • 颜色
  • 线型
  • 多边形填充类型
  • 选择标记

该函数采用指向对象的指针,并生成实体的特定于视图的表示形式。视口绘制对象也是其他对象的容器对象,其中包括:AcDbEntity::subViewportDraw()AcGiViewportDraw

  • AcGiViewportGeometry
  • AcGiSubEntityTraits
  • AcGiViewport

视口几何对象提供与世界几何对象相同的基元列表,并向其添加以下基元,这些基元使用眼睛空间坐标和显示空间坐标来绘制折线和多边形:

  • polylineEye()
  • polygonEye()
  • polylineDc()
  • polygonDc()

视口子实体特征对象与世界绘制对象 () 使用的对象相同。视口对象提供用于查询视口的变换矩阵和查看参数的函数。AcGiSubEntityTraits

危险:AcGi 对象(如 或不应存储为全局变量或静态变量)。不要在调用 and 函数时保存 AcGi 对象的副本。一旦这些函数返回,AcGi 对象将不再有效。AcGiWorldDrawAcGiViewportDrawworldDraw()viewportDraw()
危险:当自定义实体实现 or 时,如果本机实体(例如 )是在方法范围内创建的,则本机实体需要存在于方法的范围之外。变量应该在全局或类级别中声明,或者在某个级别中声明,即使在退出方法后,对象仍处于活动状态。subWorldDraw()subViewportDraw()AcDbCircle

有关 AcGi 库的详细信息,请参阅图形接口库


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2024-12-15 11:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部