From b302ad0465573fd77fa50d5ed261289c29080b90 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 17 Feb 2021 13:53:18 -0600 Subject: Added Assignment 3 worksheet and code --- dev/a3-earthquake/earth.h | 57 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 dev/a3-earthquake/earth.h (limited to 'dev/a3-earthquake/earth.h') diff --git a/dev/a3-earthquake/earth.h b/dev/a3-earthquake/earth.h new file mode 100644 index 0000000..2091c11 --- /dev/null +++ b/dev/a3-earthquake/earth.h @@ -0,0 +1,57 @@ +/** CSci-4611 Assignment 3: Earthquake + */ + +#ifndef EARTH_H_ +#define EARTH_H_ + +#include +using namespace mingfx; + + +/** This class can draw a textured earth as either a plane or a sphere or + somewhere inbetween in order to support morphing from one shape to another. + */ +class Earth { +public: + Earth(); + virtual ~Earth(); + + /// Load texture and define geometry. Initializes the mesh to the planar + /// version of the earth. The searchPath is for finding the texture file. + void Init(const std::vector &search_path); + + /// Draw the Earth to screen using the current version of the mesh set with + /// the last call to UpdateMesh. + void Draw(const Matrix4 &model_matrix, const Matrix4 &view_matrix, const Matrix4 &proj_matrix); + + /// Given latitude and longitude, calculate 3D position for the flat earth + /// model that lies on a plane + Point3 LatLongToPlane(double latitude, double longitude) const; + + /// Given latitude and longitude, calculate the 3D position for the spherical + /// earth model. + Point3 LatLongToSphere(double latitude, double longitude) const; + + /// This can be a helpful debugging aid when creating your triangle mesh. It + /// draws the triangles and normals for the current earth mesh. + void DrawDebugInfo(const Matrix4 &model_matrix, const Matrix4 &view_matrix, const Matrix4 &proj_matrix); + +protected: + + // Stores the earth texture map + Texture2D earth_tex_; + + // Stores the earth geometry as a renderable mesh + Mesh earth_mesh_; + + // Renders meshes with texture and some simple shading + DefaultShader shader_; + DefaultShader::MaterialProperties earth_material_; + + // Used only for the DrawDebugInfo() routine + QuickShapes quick_shapes_; +}; + + +#endif + \ No newline at end of file -- cgit v1.2.3