- UID
- 82688
- 积分
- 380
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-9-27
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2003-10-22 20:00:49
|
显示全部楼层
[ARX程序]:ARX讲座11—AcCmColor类
AcCmColor类
此类用于在AutoCAD中表示颜色,如RGB、AutoCAD颜色索引、或AcCmComplexColor中定义的一个更抽象的颜色周围的包装器。
大多数颜色客户应使用已有的类。其他的客户(如AcDbEntity和AcGiSubEntityTraits)将直接使用AcCmEntityColor储存内存。
在Release13中,只有一个颜色的索引值被AutoCAD和ARX库创建和使用。
注意:Autodesk只测试了此类的颜色索引执行。AcCmComplexColor包装器码已被完全执行,但从未被测试。使用AcCmComplexColor对象有一定风险。
继承自
包含文件
dbmain.h
参见
AcDbEntity
成员
AcCmColor AcRxObject协议函数
AcCmColor::audit函数
Acad::ErrorStatus
audit(
AcDbAuditInfo* pAuditInfo);
pAuditInfo
AcCmColor::dwgIn函数
Acad::ErrorStatus
dwgIn(
AcDbDwgFiler* pInputFiler);
pInputFiler
源DWG文件管理器
以DWG格式读取颜色对象。
AcCmColor::dwgOut函数
Acad::ErrorStatus
dwgOut(
AcDbDwgFiler * pOutputFiler) const;
pOutputFiler
目标DWG文件管理器
以DWG格式写颜色对象。
AcCmColor::dxfIn函数
Acad::ErrorStatus
dxfIn(
AcDbDxfFiler* pFiler);
pFiler
源DXF过滤器
以DXF格式读取一个颜色对象。
AcCmColor::dxfOut函数
Acad::ErrorStatus
dxfOut(
AcDbDxfFiler* pFiler) const;
pFiler
目标DXF文件管理器
以DWG格式写颜色对象
AcCmColor建构器和析构器
AcCmColor::~AcCmColor函数
~AcCmColor();
析构器。
AcCmColor::AcCmColor函数
AcCmColor(
const AcCmColor& objToCopy);
objToCopy
输入要复制的AcCmColor
复制建构器。复制objToCopy中的值至要建构的AcCmColor对象。
--------------------------------------------------------------------------------
AcCmColor();
默认建构器。初始化颜色索引至0。
AcCmColor编辑函数
AcCmColor::setBlue函数
Acad::ErrorStatus
setBlue(
Adesk::UInt8 blue);
Blue
输入0至255的颜色值
此函数设置蓝颜色数值。要使用这个函数,颜色方法必须为kByColor。提供的颜色值必须从0至255。
如果成功,则返回Acad::eOk。如果颜色方法不是kByColor,则返回Acad::eInvalidKey。
AcCmColor::setColor函数
Acad::ErrorStatus
setColor(
Adesk::UInt32 color);
color
输入颜色方法和颜色数据(RGB, ACI, 层索引,笔索引)。低位字节是blue;第二个字节为green;第三个字节为red;高位字节为colorMethod。
此方法设置要输入的颜色方法和颜色值。
如果成功则返回Acad::eOk。如果输入是无效的则返回Acad::eInvalidInput。
AcCmColor::setColorIndex函数
Acad::ErrorStatus
setColorIndex(
Adesk::UInt16 colorIndex);
colorIndex
输入要使用的AutoCAD颜色索引值(0-256)
此函数设置颜色方法为kByACI并设置颜色值输入colorIndex。colorIndex 必须在0至256内。
0和256为特殊值。
0表示实体使用正在显示的BlockReference的颜色。如果实体不通过BlockReference显示(例如,它由模型空间BlockTableRecord直接拥有)且它的颜色为0,则它将用颜色值7显示。
256表示实体使用它参考的LayerTableRecord中定义的颜色。
如果成功返回Acad::eOk,如果输入是无效的返回Acad::eInvalidInput。
AcCmColor::setColorMethod函数
Acad::ErrorStatus
setColorMethod(
AcCmEntityColor::ColorMethod eColorMethod);
eColorMethod
输入颜色方法
此函数设置颜色方法,可以为kByLayer, kByBlock, kByColor, kByACI, kByPen, kForeground, kLayerOff, kLayerFrozen, 或kNone。
颜色方法kByPen, kLayerOff, kLayerFrozen, 和kNone仅供内部使用。
注意:程序员应尽量避免使用这个方法,否则要承担它们自身的风险。
如果成功返回Acad::eOk,如果输入是无效的返回Acad::eInvalidInput。
AcCmColor::setComplexColor函数
void
setComplexColor(
AcCmComplexColor* pComplex);
pComplex
输入指向一个已有的AcCmComplexColor对象的指针
此函数设置AcCmcolor对象为联合的(complex),这通过使它参考由pComplex指向的AcCmComplexColor实现。
如果AcCmColor对象当前是联合的,则在它改变至参考pComplex之前,当前参考的AcCmComplexColor对象将自身的参考计数器减少以表示这个AcCmColor对象将不再参考它。
执行调用的应用程序增加pComplex上的参考计数器,表示AcCmColor对象被设置为参考它。
注意:当前的AutoCAD和ARX的API库不使用联合的颜色。
AcCmColor::setGreen函数
Acad::ErrorStatus
setGreen(
Adesk::UInt8 green);
green
输入颜色值为0至255
这个函数设置颜色值为绿。要使用这个函数,颜色方法必须为kByColor。提供的颜色值必须在0至255之间。
如果成功返回Acad::eOk。如果颜色方法不是kByColor返回Acad::eInvalidKey。
AcCmColor::setPenIndex函数
Acad::ErrorStatus
setPenIndex(
Adesk::UInt16 penIndex);
penIndex
输入笔索引
这个函数设置颜色方法至kByPen,颜色值用于输入PenIndex。
注意:仅供内部使用。建议程序员避免使用这个方法,如果使用这个方法要承担一定的风险。
AcCmColor::setRed函数
Acad::ErrorStatus
setRed(
Adesk::UInt8 red);
Red
输入颜色值为0至255
这个函数设置颜色值为红。要使用这个函数,颜色方法必须为kByColor。提供的颜色值必须在0至255之间。
如果成功返回Acad::eOk。如果颜色方法不是kByColor返回Acad::eInvalidKey。
cCmColor::setRGB函数
Acad::ErrorStatus
setRGB(
Adesk::UInt8 red,
Adesk::UInt8 green,
Adesk::UInt8 blue);
red
输入颜色值为0至255
green
输入颜色值为0至255
blue
输入颜色值为0至255
这个函数设置颜色方法为kByColor并设置颜色值为提供的RGB值且必须在0至255之间。
如果成功返回Acad::eOk。如果颜色方法不是kByColor返回Acad::eInvalidKey。
AcCmColor操作符
AcCmColor::operator !=函数
bool
operator !=(
const AcCmColor& color) const;
Color
输入AcCmColor对象
如果颜色对象不相等则返回true。
AcCmColor::operator =函数
AcCmColor &
operator =(
const AcCmColor& inputColor);
inputColor
输入要复制其数据的AcCmColor
赋值操作符。从inputColor复制所有数据至AcCmColor对象。
如果当前AcCmColor对象是联合(complex),则它参考的AcCmComplexColor对象减少它的参考计数器。
如果inputColor是联合(complex),则被参考的AcCmComplexColor对象的参考计数器增加,表示这个AcCmColor对象正在参考它。
返回这个AcCmColor对象("*this")的一个参考。
AcCmColor::operator ==函数
bool
operator ==(
const AcCmColor& color) const;
color
输入AcCmColor对象
如果颜色对象相同则返回true。
AcCmColor查询函数
AcCmColor::blue函数
Adesk::UInt8
blue() const;
这个函数返回蓝色组分的颜色值,这个值在0至255之间。要使用这个函数,颜色方法必须为kByColor。
AcCmColor::color函数
Adesk::UInt32
color() const;
这个函数返回颜色值和颜色方法。低位字节是blue;第二个字节为green;第三个字节为red;高位字节为colorMethod。
AcCmColor::colorIndex函数
Adesk::UInt16
colorIndex() const;
返回AcCmColor对象中AutoCAD颜色值,或者如果有一个被参考的AcCmComplexColor对象,则返回它的颜色索引。
索引值在所0至256之间。0和256是特殊值。
0表示实体使用正在显示它的BlockReference的颜色。如果实体不通过BlockReference显示(例如,它直接由模型空间BlockTableRecord拥有)且它的颜色为0,则它将被显示即使颜色为7。
256表示实体使用它参考的LayerTableRecord中指定的颜色。
注意:当前的AutoCAD和ARX API库不使用联合的(complex)颜色。
AcCmColor::colorMethod函数
AcCmEntityColor::ColorMethod
colorMethod() const;
此函数返回颜色方法,可能为kByLayer, kByBlock, kByColor, kByACI, kByPen, kForeground, kLayerOff, kLayerFrozen, 和kNone。
颜色方法kByPen, kLayerOff, kLayerFrozen, 和kNone仅供内部使用。
注意:建议编程人员避免使用这个方法,否则要承担风险。
AcCmColor::complexColor函数
AcCmComplexColor *
complexColor() const;
如果AcCmColor对象是联合(complex),则返回一个指向被参考的AcCmComplexColor对象;否则返回NULL。
注意:当前的AutoCAD和ARX API库不使用联合的(complex)颜色。
AcCmColor::getDescription函数
Acad::ErrorStatus
getDescription(
char*& desc) const;
desc
输出描述字符串的拷贝
这个函数设置desc指向AcCmColor对象的描述字符串的一份拷贝,或者,如果AcCmColor对象是联合的(complex),则返回被参考的AcCmComplexColor对象的描述字符串的一份拷贝。
执行调用的应用程序负责释放返回的字符使用的内存。可以使用C++的delete[]操作符或free()函数来实现这个功能。
AcCmColor和AcCmComplexColor当前的描述字符串总是"AutoCAD Color Index"。
如果成功Acad::eOk。
AcCmColor::getExplanation函数
Acad::ErrorStatus
getExplanation(
char*& expl) const;
expl
输入解释字符串的拷贝
这个函数设置expl指向AcCmColor对象的解释字符串的拷贝,或者,如果AcCmColor对象是联合(complex),则返回被参考的AcCmComplexColor对象的解释字符串的一份拷贝。
执行调用的应用程序负责释放返回的字符使用的内存。可以使用C++的delete[]操作符或free()函数来实现这个功能。
AcCmColor和AcCmComplexColor当前的描述字符串总是"AutoCAD Color Index"。
如果成功Acad::eOk。
AcCmColor::green函数
Adesk::UInt8
green() const;
这个函数返回绿组分的颜色值,范围在0至255之间。要使用这个函数,颜色方法必须为kByColor。
AcCmColor::isByACI函数
bool
isByACI() const;
如果颜色方法是kByACI,则这个函数返回Adesk::kTrue;否则返回Adesk::kFalse。
AcCmColor::isByBlock函数
bool
isByBlock() const;
如果颜色方法是kByBlock,或者颜色方法是kByACI且ACI为kACIbyBlock,则此函数返回Adesk::kTrue。否则,返回Adesk::kFalse。
AcCmColor::isByColor函数
bool
isByColor() const;
如果颜色方法是kByColor,则此函数返回Adesk::kTrue;否则返回Adesk::kFalse。
AcCmColor::isByLayer函数
bool
isByLayer() const;
如果颜色方法是kByLayer,或者颜色方法是kByACI且ACI为kACIbyLayer,则此函数返回Adesk::kTrue。否则,返回Adesk::kFalse。
AcCmColor::isByPen函数
bool
isByPen() const;
如果颜色方法为kByPen,则此这个函数返回Adesk::kTrue。
颜色方法kByPen仅供内部使用。
注意:建议编程人员避免使用这个方法,否则要承担风险。
AcCmColor::isForeground函数
bool
isForeground() const;
如果颜色方法是kForeground,或者颜色方法是kByACI且ACI为kACIForeground,则此函数返回Adesk::kTrue。否则,返回Adesk::kFalse。
AcCmColor::penIndex函数
Adesk::UInt16
penIndex() const;
This函数returns the pen index.
注意:仅供内部使用。建议编程人员避免使用这个方法,否则要承担风险。
AcCmColor::red函数
Adesk::UInt8
red() const;
这个函数返回绿组分的颜色值,范围在0至255之间。要使用这个函数,颜色方法必须为kByColor。
成员数据
const Adesk::UInt16 MaxColorIndex |
|