// CodeGear C++Builder
// Copyright (c) 1995, 2025 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'uecWKTObjects.pas' rev: 37.00 (Windows)

#ifndef uecWKTObjectsHPP
#define uecWKTObjectsHPP

#pragma delphiheader begin
#pragma option push
#if defined(__BORLANDC__) && !defined(__clang__)
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#endif
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <System.SysUtils.hpp>
#include <System.Classes.hpp>
#include <System.Contnrs.hpp>

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

namespace Uecwktobjects
{
//-- forward type declarations -----------------------------------------------
struct TWKTPointF;
class DELPHICLASS TWKTGeometry;
class DELPHICLASS TWKTPoint;
class DELPHICLASS TWKTLineString;
class DELPHICLASS TWKTPolygon;
class DELPHICLASS TWKTMultiPoint;
class DELPHICLASS TWKTMultiLineString;
class DELPHICLASS TWKTMultiPolygon;
class DELPHICLASS TWKTGeometryCollection;
//-- type declarations -------------------------------------------------------
typedef TWKTPointF *PPointF;

struct DECLSPEC_DRECORD TWKTPointF
{
public:
	double X;
	double Y;
};


typedef System::DynamicArray<TWKTPointF> TLineStringWKT;

typedef System::DynamicArray<TLineStringWKT> TPolygonWKT;

typedef System::DynamicArray<TLineStringWKT> TALineStringWKT;

typedef System::DynamicArray<TPolygonWKT> TAPolygonWKT;

#pragma pack(push,4)
class PASCALIMPLEMENTATION TWKTGeometry : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	__fastcall virtual ~TWKTGeometry();
public:
	/* TObject.Create */ inline __fastcall TWKTGeometry() : System::TObject() { }
	
};

#pragma pack(pop)

class PASCALIMPLEMENTATION TWKTPoint : public TWKTGeometry
{
	typedef TWKTGeometry inherited;
	
public:
	TWKTPointF Point;
public:
	/* TWKTGeometry.Destroy */ inline __fastcall virtual ~TWKTPoint() { }
	
public:
	/* TObject.Create */ inline __fastcall TWKTPoint() : TWKTGeometry() { }
	
};


#pragma pack(push,4)
class PASCALIMPLEMENTATION TWKTLineString : public TWKTGeometry
{
	typedef TWKTGeometry inherited;
	
public:
	TLineStringWKT Points;
public:
	/* TWKTGeometry.Destroy */ inline __fastcall virtual ~TWKTLineString() { }
	
public:
	/* TObject.Create */ inline __fastcall TWKTLineString() : TWKTGeometry() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TWKTPolygon : public TWKTGeometry
{
	typedef TWKTGeometry inherited;
	
public:
	TPolygonWKT Rings;
public:
	/* TWKTGeometry.Destroy */ inline __fastcall virtual ~TWKTPolygon() { }
	
public:
	/* TObject.Create */ inline __fastcall TWKTPolygon() : TWKTGeometry() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TWKTMultiPoint : public TWKTGeometry
{
	typedef TWKTGeometry inherited;
	
public:
	TLineStringWKT Points;
public:
	/* TWKTGeometry.Destroy */ inline __fastcall virtual ~TWKTMultiPoint() { }
	
public:
	/* TObject.Create */ inline __fastcall TWKTMultiPoint() : TWKTGeometry() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TWKTMultiLineString : public TWKTGeometry
{
	typedef TWKTGeometry inherited;
	
public:
	TALineStringWKT LineStrings;
public:
	/* TWKTGeometry.Destroy */ inline __fastcall virtual ~TWKTMultiLineString() { }
	
public:
	/* TObject.Create */ inline __fastcall TWKTMultiLineString() : TWKTGeometry() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TWKTMultiPolygon : public TWKTGeometry
{
	typedef TWKTGeometry inherited;
	
public:
	TAPolygonWKT Polygons;
public:
	/* TWKTGeometry.Destroy */ inline __fastcall virtual ~TWKTMultiPolygon() { }
	
public:
	/* TObject.Create */ inline __fastcall TWKTMultiPolygon() : TWKTGeometry() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TWKTGeometryCollection : public TWKTGeometry
{
	typedef TWKTGeometry inherited;
	
private:
	System::Classes::TList* FGeometries;
	TWKTGeometry* __fastcall GetItem(int Index);
	
public:
	__fastcall TWKTGeometryCollection();
	__fastcall virtual ~TWKTGeometryCollection();
	void __fastcall Add(TWKTGeometry* AGeometry);
	int __fastcall Count();
	__property TWKTGeometry* Items[int Index] = {read=GetItem};
	__property System::Classes::TList* Geometries = {read=FGeometries};
};

#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
}	/* namespace Uecwktobjects */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_UECWKTOBJECTS)
using namespace Uecwktobjects;
#endif
#pragma pack(pop)
#pragma option pop

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