RavEngine
Loading...
Searching...
No Matches
DySoftBodyCore.h
1
// Redistribution and use in source and binary forms, with or without
2
// modification, are permitted provided that the following conditions
3
// are met:
4
// * Redistributions of source code must retain the above copyright
5
// notice, this list of conditions and the following disclaimer.
6
// * Redistributions in binary form must reproduce the above copyright
7
// notice, this list of conditions and the following disclaimer in the
8
// documentation and/or other materials provided with the distribution.
9
// * Neither the name of NVIDIA CORPORATION nor the names of its
10
// contributors may be used to endorse or promote products derived
11
// from this software without specific prior written permission.
12
//
13
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
14
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
//
25
// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved.
26
27
#ifndef DY_SOFTBODY_CORE_H
28
#define DY_SOFTBODY_CORE_H
29
30
#include "foundation/PxSimpleTypes.h"
31
#include "foundation/PxTransform.h"
32
#include "PxSoftBody.h"
33
#include "PxsFEMSoftBodyMaterialCore.h"
34
#include "foundation/PxArray.h"
35
36
namespace
physx
37
{
38
namespace
Dy
39
{
40
struct
SoftBodyCore
41
{
42
public
:
43
PxQuat
initialRotation;
44
45
PxFEMParameters
parameters;
46
PxReal sleepThreshold;
47
PxReal freezeThreshold;
48
PxReal wakeCounter;
49
PxReal maxPenBias;
50
PxU16 solverIterationCounts;
//vel iters are in low word and pos iters in high word.
51
bool
dirty;
52
PxSoftBodyFlags
mFlags;
53
54
55
void
setMaterial(
const
PxU16 materialHandle)
56
{
57
mMaterialHandles.
pushBack
(materialHandle);
58
}
59
60
void
clearMaterials() { mMaterialHandles.
clear
(); }
61
62
PxArray<PxU16>
mMaterialHandles;
63
64
//device
65
PxBuffer
* mPositionInvMass;
66
67
//host
68
PxBuffer
* mPositionInvMassCPU;
69
PxBuffer
* mRestPositionInvMassCPU;
70
71
//device
72
PxBuffer
* mSimPositionInvMass;
73
PxBuffer
* mSimVelocityInvMass;
74
PxBuffer
* mKinematicTarget;
75
76
//host
77
PxBuffer
* mSimPositionInvMassCPU;
78
PxBuffer
* mSimVelocityInvMassCPU;
79
PxBuffer
* mKinematicTargetCPU;
80
};
81
82
}
83
}
84
85
#endif
86
physx::PxArray
Definition
PxArray.h:53
physx::PxArray::clear
PX_INLINE void clear()
Definition
PxArray.h:250
physx::PxArray::pushBack
PX_FORCE_INLINE T & pushBack(const T &a)
Definition
PxArray.h:296
physx::PxBuffer
Buffer for delayed bulk read and write operations supporting host and GPU device memory spaces.
Definition
PxBuffer.h:66
physx::PxFlags< PxSoftBodyFlag::Enum, PxU32 >
physx::PxQuat
This is a quaternion class. For more information on quaternion mathematics consult a mathematics sour...
Definition
PxQuat.h:50
physx
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition
PxBoxController.h:39
physx::Dy::SoftBodyCore
Definition
DySoftBodyCore.h:41
physx::PxFEMParameters
Set of parameters to control the sleeping and collision behavior of FEM based objects.
Definition
PxFEMParameter.h:45
RavEngine
deps
physx
physx
source
lowleveldynamics
include
DySoftBodyCore.h
Generated by
1.9.8