Skip to content

Commit ce46498

Browse files
committed
INIT
0 parents  commit ce46498

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+6351
-0
lines changed

LICENSE.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2023 Gallagher & Associates, LLC
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# GA::kit
2+
3+
| [GA::kit Repo](https://github.com/gallagher-tech/GAkit/) | [ofxGAkit Repo](https://github.com/gallagher-tech/ofxGAkit) | [Documentation](https://gallagher-tech.github.io/GAkit-doc/) |
4+
5+
`GA::kit` is G&A's in-house C++ application framework for building interactive experiences.
6+
We use it to create anything from 2D UI prototypes to high-performance 3D immersive installations.
7+
8+
We designed it from scratch to be:
9+
10+
- _fast_ -
11+
Our scenegraph lets you intuitively craft complex 3D scenes without sacrificing performance.
12+
13+
- _flexible_ -
14+
Every app is different. We use modular components, templated classes, and helpful utilities to support iterative, agile development.
15+
16+
- _familiar_ -
17+
As creative coders, we love the clarity and efficacy of existing toolkits like openFrameworks and Cinder.
18+
That's why we designed `GA::kit` to work as an oF addon - and a Cinder Block is on the roadmap.
19+
Or bring your own rendering engine - we strive to be framework agnostic.
20+
21+
## How To Use
22+
23+
### ofxGAkit openFrameworks addon
24+
25+
Currently, the simplest way to use `GA::kit` is through [ofxGAkit](https://github.com/gallagher-tech/ofxGAkit) openFrameworks addon.
26+
27+
Simply `git clone --recursive` the addon repo inside of your `openFrameworks/addons/` directory, then use the oF Project Generator to generate a project with the addon selected.
28+
29+
Full setup instructions can be found [here](https://github.com/gallagher-tech/ofxGAkit).
30+
31+
In this case, openFrameworks provides the windowing and rendering system (`glfw / openGL`), and automatically includes the necessary `nlohmann::json` and `glm` libraries.
32+
33+
### Bring Your Own Backend
34+
35+
We aim to make `GA::kit` "framework agnostic". This means that we would like it to play nicely with other C++ creative coding frameworks like Cinder - or it could be used on its own by including a few supporting libraries.
36+
37+
The only requirements beyond C++11 are including the `glm` and `nlohmann::json` libraries, and adding an openGL windowing library, like `glfw`.
38+
39+
We could use your help:
40+
41+
- creating a Cinder block. _Todo: Cinder block repo link_
42+
- creating a "framework-free" example project, showing how to include `glm`, `nlohman::json` and `glfw`
43+
44+
## Features
45+
46+
- Hierarchical 3D **Scenegraph** with `Scene`, `Node`, and `Component` classes
47+
- Innovative **tween animation system** with `Tween`, `Timeline` and easing functions
48+
- `Timer` and `Timeout` classes for triggering timed callbacks
49+
- Universal app **asset management** with templated `ResourceCache` class
50+
- `KeyEvent`, `MouseEvent` and `TouchEvent` handling
51+
- **Layout** utitilies to automatically align and scale to fit
52+
- Math utilities built on [**glm**](https://github.com/g-truc/glm)
53+
- JSON serialization, using [**nlohmann::json**](https://github.com/nlohmann/json)
54+
- Signal-based event system, using [**sigslot**](https://github.com/palacaze/sigslot) (included)
55+
- Universal Unique ID system, using [**crossguid**](https://github.com/graeme-hill/crossguid) (included)
56+
57+
## Todo
58+
59+
- GLSL `Shader` class
60+
- `Material` (shader + textures + parameters) component
61+
- `Mesh` VBO component
62+
- Cinder block
63+
- Framework-free example using GLFW
64+
65+
## Requirements
66+
67+
- C++11
68+
- OpenGL 3+
69+
- [**glm**](https://github.com/g-truc/glm)
70+
- [**nlohmann::json**](https://github.com/nlohmann/json)
71+
72+
## About G&A
73+
We are the industry’s best strategic problem solvers. A team of boundless creative individuals. As experts in our own craft, relentless curiosity fuels our passion for working with the best partners to build community experiences led by their profound stories. Bring your story and become part of ours.
74+
75+
Visit G&A [website](https://gallagherdesign.com/)

external/crossguid/LICENSE.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2014 Graeme Hill (http://graemehill.ca)
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in
13+
all copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
THE SOFTWARE.

0 commit comments

Comments
 (0)