1//
2// Redistribution and use in source and binary forms, with or without
3// modification, are permitted provided that the following conditions
4// are met:
5// * Redistributions of source code must retain the above copyright
6// notice, this list of conditions and the following disclaimer.
7// * Redistributions in binary form must reproduce the above copyright
8// notice, this list of conditions and the following disclaimer in the
9// documentation and/or other materials provided with the distribution.
10// * Neither the name of NVIDIA CORPORATION nor the names of its
11// contributors may be used to endorse or promote products derived
12// from this software without specific prior written permission.
13//
14// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
15// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
18// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25//
26// Copyright (c) 2008-2021 NVIDIA Corporation. All rights reserved.
27// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
28// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
29
30
31
32#ifndef PX_REPX_SIMPLE_TYPE_H
33#define PX_REPX_SIMPLE_TYPE_H
34
35/** \addtogroup extensions
36 @{
37*/
38
39#include "foundation/PxSimpleTypes.h"
40#include "cooking/PxCooking.h"
41#include "common/PxStringTable.h"
42#include "common/PxSerialFramework.h"
43
44#if !PX_DOXYGEN
45namespace physx
46{
47#endif
48
49 /**
50 \brief Helper class containing the mapping of id to object, and type name.
51 */
52 struct PxRepXObject
53 {
54 /**
55 \brief Identifies the extension meant to handle this object.
56 @see PxTypeInfo, PX_DEFINE_TYPEINFO, PxRepXSerializer
57 */
58 const char* typeName;
59
60 /**
61 \brief Pointer to the serializable this was created from
62 */
63 const void* serializable;
64
65 /**
66 \brief Id given to this object at some point
67 */
68 PxSerialObjectId id;
69 PxRepXObject( const char* inTypeName = "", const void* inSerializable = NULL, const PxSerialObjectId inId = 0 )
70 : typeName( inTypeName )
71 , serializable( inSerializable )
72 , id( inId )
73 {
74 }
75 bool isValid() const { return serializable != NULL; }
76 };
77
78 /**
79 \brief Arguments required to instantiate a serializable object from RepX.
80
81 Extra arguments can be added to the object map under special ids.
82
83 @see PxRepXSerializer::objectToFile, PxRepXSerializer::fileToObject
84 */
85 struct PxRepXInstantiationArgs
86 {
87 PxPhysics& physics;
88 PxCooking* cooker;
89 PxStringTable* stringTable;
90 PxRepXInstantiationArgs( PxPhysics& inPhysics, PxCooking* inCooking = NULL , PxStringTable* inStringTable = NULL )
91 : physics( inPhysics )
92 , cooker( inCooking )
93 , stringTable( inStringTable )
94 {
95 }
96
97 PxRepXInstantiationArgs& operator=(const PxRepXInstantiationArgs&);
98 };
99
100
101#if !PX_DOXYGEN
102} // namespace physx
103#endif
104
105/** @} */
106#endif
107

source code of qtquick3dphysics/src/3rdparty/PhysX/include/extensions/PxRepXSimpleType.h