From 45b9ae6f4e84dce3f65f4123a216c259fa3f2c47 Mon Sep 17 00:00:00 2001 From: Daniel Fremont Date: Tue, 9 Jul 2024 15:32:34 -0700 Subject: [PATCH] convert globals used in requirements to distributions as needed --- src/scenic/core/requirements.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/scenic/core/requirements.py b/src/scenic/core/requirements.py index 7ea177d21..f143ae552 100644 --- a/src/scenic/core/requirements.py +++ b/src/scenic/core/requirements.py @@ -9,7 +9,7 @@ import rv_ltl import trimesh -from scenic.core.distributions import Samplable, needsSampling +from scenic.core.distributions import Samplable, needsSampling, toDistribution from scenic.core.errors import InvalidScenarioError from scenic.core.lazy_eval import needsLazyEvaluation from scenic.core.propositions import Atomic, PropositionNode @@ -71,6 +71,10 @@ def compile(self, namespace, scenario, syntax=None): bindings, ego, line = self.bindings, self.egoObject, self.line condition, ty = self.condition, self.ty + # Convert bound values to distributions as needed + for name, value in bindings.items(): + bindings[name] = toDistribution(value) + # Check whether requirement implies any relations used for pruning canPrune = condition.check_constrains_sampling() if canPrune: