Updated: Started working on WebSocket class and thought of a better way to do event binding. Starting this branch with the WebSocket class to finish working on that.

Signed-off-by: Ryan Badour <rybadour@gmail.com>
Merge branch 'master' into binding
Added: An EventBinder class for managing the annoying work behind events in the game engine.

Updated: WebSocketClient now uses the event binder for its events.

Signed-off-by: Ryan Badour <rybadour@gmail.com>
Added: Implemented a bin partition structure (although not entirely working yet)

Updated: The collision layer now uses a space partition interface to implement it's spatial partitioning usage

Added: An example project with tons of entities to test the usefulness of the new bin partition structure

Signed-off-by: Ryan Badour <rybadour@gmail.com>
Fixed: The mouse position was being distorted in the bin partition

Note: There is still something wrong with it

Signed-off-by: Ryan Badour <rybadour@gmail.com>
Updated: Some underlying parts of the collision components have be redone to fit the new interfaces, components (Regions) and Spatial Partitions.

Added: New FRP classes and interfaces have been added to make things easier to work with when getting components to work together.

Added: A new spatial region components, for handling objects that represent regions in 2D space.
These new region components use interfaces to represent functionality and properties they support to encourage inter-operation.

Added: The basic game object class has been designed with minimal overhead, it's only dependency is something that provides ids.
Added: Unit tests to catch errors in development. Tests have been partially written for circle regions and the bin partition.

Signed-off-by: Ryan Badour <rybadour@gmail.com>
Fixed: Using new unit tests an error in the rect intersection request was found and fixed.

Signed-off-by: Ryan Badour <rybadour@gmail.com>
Updated: A group is now more refined and RegionGroups now implement explicit group nesting as opposed to it being an implicit action.

Updated: Tests have been added to test the container properties of the region groups
Updated: The IdProvider component is now a concrete class, it's interface requires that the class have a property of a provider.

Updated: The regions and groups now use a concrete IdProvider and the new interface.

Added: A new unit test was written to test the properties of the IdProvider.
Signed-off-by: Ryan Badour <rybadour@gmail.com>
Added: SceneBase and Updater components to govern groups of things that can be sent real-time updates with a millisecond count of step length and pause and resume functionality.

Added: Unit tests were added to test the properties of the Updater and Scene Base components.
Signed-off-by: Ryan Badour <rybadour@gmail.com>
Refactor: The SceneBase has been renamed to a Scene because it's not only meant for a base class.

Added: A CollisionReporter component that is used to report when a region intersects any regions of any of the chosen groups.
Signed-off-by: Ryan Badour <rybadour@gmail.com>
Added: Numerous classes and interfaces to represent components used from rendering the canvas. A basic canvas renderer is something with a render state object that controls the properties all things should have for rendering to a canvas.

Rendering is done by passing a canvas to a renderer so it's no longer dependent on a specific thing to know how to draw.
RendererGroups are designed as a hierarchy of things that render to it's canvas and that canvas onto one provided by what ever tells the group to render.

Signed-off-by: Ryan Badour <rybadour@gmail.com>
Updated: Trying to find a nice way of creating a RegionComponent and the Regions (as shapes) separated but yet relatable so they can be used as needed instead of all or nothing.

Components are meant to be used from other things, but things like an IRegion are independent entities.
Updated: Shapes now simply represent an area of space with no regard for a position in that space.

Updated: For the purposes of efficient operation of partition spaces the old Rectangle class is now "FastRect" and "Rect" is a normal shape.

Note: No guarentee this commit will build
Signed-off-by: Ryan Badour <rybadour@gmail.com>
Updated: Some minor changes to how groups accept objects, simply an id is required so that an id is separated from things like Regions, Shapes, or Renderers

Updated: Regions have been completely overhauled to use Shape as space but the Region implements the position aspect.
Updated: A RegionComponent is a region that anchors to a world position, a region group still takes just regions.
Signed-off-by: Ryan Badour <rybadour@gmail.com>
Updated: A simple visual test is running correctly. A RectRenderer can be added to a CanvasRenderGroup, drawn to a canvas and displayed to the screen.

Note: The position of a renderer is not yet properly integrated.

Fixed: An issue with the Relation classes.

Moved: All old, unused files into an "old" folder.
Signed-off-by: Ryan Badour <rybadour@gmail.com>
Updated: Renderers now use Regions to define their bounds. A render state now uses it's local position to define it's center position in local space.

Signed-off-by: Ryan Badour <rybadour@gmail.com>
Fixed: The CanvasRenderGroup no longer uses a canvas of its own before drawing, the additional canvas should only be necessary in certain situations and this isn't one.

Updated: The Visual test now has more dynamic content.
Signed-off-by: Ryan Badour <rybadour@gmail.com>
Added: A Circle Renderer and Image Renderer

Updated: The ImageSource no need for useless