From 7028cbe09c688437910a25623098762bf0fa592d Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 28 Mar 2016 22:28:34 +1000 Subject: Move Irrlicht to src/others. --- .../doc/html/dimension2d_8h_source.html | 305 +++++++++++++++++++++ 1 file changed, 305 insertions(+) create mode 100644 src/others/irrlicht-1.8.1/doc/html/dimension2d_8h_source.html (limited to 'src/others/irrlicht-1.8.1/doc/html/dimension2d_8h_source.html') diff --git a/src/others/irrlicht-1.8.1/doc/html/dimension2d_8h_source.html b/src/others/irrlicht-1.8.1/doc/html/dimension2d_8h_source.html new file mode 100644 index 0000000..f0df4b5 --- /dev/null +++ b/src/others/irrlicht-1.8.1/doc/html/dimension2d_8h_source.html @@ -0,0 +1,305 @@ + + + + +Irrlicht 3D Engine: dimension2d.h Source File + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + +
+
Irrlicht 3D Engine + +
+ +
+ + + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
dimension2d.h
+
+
+Go to the documentation of this file.
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 
+
+
+ + + + + -- cgit v1.1