xelatihy / yocto-gl

Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics
https://xelatihy.github.io/yocto-gl
2.82k stars 205 forks source link

Naming scheme and library content #865

Closed xelatihy closed 4 years ago

xelatihy commented 4 years ago

To freeze version2, we want to adopt a final naming scheme as well as decide about a final library content. This issue is a proposal to track decision in this area.

Library merges

To reduce library dependencies, we should merge small libraries into bigger ones if the use makes sense.

Library names

We want to freeze library names to final ones. Also to

Namespace names

We should decide and update namespace names. The keyword here is consistency in length and meaning. Right now we use 2-5 characters because it just happened that way. But many libraries settle for 3 chars, so maybe that is a good compromised to achieve if it does not break readability too much. Here are some proposal we should vote on. Here I list alternatives of 3 chars or the current ones.

giacomonazzaro commented 4 years ago

The following proposed names are optimized to be namespace-friendly.

Library names

Yocto/Math could be alternatively called Yocto/Vec as it provides basic support for operations in vector spaces. A better name for Yocto/Shape could be Yocto/Geometry, as it is a collection of functions for geometry processing. Yocto/OpenGL could be replaced with Yocto/Gui. Yocto/SceneIO could be named simply Yocto/IO, which is more general and also suggests that there is no graphics in it. Additionally, Yocto/Rendering could be a more representative name for Yocto/Trace.

Namespaces

Using only 3 characters maybe is not expressive enough, since the first one is always y and you can't do much with only 2 characters. We can consider settling on using 4 characters. In that case, these are the proposed namespaces for the mentioned library names.

xelatihy commented 4 years ago

The proposed changes and wording seem fine.. We will keep four letter words and attempt to change names in the suggested manner. This is also a smaller change to where we are now, so quicker and less risky. Hopefully we can make it before the deadline.

xelatihy commented 4 years ago

Names have been changed where possible to follow the above conventions. Yocto/Math stayed like this since it was not easy to get things to compile on a name change (and we are too close to the deadline). Yocto/Shape also stayed for the same reason.

xelatihy commented 4 years ago

All changes not implemented will have to wait for next release in v3 once we move to span and pointers and avoid std::vectors.