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#ifndef PXV_GEOMETRY_H
32#define PXV_GEOMETRY_H
33
34#include "foundation/PxTransform.h"
35#include "PxvConfig.h"
36
37/*!
38\file
39Geometry interface
40*/
41
42/************************************************************************/
43/* Shapes */
44/************************************************************************/
45
46// moved to
47#include "GuGeometryUnion.h"
48
49namespace physx
50{
51
52struct PxsShapeCore
53{
54//= ATTENTION! =====================================================================================
55// Changing the data layout of this class breaks the binary serialization format. See comments for
56// PX_BINARY_SERIAL_VERSION. If a modification is required, please adjust the getBinaryMetaData
57// function. If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
58// accordingly.
59//==================================================================================================
60
61// PX_SERIALIZATION
62 PxsShapeCore() {}
63 PxsShapeCore(const PxEMPTY) : geometry(PxEmpty) {}
64//~PX_SERIALIZATION
65
66 // PT: TODO: unify naming convention
67 PX_ALIGN_PREFIX(16)
68 PxTransform transform PX_ALIGN_SUFFIX(16);
69 PxReal contactOffset;
70 PxU8 mShapeFlags; // !< API shape flags // PT: TODO: use PxShapeFlags here. Needs to move flags to separate file.
71 PxU8 mOwnsMaterialIdxMemory; // PT: for de-serialization to avoid deallocating material index list. Moved there from Sc::ShapeCore (since one byte was free).
72 PxU16 materialIndex;
73 Gu::GeometryUnion geometry;
74};
75
76//PX_COMPILE_TIME_ASSERT( (sizeof(PxsShapeCore)&0xf) == 0);
77
78}
79
80#endif
81

source code of qtquick3dphysics/src/3rdparty/PhysX/source/lowlevel/api/include/PxvGeometry.h