#pragma once

#include "DxfLib\dl_creationadapter.h"

class MxReadContext;
class MxOptEntity;
class MxReadFilter : public DL_CreationAdapter
{
public:
	MxReadFilter();
	virtual ~MxReadFilter(void);


	void SetContext(MxReadContext* pContext);


protected:
	virtual void addLayer(const DL_LayerData& data);

	virtual void addBlock(const DL_BlockData& data);
	virtual void endBlock();

	virtual void setVariableVector(const char* key,
		double v1, double v2, double v3, int code);
	virtual void setVariableString(const char* key, const char* value, int code);
	virtual void setVariableInt(const char* key, int value, int code);
	virtual void setVariableDouble(const char* key, double value, int code);

	virtual void addLine(const DL_LineData& data);

	virtual void addPoint(const DL_PointData& data);

	virtual void addArc(const DL_ArcData& data);

	virtual void addEllipse(const DL_EllipseData& data);

	virtual void addPolyline(const DL_PolylineData& data);

	virtual void addVertex(const DL_VertexData& data);

	virtual void addText(const DL_TextData& data);

	virtual void addInsert(const DL_InsertData& data);

	virtual void addCircle(const DL_CircleData& data);
private:
	MxReadContext* m_pContext;
	MxOptEntity*   m_pOptEntity;
};
