// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'SGLines.pas' rev: 5.00

#ifndef SGLinesHPP
#define SGLinesHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <SysUtils.hpp>	// Pascal unit
#include <sgConsts.hpp>	// Pascal unit
#include <Math.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Sglines
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TsgLines;
class PASCALIMPLEMENTATION TsgLines : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Classes::TList* FTicks;
	double FScale;
	int FIndex;
	bool FIsUniform;
	float FPatternLength;
	float __fastcall GetTick(int Index);
	void __fastcall Reset(void);
	void __fastcall AddLine(const Sgconsts::TFPoint &Pt1, const Sgconsts::TFPoint &Pt2, Classes::TList* 
		DottedSingPts);
	void __fastcall AddHatchLine(const Sgconsts::TFPoint &Pt1, const Sgconsts::TFPoint &Pt2, const Sgconsts::TFPoint 
		&BasePt, Classes::TList* DottedSingPts);
	void __fastcall AddCurve(Classes::TList* SingPts, Classes::TList* DottedSingPts, bool Close);
	void __fastcall AddPoly(Classes::TList* SingPts, Classes::TList* DottedSingPts, bool Close);
	void __fastcall SetScale(const double Value);
	
public:
	__fastcall TsgLines(void);
	__fastcall virtual ~TsgLines(void);
	int __fastcall Count(void);
	void __fastcall Assign(TsgLines* ASource);
	void __fastcall AddTick(float Value);
	void __fastcall AddTicks(const float * AParts, const int AParts_Size);
	void __fastcall Line(const Sgconsts::TFPoint &Pt1, const Sgconsts::TFPoint &Pt2, Classes::TList* DottedSingPts
		);
	void __fastcall HatchLine(const Sgconsts::TFPoint &Pt1, const Sgconsts::TFPoint &Pt2, const Sgconsts::TFPoint 
		&BasePt, Classes::TList* DottedSingPts);
	void __fastcall Poly(Classes::TList* SingPts, Classes::TList* DottedSingPts, bool Close);
	void __fastcall Curve(Classes::TList* SingPts, Classes::TList* DottedSingPts, bool Close);
	void __fastcall SetPatternLength(float Value);
	void __fastcall Clear(void);
	void __fastcall Check(void);
	__property bool IsUniform = {read=FIsUniform, write=FIsUniform, nodefault};
	__property double Scale = {read=FScale, write=SetScale};
	__property Classes::TList* List = {read=FTicks};
	__property float Ticks[int Index] = {read=GetTick};
	__property float PatternLength = {read=FPatternLength};
	bool __fastcall IsSolid(void);
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE int __fastcall SGFloor(double AValue);
extern PACKAGE void __fastcall DrawPolyPolyLine(HDC DC, Classes::TList* IntPoints);
extern PACKAGE void __fastcall DrawPolyLine(HDC DC, Classes::TList* IntPoints);

}	/* namespace Sglines */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Sglines;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

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