Class Simulator

java.lang.Object
java.lang.Thread
math_physics.physics.Simulator
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
NBodySimulator

public class Simulator
extends java.lang.Thread
Classe permettant de simuler un espace avec des corps en intéraction. Utilisable en threads.
  • Nested Class Summary

    Nested classes/interfaces inherited from class java.lang.Thread

    java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.util.List<GenericObject> bodies
    Correspond à la liste contenant tous les corps du simulateur.
    protected double deltaTime
    Correspond au nombre de secondes écoulées lors de chaque lancement de simulation.
    protected java.util.Random generator
    Générateur aléatoire.
    protected int numberBody
    Correspond au nombre de corps qui se trouve dans la simulation.
    Vector3D origin
    Vecteur représentant le centre de l'espace de simulation.

    Fields inherited from class java.lang.Thread

    MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
  • Constructor Summary

    Constructors 
    Constructor Description
    Simulator()
    Constructeur de la classe Simulator.
    Simulator​(int numberBodyInitial, double massMax, double radius, double maxDistance, double maxVelocity)
    Constructeur de la classe Simulator.
  • Method Summary

    Modifier and Type Method Description
    void addBody​(double mass, double radius, Vector3D position, Vector3D velocity)
    Permet d'ajouter un objet à la liste des objets appartenant au simulateur.
    void addBody​(java.lang.String name, double mass, double radius, Vector3D position, Vector3D velocity)
    Permet d'ajouter un objet à la liste des objets appartenant au simulateur.
    void addBody​(GenericObject object)
    Permet d'ajouter un objet à la liste des objets appartenant au simulateur.
    void addRandomBody​(double massMax, double radius, double maxDistance, double maxVelocity)
    Permet d'ajouter un objet créé aléatoirement à la liste des objets appartenant au simulateur.
    protected double generateDouble​(double min, double max)
    Permet de générer un nombre flottant de type 'double' aléatoirement entre deux valeurs.
    protected Vector3D generateVector3D​(double max)
    Permet de générer aléatoirement un vecteur 3D.
    java.util.List<GenericObject> getBodies()
    Permet de récupérer la liste de tous les objets appartenant à la simulation.
    double getDeltaTime()
    Permet de récupérer le nombre de seconde que l'on écoule lors de chaque lancement de simulation.
    int getNumberBody()
    Permet de récupérer le nombre de corps de la simulation.
    double getTotalMass()
    Permet de récupérer la masse totale du système simulé.
    static void main​(java.lang.String[] args)
    Méthode principale.
    void removeBody​(GenericObject instance)
    Permet de supprimer un corps de la simulation.
    void run()
    Permet de lancer la simulation sur un autre Thread.
    GenericObject search​(int ID)
    Permet de retrouver un objet dans la simulation.
    void setDeltaTime​(double newDeltaTime)
    Permet de remplacer l'ancienne valeur de l'attribut deltaTime.
    void simulateAllBodies()
    Permet de simuler toutes les intéractions des objets.

    Methods inherited from class java.lang.Thread

    activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • origin

      public Vector3D origin
      Vecteur représentant le centre de l'espace de simulation.
    • numberBody

      protected int numberBody
      Correspond au nombre de corps qui se trouve dans la simulation.
    • generator

      protected java.util.Random generator
      Générateur aléatoire.
    • bodies

      protected java.util.List<GenericObject> bodies
      Correspond à la liste contenant tous les corps du simulateur.
    • deltaTime

      protected double deltaTime
      Correspond au nombre de secondes écoulées lors de chaque lancement de simulation.
  • Constructor Details

    • Simulator

      public Simulator()
      Constructeur de la classe Simulator.
    • Simulator

      public Simulator​(int numberBodyInitial, double massMax, double radius, double maxDistance, double maxVelocity)
      Constructeur de la classe Simulator.
      Parameters:
      numberBodyInitial - Entier représentant le nombre de corps initial à créer
      massMax - Masse maximum pour créer les objets
      radius - Rayon de la sphère pour l'affichage
      maxDistance - Distance initiale maximale pour placer les objets
      maxVelocity - Vitesse initiale maximale pour déplacer les objets
  • Method Details

    • run

      public void run()
      Permet de lancer la simulation sur un autre Thread.
      Specified by:
      run in interface java.lang.Runnable
      Overrides:
      run in class java.lang.Thread
    • generateDouble

      protected double generateDouble​(double min, double max)
      Permet de générer un nombre flottant de type 'double' aléatoirement entre deux valeurs.
      Parameters:
      min - Valeur minimale
      max - Valeur maximale
      Returns:
      Valeur aléatoirement tirée entre min et max
    • generateVector3D

      protected Vector3D generateVector3D​(double max)
      Permet de générer aléatoirement un vecteur 3D.
      Parameters:
      max - Valeur maximale
      Returns:
      Vecteur contenant des valeurs aléatoirement tirées entre 0 et max
    • getNumberBody

      public int getNumberBody()
      Permet de récupérer le nombre de corps de la simulation.
      Returns:
      Nombre de corps simulé
    • getBodies

      public java.util.List<GenericObject> getBodies()
      Permet de récupérer la liste de tous les objets appartenant à la simulation.
      Returns:
      Liste des objets
    • getDeltaTime

      public double getDeltaTime()
      Permet de récupérer le nombre de seconde que l'on écoule lors de chaque lancement de simulation.
      Returns:
      Nombre de secondes
    • setDeltaTime

      public void setDeltaTime​(double newDeltaTime)
      Permet de remplacer l'ancienne valeur de l'attribut deltaTime.
      Parameters:
      newDeltaTime - Nouvelle valeur
    • addRandomBody

      public void addRandomBody​(double massMax, double radius, double maxDistance, double maxVelocity)
      Permet d'ajouter un objet créé aléatoirement à la liste des objets appartenant au simulateur.
      Parameters:
      massMax - Masse maximum pour créer les objets
      radius - Rayon de la sphère pour l'affichage
      maxDistance - Distance initiale maximale pour placer les objets
      maxVelocity - Vitesse initiale maximale pour déplacer les objets
    • addBody

      public void addBody​(double mass, double radius, Vector3D position, Vector3D velocity)
      Permet d'ajouter un objet à la liste des objets appartenant au simulateur.
      Parameters:
      mass - Masse totale de l'objet
      radius - Rayon de l'objet
      position - Coordonnées de la position de l'objet
      velocity - Vitesse initiale de déplacement de l'objet
    • addBody

      public void addBody​(java.lang.String name, double mass, double radius, Vector3D position, Vector3D velocity)
      Permet d'ajouter un objet à la liste des objets appartenant au simulateur.
      Parameters:
      name - Nom de l'objet
      mass - Masse totale de l'objet
      radius - Rayon de l'objet
      position - Coordonnées de la position de l'objet
      velocity - Vitesse initiale de déplacement de l'objet
    • addBody

      public void addBody​(GenericObject object)
      Permet d'ajouter un objet à la liste des objets appartenant au simulateur.
      Parameters:
      object - Objet
    • removeBody

      public void removeBody​(GenericObject instance)
      Permet de supprimer un corps de la simulation.
      Parameters:
      instance - Instance du corps que l'on veut retirer
    • search

      public GenericObject search​(int ID)
      Permet de retrouver un objet dans la simulation.
      Parameters:
      ID - Identifiant unique de l'objet recherché
      Returns:
      Objet recherché
    • getTotalMass

      public double getTotalMass()
      Permet de récupérer la masse totale du système simulé.
      Returns:
      Masse totale
    • simulateAllBodies

      public void simulateAllBodies()
      Permet de simuler toutes les intéractions des objets.
    • main

      public static void main​(java.lang.String[] args)
      Méthode principale.
      Parameters:
      args - Arguments passés dans le terminal