https://github.com/bhttchr6/computational-geometry-problems
Computational geometry and smart pointers related problems
https://github.com/bhttchr6/computational-geometry-problems
collision-detection computational-geometry operator-overloading raytracing smart-pointers
Last synced: 9 months ago
JSON representation
Computational geometry and smart pointers related problems
- Host: GitHub
- URL: https://github.com/bhttchr6/computational-geometry-problems
- Owner: bhttchr6
- Created: 2025-01-15T02:29:54.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-03-02T07:59:46.000Z (10 months ago)
- Last Synced: 2025-03-02T08:24:45.301Z (10 months ago)
- Topics: collision-detection, computational-geometry, operator-overloading, raytracing, smart-pointers
- Language: C++
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Each `.cpp` file is a self-contained unit and can be compiled and run independently. To compile an individual file, use the following command:
```bash
g++ -std=c++17 .cpp -o test
```
Learn ray tracing with 2 hours and play around with the `rayTracing.cpp` file to see the implementation.
A very good learning resource for understanding ray tracing, particularly how to implement it with parametric and implicit surfaces, is the following article:
[Scratchapixel - Parametric and Implicit Surfaces](https://www.scratchapixel.com/lessons/3d-basic-rendering/minimal-ray-tracer-rendering-simple-shapes/parametric-and-implicit-surfaces.html)
`geometry.cpp` consists of a C++ program to check whether a point lies inside(including the boundary) of a triangle or outside. A good resource is the book by John Vince [Mathematics for Computer Graphics](https://www.profajaypashankar.com/wp-content/uploads/2018/09/Mathematics-for-Computer-Graphics-Fifth-Edition.pdf), [gamemath.com](https://gamemath.com/book/geomprims.html) and Newcastle University [Game Engineering course](https://research.ncl.ac.uk/game/mastersdegree/gametechnologies/physicstutorials/1raycasting/)
`fibonacci.cpp` is a unique `shared_ptr` based implementation for generating Fibonaci numbers. It just needs to store two numbers to generate the entire series.
`smartptrs.cpp` is a tutorial/very basic module to learn and play with smart pointers.
`collision.cpp` checks whether two axis-aligned bounding boxes are colliding or not.
## References
1. A good overview of [robotics](https://motion.cs.illinois.edu/RoboticSystems/)