diff options
Diffstat (limited to 'extern/recastnavigation/Recast/Include/RecastLog.h')
-rw-r--r-- | extern/recastnavigation/Recast/Include/RecastLog.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/extern/recastnavigation/Recast/Include/RecastLog.h b/extern/recastnavigation/Recast/Include/RecastLog.h new file mode 100644 index 00000000000..026ef73a3aa --- /dev/null +++ b/extern/recastnavigation/Recast/Include/RecastLog.h @@ -0,0 +1,80 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#ifndef RECAST_LOG_H +#define RECAST_LOG_H + +enum rcLogCategory +{ + RC_LOG_PROGRESS = 1, + RC_LOG_WARNING, + RC_LOG_ERROR, +}; + +class rcLog +{ +public: + rcLog(); + ~rcLog(); + + void log(rcLogCategory category, const char* format, ...); + inline void clear() { m_messageCount = 0; m_textPoolSize = 0; } + inline int getMessageCount() const { return m_messageCount; } + inline char getMessageType(int i) const { return *m_messages[i]; } + inline const char* getMessageText(int i) const { return m_messages[i]+1; } + +private: + static const int MAX_MESSAGES = 1000; + const char* m_messages[MAX_MESSAGES]; + int m_messageCount; + static const int TEXT_POOL_SIZE = 8000; + char m_textPool[TEXT_POOL_SIZE]; + int m_textPoolSize; +}; + +struct rcBuildTimes +{ + int rasterizeTriangles; + int buildCompact; + int buildContours; + int buildContoursTrace; + int buildContoursSimplify; + int filterBorder; + int filterWalkable; + int filterMarkReachable; + int buildPolymesh; + int buildDistanceField; + int buildDistanceFieldDist; + int buildDistanceFieldBlur; + int buildRegions; + int buildRegionsReg; + int buildRegionsExp; + int buildRegionsFlood; + int buildRegionsFilter; + int buildDetailMesh; + int mergePolyMesh; + int mergePolyMeshDetail; +}; + +void rcSetLog(rcLog* log); +rcLog* rcGetLog(); + +void rcSetBuildTimes(rcBuildTimes* btimes); +rcBuildTimes* rcGetBuildTimes(); + +#endif // RECAST_LOG_H |