#ifndef VEKTOR
#define VEKTOR

#include <stdlib.h>
#include <time.h>
#include <cmath>

struct vektor
{
    float x, y;
    vektor()                   // inicializáljuk a konstruktorban
    {
        null();
    }
    vektor(int X, int Y)      // pontosan megadjuk a pont helyét a konstruktornak
    {
        x = X;
        y = Y;
    }
    void random(int X, int Y) // random helyre rakja
    {
        srand (time(NULL));
        x = rand() % X;
        y = rand() % Y;
    }
    float hosszNegyzet()      // ha csak összehasonlítani akarunk, akkor fölösleges gyököt vonni
    {
        return x*x + y*y;
    }
    float hossz()             // vektor hossza
    {
        return sqrt(x*x + y*y);
    }
    void null()
    {
        x = 0;
        y = 0;
    }
};

// Operátorok
vektor operator+ (const vektor& v1, const vektor& v2)
{
    vektor temp;
    temp.x = v1.x + v2.x;
    temp.y = v1.y + v2.y;
    return temp;
}

vektor operator+= (vektor& v1, const vektor& v2)
{
    v1.x = v1.x + v2.x;
    v1.y = v1.y + v2.y;
    return v1;
}

vektor operator- (const vektor& v1, const vektor& v2)
{
    vektor temp;
    temp.x = v1.x - v2.x;
    temp.y = v1.y - v2.y;
    return temp;
}

vektor operator* (const float skalar, const vektor& v)
{
    vektor temp;
    temp.x = skalar * v.x ;
    temp.y = skalar * v.y;
    return temp;
}

vektor operator* (const vektor& v, const float skalar)
{
    vektor temp;
    temp.x = skalar * v.x ;
    temp.y = skalar * v.y;
    return temp;
}

vektor operator/ (const vektor& v, const float skalar)
{
    vektor temp;
    temp.x = v.x / skalar;
    temp.y = v.y / skalar;
    return temp;
}

vektor operator/= (vektor& v, const float skalar)
{
    v.x = v.x / skalar;
    v.y = v.y / skalar;
    return v;
}


#endif
