// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Dxf.pas' rev: 10.00

#ifndef DxfHPP
#define DxfHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Sgconsts.hpp>	// Pascal unit
#include <Dxfconv.hpp>	// Pascal unit
#include <Sglines.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Dxf
{
//-- type declarations -------------------------------------------------------
typedef AnsiString DXF__2[9];

class DELPHICLASS TdxfEntity;
class DELPHICLASS TdxfReader;
class PASCALIMPLEMENTATION TdxfEntity : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Dxfconv::TsgDXFEntity* FEnt;
	AnsiString FTexts[9];
	Sgconsts::TFPoint FPoints[10];
	double FFloats[20];
	int FInts[20];
	Sgconsts::TFPoint FExtrusion;
	double FElevation;
	double FZThick;
	double FLineWeight;
	char *FSrcEnd;
	char *FSrcStart;
	bool FComplex;
	bool FPaperSpace;
	void __fastcall Coord(TdxfReader* AReader);
	void __fastcall SetLType(TdxfReader* AReader);
	void __fastcall SetLWeight(double AValue);
	void __fastcall ReadEntities(TdxfReader* AReader);
	void __fastcall ReadProps(TdxfReader* AReader);
	void __fastcall ReadState(TdxfReader* AReader);
	
protected:
	__fastcall virtual TdxfEntity(void);
	virtual bool __fastcall AddEntity(TdxfEntity* E);
	virtual void __fastcall Commit(TdxfReader* AReader);
	virtual void __fastcall ReadProperty(TdxfReader* AReader);
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TdxfEntity(void) { }
	#pragma option pop
	
};


typedef TMetaClass* TdxfEntityClass;

class PASCALIMPLEMENTATION TdxfReader : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Dxfconv::TsgDXFConverter* FConv;
	TdxfEntity* FMain;
	Classes::TList* FProxies;
	int FLine;
	int FCode;
	AnsiString FFileInfo;
	bool FIsNotHasActiveVPort;
	AnsiString FValue;
	char *FPos;
	char *FLimit;
	char *FPrev;
	TdxfEntity* __fastcall CreateEntity(const AnsiString AName);
	void __fastcall DoEvent(Classes::TNotifyEvent Event);
	
public:
	__fastcall TdxfReader(Dxfconv::TsgDXFConverter* Conv);
	__fastcall virtual ~TdxfReader(void);
	int __fastcall IntValue(void);
	double __fastcall FloatValue(void);
	int __fastcall HandleValue(void);
	void __fastcall Next(void);
	void __fastcall Load(void);
	__property int Code = {read=FCode, write=FCode, nodefault};
	__property AnsiString Value = {read=FValue};
	__property AnsiString FileInfo = {read=FFileInfo};
};


//-- var, const, procedure ---------------------------------------------------

}	/* namespace Dxf */
using namespace Dxf;
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Dxf
