Package barnes_hut
Class BHTree
java.lang.Object
barnes_hut.BHTree
public class BHTree
extends java.lang.Object
Représente un noeud-arbre à huit branches de l'algorithme de Barnes-Hut.
-
Field Summary
Fields Modifier and Type Field Description private GenericObjectbodyCorrespond à un corps.private OctalboxCorrespond au noeud/boîte associé à ce noeud-arbre.private CenterOfMassCOMCorrespond au centre de gravité (centre de la masse) du noeud-arbre.private BHTreeNEBCorrespond au sous-arbre placé au Nord-Est Arrière.private BHTreeNEFCorrespond au sous-arbre placé au Nord-Est Avant.private BHTreeNWBCorrespond au sous-arbre placé au Nord-Ouest Arrière.private BHTreeNWFCorrespond au sous-arbre placé au Nord-Ouest Avant.private BHTreeSEBCorrespond au sous-arbre placé au Sud-Est Arrière.private BHTreeSEFCorrespond au sous-arbre placé au Sud-Est Avant.private BHTreeSWBCorrespond au sous-arbre placé au Sud-Ouest Arrière.private BHTreeSWFCorrespond au sous-arbre placé au Sud-Ouest Avant.private doubleTHETACorrespond à une valeur permettant la vérification de la distance d'un objet au centre de gravité du noeud-arbre. -
Constructor Summary
-
Method Summary
Modifier and Type Method Description booleanboxDivided()Permet de vérifier si le noeud-arbre est divisé ou non.private voiddivideBox()Permet de créer les huit fils pour le noeud-arbre.OctalgetBox()Permet de récupérer la boite liée au noeud de l'arbre.doublegetTheta()Permet de récupérer la valeur actuelle du Théta.voidinsertion(GenericObject bodyToInsert)Permet d'insérer un corps dans le noeud-arbre.private voidputBodyInBHTree(GenericObject bodyToInsert)Permet d'insérer un corps dans les sous-arbres du noeud-arbre actuel.voidsetTheta(double newTheta)Permet de remplacer la valeur du Théta.java.lang.StringtoString()voidupdateForceAboutObject(GenericObject bodyToUpdate)Permet de mettre à jour les forces exercées sur l'objet par le centre de gravité.
-
Field Details
-
THETA
private double THETACorrespond à une valeur permettant la vérification de la distance d'un objet au centre de gravité du noeud-arbre. -
body
Correspond à un corps. Si l'attribut est à null, alors il n'y a pas de corps stocké et donc le noeud-arbre n'est pas une feuille. Sinon, le noeud-arbre est une feuille et on stocke le corps associé à cette feuille. -
COM
Correspond au centre de gravité (centre de la masse) du noeud-arbre. -
box
Correspond au noeud/boîte associé à ce noeud-arbre. -
NWF
Correspond au sous-arbre placé au Nord-Ouest Avant. -
NWB
Correspond au sous-arbre placé au Nord-Ouest Arrière. -
NEF
Correspond au sous-arbre placé au Nord-Est Avant. -
NEB
Correspond au sous-arbre placé au Nord-Est Arrière. -
SWF
Correspond au sous-arbre placé au Sud-Ouest Avant. -
SWB
Correspond au sous-arbre placé au Sud-Ouest Arrière. -
SEF
Correspond au sous-arbre placé au Sud-Est Avant. -
SEB
Correspond au sous-arbre placé au Sud-Est Arrière.
-
-
Constructor Details
-
Method Details
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-
getBox
Permet de récupérer la boite liée au noeud de l'arbre.- Returns:
- Boite
-
getTheta
public double getTheta()Permet de récupérer la valeur actuelle du Théta.- Returns:
- Valeur du Théta
-
setTheta
public void setTheta(double newTheta)Permet de remplacer la valeur du Théta.- Parameters:
newTheta- Nouvelle valeur pour le Théta
-
boxDivided
public boolean boxDivided()Permet de vérifier si le noeud-arbre est divisé ou non.- Returns:
- Booléen : true s'il est divisé, false sinon.
-
insertion
Permet d'insérer un corps dans le noeud-arbre.- Parameters:
bodyToInsert- Corps à insérer
-
putBodyInBHTree
Permet d'insérer un corps dans les sous-arbres du noeud-arbre actuel.- Parameters:
bodyToInsert- Corps à insérer
-
divideBox
private void divideBox()Permet de créer les huit fils pour le noeud-arbre. -
updateForceAboutObject
Permet de mettre à jour les forces exercées sur l'objet par le centre de gravité.- Parameters:
bodyToUpdate- Corps à mettre à jour
-