scenic.core.pruning¶
Pruning parts of the sample space which violate requirements.
Summary of Module Members¶
Functions
Get the current value of an object’s property, taking into account prior pruning. 

Find where objects aligned to the given fields can satisfy the given RH bounds. 

Match calls to a given method, taking into account distribution decorators. 

Match uniform samples from a Region, returning the Region if any. 

Match headings defined by a PolygonalVectorField at the given position. 

Upper bound the distance between the given Objects. 

Prune a Scenario, removing infeasible parts of the space. 

Prune based on the requirement that individual Objects fit within their container. 

Prune based on requirements bounding the relative heading of an Object. 

Lower/upper bound the possible RH between two headings with bounded disturbances. 

Upper bound the distance from an Object to another it can see. 
Member Details¶

currentPropValue
(obj, prop)[source]¶ Get the current value of an object’s property, taking into account prior pruning.

isMethodCall
(thing, method)[source]¶ Match calls to a given method, taking into account distribution decorators.

matchPolygonalField
(heading, position)[source]¶ Match headings defined by a PolygonalVectorField at the given position.
Matches headings exactly equal to a PolygonalVectorField, or offset by a bounded disturbance. Returns a triplet consisting of the matched field if any, together with lower/upper bounds on the disturbance.

prune
(scenario, verbosity=1)[source]¶ Prune a Scenario, removing infeasible parts of the space.
This function directly modifies the Distributions used in the Scenario, but leaves the conditional distribution under the scenario’s requirements unchanged.

pruneContainment
(scenario, verbosity)[source]¶ Prune based on the requirement that individual Objects fit within their container.
Specifically, if O is positioned uniformly in region B and has container C, then we can instead pick a position uniformly in their intersection. If we can also lower bound the radius of O, then we can first erode C by that distance.

pruneRelativeHeading
(scenario, verbosity)[source]¶ Prune based on requirements bounding the relative heading of an Object.
Specifically, if an object O is:
positioned uniformly within a polygonal region B;
aligned to a polygonal vector field F (up to a bounded offset);
and another object O’ is:
aligned to a polygonal vector field F’ (up to a bounded offset);
at most some finite maximum distance from O;
required to have relative heading within a bounded offset of that of O;
then we can instead position O uniformly in the subset of B intersecting the cells of F which satisfy the relative heading requirements w.r.t. some cell of F’ which is within the distance bound.

maxDistanceBetween
(scenario, obj, target)[source]¶ Upper bound the distance between the given Objects.

visibilityBound
(obj, target)[source]¶ Upper bound the distance from an Object to another it can see.