Skip to content

Commit 4576f75

Browse files
committed
bug fixes
1 parent eb75938 commit 4576f75

13 files changed

Lines changed: 75 additions & 38 deletions

bin/Flock.o

36.1 KB
Binary file not shown.

bin/mainwindow.o

97.4 KB
Binary file not shown.

bin/moc_mainwindow.o

217 Bytes
Binary file not shown.

forms/mainwindow.ui

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<x>0</x>
88
<y>0</y>
99
<width>1920</width>
10-
<height>1000</height>
10+
<height>1038</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
@@ -588,6 +588,13 @@
588588
</property>
589589
</widget>
590590
</item>
591+
<item>
592+
<widget class="QCheckBox" name="checkBox_4">
593+
<property name="text">
594+
<string>Wind</string>
595+
</property>
596+
</widget>
597+
</item>
591598
<item>
592599
<widget class="QCheckBox" name="checkBox">
593600
<property name="text">

include/Boid.h

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,20 @@ class Boid {
140140
}
141141

142142
//Pvector seek(Pvector v);
143-
void run(vector <Boid*> v, int self, bool sep, bool align, bool coh, int wind_x, int wind_y, int wind_z){
143+
void run(vector <Boid*> v, int self, bool sep, bool align, bool coh, int wind_x, int wind_y, int wind_z, bool wind){
144144
//Model the external forces
145145

146146
Pvector new_vel=velocity+acceleration;
147-
Pvector wind(wind_x, wind_y, wind_z);
148-
wind = wind * (reynolds/1042);
149-
Pvector desired_vel=Internal(v,self, sep, align, coh)+Positional()+wind;
147+
Pvector desired_vel;
148+
if (wind){
149+
Pvector wind(wind_x, wind_y, wind_z);
150+
wind = wind * (reynolds/1042);
151+
desired_vel=Internal(v,self, sep, align, coh)+Positional()+wind;
152+
}
153+
else {
154+
desired_vel=Internal(v,self, sep, align, coh)+Positional();
155+
}
156+
150157
Pvector difference=desired_vel-new_vel;
151158
difference.logistic_limit(max_acc*strength);
152159
//Pvector pos=Positional();

include/Flock.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class Flock : public QGLWidget
4444
float windx=0;
4545
float windy=0;
4646
float windz=0;
47+
bool check_wind = false;
4748

4849
public slots:
4950
void addBoid(float x, float y, float z, float strength, float adv, float sightedness, int fova, int fovb);

include/mainwindow.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ private slots:
6060

6161
void on_horizontalSlider_3_valueChanged(int value);
6262

63+
void on_checkBox_4_stateChanged(int arg1);
64+
6365
protected:
6466
int timerId;
6567
int counter = 0;

include/ui_mainwindow.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ class Ui_MainWindow
122122
QLabel *label_14;
123123
QSpacerItem *verticalSpacer;
124124
QCheckBox *checkBox_2;
125+
QCheckBox *checkBox_4;
125126
QCheckBox *checkBox;
126127
QCheckBox *sep;
127128
QCheckBox *align;
@@ -139,7 +140,7 @@ class Ui_MainWindow
139140
{
140141
if (MainWindow->objectName().isEmpty())
141142
MainWindow->setObjectName(QStringLiteral("MainWindow"));
142-
MainWindow->resize(1920, 1000);
143+
MainWindow->resize(1920, 1038);
143144
centralWidget = new QWidget(MainWindow);
144145
centralWidget->setObjectName(QStringLiteral("centralWidget"));
145146
horizontalLayout_8 = new QHBoxLayout(centralWidget);
@@ -603,6 +604,11 @@ class Ui_MainWindow
603604

604605
verticalLayout_2->addWidget(checkBox_2);
605606

607+
checkBox_4 = new QCheckBox(centralWidget);
608+
checkBox_4->setObjectName(QStringLiteral("checkBox_4"));
609+
610+
verticalLayout_2->addWidget(checkBox_4);
611+
606612
checkBox = new QCheckBox(centralWidget);
607613
checkBox->setObjectName(QStringLiteral("checkBox"));
608614

@@ -741,6 +747,7 @@ class Ui_MainWindow
741747
label_20->setText(QApplication::translate("MainWindow", "g", Q_NULLPTR));
742748
label_14->setText(QApplication::translate("MainWindow", "where the average mass of the bird is 80g.", Q_NULLPTR));
743749
checkBox_2->setText(QApplication::translate("MainWindow", "Colour", Q_NULLPTR));
750+
checkBox_4->setText(QApplication::translate("MainWindow", "Wind", Q_NULLPTR));
744751
checkBox->setText(QApplication::translate("MainWindow", "Random calculation", Q_NULLPTR));
745752
sep->setText(QApplication::translate("MainWindow", "Separation", Q_NULLPTR));
746753
align->setText(QApplication::translate("MainWindow", "Alignment", Q_NULLPTR));

release/FlockSim.exe

32.5 KB
Binary file not shown.

src/Flock.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,37 +49,37 @@ void Flock::addBoid(float x, float y, float z, float strength, float adv, float
4949
//Functions for multithreading sequential
5050
void flocking0(Flock* f){
5151
for (int i = 0; i < f->flock.size(); i+=4)
52-
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz);
52+
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz, f->check_wind);
5353
}
5454
void flocking1(Flock* f){
5555
for (int i = 1; i < f->flock.size(); i+=4)
56-
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz);
56+
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz, f->check_wind);
5757
}
5858
void flocking2(Flock* f){
5959
for (int i = 2; i < f->flock.size(); i+=4)
60-
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz);
60+
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz, f->check_wind);
6161
}
6262
void flocking3(Flock* f){
6363
for (int i = 3; i < f->flock.size(); i+=4)
64-
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz);
64+
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz, f->check_wind);
6565
}
6666

6767
//Functions for multithreading random
6868
void flocking10(Flock* f){
6969
for (int i = 0; i < f->flock.size(); i+=4)
70-
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz);
70+
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz, f->check_wind);
7171
}
7272
void flocking11(Flock* f){
7373
for (int i = 1; i < f->flock.size(); i+=4)
74-
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz);
74+
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz, f->check_wind);
7575
}
7676
void flocking12(Flock* f){
7777
for (int i = 2; i < f->flock.size(); i+=4)
78-
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz);
78+
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz, f->check_wind);
7979
}
8080
void flocking13(Flock* f){
8181
for (int i = 3; i < f->flock.size(); i+=4)
82-
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz);
82+
f->flock[i]->run(f->flock, i, f->sep, f->align, f->coh, f->windx, f->windy, f->windz, f->check_wind);
8383
}
8484

8585

0 commit comments

Comments
 (0)