扩展单元属性时,对象类应从XProperty继承,需按照下列代码重新实现基类的接口。
class NewPrp: public XProperty
{
DECLARE_CITEM(NewPrp)
public:
NewPrp(ulong id = 0);
~NewPrp();
const PropertyAttribute * getAttribute() const { return attribute(); }
const NewPrpAttribute * attribute() const { return &m_Atb; }
void setAttribute(const PropertyAttribute * atb) { m_Atb = *(NewPrpAttribute*)atb; }
ulong getMaterialId() const { return m_Atb.ulMatId; }
void setMaterial(ulong matId) { m_Atb.ulMatId = matId; }
void write(XBinaryIO * io);
ErrorCode read(XBinaryIO * io);
void write(XH5IO * io, H5Obj * grp);
bool read(XH5IO * io, H5Obj * dset);
private:
NewPrpAttribute m_Atb;
};
REGISTER_CITEM(NewPrp, "CPRPNEWPRP", PropertyManager::ctype(), 0);
struct NewPrpAttribute: public PropertyAttribute
{
double dValue;
};
const NewPrpAttribute * attribute() const {return &m_Atb;}