Skip to content
This repository
tree: ac0c941eac
Fetching contributors…

Cannot retrieve contributors at this time

file 56 lines (43 sloc) 1.421 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
/*
Copyright 2012 Johan "SteelRaven7" Hassel

This file is part of FLAT.

FLAT is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

FLAT is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with FLAT. If not, see <http://www.gnu.org/licenses/>.
*/


#ifndef VEC2_H
#define VEC2_H

#include <cmath>

class vec2
{
public:
vec2();
vec2(float _x, float _y);
virtual ~vec2();

float x, y;

vec2 operator+(vec2 o);
void operator+=(vec2 o);
vec2 operator-(vec2 o);
void operator-=(vec2 o);
vec2 operator*(float o);
vec2 operator/(float o);
void operator*=(float o);
bool operator==(vec2 o);

//Clamps the vector between these corners, returns true if clamped.
bool clampBetween(vec2 c1, vec2 c2);
};

//Other functions used by vec2.
float dot(vec2 v1, vec2 v2);
float lengthSquared(vec2 v);
float length(vec2 v);
float distanceBetween(vec2 v1, vec2 v2);
vec2 normalize(vec2 v);
vec2 project(vec2 s, vec2 t);

#endif // VEC2_H
Something went wrong with that request. Please try again.