载入中...
搜索中...
未找到
CrowdAvoidance.cpp
浏览该文件的文档.
12 Diagnostic::error(DiagnosticCode::InvalidArgument, "Invalid predictive avoidance settings", "avoidance"));
33 forEachNeighbor(xs[i], ys[i], float(std::min(query, double(std::numeric_limits<float>::max()))), [&](int slot) {
51 const float baseAngle = preferredLength > 1e-5f ? std::atan2(preferredY, preferredX) : headings[i];
68 std::hypot(x - preferredX, y - preferredY) / speed + 0.15 * std::hypot(x - vxs[i], y - vys[i]) / speed;
102 if (clampToField && (px - radii[i] < field.getOriginX() || py - radii[i] < field.getOriginY() ||
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
bool resolvePenetration(float &wx, float &wy, float radius) const
圆 vs 阻挡格碰撞消解:把圆心从覆盖到的阻挡格中推出来。
Definition CrowdField.cpp:272
Result< void > configureAvoidance(AvoidanceSettings settings)
Configure predictive velocity sampling; invalid input leaves settings unchanged.
Definition CrowdAvoidance.cpp:7
AvoidanceSettings getAvoidanceSettings() const
Return an owning settings snapshot. @thread Simulation thread only.
Definition CrowdAvoidance.cpp:17
Definition Crowd.cpp:14
@ InvalidArgument
@ Applied
Optional bounded velocity sampling for RTS local avoidance.
Definition Crowd.h:48
std::vector< float > xs
SOA agent storage, indexed by compact slot id. @cost Linear in agent count; mutation keeps all owned ...
Definition CrowdInternal.h:54
std::vector< AvoidanceNeighbor > avoidanceNeighbors
Per-step avoidance neighbor scratch space. @cost Linear in checked neighbors and bounded by avoidance...
Definition CrowdInternal.h:47
std::vector< int32_t > avoidancePriorities
Definition CrowdInternal.h:58
void selectAvoidanceVelocity(size_t index, float dt, float &vx, float &vy)
Definition CrowdAvoidance.cpp:19
void forEachNeighbor(float qx, float qy, float radius, Fn &&fn) const
Definition CrowdInternal.h:88
bool canInteract(size_t a, size_t b) const
Definition CrowdInternal.h:80