tf2 rolling
tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.
Loading...
Searching...
No Matches
visibility_control.h
Go to the documentation of this file.
1// Copyright 2017, Open Source Robotics Foundation, Inc. All rights reserved.
2//
3// Redistribution and use in source and binary forms, with or without
4// modification, are permitted provided that the following conditions are met:
5//
6// * Redistributions of source code must retain the above copyright
7// notice, this list of conditions and the following disclaimer.
8//
9// * Redistributions in binary form must reproduce the above copyright
10// notice, this list of conditions and the following disclaimer in the
11// documentation and/or other materials provided with the distribution.
12//
13// * Neither the name of the Open Source Robotics Foundation nor the names of its
14// contributors may be used to endorse or promote products derived from
15// this software without specific prior written permission.
16//
17// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27// POSSIBILITY OF SUCH DAMAGE.
28
29#ifndef TF2__VISIBILITY_CONTROL_H_
30#define TF2__VISIBILITY_CONTROL_H_
31
32// This logic was borrowed (then namespaced) from the examples on the gcc wiki:
33// https://gcc.gnu.org/wiki/Visibility
34
35#if defined _WIN32 || defined __CYGWIN__
36 #ifdef __GNUC__
37 #define TF2_EXPORT __attribute__ ((dllexport))
38 #define TF2_IMPORT __attribute__ ((dllimport))
39 #else
40 #define TF2_EXPORT __declspec(dllexport)
41 #define TF2_IMPORT __declspec(dllimport)
42 #endif
43 #ifdef TF2_BUILDING_DLL
44 #define TF2_PUBLIC TF2_EXPORT
45 #else
46 #define TF2_PUBLIC TF2_IMPORT
47 #endif
48 #define TF2_PUBLIC_TYPE TF2_PUBLIC
49 #define TF2_LOCAL
50#else
51 #define TF2_EXPORT __attribute__ ((visibility("default")))
52 #define TF2_IMPORT
53 #if __GNUC__ >= 4
54 #define TF2_PUBLIC __attribute__ ((visibility("default")))
55 #define TF2_LOCAL __attribute__ ((visibility("hidden")))
56 #else
57 #define TF2_PUBLIC
58 #define TF2_LOCAL
59 #endif
60 #define TF2_PUBLIC_TYPE
61#endif
62
63#endif // TF2__VISIBILITY_CONTROL_H_