载入中...
搜索中...
未找到
SoftBody3DDefinition.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include "common/Result.h"
6#include "common/Value.h"
8
9#include <cstdint>
10#include <string_view>
11
12namespace eve::physics {
13
22 static constexpr std::string_view SchemaId = "physics:softbody3d";
23 static constexpr std::uint32_t SchemaVersion = 1;
24
25 int cols = 4, rows = 4, layers = 4;
26 float spacing = 0.35f;
27 float originX = 0.f, originY = 0.f, originZ = 0.f;
28 float gravityX = 0.f, gravityY = -9.8f, gravityZ = 0.f;
29 float deformationResistance = 0.8f;
30 int iterations = 5;
31 float damping = 0.04f, particleRadius = 0.2f, particleMass = 0.1f;
32 float plasticYield = 0.f, plasticCreep = 0.f, plasticRecovery = 0.f, maxDeformation = 0.f;
33 bool selfCollision = false;
34
36 [[nodiscard("check soft-body definition validation")]] eve::Result<void> validate() const;
38 [[nodiscard("check soft-body definition encoding")]] eve::Result<eve::Value> toValue() const;
40 [[nodiscard]] static eve::schema::SchemaDefinition schemaDefinition();
42 [[nodiscard("check soft-body schema registration")]] static eve::Result<void> ensureSchemaRegistered();
44 [[nodiscard("check soft-body definition decoding")]]
45 static eve::Result<SoftBody3DDefinition> fromValue(const eve::Value& value);
46};
47
48} // namespace eve::physics
double value
#define EVENGINE_API_BACKENDS
Definition Export.h:108
int rows
int cols
Move-only, checked operation results for the common layer.
int spacing
int iterations
Definition TreeMesh.cpp:311
Owning, renderer-independent dynamic values.
Move-only operation result carrying either a value or Status.
Definition Result.h:155
The canonical owning dynamic value used by data-facing protocols.
Definition Value.h:31
Optional physics backend for vehicle mobility and body attach.
Definition Climbing.h:36
Versioned, owning creation definition for one volumetric soft body.
Versioned runtime schema for a JSON object.
Definition SchemaTypes.h:93