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 PX_BVH_STRUCTURE_DESC_H
32#define PX_BVH_STRUCTURE_DESC_H
33/** \addtogroup cooking
34@{
35*/
36
37#include "common/PxCoreUtilityTypes.h"
38#include "common/PxPhysXCommonConfig.h"
39#include "foundation/PxTransform.h"
40#include "foundation/PxBounds3.h"
41
42#if !PX_DOXYGEN
43namespace physx
44{
45#endif
46
47/**
48
49\brief Descriptor class for #PxBVHStructure.
50
51@see PxBVHStructure
52*/
53class PxBVHStructureDesc
54{
55public:
56 PX_INLINE PxBVHStructureDesc();
57
58 /**
59 \brief Pointer to first bounding box.
60 */
61 PxBoundedData bounds;
62
63 /**
64 \brief Initialize the BVH structure descriptor
65 */
66 PX_INLINE void setToDefault();
67
68 /**
69 \brief Returns true if the descriptor is valid.
70 \return true if the current settings are valid.
71 */
72 PX_INLINE bool isValid() const;
73
74
75protected:
76};
77
78
79
80PX_INLINE PxBVHStructureDesc::PxBVHStructureDesc()
81{
82}
83
84PX_INLINE void PxBVHStructureDesc::setToDefault()
85{
86 *this = PxBVHStructureDesc();
87}
88
89PX_INLINE bool PxBVHStructureDesc::isValid() const
90{
91 // Check BVH desc data
92 if(!bounds.data)
93 return false;
94 if(bounds.stride < sizeof(PxBounds3)) //should be at least one point's worth of data
95 return false;
96
97 if(bounds.count == 0)
98 return false;
99
100 return true;
101}
102
103#if !PX_DOXYGEN
104} // namespace physx
105#endif
106
107
108 /** @} */
109#endif // PX_BVH_STRUCTURE_DESC_H
110

source code of qtquick3dphysics/src/3rdparty/PhysX/include/cooking/PxBVHStructureDesc.h