ufe 7.0
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 UFE_UFESRC_H
3#define UFE_UFESRC_H
4
5// ===========================================================================
6// Copyright 2025 Autodesk, Inc. All rights reserved.
7//
8// The use of this software is subject to the Autodesk Terms of Use or other
9// license agreement provided at the time of installation or download, or
10// which otherwise accompanies this software.
11// ===========================================================================
12
13#define UFE_MAJOR_VERSION 7
14#define UFE_MINOR_VERSION 0
15#define UFE_PATCH_LEVEL 0
16
17// UFE public namespace string will never change.
18#define UFE_NS Ufe
19// C preprocessor trickery to expand arguments.
20#define UFE_CONCAT(A, B) UFE_CONCAT_IMPL(A, B)
21#define UFE_CONCAT_IMPL(A, B) A##B
22// Versioned namespace includes the major version number.
23#define UFE_VERSIONED_NS UFE_CONCAT(UFE_NS, _v7)
24
25namespace UFE_VERSIONED_NS {}
26// With a using namespace declaration, pull in the versioned namespace into the
27// Ufe public namespace, to allow client code to use the plain Ufe namespace,
28// e.g. Ufe::Path.
29namespace UFE_NS {
30 using namespace UFE_VERSIONED_NS;
31}
32
33// Macros to place the UFE symbols in the versioned namespace, which is how
34// they will appear in the shared library, e.g. Ufe_v1::Path.
35#ifdef DOXYGEN
36#define UFE_NS_DEF namespace UFE_NS
37#else
38#define UFE_NS_DEF namespace UFE_VERSIONED_NS
39#endif
40
41// Special symbols which can be used for checking when features were added.
42#define UFE_V1_FEATURES_AVAILABLE
43#define UFE_V2_FEATURES_AVAILABLE
44#define UFE_V3_FEATURES_AVAILABLE
45#define UFE_V4_FEATURES_AVAILABLE
46#define UFE_V5_FEATURES_AVAILABLE
47#define UFE_V6_FEATURES_AVAILABLE
48#define UFE_V7_FEATURES_AVAILABLE
49
50// Convenience macro for UFE conditional compilation.
51#ifdef UFE_V2_FEATURES_AVAILABLE
52#define UFE_V2(...) __VA_ARGS__
53#else
54#define UFE_V2(...)
55#endif
56#ifdef UFE_V3_FEATURES_AVAILABLE
57#define UFE_V3(...) __VA_ARGS__
58#else
59#define UFE_V3(...)
60#endif
61#ifdef UFE_V4_FEATURES_AVAILABLE
62#define UFE_V4(...) __VA_ARGS__
63#else
64#define UFE_V4(...)
65#endif
66#ifdef UFE_V5_FEATURES_AVAILABLE
67#define UFE_V5(...) __VA_ARGS__
68#else
69#define UFE_V5(...)
70#endif
71#ifdef UFE_V6_FEATURES_AVAILABLE
72#define UFE_V6(...) __VA_ARGS__
73#else
74#define UFE_V6(...)
75#endif
76#ifdef UFE_V7_FEATURES_AVAILABLE
77#define UFE_V7(...) __VA_ARGS__
78#else
79#define UFE_V7(...)
80#endif
81
82#endif /* UFE_UFESRC_H */
#define UFE_VERSIONED_NS
Definition: ufe.h:23
#define UFE_NS
Definition: ufe.h:18