ufe 6.2
Universal Front End is a DCC-agnostic component that will allow a DCC to browse and edit data in multiple data models
ufe.h
Go to the documentation of this file.
1#line 1 "W:/build/RelWithDebInfo/include/ufe.h"
2#ifndef _ufeUfe
3#define _ufeUfe
4// ===========================================================================
5// Copyright 2018 Autodesk, Inc. All rights reserved.
6//
7// Use of this software is subject to the terms of the Autodesk license
8// agreement provided at the time of installation or download, or which
9// otherwise accompanies this software in either electronic or hard copy form.
10// ===========================================================================
11
12#define UFE_MAJOR_VERSION 6
13#define UFE_MINOR_VERSION 2
14#define UFE_PATCH_LEVEL 0
15
16// UFE public namespace string will never change.
17#define UFE_NS Ufe
18// C preprocessor trickery to expand arguments.
19#define UFE_CONCAT(A, B) UFE_CONCAT_IMPL(A, B)
20#define UFE_CONCAT_IMPL(A, B) A##B
21// Versioned namespace includes the major version number.
22#define UFE_VERSIONED_NS UFE_CONCAT(UFE_NS, _v6)
23
24namespace UFE_VERSIONED_NS {}
25// With a using namespace declaration, pull in the versioned namespace into the
26// Ufe public namespace, to allow client code to use the plain Ufe namespace,
27// e.g. Ufe::Path.
28namespace UFE_NS {
29 using namespace UFE_VERSIONED_NS;
30}
31
32// Macros to place the UFE symbols in the versioned namespace, which is how
33// they will appear in the shared library, e.g. Ufe_v1::Path.
34#ifdef DOXYGEN
35#define UFE_NS_DEF namespace UFE_NS
36#else
37#define UFE_NS_DEF namespace UFE_VERSIONED_NS
38#endif
39
40// Special symbols which can be used for checking when features were added.
41#define UFE_V1_FEATURES_AVAILABLE
42#define UFE_V2_FEATURES_AVAILABLE
43#define UFE_V3_FEATURES_AVAILABLE
44#define UFE_V4_FEATURES_AVAILABLE
45#define UFE_V5_FEATURES_AVAILABLE
46#define UFE_V6_FEATURES_AVAILABLE
47
48// Convenience macro for UFE conditional compilation.
49#ifdef UFE_V2_FEATURES_AVAILABLE
50#define UFE_V2(...) __VA_ARGS__
51#else
52#define UFE_V2(...)
53#endif
54#ifdef UFE_V3_FEATURES_AVAILABLE
55#define UFE_V3(...) __VA_ARGS__
56#else
57#define UFE_V3(...)
58#endif
59#ifdef UFE_V4_FEATURES_AVAILABLE
60#define UFE_V4(...) __VA_ARGS__
61#else
62#define UFE_V4(...)
63#endif
64#ifdef UFE_V5_FEATURES_AVAILABLE
65#define UFE_V5(...) __VA_ARGS__
66#else
67#define UFE_V5(...)
68#endif
69#ifdef UFE_V6_FEATURES_AVAILABLE
70#define UFE_V6(...) __VA_ARGS__
71#else
72#define UFE_V6(...)
73#endif
74
75#endif /* _ufeUfe */
#define UFE_VERSIONED_NS
Definition: ufe.h:22
#define UFE_NS
Definition: ufe.h:17