载入中...
搜索中...
未找到
Destruction.cpp
浏览该文件的文档.
33eve::Result<GeometryCollectionAsset> Destruction::makeClusterPillarFixture(float interClusterStrain) {
38 World3D* world, const GeometryCollectionAsset& asset, float originX, float originY, float originZ) {
41 eve::DiagnosticCode::InvalidArgument, "geometry-collection create requires a World3D", "world"));
125DestructionField makeImpulseField(float x, float y, float z, float radius, float magnitude, float dirX, float dirY,
141void applyStrainFieldScript(GeometryCollectionInstance* self, float x, float y, float z, float radius,
152void applyAnchorFieldScript(GeometryCollectionInstance* self, float x, float y, float z, float radius) {
162void applySleepFieldScript(GeometryCollectionInstance* self, float x, float y, float z, float radius) {
172void applyImpulseFieldScript(GeometryCollectionInstance* self, float x, float y, float z, float radius,
263 "GeometryCollectionAsset", std::function<GeometryCollectionAsset*()>([]() -> GeometryCollectionAsset* {
271 std::function<GeometryCollectionInstance*()>([]() -> GeometryCollectionInstance* { return nullptr; }), true);
278 instance.addFunc("boneCount", [](GeometryCollectionInstance* self) { return self->boneCount(); });
279 instance.addFunc("edgeCount", [](GeometryCollectionInstance* self) { return self->edgeCount(); });
299 instance.addFunc("hasLiveWorld", [](GeometryCollectionInstance* self) { return self->hasLiveWorld(); });
305 instance.addFunc("releaseBodies", [](GeometryCollectionInstance* self) { self->releaseBodies(); });
Owning, renderer-independent dynamic values.
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result< Duration > fromSeconds(double seconds)
Convert finite seconds to the nearest nanosecond.
Definition Time.cpp:16
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Result< Value > fromJson(std::string_view json)
Parse one strict JSON value into an owning Value.
Definition Value.cpp:57
constexpr std::uint64_t value() const noexcept
Returns the underlying value at an explicit protocol boundary.
Definition StrongUint64.h:26
Optional physics satellite for Chaos-style geometry-collection destruction.
Definition Destruction.h:22
GeometryCollectionInstance * createInstanceScript(World3D *world, GeometryCollectionAsset *asset, float originX, float originY, float originZ)
Script facade: create instance or throw; VM owns the pointer.
Definition Destruction.cpp:75
GeometryCollectionAsset * newClusterPillarFixtureScript(float interClusterStrain)
Script facade: cluster pillar fixture or throw.
Definition Destruction.cpp:55
eve::Result< GeometryCollectionAsset > makeWeldedBoxesFixture(float strainThreshold=1.f)
Build the two-box welded fixture used by demos and tests.
Definition Destruction.cpp:29
GeometryCollectionAsset * assetFromJsonScript(const std::string &json)
Script facade: decode asset JSON or throw; VM owns the pointer.
Definition Destruction.cpp:65
eve::Result< std::unique_ptr< GeometryCollectionInstance > > createInstance(World3D *world, const GeometryCollectionAsset &asset, float originX, float originY, float originZ)
Instantiate a collection against a live World3D. @ownership Caller owns the returned instance.
Definition Destruction.cpp:37
GeometryCollectionAsset * newWeldedBoxesFixtureScript(float strainThreshold)
Script facade: welded boxes fixture or throw.
Definition Destruction.cpp:45
eve::Result< GeometryCollectionAsset > makeClusterPillarFixture(float interClusterStrain=0.8f)
Build the two-cluster anchored pillar fixture used by demos.
Definition Destruction.cpp:33
eve::Result< void > registerGeometryCollectionSchema()
Registers asset physics:geometry-collection@2 and instance snapshot physics:geometry-collection-insta...
Definition Destruction.cpp:17
eve::Result< GeometryCollectionAsset > assetFromJson(const std::string &json)
Decode a versioned asset document.
Definition Destruction.cpp:23
Runtime owner of bone state, connection strain, and PhysicsLink bindings.
Definition GeometryCollectionInstance.h:96
static eve::Result< std::unique_ptr< GeometryCollectionInstance > > create(World3D &world, const GeometryCollectionAsset &asset, float originX, float originY, float originZ)
Create bodies for every bone and bind PhysicsLinks.
Definition GeometryCollectionInstance.cpp:38
Box3D rigid-body world. Script coordinates are meters (Box3D native), unlike 2D World which uses pixe...
Definition World3D.h:63
@ Exception
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
@ InvalidArgument
One volumetric influence applied to a geometry-collection instance.
Definition DestructionField.h:28
Immutable cooked/authored geometry-collection asset.
Definition GeometryCollectionAsset.h:48
static eve::Result< void > ensureSchemaRegistered()
Idempotently register version 2 in the process schema registry.
Definition GeometryCollectionAsset.cpp:269
static eve::Result< GeometryCollectionAsset > fromValue(const eve::Value &value)
Decode and validate version 2, or migrate version 1 (cluster fields = 0).
Definition GeometryCollectionAsset.cpp:277
static eve::Result< GeometryCollectionAsset > makeWeldedBoxesFixture(float strainThreshold=1.f)
Build a two-box welded fixture used by tests and the smoke example.
Definition GeometryCollectionAsset.cpp:326
static eve::Result< GeometryCollectionAsset > makeClusterPillarFixture(float interClusterStrain=0.8f)
Build a 2×3 anchored pillar with two cook clusters for demos.
Definition GeometryCollectionAsset.cpp:349
static eve::Result< void > ensureSchemaRegistered()
Idempotently register version 1 in the process schema registry.
Definition GeometryCollectionSnapshot.cpp:235
static eve::Result< GeometryCollectionInstanceSnapshot > fromValue(const eve::Value &value)
Decode and validate version 1 transactionally.
Definition GeometryCollectionSnapshot.cpp:243