载入中...
搜索中...
未找到
CrowdSpawn.cpp
浏览该文件的文档.
39 if (!std::isfinite(batch.maxDistance) || batch.maxDistance < 0.f || !std::isfinite(batch.searchSpacing) ||
40 batch.searchSpacing <= 0.f || batch.maxPasses < 1 || batch.maxPasses > 256 || batch.maxChecks < 1 ||
52 if (!std::isfinite(impl_->xs[i]) || !std::isfinite(impl_->ys[i]) || !std::isfinite(impl_->radii[i]) ||
90 if (std::hypot(double(x) - d.xs[i], double(y) - d.ys[i]) < double(request.radius) + d.radii[i] - tolerance)
103 const double samples = std::max(8.0, std::ceil(6.283185307179586 * radius / batch.searchSpacing));
120 if (slot < 0) return failure(DiagnosticCode::InvariantViolation, "Validated spawn allocation rejected");
176 if (!active[i] || d.interactions[i].holdPosition || d.interactions[i].pushability == 0.f) continue;
178 const float limit = d.field.valid() ? std::min(d.radii[i], d.field.getCellSize() * 0.5f) : d.radii[i];
183 return failure(DiagnosticCode::PreconditionViolation, "Spawn displacement exceeds numeric range");
192 return failure(DiagnosticCode::PreconditionViolation, "Spawn relaxation did not converge within budget");
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 failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
Result< void > setAgentInteraction(int id, AgentInteraction policy)
Atomically replace the local interaction policy for a current compact slot.
Definition CrowdInteraction.cpp:5
int addNamedAgent(const std::string &stableId, float x, float y, float heading, float radius)
Add an agent with an editor/game-stable logical identifier.
Definition Crowd.cpp:125
Result< SpawnReceipt > applySpawnBatch(const SpawnBatch &batch)
Apply a caller-built spawn batch atomically, including neighbor displacement.
Definition CrowdSpawn.cpp:35
Definition Crowd.cpp:14
@ RejectOverlap
@ PushNeighbors
@ NearestFree
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
@ InvalidArgument
@ PreconditionViolation
@ InvariantViolation
@ Conflict
@ NoOp
@ Applied
Caller-built transaction; positive budgets bound search and relaxation. @cost Linear in requested age...
Definition Crowd.h:77
Observations from a committed spawn transaction. @cost Linear in created placement count; returned by...
Definition Crowd.h:96
One named agent to create; all fields are owned values.
Definition Crowd.h:67