summaryrefslogtreecommitdiffstats
path: root/dev/a2-carsoccer/car.cc
diff options
context:
space:
mode:
authorKT <tran0563@umn.edu>2021-09-21 10:05:57 -0500
committerKT <tran0563@umn.edu>2021-09-21 10:05:57 -0500
commita75b08b76f91451bb586b154fdca872955d8a57a (patch)
treedd1c30f65162c1e12b8f6481bbd102d69f5c7196 /dev/a2-carsoccer/car.cc
parentUpload a1 (diff)
downloadcsci4611-a75b08b76f91451bb586b154fdca872955d8a57a.tar
csci4611-a75b08b76f91451bb586b154fdca872955d8a57a.tar.gz
csci4611-a75b08b76f91451bb586b154fdca872955d8a57a.tar.bz2
csci4611-a75b08b76f91451bb586b154fdca872955d8a57a.tar.lz
csci4611-a75b08b76f91451bb586b154fdca872955d8a57a.tar.xz
csci4611-a75b08b76f91451bb586b154fdca872955d8a57a.tar.zst
csci4611-a75b08b76f91451bb586b154fdca872955d8a57a.zip
publish a2
Diffstat (limited to 'dev/a2-carsoccer/car.cc')
-rw-r--r--dev/a2-carsoccer/car.cc66
1 files changed, 66 insertions, 0 deletions
diff --git a/dev/a2-carsoccer/car.cc b/dev/a2-carsoccer/car.cc
new file mode 100644
index 0000000..3b9bb5c
--- /dev/null
+++ b/dev/a2-carsoccer/car.cc
@@ -0,0 +1,66 @@
+#include "car.h"
+
+/// The constructor sets the static properties of the car, like its size,
+/// and then calls Reset() to reset the position, velocity, and any other
+/// dynamic variables that change during game play.
+Car::Car() : size_(3,2,4), collision_radius_(2.5) {
+ Reset();
+}
+
+Car::~Car() {
+}
+
+
+float Car::collision_radius() {
+ return collision_radius_;
+
+}
+
+Vector3 Car::size() {
+ return size_;
+}
+
+Point3 Car::position() {
+ return position_;
+}
+
+void Car::set_position(const Point3 &p) {
+ position_ = p;
+}
+
+Vector3 Car::forward() {
+ return forward_;
+}
+
+void Car::set_forward(const Vector3 &v) {
+ forward_ = v;
+}
+
+float Car::speed() {
+ return speed_;
+}
+
+void Car::set_speed(float s) {
+ speed_ = s;
+}
+
+Vector3 Car::velocity() {
+ return speed_ * forward_;
+}
+
+
+void Car::Reset() {
+ position_ = Point3(0, size_[1]/2, 45);
+ forward_ = Vector3(0, 0, -1);
+ speed_ = 0.0f;
+}
+
+void Car::Draw(QuickShapes quickShapes, Matrix4 modelMatrix, Matrix4 viewMatrix, Matrix4 projMatrix) {
+ Color carcol(0.8f, 0.2f, 0.2f);
+ Matrix4 Mcar =
+ Matrix4::Translation(position_ - Point3(0,0,0)) *
+ Matrix4::LookAt(Point3(0,0,0), Point3(0,0,0) + forward_, Vector3(0,1,0)).Inverse() *
+ Matrix4::Scale(size_) *
+ Matrix4::Scale(Vector3(0.5f, 0.5f, 0.5f));
+ quickShapes.DrawCube(modelMatrix * Mcar, viewMatrix, projMatrix, carcol);
+}