Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
SoftBodyUpdateContext.h
Go to the documentation of this file.
1// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
2// SPDX-FileCopyrightText: 2023 Jorrit Rouwe
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
9
11
12class Body;
15class SimShapeFilter;
16
21class SoftBodyUpdateContext : public NonCopyable
22{
23public:
24 static constexpr uint cVertexCollisionBatch = 64;
25 static constexpr uint cVertexConstraintBatch = 256;
26
27 // Input
28 Body * mBody;
29 SoftBodyMotionProperties * mMotionProperties;
30 SoftBodyContactListener * mContactListener;
31 const SimShapeFilter * mSimShapeFilter;
32 RMat44 mCenterOfMassTransform;
33 Vec3 mGravity;
34 Vec3 mDisplacementDueToGravity;
35 float mDeltaTime;
36 float mSubStepDeltaTime;
37
39 enum class EState
40 {
41 DetermineCollisionPlanes,
42 DetermineSensorCollisions,
43 ApplyConstraints,
44 Done
45 };
46
47 // State of the update
48 atomic<EState> mState { EState::DetermineCollisionPlanes };
49 atomic<uint> mNextCollisionVertex { 0 };
50 atomic<uint> mNumCollisionVerticesProcessed { 0 };
51 atomic<uint> mNextSensorIndex { 0 };
52 atomic<uint> mNumSensorsProcessed { 0 };
53 atomic<uint> mNextIteration { 0 };
54 atomic<uint> mNextConstraintGroup { 0 };
55 atomic<uint> mNumConstraintGroupsProcessed { 0 };
56
57 // Output
58 Vec3 mDeltaPosition;
59 ECanSleep mCanSleep;
60};
62
unsigned int uint
Definition Core.h:493
#define JPH_NAMESPACE_END
Definition Core.h:419
#define JPH_NAMESPACE_BEGIN
Definition Core.h:413
ECanSleep
Enum that determines if an object can go to sleep.
Definition MotionProperties.h:22
Definition Body.h:39
Holds a 4x4 matrix of floats, but supports also operations on the 3x3 upper left part of the matrix.
Definition Mat44.h:13
Class that makes another class non-copyable. Usage: Inherit from NonCopyable.
Definition NonCopyable.h:11
Filter class used during the simulation (PhysicsSystem::Update) to filter out collisions at shape lev...
Definition SimShapeFilter.h:17
Definition SoftBodyContactListener.h:33
This class contains the runtime information of a soft body.
Definition SoftBodyMotionProperties.h:35
Definition Vec3.h:17