Admer456 / adm-utils

My utility classes and functions for game, library and engine development
MIT License
3 stars 1 forks source link

Some todos #2

Open admer456-stu opened 2 years ago

admer456-stu commented 2 years ago

Turns out the class won't be over just yet, so yay! This means I can write some more stuff.

So, this library's going pretty fine, but, there's some extra stuff I've identified that would be very useful to have:

Once these are done, then I pretty much don't need anything else, as far as basic utilities are concerned. Eventually, maybe, down the road, there could be a quadtree & octree in here, and maybe some sorting algorithms? But in general, this is pretty much it.

For things like model loading, texture loading, I can generally just use other libraries.

Admer456 commented 2 years ago

We got Plane now.

Admer456 commented 2 years ago

Polygon is underway.

Edit: Polygon is now here too.

admer456-stu commented 2 years ago

Okay, so, InstanceChain has been renamed to just Chain (hopefully not to be confused with swap chains), and some type aliases were added, like using String = std::string;, which just looks good to my eyes. :3

This should be enough for now. After that, I'll do Library, File and other filesystem-related stuff.

admer456-stu commented 2 years ago

Think I'll heavily reference JoltPhysics's maths library for Vec2, Vec4, Quat and Mat44.

Admer456 commented 2 years ago

More stuff for future reference, could probably carry over into a new issue:

Triangular barycentric coordinates: https://codeplea.com/triangular-interpolation

Tetrahedral barycentric coordinates: https://stackoverflow.com/questions/38545520/barycentric-coordinates-of-a-tetrahedron Can derive tetrahedral interpolation from this, which might be useful for things like these: https://www.gdcvault.com/play/1015312/Light-Probe-Interpolation-Using-Tetrahedral

Splines and trilinear interpolation: https://codeplea.com/introduction-to-splines http://paulbourke.net/miscellaneous/interpolation/

Investigate doing mesh tetrahedralisation (from now on: tetrameshing) with V-HACD and Qhull. https://github.com/kmammou/v-hacd https://github.com/qhull/qhull V-HACD will approximately generate a collection of convex hulls and Qhull can then generate tetrahedral meshes out of those. Should work, right?

admer456-stu commented 2 years ago

V-HACD supports non-watertight meshes BTW. This is pretty nice. Also, still gotta cover Delaunay triangulation, tetrahedralisation and Voronoi fracturing.

admer456-stu commented 2 years ago

Could refer to this for Delaunay triangulation in 3D: https://github.com/obviousjim/ofxDelaunay

This one's constrained and in 2D: https://github.com/artem-ogre/CDT

Voronoi in 3D: https://github.com/chr1shr/voro This one actually uses Voro++: https://github.com/patriciogonzalezvivo/ofxVoro

Voronoi in 2D: https://github.com/madc/ofxVoronoi https://github.com/JCash/voronoi

I think that'll cover it all.

admer456-stu commented 2 years ago

Geometry processing (convex decomposition, convex hull generation, triangulation, tetrameshing, Voronoi cells) will be a separate issue in a couple of months, but it's satisfied for now in terms of prerequisites.

Admer456 commented 1 year ago

We got the Library class now.

Admer456 commented 1 year ago

Added AABB and Octree (with a template N-dimensional tree of course), and a couple more things to the to-do list.

Admer456 commented 1 year ago

Added Vec2, Vec4 and DateTime.

Admer456 commented 1 year ago

Added a Mat4 draft, can be ticked off at this point. Mat34 will probably not be a thing, and frankly I don't know about Mat3 either, it looks like we could just use Mat4 for everything and enjoy the recent SIMD goodies.