AcGi

 

AcGiCommonDraw

AcGiCommonDraw类具有AcGiViewportDraw类和AcGiWorldDraw类的共同之处。因此根据AcGiCommonDraw类编码的图形程序在这两个类下运行。为了保持它们原有的语法,AcGiWorldDraw类和AcGiViewportDraw类衍生于AcGiCommonDraw类。

 

继承自

AcRxObject

 

包含文件

acgi.h

 

参见

AcGiWorldDraw, AcGiViewportDraw

 

成员

 

AcGiCommonDraw 查询函数

AcGiCommonDraw::context函数

virtual AcGiContext *

context() = 0;

返回设定环境。这个指针保证能为空(NULL)。

AcGiCommonDraw::deviation函数

virtual double

deviation(

const AcGiDeviationType unnamed1,

const AcGePoint3d& unnamed2) const = 0;

unnamed1

输入需要的偏差类型

unnamed2

返回一个点,这个点用于定位要镶嵌(tessellated)的曲线或曲面

此函数返回由devType指定的类型的推荐的最大镶嵌偏差(tessellation deviation )。

返回的一个点(在WCS中)规定了要镶嵌的曲线或曲面的位置。这个点用于透视图模式中,确定曲线或曲面相对于相机的位置。这样就可以考虑到灭点效应(在透视图模式中,显示的几何体尺寸随与视口的相机距离变化,这样点与相机的距离就可用于在偏差值的计算中考虑这个效应)。

偏差值给出了最大镶嵌偏差。例如,给定一条由线段表示的曲线,那么线段之一至其曲线匹配段的最大距离将小于某个值。同样的值也可应用于以一个三角形或四边形网格逼近的曲面中。

这个值决定了用线段的或平面单元表示一条曲线或一片曲面,即镶嵌的精确度。有时曲线或曲面与偏差值相比太小以至于可以仅用一段线段(或一片三角形或四边形)表示,或者根本不能表示。许多高解析度的镶嵌几何体可以快速地填充一个图形系统,因此这个值允许应用程序的用户一定程度地设定这个填充效果。这个值仅为建议值。

AcGiDeviationType的可能值为:

kAcGiMaxDevForCurve

for general curves

kAcGiMaxDevForFacet

for general surfaces

这两种偏离的类型都使用了VIEWRES命令的缩放比例值(即AutoCAD的内部镶嵌机制)。kAcGiMaxDevForFacet 则使用FACETRES系统变量值(即AutoCAD在画曲面时)。

AcGiCommonDraw::isDragging函数

virtual Adesk::Boolean

isDragging() const = 0;

当实体正被拖曳时返回Adesk::kTrue;否则返回Adesk::kFalse

图形复杂的实体在拖曳时使用一个较简单图形表示可以减少或没有系统功能消耗。

AcGiCommonDraw::numberOfIsolines

函数

virtual Adesk::UInt32

numberOfIsolines() const = 0;

返回建议的用于表示实体的索线(isoline)数。

索线(isolines)是用于标准地表示实体的简单的线或曲线。例如,当实体为球且numberOfIsolines返回3时,则可能球应该由3个圆表示,这3个圆互相垂直于另两个圆所在平面且圆均在球心上。如果此例中索线数增加,则球的表示就象用经线或纬线表示地球。这个值仅为建议值且仅适用于最终用户查看。

这个值由ISOLINES系统变量设置(即AutoCAD用图形表示实体)。

AcGiCommonDraw::rawGeometry

virtual AcGiGeometry *

rawGeometry() const = 0;

返回当前的几何体类指值指针AcGiGeometry。这个指针保证不为NULL。这个函数允许程序在worldDrawviewprotDraw环境下执行。

AcGiCommonDraw::regenAbort

virtual Adesk::Boolean

regenAbort() const = 0;

此函数提供了一种方法判断系统是否需要立即结束图形的重生。如果返回值为Adesk::kFalse,则不需要结束;如果返回值为Adesk::kTrue,则需要立即结束并返回。

AcGiCommonDraw::regenType

virtual AcGiRegenType

regenType() const = 0;

返回当前描述(elaboration)模式。当前的描述模式即AcGiRegenType类型有:

kAcGiStandardDisplay

通常所见的显示是图形正在产生(REGEN)。

kAcGiHideOrShadeCommand

HIDESHADE命令正被执行。

kAcGRenderCommand

RENDER命令正被执行。

kAcGiSaveWorldDrawForProxy

图形将成为实体的元文件(metafile),以防下次加载时实体是一个代理(proxy),用图形表示代理。

这些类型允许用户对4种不同的情况作特殊的处理。通常,不需要考虑当前哪一种模式生效。然而,如果RENDER正在运行,则只有具填充区域的几何体(填充的多边形等)才被接受;其他几何体(多段线,未填充多边形)将被忽略。

AcGiCommonDraw::subEntityTraits

virtual AcGiSubEntityTraits &

subEntityTraits() const = 0;

此函数返回一个AcGiSubEntity对象的参照。

subEntityTraits对象可设定和访问当前几何体的设置。这个对象的描述详见AcGiSubEntityTraits类。