Cleanup: sort cmake file lists
[blender.git] / intern / openvdb / openvdb_util.h
1 /*
2  * ***** BEGIN GPL LICENSE BLOCK *****
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * The Original Code is Copyright (C) 2015 Blender Foundation.
19  * All rights reserved.
20  *
21  * Contributor(s): Kevin Dietrich
22  *
23  * ***** END GPL LICENSE BLOCK *****
24  */
25
26 #ifndef __OPENVDB_UTIL_H__
27 #define __OPENVDB_UTIL_H__
28
29 #include <openvdb/openvdb.h>
30 #include <openvdb/util/CpuTimer.h>
31
32 #define CATCH_KEYERROR \
33         catch (const openvdb::KeyError &e) { \
34                 std::cerr << e.what() << '\n'; \
35         }
36
37 //#define DEBUG_TIME
38
39 /* A utility class which prints the time elapsed during its lifetime, useful for
40  * e.g. timing the overall execution time of a function */
41 class ScopeTimer {
42         std::string m_message;
43         openvdb::util::CpuTimer m_timer;
44
45 public:
46         ScopeTimer(const std::string &message);
47         ~ScopeTimer();
48 };
49
50 #ifdef DEBUG_TIME
51 #       define Timer(x) \
52                 ScopeTimer prof(x);
53 #else
54 #       define Timer(x)
55 #endif
56
57 #endif /* __OPENVDB_UTIL_H__ */