-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Additional Namespacing #583
Comments
Current plan:
|
As of 1cacd90, `include/flamegpu looks like: Dirs only:
|
In general, There might be room for a top-level
We also don't even have namespaces for some of these, and never will in the python version while it is swig generated, so might not be worth going too deep just for consistency in the public API? There are currently 374 Of those, there's a decent number of cross-directory connections. # exception
grep -rni 'include "flamegpu/' flamegpu/exception | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
1 runtime
1 gpu
1 exception
# gpu
grep -rni 'include "flamegpu/' flamegpu/gpu | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
8 runtime
6 model
2 util
2 sim
2 exception
1 visualiser
1 defines.h"
10 gpu
# io
grep -rni 'include "flamegpu/' flamegpu/io | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
7 model
1 exception
17 io
10 util
# model
grep -rni 'include "flamegpu/' flamegpu/model | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
4 util
3 pop
3 gpu
2 exception
2 defines.h"
28 model
11 runtime
# pop
grep -rni 'include "flamegpu/' flamegpu/pop | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
8 pop
2 util
2 model
2 exception
1 gpu
1 defines.h"
# runtime
grep -rni 'include "flamegpu/' flamegpu/runtime | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
8 model
89 runtime
7 gpu
7 defines.h"
5 exception
4 sim
2 pop
14 util
# sim
grep -rni 'include "flamegpu/' flamegpu/sim | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
8 sim
7 util
4 model
3 defines.h"
2 runtime
2 gpu
1 exception
# grep -rni 'include "flamegpu/' flamegpu/util | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
3 exception
2 util
2 gpu
# grep -rni 'include "flamegpu/' flamegpu/visualiser | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
3 exception
35 visualiser
1 model
Most includes are within the same directory / namespace, which makes sense. Other cross includsions don't make much sesnse from a Detail includes ideally wouldn't be found in the public headers, but given templating that's unavoidable without explicit instantiation of all supported template types, which we don't really want to do.
|
Closed by #1007 |
#551 added the use of C++ namespaces to the repository, but there is still room for improvement.
detail
which are not intended to be part of the public API, but must be present in public include/headers (or are currently even though they do not need to be).detail
.protected
etc) andfriend
relationships, some things are much more difficult to move namespace than they should be.flamegpu
namespace contains many classes. More specialisation might be nice.The text was updated successfully, but these errors were encountered: