|
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectnet.algart.model3d.common.movement.model.ElasticBallByBunkerWallInteractionRule
public final class ElasticBallByBunkerWallInteractionRule extends java.lang.Object implements InteractionRule
Interaction between bunker wall and elastic ball.
In this class, isApplicable method returns true if and only if
ElasticBallBunkerWallcalculateForce method fills resultXYZ vector
by some force F, depending on the volume of intersection of the sphere and the half-space
describing the wall and, if the friction coefficient of the ball
is not zero, on the velocity of the ball. The precise behaviour of this rule is not specified, but
it corresponds to the general specification of the elastic balls in ElasticBall class.
Note that if sphere does not intersect the wall (in other word,
it is not partially outside the bunker),
than the interaction force F=0.
This class is immutable and thread-safe: there are no ways to modify settings of the created instance.
AlgART Laboratory 2010
| Constructor and Description |
|---|
ElasticBallByBunkerWallInteractionRule()
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
calculateForce(double[] resultXYZ,
Item toItem,
Item byItem,
double time)
Calculates the force F=(Fx,Fy,Fz) of the action of byItem to toItem and returns it in first 3 elements of resultXYZ array (x-component Fx |
boolean |
isApplicable(Item toItem,
Item byItem)
Checks whether this interaction type is applicable to the given items. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ElasticBallByBunkerWallInteractionRule()
| Method Detail |
|---|
public boolean isApplicable(Item toItem,
Item byItem)
InteractionRuleInteractionRule.calculateForce(double[], Item, Item, double) method fills its result
(first 3 elements of resultXYZ array) by 0.0.
If this method returns true, then with high probability
InteractionRule.calculateForce(double[], Item, Item, double) method returns a non-zero force.
The arguments of this method can be null; in this case, this method returns false.
isApplicable in interface InteractionRuletoItem - the item to which byItem acts;
can be null, then this method returns false.byItem - the acting item; can be null, then this method returns false.
public boolean calculateForce(double[] resultXYZ,
Item toItem,
Item byItem,
double time)
InteractionRuleThis method must work correctly (return false and zero resulting force) also in all situations,
when InteractionRule.isApplicable(Item, Item) method returns false.
calculateForce in interface InteractionRuleresultXYZ - resulting force (x-component in resultXYZ[0],
y-component in resultXYZ[1], z-component in resultXYZ[2]).toItem - the item to which byItem acts.byItem - the acting item.time - the current time (some interaction can change behaviour in time).
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||