Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
}<br />
}<br />
public void importCompleteModel(String filename, MDParameters params)<br />
{<br />
particles = new Particles();<br />
particles.importModel(filename, params);<br />
}<br />
public void setParticles(Particles particles)<br />
{<br />
this.particles = particles;<br />
}<br />
}<br />
ΚΕΦΑΛΑΙΟ 6 ο<br />
Από την υλοποίηση ένα κρίσιµο σηµείο είναι αυτό που έχει να κάνει µε την συµπεριφορά<br />
ενός σωµατιδίου όταν αυτό αφαιρείται από το µοντέλο προσοµοίωσης. Λόγω της χρήσης<br />
iterator για την επεξεργασία των σωµατιδίων είναι αδύνατον να αφαιρεθεί κάποιο σωµατίδιο<br />
την ώρα που γίνεται η επεξεργασία. Αυτό που στην πραγµατικότητα συµβαίνει είναι ότι<br />
µαρκάρεται ένα σωµατίδιο σαν αφαιρούµενο και καλείται η συνάρτηση removeParticles<br />
όταν έχει τελειώσει η επεξεργασία.<br />
6.4.3 Κλάση Particles<br />
Η κλάση Particles είναι υπεύθυνη για την απόθήκευση των σωµατίδιων στην υλοποίηση που<br />
χρησιµοποιείται. Χρησιµοποιεί ένα ArrayList για να κρατά τα σωµατίδια και είναι υπεύθυνη<br />
για το µηχανισµό αφαίρεσης όπως προαναφέρθηκε. Ο µηχανισµός αφαίρεσης, δουλεύει ως<br />
εξής: όταν ένα σωµατίδιο µαρκάρεται ως αφαιρούµενο, τοποθετείται σε µια ειδική λίστα.<br />
Όταν τελειώσει η επεξεργασία, καλείται η µέθοδος doRemove, η οποία διαγράφει από τη<br />
κυρίως λίστα όλα τα σωµατίδια που βρίσκονται στη λίστα αφαίρεσης. Με αυτό τον τρόπο,<br />
υπάρχει απόδέσµευση από τον περιορισµό των iterators, ο οποίος απότρέπει την αφαίρεση<br />
κάποιου σωµατίδιου από τη λίστα την ώρα που γίνεται επεξεργασία.<br />
package md;<br />
import java.io.File;<br />
import java.io.FileReader;<br />
import java.io.FileWriter;<br />
import java.io.IOException;<br />
import java.io.LineNumberReader;<br />
import java.util.ArrayList;<br />
import java.util.Iterator;<br />
215