00001 // 00002 // sgVector2.h 00003 // iSDGE 00004 // 00005 // Created by Nils Daumann on 17.04.10. 00006 // Copyright (c) 2010 Nils Daumann 00007 00008 // Permission is hereby granted, free of charge, to any person obtaining a copy 00009 // of this software and associated documentation files (the "Software"), to deal 00010 // in the Software without restriction, including without limitation the rights 00011 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00012 // copies of the Software, and to permit persons to whom the Software is 00013 // furnished to do so, subject to the following conditions: 00014 00015 // The above copyright notice and this permission notice shall be included in 00016 // all copies or substantial portions of the Software. 00017 00018 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00019 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00020 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00021 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00022 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00023 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 00024 // THE SOFTWARE. 00025 00029 class sgVector2 00030 { 00031 public: 00038 sgVector2(float x_ = 0.0f, float y_ = 0.0f); 00039 00045 sgVector2(const sgVector2 &other); 00046 00051 bool operator== (const sgVector2 &other); 00052 00057 bool operator!= (const sgVector2 &other); 00058 00063 sgVector2 &operator= (const sgVector2 &other); 00064 00069 sgVector2 &operator= (const float &other); 00070 00075 sgVector2 &operator+= (const sgVector2 &other); 00076 00081 sgVector2 &operator-= (const sgVector2 &other); 00082 00087 sgVector2 &operator*= (const sgVector2 &other); 00088 00093 sgVector2 &operator/= (const sgVector2 &other); 00094 00099 sgVector2 operator+ (const sgVector2 &other); 00100 00105 sgVector2 operator- (const sgVector2 &other); 00106 00111 sgVector2 operator* (const sgVector2 &other); 00112 00117 sgVector2 operator/ (const sgVector2 &other); 00118 00123 sgVector2 &operator+= (const float &other); 00124 00129 sgVector2 &operator-= (const float &other); 00130 00135 sgVector2 &operator*= (const float &other); 00136 00141 sgVector2 &operator/= (const float &other); 00142 00147 sgVector2 operator+ (const float &other); 00148 00153 sgVector2 operator- (const float &other); 00154 00159 sgVector2 operator* (const float &other); 00160 00165 sgVector2 operator/ (const float &other); 00166 00172 float length(); 00173 00178 void makeIdentity(); 00179 00184 void normalize(); 00185 00192 float dot(sgVector2 &other); 00193 00200 float dist(sgVector2 &other); 00201 00206 float x; 00207 00212 float y; 00213 };