From f9158592e1478b2013afc7041d9ed041cf2d2f4a Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 13 Jan 2014 19:47:58 +1000 Subject: Update Irrlicht to 1.8.1. Include actual change markers this time. lol --- .../doc/html/dimension2d_8h_source.html | 305 +++++++++++++++++++++ 1 file changed, 305 insertions(+) create mode 100644 libraries/irrlicht-1.8.1/doc/html/dimension2d_8h_source.html (limited to 'libraries/irrlicht-1.8.1/doc/html/dimension2d_8h_source.html') diff --git a/libraries/irrlicht-1.8.1/doc/html/dimension2d_8h_source.html b/libraries/irrlicht-1.8.1/doc/html/dimension2d_8h_source.html new file mode 100644 index 0000000..f0df4b5 --- /dev/null +++ b/libraries/irrlicht-1.8.1/doc/html/dimension2d_8h_source.html @@ -0,0 +1,305 @@ + + +
+ +00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt +00002 // This file is part of the "Irrlicht Engine". +00003 // For conditions of distribution and use, see copyright notice in irrlicht.h +00004 +00005 #ifndef __IRR_DIMENSION2D_H_INCLUDED__ +00006 #define __IRR_DIMENSION2D_H_INCLUDED__ +00007 +00008 #include "irrTypes.h" +00009 #include "irrMath.h" // for irr::core::equals() +00010 +00011 namespace irr +00012 { +00013 namespace core +00014 { +00015 template <class T> +00016 class vector2d; +00017 +00019 template <class T> +00020 class dimension2d +00021 { +00022 public: +00024 dimension2d() : Width(0), Height(0) {} +00026 dimension2d(const T& width, const T& height) +00027 : Width(width), Height(height) {} +00028 +00029 dimension2d(const vector2d<T>& other); // Defined in vector2d.h +00030 +00032 template <class U> +00033 explicit dimension2d(const dimension2d<U>& other) : +00034 Width((T)other.Width), Height((T)other.Height) { } +00035 +00036 template <class U> +00037 dimension2d<T>& operator=(const dimension2d<U>& other) +00038 { +00039 Width = (T) other.Width; +00040 Height = (T) other.Height; +00041 return *this; +00042 } +00043 +00044 +00046 bool operator==(const dimension2d<T>& other) const +00047 { +00048 return core::equals(Width, other.Width) && +00049 core::equals(Height, other.Height); +00050 } +00051 +00053 bool operator!=(const dimension2d<T>& other) const +00054 { +00055 return ! (*this == other); +00056 } +00057 +00058 bool operator==(const vector2d<T>& other) const; // Defined in vector2d.h +00059 +00060 bool operator!=(const vector2d<T>& other) const +00061 { +00062 return !(*this == other); +00063 } +00064 +00066 dimension2d<T>& set(const T& width, const T& height) +00067 { +00068 Width = width; +00069 Height = height; +00070 return *this; +00071 } +00072 +00074 dimension2d<T>& operator/=(const T& scale) +00075 { +00076 Width /= scale; +00077 Height /= scale; +00078 return *this; +00079 } +00080 +00082 dimension2d<T> operator/(const T& scale) const +00083 { +00084 return dimension2d<T>(Width/scale, Height/scale); +00085 } +00086 +00088 dimension2d<T>& operator*=(const T& scale) +00089 { +00090 Width *= scale; +00091 Height *= scale; +00092 return *this; +00093 } +00094 +00096 dimension2d<T> operator*(const T& scale) const +00097 { +00098 return dimension2d<T>(Width*scale, Height*scale); +00099 } +00100 +00102 dimension2d<T>& operator+=(const dimension2d<T>& other) +00103 { +00104 Width += other.Width; +00105 Height += other.Height; +00106 return *this; +00107 } +00108 +00110 dimension2d<T> operator+(const dimension2d<T>& other) const +00111 { +00112 return dimension2d<T>(Width+other.Width, Height+other.Height); +00113 } +00114 +00116 dimension2d<T>& operator-=(const dimension2d<T>& other) +00117 { +00118 Width -= other.Width; +00119 Height -= other.Height; +00120 return *this; +00121 } +00122 +00124 dimension2d<T> operator-(const dimension2d<T>& other) const +00125 { +00126 return dimension2d<T>(Width-other.Width, Height-other.Height); +00127 } +00128 +00130 T getArea() const +00131 { +00132 return Width*Height; +00133 } +00134 +00136 +00150 dimension2d<T> getOptimalSize( +00151 bool requirePowerOfTwo=true, +00152 bool requireSquare=false, +00153 bool larger=true, +00154 u32 maxValue = 0) const +00155 { +00156 u32 i=1; +00157 u32 j=1; +00158 if (requirePowerOfTwo) +00159 { +00160 while (i<(u32)Width) +00161 i<<=1; +00162 if (!larger && i!=1 && i!=(u32)Width) +00163 i>>=1; +00164 while (j<(u32)Height) +00165 j<<=1; +00166 if (!larger && j!=1 && j!=(u32)Height) +00167 j>>=1; +00168 } +00169 else +00170 { +00171 i=(u32)Width; +00172 j=(u32)Height; +00173 } +00174 +00175 if (requireSquare) +00176 { +00177 if ((larger && (i>j)) || (!larger && (i<j))) +00178 j=i; +00179 else +00180 i=j; +00181 } +00182 +00183 if ( maxValue > 0 && i > maxValue) +00184 i = maxValue; +00185 +00186 if ( maxValue > 0 && j > maxValue) +00187 j = maxValue; +00188 +00189 return dimension2d<T>((T)i,(T)j); +00190 } +00191 +00193 +00196 dimension2d<T> getInterpolated(const dimension2d<T>& other, f32 d) const +00197 { +00198 f32 inv = (1.0f - d); +00199 return dimension2d<T>( (T)(other.Width*inv + Width*d), (T)(other.Height*inv + Height*d)); +00200 } +00201 +00202 +00204 T Width; +00206 T Height; +00207 }; +00208 +00210 typedef dimension2d<f32> dimension2df; +00212 typedef dimension2d<u32> dimension2du; +00213 +00215 +00217 typedef dimension2d<s32> dimension2di; +00218 +00219 +00220 } // end namespace core +00221 } // end namespace irr +00222 +00223 #endif +00224 +