/* * Triangle2D.h * * Copyright (C) 2008 Matthias Schiffer * * This program 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. * * This program 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 this program. If not, see . */ #ifndef ZOOMEDIT_MATH_TRIANGLE2D_H_ #define ZOOMEDIT_MATH_TRIANGLE2D_H_ #include namespace ZoomEdit { namespace Math { class Triangle2D { private: vmml::vec2f vertices[3]; public: Triangle2D() {} Triangle2D(const vmml::vec2f &v1, const vmml::vec2f &v2, const vmml::vec2f &v3) { vertices[0] = v1; vertices[1] = v2; vertices[2] = v3; } Triangle2D(const vmml::vec2f *v) { setVertices(v); } const vmml::vec2f& getVertex(unsigned int i) const {return vertices[i];} void setVertex(unsigned int i, const vmml::vec2f &v) {vertices[i] = v;} void setVertices(const vmml::vec2f *v) { for(int i = 0; i < 3; ++i) setVertex(i, v[i]); } float area() const; bool contains(const vmml::vec2f &v) const; }; } } #endif /*ZOOMEDIT_MATH_TRIANGLE2D_H_*/