From 393b5cd1dc438872af89d334ef6e5fcc59f27d47 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Sun, 13 Jan 2013 17:24:39 +1000 Subject: Added Irrlicht 1.8, but without all the Windows binaries. --- .../irrlicht-1.8/doc/html/coreutil_8h_source.html | 295 +++++++++++++++++++++ 1 file changed, 295 insertions(+) create mode 100644 libraries/irrlicht-1.8/doc/html/coreutil_8h_source.html (limited to 'libraries/irrlicht-1.8/doc/html/coreutil_8h_source.html') diff --git a/libraries/irrlicht-1.8/doc/html/coreutil_8h_source.html b/libraries/irrlicht-1.8/doc/html/coreutil_8h_source.html new file mode 100644 index 0000000..9835896 --- /dev/null +++ b/libraries/irrlicht-1.8/doc/html/coreutil_8h_source.html @@ -0,0 +1,295 @@ + + +
+ +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_CORE_UTIL_H_INCLUDED__ +00006 #define __IRR_CORE_UTIL_H_INCLUDED__ +00007 +00008 #include "irrString.h" +00009 #include "path.h" +00010 +00011 namespace irr +00012 { +00013 namespace core +00014 { +00015 +00020 // ----------- some basic quite often used string functions ----------------- +00021 +00023 inline s32 isFileExtension ( const io::path& filename, +00024 const io::path& ext0, +00025 const io::path& ext1, +00026 const io::path& ext2) +00027 { +00028 s32 extPos = filename.findLast ( '.' ); +00029 if ( extPos < 0 ) +00030 return 0; +00031 +00032 extPos += 1; +00033 if ( filename.equals_substring_ignore_case ( ext0, extPos ) ) return 1; +00034 if ( filename.equals_substring_ignore_case ( ext1, extPos ) ) return 2; +00035 if ( filename.equals_substring_ignore_case ( ext2, extPos ) ) return 3; +00036 return 0; +00037 } +00038 +00040 inline bool hasFileExtension ( const io::path& filename, +00041 const io::path& ext0, +00042 const io::path& ext1 = "", +00043 const io::path& ext2 = "") +00044 { +00045 return isFileExtension ( filename, ext0, ext1, ext2 ) > 0; +00046 } +00047 +00049 inline io::path& cutFilenameExtension ( io::path &dest, const io::path &source ) +00050 { +00051 s32 endPos = source.findLast ( '.' ); +00052 dest = source.subString ( 0, endPos < 0 ? source.size () : endPos ); +00053 return dest; +00054 } +00055 +00057 inline io::path& getFileNameExtension ( io::path &dest, const io::path &source ) +00058 { +00059 s32 endPos = source.findLast ( '.' ); +00060 if ( endPos < 0 ) +00061 dest = ""; +00062 else +00063 dest = source.subString ( endPos, source.size () ); +00064 return dest; +00065 } +00066 +00068 inline io::path& deletePathFromFilename(io::path& filename) +00069 { +00070 // delete path from filename +00071 const fschar_t* s = filename.c_str(); +00072 const fschar_t* p = s + filename.size(); +00073 +00074 // search for path separator or beginning +00075 while ( *p != '/' && *p != '\\' && p != s ) +00076 p--; +00077 +00078 if ( p != s ) +00079 { +00080 ++p; +00081 filename = p; +00082 } +00083 return filename; +00084 } +00085 +00087 inline io::path& deletePathFromPath(io::path& filename, s32 pathCount) +00088 { +00089 // delete path from filename +00090 s32 i = filename.size(); +00091 +00092 // search for path separator or beginning +00093 while ( i>=0 ) +00094 { +00095 if ( filename[i] == '/' || filename[i] == '\\' ) +00096 { +00097 if ( --pathCount <= 0 ) +00098 break; +00099 } +00100 --i; +00101 } +00102 +00103 if ( i>0 ) +00104 { +00105 filename [ i + 1 ] = 0; +00106 filename.validate(); +00107 } +00108 else +00109 filename=""; +00110 return filename; +00111 } +00112 +00115 inline s32 isInSameDirectory ( const io::path& path, const io::path& file ) +00116 { +00117 s32 subA = 0; +00118 s32 subB = 0; +00119 s32 pos; +00120 +00121 if ( path.size() && !path.equalsn ( file, path.size() ) ) +00122 return -1; +00123 +00124 pos = 0; +00125 while ( (pos = path.findNext ( '/', pos )) >= 0 ) +00126 { +00127 subA += 1; +00128 pos += 1; +00129 } +00130 +00131 pos = 0; +00132 while ( (pos = file.findNext ( '/', pos )) >= 0 ) +00133 { +00134 subB += 1; +00135 pos += 1; +00136 } +00137 +00138 return subB - subA; +00139 } +00140 +00141 // splits a path into components +00142 static inline void splitFilename(const io::path &name, io::path* path=0, +00143 io::path* filename=0, io::path* extension=0, bool make_lower=false) +00144 { +00145 s32 i = name.size(); +00146 s32 extpos = i; +00147 +00148 // search for path separator or beginning +00149 while ( i >= 0 ) +00150 { +00151 if ( name[i] == '.' ) +00152 { +00153 extpos = i; +00154 if ( extension ) +00155 *extension = name.subString ( extpos + 1, name.size() - (extpos + 1), make_lower ); +00156 } +00157 else +00158 if ( name[i] == '/' || name[i] == '\\' ) +00159 { +00160 if ( filename ) +00161 *filename = name.subString ( i + 1, extpos - (i + 1), make_lower ); +00162 if ( path ) +00163 { +00164 *path = name.subString ( 0, i + 1, make_lower ); +00165 path->replace ( '\\', '/' ); +00166 } +00167 return; +00168 } +00169 i -= 1; +00170 } +00171 if ( filename ) +00172 *filename = name.subString ( 0, extpos, make_lower ); +00173 } +00174 +00175 +00177 #undef isdigit +00178 #undef isspace +00179 #undef isupper +00180 inline s32 isdigit(s32 c) { return c >= '0' && c <= '9'; } +00181 inline s32 isspace(s32 c) { return c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v'; } +00182 inline s32 isupper(s32 c) { return c >= 'A' && c <= 'Z'; } +00183 +00184 +00185 } // end namespace core +00186 } // end namespace irr +00187 +00188 #endif +