Giter Club home page Giter Club logo

boomerang's Introduction

Hi there 👋

I'm Andrew.

B.S Computer Science, Georgia Institute of Technology, class of '24

boomerang's People

Contributors

bny11638 avatar jps70135 avatar wooandrew avatar

Watchers

 avatar  avatar  avatar

Forkers

awrish

boomerang's Issues

Code review: 6473eaa

12/04/2020 - Code review for commit 6473eaa

Commit: 6473eaa
Branch: object

Assignee: Porter Squires (Developer)
Contact: [email protected]

Reviewer: Andrew Woo (Project Manager, Developer)
Contact: [email protected]

REQ - Required changes: these changes are required.
REC - Recommended changes: these changes are recommended to follow best practice

unit.hpp

REQ ➡️ Line 1: missing copyright header.

#include <vector>

REQ ➡️ Line 3-22: missing license declaration.

#include <memory>
#ifndef BOOMERANG_ENGINE_UNIT
#define BOOMERANG_ENGINE_UNIT
// For now, this unit represents a quad object that can hold other units as children
// To do: update the unit to holds a vector of vertices to outline the unit and replace size
namespace Boomerang::Core::Units {
class unit {
public:
// Constructor
unit(glm::vec2 _position, glm::vec2 _size, glm::vec4 color, std::shared_ptr<Texture> _texture);
// Getters
std::shared_ptr<vector<unit>> GetChildren();
std::shared_ptr<unit> GetParent();
bool GetVisible();
glm::vec2 GetPosition();

REC ➡️ Line 1-3: organize includes in order (standard library, dependency, boomerang)

#include <vector>
#include <GLM/glm/glm.hpp>
#include <memory>

REC ➡️ Line 5-6: change header guards to follow convention (BOOMERANG_ENGINE_UNIT_UNIT)

#ifndef BOOMERANG_ENGINE_UNIT
#define BOOMERANG_ENGINE_UNIT

REC ➡️ Line 11: use pascal case for class names.

REQ ➡️ Line 16, 44: undefined reference to class Texture (#include "../graphics/texture.hpp").

unit(glm::vec2 _position, glm::vec2 _size, glm::vec4 color, std::shared_ptr<Texture> _texture);

std::shared_ptr<Texture> texture;

REQ ➡️ Line 19, 43, 48: missing std scope for vector.

std::shared_ptr<vector<unit>> GetChildren();

std::shared_ptr<vector<vertex>> vertices;

std::shared_ptr<vector<unit>> children;

REC ➡️ Line 27, 33-34: inconsistent spacing (tabs instead of 4 spaces).

void AddChild(std::shared_ptr<unit> _unit);

// Functions
void Update();

REQ ➡️ Line 34-35: make Update(), Display() virtual for overloading/inheritance

void Update();
void Display();

REQ ➡️ Line 39 (affects line 16, 22): make position glm::vec3 for render layering

glm::vec2 position; // (x, y)

REQ ➡️ Line 43: undefined reference to class Vertex (#include "../graphics/vertex.hpp").

std::shared_ptr<vector<vertex>> vertices;

REQ ➡️ Line 45: undefined reference to class unitDisplay (#include "unitDisplay.hpp").

std::shared_ptr<unitDisplay> displayer;

REQ ➡️ Line 46: undefined reference to class unitManipulator (#include "unitManipulator.hpp").

std::shared_ptr<unitManipulator> manipulator;

REQ ➡️ Line 49: syntax error.

std::share_ptr<unit> parent;


unit.cpp

REQ ➡️ Line 1: incorrect copyright header. (engine/engine.cpp -> engine/unit/unit.cpp)

// Project Boomerang : engine/engine.cpp (c) 2020 Andrew Woo, Porter Squires, Brandon Yau, and Awrish Khan

REC ➡️ Line 22-27: organize includes in order (standard library, dependency, boomerang)

*/
#include "unit.hpp"
#include <GLM/glm/glm.hpp>
#include "../graphics/texture.hpp"
#include <vector>
#include <memory>


unitDisplay.hpp

Remove file and integrate directly into unit class as virtual function.

unitManipulator.hpp

Remove file and integrate directly into unit class as virtual function.


Other

  • Namespace may require change in future to better reflect wrapper (suggested Objects)
  • Classes may require structure change when physics is introduced.
  • Prepare to deprecate Display function in favor of direct rendering via renderer through polymorphism

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.