diff options
author | Matt Strapp <matt@mattstrapp.net> | 2021-09-24 10:05:55 -0500 |
---|---|---|
committer | Matt Strapp <matt@mattstrapp.net> | 2021-09-24 10:05:55 -0500 |
commit | 458496b2db6d67736fd1ffc18c6e51a7a4e1180c (patch) | |
tree | 3d6ee4e37a48d71a6ac781cbd93a6d6dcb234f98 /dev/a2-carsoccer/car.h | |
parent | Pushed feedback file submission-w1.1 (diff) | |
parent | publish a2 (diff) | |
download | csci4611-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.h | 52 |
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 |