====== XDatum ====== **//Inherited from//** [[class::domain::nitem|NItem]], **//Inherited by//** [[class::domain::xcoordsystem|XCoordSystem]],[[class::domain::xdatumplane|XDatumPlane]],[[class::domain::xdatumaxis|XDatumAxis]] **//Friend class//** DatumManager, **//Description//** XDatum是XT中所有基准对象的基类,它封装了基准对象的通用接口,它的类型标识前缀为"CDTM",分别由坐标系、基准面、基准轴从该基类继承。 XDatum定义了局部基准空间,任何参照它的对象都可以通过XDatum提供的方法计算获取对象在局部空间里的位置。它预定义了6个基准轴(X+,X-,Y+,Y-,Z+, Z-)和6个基准面(XOY,YOZ,ZOX,YOX, ZOY, XOZ). **//Members//** * const XCoordSystem * [[xdatum#m_prefcoord|m_pRefCoord]] **//Public interface//** * static TypeID [[xdatum#getdatumtype|getDatumType]](const char * str) * static const char * [[xdatum#getdatumstring|getDatumString]](TypeID type) * [[xdatum#xdatum1|XDatum]](ulong id, TypeID type) * void [[xdatum#setreference|setReference]](const XCoordSystem * cs) * const XCoordSystem * [[xdatum#getreference|getReference]]() const * void [[xdatum#write|write]](XBinaryIO * io) * ErrorCode [[xdatum#read|read]](XBinaryIO * io, DatumManager * mgr) ---- {{anchor:m_prefcoord}} **const XCoordSystem * m_pRefCoord** 基准参考坐标系 ---- {{anchor:getdatumtype}} **static TypeID getDatumType(const char * str)** *function: 静态函数,获取基准类型 *parameters: - [i]const char * str: 类型字符串 *return value: 基准类型(为6个基准轴或者6个基准平面之一) {{anchor:getdatumstring}} **static const char * getDatumString(TypeID type)** *function: 静态函数,获取基准类型字符串 *parameters: - [i]TypeID type: 基准类型(为6个基准轴或者6个基准平面之一) *return value: 基准类型字符串 {{anchor:xdatum1}} **XDatum(ulong id, TypeID type) ** *function: 构造函数 *parameters: - [i]ulong id: 对象ID - [i] TypeID type: 对象类型 *return value: 无 {{anchor:setreference}} **void setReference(const XCoordSystem * cs)** *function: 设置参考坐标系 *parameters: - [i]const XCoordSystem * cs: 参考坐标系 *return value: 无 {{anchor:getreference}} **const XCoordSystem * getReference() const** *function: 获取参考坐标系 *parameters: NULL *return value: 参考坐标系 {{anchor:write}} **void write(XBinaryIO * io)** *function: 基类接口,将基准对象写入到二进制文件中 *parameters: - [i]XBinaryIO * io: 二进制文件句柄 *return value: 无 {{anchor:read}} **ErrorCode read(XBinaryIO * io, DatumManager * mgr)** *function: 基类接口,从二进制文件中读取基准对象数据 *parameters: - [i]XBinaryIO * io: 二进制文件句柄 - [i] DatumManager * mgr: 基准对象管理器 *return value: 如成功读取返回Error_None, 否则返回相应错误码