扩展连接类边界条件时,对象类应从XConnection继承,需按照下列代码重新实现基类的接口。
class NewConnect : public XConnection
{
DECLARE_CITEM(NewConnect)
friend XConditionInstance;
public:
NewConnect(ulong id);
~NewConnect();
const ConditionAttribute * getAttribute() const { return attribute(); }
const NewConnectAttribute * attribute() const {return &m_Atb;}
void setAttribute(const ConditionAttribute * atb) {m_Atb = *(NewConnectAttribute *)atb;}
void instantiate(XConditionInstance * inst, ConditionContext * context) const;
void clearMarker() { if(m_pMarkerArr) m_pMarkerArr->resize(0); }
void buildMarker(ConditionContext * context);
void updateMarker(float *lineVertex,float scale);
const void * getMarker() const {return m_pMarkerArr;}
int getMarkerVertexSize() const {;}
void write(XBinaryIO * io) const;
ErrorCode read(XBinaryIO * io);
int getDataDimension() const;
void listProperty(std::vector<ObjPropertyEntry> * prpSheet) const;
private:
NewConnectAttribute m_Atb;
XArray<DoubleArrowMarker> * m_pMarkerArr = 0;
};
REGISTER_CITEM(NewConnect, "CCNDNEWCONNECT", ConditionManager::ctype(), 0);
struct NewConnectAttribute: public ConnectionAttribute
{
double dValue;
};
const NewConnectAttribute * attribute() const {return &m_Atb;}
XArray<DoubleArrowMarker> * m_pMarkerArr = 0;