summaryrefslogtreecommitdiffstats
path: root/dev/a2-carsoccer/car.h
diff options
context:
space:
mode:
authorMatt Strapp <matt@mattstrapp.net>2021-09-24 10:05:55 -0500
committerMatt Strapp <matt@mattstrapp.net>2021-09-24 10:05:55 -0500
commit458496b2db6d67736fd1ffc18c6e51a7a4e1180c (patch)
tree3d6ee4e37a48d71a6ac781cbd93a6d6dcb234f98 /dev/a2-carsoccer/car.h
parentPushed feedback file submission-w1.1 (diff)
parentpublish a2 (diff)
downloadcsci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar
csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar.gz
csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar.bz2
csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar.lz
csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar.xz
csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar.zst
csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.zip
Merge branch 'support-code' of github.umn.edu:umn-csci-4611-f21/shared-upstream
Diffstat (limited to 'dev/a2-carsoccer/car.h')
-rw-r--r--dev/a2-carsoccer/car.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/dev/a2-carsoccer/car.h b/dev/a2-carsoccer/car.h
new file mode 100644
index 0000000..6746a56
--- /dev/null
+++ b/dev/a2-carsoccer/car.h
@@ -0,0 +1,52 @@
+/** CSci-4611 Assignment 2: Car Soccer
+ */
+
+#ifndef CAR_H_
+#define CAR_H_
+
+#include <mingfx.h>
+using namespace mingfx;
+
+/// Small class representing the car. Feel free to add additional member variables and functions if you wish.
+class Car {
+public:
+ Car();
+ virtual ~Car();
+
+ // Size is the size of the box drawn to represent the car in the X, Y, and Z dimensions
+ Vector3 size();
+
+ // Radius of the bounding sphere used to calculate approximate physics
+ float collision_radius();
+
+ // 3D position of the car
+ Point3 position();
+ void set_position(const Point3 &p);
+
+ // The unit vector direction the car is pointing. Since the car drives around on the
+ // Y=0 plane, this vector will always have a y coordinate = 0
+ Vector3 forward();
+ void set_forward(const Vector3 &v);
+
+ // The speed of the car can be positive (moving forward) or negative (moving in reverse)
+ float speed();
+ void set_speed(float s);
+
+ // Current 3D velocity, computed as speed_ * forward_
+ Vector3 velocity();
+
+ // Resets the position, speed, and forward direction to the car's starting point
+ void Reset();
+
+ // Draws a simple box shape for the car at the proper position and rotated to face forward
+ void Draw(QuickShapes quickShapes, Matrix4 modelMatrix, Matrix4 viewMatrix, Matrix4 projMatrix);
+
+private:
+ Vector3 size_;
+ float collision_radius_;
+ Point3 position_;
+ Vector3 forward_;
+ float speed_;
+};
+
+#endif