方法期望 auint
作为返回值的事实暗示 Autodesk 未能为对象通道 PartID 实现强枚举。
您可以根据 c++ SDK 中定义的值定义自己的枚举来处理它。
[Flags]
enum ChannelPartID : uint
{
// The topology channel - the face or polygon structures.
TOPO_CHANNEL = 1 << 0,
// The vertices of the object.
GEOM_CHANNEL = 1 << 1,
// The texture vertices and procedural mappings.
TEXMAP_CHANNEL = 1 << 2,
// This is no longer used.
MTL_CHANNEL = 1 << 3,
// The sub-object selection channel.
SELECT_CHANNEL = 1 << 4,
// The current level of selection.
SUBSEL_TYPE_CHANNEL = 1 << 5,
// The miscellaneous bits controlling the item's display.
DISP_ATTRIB_CHANNEL = 1 << 6,
// The color per vertex channel.
VERTCOLOR_CHANNEL = 1 << 7
// The used internally by 3ds Max for stripping.
GFX_DATA_CHANNEL = 1 << 8,
// Displacement approximation.
DISP_APPROX_CHANNEL = 1 << 9,
// The channel used by extension channel objects.
EXTENSION_CHANNEL = 1 << 13,
// The ObjectState Transform that flows down the pipeline.
TM_CHANNEL = 1 << 10,
// For internal use.
EDGEVISIBILITY_CHANNEL = 1 << 11,
// For internal use.
DONT_RECREATE_TRISTRIP_CHANNEL = 1 << 12,
// This is no longer used.
GLOBMTL_CHANNEL = 1 << 31,
OBJ_CHANNELS = TOPO_CHANNEL | GEOM_CHANNEL | SELECT_CHANNEL | TEXMAP_CHANNEL | MTL_CHANNEL | SUBSEL_TYPE_CHANNEL | DISP_ATTRIB_CHANNEL | VERTCOLOR_CHANNEL | GFX_DATA_CHANNEL | DISP_APPROX_CHANNEL | EXTENSION_CHANNEL,
ALL_CHANNELS = OBJ_CHANNELS | TM_CHANNEL | GLOBMTL_CHANNEL
}
然后在你的方法中像这样使用它
public override uint ChannelsChanged
{
get { return (uint)(ChannelPartID.PART_GEOM | ChannelPartID.TEXMAP_CHANNEL | ChannelPartID.VERTCOLOR_CHANNEL); }
}