Implement a world builder that allows users to place objects/meshes in the world as they see fit and allow to save/load scenes.
Unless a world file is provided, the user is initially presented with an empty world. Regardless of the initial world, the user can freely move around the scene and place objects. Objects can be translated and rotated along/about any axis via keyboard. This allows for fine changes in position/rotation. The world can also be saved to load later.
final_project <Path to resources directory> <OPTIONAL: World file to load>
World files are plaintext and contain the following information in this order:
The program does not validate world file structure; it just expects the data in this order.
world.dat in the same directory as the executable.
fstream library
contains functions that are similar to cin and cout.
sstream library allows string parsing similar to Java's Scanner
class by using functions similar to cin and cout.
glm::lookAt worked and had to fiddle with it until I got the desired effect.
.obj Structure.obj files contain texture coordinates, denoted as vt and
that these were automatically loaded by shape.cpp. I had to cut this out of
shape.cpp since the GLSL compiler would complain and crash when trying to render
ff14_weapon.obj.
ff14_weapon.obj
World built for in-class demo
Bunny mesh used (editor mode)
Sword mesh imported from Final Fantasy XIV (editor mode)
Sphere mesh used (editor mode)
Cube mesh used (editor mode)
Hierarchically-built snowman used (editor mode)