public class NonOverlapping extends Object implements ExternalConstraint
| Modifier and Type | Field and Description |
|---|---|
ObstacleObjectFrame[] |
objectConstraintMap
It maps object (through object.id) to the internal constraint connected to this object.
|
GeostObject[] |
objects
It specifies the objects which are being in the scope of this external constraint.
|
int[] |
selectedDimensions
the dimensions (from 0 to dimension-1) on which the constraint applies.
|
| Constructor and Description |
|---|
NonOverlapping(Collection<GeostObject> objects,
int[] selectedDimensions)
It creates an external constraint to make sure that specified set of objects does not overlap
in k-dimensional space on the given number of selected dimensions within this k-dimensional space.
|
NonOverlapping(GeostObject[] objects,
int[] selectedDimensions)
It creates an external constraint to make sure that specified set of objects does not overlap
in k-dimensional space on the given number of selected dimensions within this k-dimensional space.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
addPrunableObjects(GeostObject o,
SimpleHashSet<GeostObject> accumulator)
It adds to the accumulator collection the objects that are likely to be pruned if the given object
changes.
|
Collection<ObstacleObjectFrame> |
genInternalConstraints(Geost geost)
It generates internal constraints which will be used by Geost's sweeping
algorithm.
|
Collection<? extends InternalConstraint> |
getObjectConstraints(GeostObject o)
It provides the collection of internal constraints that the given object has to satisfy.
|
GeostObject[] |
getObjectScope()
Provides the collection of objects that this constraint applies to
|
boolean |
isInternalConstraintApplicableTo(InternalConstraint ic,
GeostObject o)
Returns true if the external constraint generated the supplied internal constraint ic, and that ic
applies to object o.
|
void |
onObjectUpdate(GeostObject o)
Handler method called by the Geost kernel when the domain of the object changes.
|
public final GeostObject[] objects
public ObstacleObjectFrame[] objectConstraintMap
public final int[] selectedDimensions
public NonOverlapping(GeostObject[] objects, int[] selectedDimensions)
objects - the set of objects which can not overlapselectedDimensions - the dimensions among which there must be at least one for which the objects do not overlap.public NonOverlapping(Collection<GeostObject> objects, int[] selectedDimensions)
objects - the set of objects which can not overlapselectedDimensions - the dimensions among which there must be at least one for which the objects do not overlap.public boolean addPrunableObjects(GeostObject o, SimpleHashSet<GeostObject> accumulator)
ExternalConstraintTODO, optimize all the code around this functionality, avoid situation when accumulator has all objects anyway and external constraints are continuously queried to add objects and keep adding objects which are already in the set.
addPrunableObjects in interface ExternalConstrainto - the object that was prunedaccumulator - the set of objects to add the object topublic Collection<ObstacleObjectFrame> genInternalConstraints(Geost geost)
ExternalConstraintThe generation of internal constraints is done only once per search, implying that it is possible to do costly operations in order to generate internal constraints. However, another implication of this one-time use is that the internal constraints generated have to remain valid during the whole search.
genInternalConstraints in interface ExternalConstraintgeost - the geost kernel that will use the generated constraintpublic void onObjectUpdate(GeostObject o)
ExternalConstraintonObjectUpdate in interface ExternalConstrainto - the objectpublic Collection<? extends InternalConstraint> getObjectConstraints(GeostObject o)
ExternalConstraintThis method is used by the kernel only once per object, at the beginning of the search, to collect the set of constraints to use for each object.
getObjectConstraints in interface ExternalConstrainto - the geost object that needs to be constrainedpublic boolean isInternalConstraintApplicableTo(InternalConstraint ic, GeostObject o)
ExternalConstraintisInternalConstraintApplicableTo in interface ExternalConstraintic - internal constraint being checkedo - object to which internal constrain should apply topublic GeostObject[] getObjectScope()
ExternalConstraintgetObjectScope in interface ExternalConstraintCopyright © 2022. All rights reserved.