From fee4cbf40b07e17eca676b4687c51313f7cfdd2e Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 4 Feb 2021 18:37:17 -0600 Subject: Added example projects from lecture --- dev/rays/example.h | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 dev/rays/example.h (limited to 'dev/rays/example.h') diff --git a/dev/rays/example.h b/dev/rays/example.h new file mode 100644 index 0000000..f653166 --- /dev/null +++ b/dev/rays/example.h @@ -0,0 +1,62 @@ +/** CSci-4611 In-Class Example */ + +#ifndef EXAMPLE_H_ +#define EXAMPLE_H_ + +#include +using namespace mingfx; + +#include +#include + +class Example : public GraphicsApp { +public: + + // Creates the App + Example(); + + // Cleans up when the App shuts down + virtual ~Example(); + + // Note a Run() function is inherited from GraphicsApp, that's what + // actually starts up the App. + + void OnLeftMouseDown(const Point2& pos); + void OnLeftMouseDrag(const Point2& pos, const Vector2& delta); + void OnLeftMouseUp(const Point2& pos); + + void OnRightMouseDrag(const Point2& pos, const Vector2& delta); + + // This gets called once each frame. Note that dt (a.k.a., "delta time") is + // the amount of time (in seconds) that has passed since the last frame. + void UpdateSimulation(double dt); + + // This is where we initialize any OpenGL data, like textures or meshes that + // need to be loaded from files and setup in OpenGL. It gets called once + // when the program starts up. + void InitOpenGL(); + + // This gets called once each frame, and this is where you draw the latest + // version of your 3D graphics scene. + void DrawUsingOpenGL(); + + +private: + + // This implements something like the camera controls in minecraft. You can + // walk around using the arrow keys or ASWZ keys. You can also move your + // head to look around by dragging with the right mouse button. Internally, + // the camera creates a view matrix. + CraftCam cam_; + Matrix4 proj_matrix_; + + // A helper class for drawing some simple shapes (cubes, spheres, 3D arrows) + QuickShapes quick_shapes_; + + // A list of paths to search for data files (images and shaders) + std::vector search_path_; + + Texture2D dart_tex_; + }; + +#endif \ No newline at end of file -- cgit v1.2.3