//---------------------------------------------------------------------------
#ifndef finterf3d_2H
#define finterf3d_2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <ComCtrls.hpp>

#define IL_PODZ  50          //dokładność analizy przeslony i ekranu
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
    TPaintBox *PaintBox1;
    TPanel *Panel1;
    TLabel *Label2;
    TTrackBar *TrackBar1;
    TGroupBox *GroupBox1;
    TLabel *Label3;
    TEdit *Edit1;
    TLabel *Label4;
    TEdit *Edit2;
    TGroupBox *GroupBox2;
    TLabel *Label6;
    TLabel *Label7;
    TEdit *Edit3;
    TEdit *Edit4;
    TGroupBox *GroupBox3;
    TEdit *Edit5;
    TEdit *Edit6;
    TEdit *Edit7;
    TButton *Button1;
    TButton *Button3;void __fastcall Button1Click(TObject *Sender);
    void __fastcall Button3Click(TObject *Sender);
    void __fastcall PaintBox1Paint(TObject *Sender);
    void __fastcall FormShow(TObject *Sender);
private:	// User declarations
    void inicjuj_parametry( void);
public:		// User declarations
    float P[IL_PODZ][IL_PODZ]; //przysłona
    double L;               //długość fali światła
    double z_p, z_e;        //pozycja przysł. i ekr. na osi OZ
    double rozm_p, rozm_e;  //rozmiary przysł. i ekr.
    TPunkt obs;             //pozycja obserwatora
    __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
class TWykres : public TWykres3d
{
 private:
 public:
    TWykres(TPunkt obs, TPunkt osw,                 //pozycja obserwatora i oświetlenia
        double xr0, double yr0, double rszer, double rwys,//obszar funkcji
        int il_x, int il_y,                        //dokladność kreślenia
        int xe0, int ye0, int eszer, int ewys);    //obszar ekranowy
    double fun( double x, double y);               //redeklaracja funkcji wirtualnej
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
