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.
|
static String[] |
xmlAttributes
It specifies the arguments required to be saved by an XML format as well as
the constructor being called to recreate an object from an XML format.
|
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 static String[] xmlAttributes
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)
ExternalConstraint
addPrunableObjects
in interface ExternalConstraint
o
- the object that was prunedaccumulator
- the set of objects to add the object topublic Collection<ObstacleObjectFrame> genInternalConstraints(Geost geost)
ExternalConstraint
genInternalConstraints
in interface ExternalConstraint
geost
- the geost kernel that will use the generated constraintpublic void onObjectUpdate(GeostObject o)
ExternalConstraint
onObjectUpdate
in interface ExternalConstraint
public Collection<? extends InternalConstraint> getObjectConstraints(GeostObject o)
ExternalConstraint
getObjectConstraints
in interface ExternalConstraint
o
- the geost object that needs to be constrainedpublic boolean isInternalConstraintApplicableTo(InternalConstraint ic, GeostObject o)
ExternalConstraint
isInternalConstraintApplicableTo
in interface ExternalConstraint
ic
- internal constraint being checkedo
- object to which internal constrain should apply topublic GeostObject[] getObjectScope()
ExternalConstraint
getObjectScope
in interface ExternalConstraint
Copyright © 2015. All rights reserved.