单元属性扩展

扩展单元属性时,对象类应从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;}