1/*
2 * Copyright (c) 2008-2015, NVIDIA CORPORATION. All rights reserved.
3 *
4 * NVIDIA CORPORATION and its licensors retain all intellectual property
5 * and proprietary rights in and to this software, related documentation
6 * and any modifications thereto. Any use, reproduction, disclosure or
7 * distribution of this software and related documentation without an express
8 * license agreement from NVIDIA CORPORATION is strictly prohibited.
9 */
10// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
11// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
12
13
14#ifndef PX_PHYSICS_METADATA_FLAGS
15#define PX_PHYSICS_METADATA_FLAGS
16
17#include "foundation/Px.h"
18
19#ifndef PX_DOXYGEN
20namespace physx
21{
22#endif
23
24 /**
25 \brief Flags used to configure binary meta data entries, typically set through PX_DEF_BIN_METADATA defines.
26
27 @see PxMetaDataEntry
28 */
29 struct PxMetaDataFlag
30 {
31 enum Enum
32 {
33 eCLASS = (1<<0), //!< declares a class
34 eVIRTUAL = (1<<1), //!< declares class to be virtual
35 eTYPEDEF = (1<<2), //!< declares a typedef
36 ePTR = (1<<3), //!< declares a pointer
37 eEXTRA_DATA = (1<<4), //!< declares extra data exported with PxSerializer::exportExtraData
38 eEXTRA_ITEM = (1<<5), //!< specifies one element of extra data
39 eEXTRA_ITEMS = (1<<6), //!< specifies an array of extra data
40 eEXTRA_NAME = (1<<7), //!< specifies a name of extra data
41 eUNION = (1<<8), //!< declares a union
42 ePADDING = (1<<9), //!< declares explicit padding data
43 eALIGNMENT = (1<<10), //!< declares aligned data
44 eCOUNT_MASK_MSB = (1<<11), //!< specifies that the count value's most significant bit needs to be masked out
45 eCOUNT_SKIP_IF_ONE = (1<<12), //!< specifies that the count value is treated as zero for a variable value of one - special case for single triangle meshes
46 eCONTROL_FLIP = (1<<13), //!< specifies that the control value is the negate of the variable value
47 eCONTROL_MASK = (1<<14), //!< specifies that the control value is masked - mask bits are assumed to be within eCONTROL_MASK_RANGE
48 eCONTROL_MASK_RANGE = 0x000000FF, //!< mask range allowed for eCONTROL_MASK
49 eFORCE_DWORD = 0x7fffffff
50 };
51 };
52
53#ifndef PX_DOXYGEN
54}
55#endif
56
57#endif
58