summaryrefslogtreecommitdiffstats
path: root/libdimension
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove degeneracy test from ray-box intersections.Tavian Barnes2010-07-181-17/+25
| | | | | To avoid testing degenerate boxes, set prtree->root to NULL when the tree contains no bounded objects.
* Speed up cube intersection tests.Tavian Barnes2010-07-161-83/+60
|
* Add descriptive comment to new branchless ray-AABB intersection tests.Tavian Barnes2010-07-151-0/+9
|
* Remove some unneeded tests from ray-AABB intersection tests.Tavian Barnes2010-07-151-43/+28
|
* Clean up optimized ray-AABB intersection code a bit.Tavian Barnes2010-07-151-21/+29
|
* Precalculate 1.0/ray.n.{x,y,z} for ray-box intersection tests.Tavian Barnes2010-07-141-12/+17
| | | | This saves us nearly a factor of 2, and I feel silly for not doing this before.
* Rename dimension_impl.h to dimension-impl.h.Tavian Barnes2010-07-1411-10/+11
|
* Don't expose the contents of struct dmnsn_progress.Tavian Barnes2010-07-146-25/+50
|
* Save some degeneracy tests in ray-AABB intersection tests.Tavian Barnes2010-07-091-16/+14
|
* New dmnsn_radians() and dmnsn_degrees() conversion functions.Tavian Barnes2010-07-031-1/+13
|
* Make dmnsn_perspective_camera_ray_fn() more idiomatic.Tavian Barnes2010-07-031-9/+5
|
* Make dmnsn_ray_box_intersection() return false for zero boxes.Tavian Barnes2010-07-031-3/+3
|
* Code formatting fixes.Tavian Barnes2010-07-011-4/+12
|
* Add some functionality checks to configure.ac for platform.c.Tavian Barnes2010-06-291-7/+33
|
* Move platform-specific stuff in libdimension into platform.c.Tavian Barnes2010-06-294-26/+48
|
* Use sched_getaffinity() rather than sysconf(_SC_NPROCESSORS_ONLN).Tavian Barnes2010-06-285-10/+72
| | | | Also, abstract cpu counting into dedicated dmnsn_ncpus() function.
* Don't make a degenerate sphere in transformations.pov.Tavian Barnes2010-06-281-5/+5
|
* Whitespace fixes.Tavian Barnes2010-06-201-1/+1
|
* Add some macros to make printf()-ing geometric types easier.Tavian Barnes2010-06-201-0/+18
|
* Bulk-load CSG unions.Tavian Barnes2010-06-142-4/+7
| | | | The old way made O(n) PR-trees for no particular reason.
* New dmnsn_bounding_box_is_infinite() predicate.Tavian Barnes2010-06-063-8/+10
|
* Don't use an anonymous union in prtree.c.Tavian Barnes2010-06-061-25/+25
|
* New bounding box special constructors.Tavian Barnes2010-06-065-31/+37
|
* New dmnsn_prtree_inside() function, rename dmnsn_prtree_search().Tavian Barnes2010-06-064-16/+55
|
* Add children to dmnsn_objects, which enables splitting unions.Tavian Barnes2010-06-055-62/+68
| | | | Also, use PR-trees for unions internally.
* Rename `precompute' to `init'.Tavian Barnes2010-06-046-34/+34
|
* Use precompute callback for CSG objects.Tavian Barnes2010-06-041-76/+123
|
* Add refcounts to textures and interiors.Tavian Barnes2010-06-034-11/+31
|
* Add precompute callback to objects.Tavian Barnes2010-05-312-4/+12
|
* Precompute objects in dmnsn_raytrace_scene() rather than dmnsn_new_prtree().Tavian Barnes2010-05-303-11/+8
|
* Slight prtree search optimization.Tavian Barnes2010-05-291-5/+5
| | | | Exploit floating-point infinities to eliminate special t < 0.0 condition.
* Clean up sphere intersection code a bit.Tavian Barnes2010-05-251-6/+6
|
* Fix memory handling in dmnsn_new_thread().Tavian Barnes2010-05-211-1/+2
|
* Store the bounding boxes of child PR-tree nodes in the parent.Tavian Barnes2010-05-202-60/+67
| | | | This improves cache locality and is good for about a 10% performance boost.
* New dmnsn_vector_element() function.Tavian Barnes2010-05-181-0/+25
|
* Add a pkg-config file to libdimension.Tavian Barnes2010-05-132-0/+14
|
* Don't attempt to use profile data for profiling build.Tavian Barnes2010-05-131-1/+1
|
* Fix some copyright dates.Tavian Barnes2010-05-1036-36/+36
|
* Write some more docs, and fix a couple things noticed while writing them.Tavian Barnes2010-05-104-7/+7
|
* New dmnsn_new_thread() function.Tavian Barnes2010-05-096-174/+228
| | | | | | | Two advantages: first, waiters are guaranteed to wake if a dmnsn_error() cancels a thread. Second, the thread library is fully abstracted over by threads.{c,h} and progress.{c,h} now, though raytrace.c is still using pthread_create() directly.
* Clean up some unused variables.Tavian Barnes2010-05-092-4/+1
|
* New DMNSN_ARRAY_FOREACH() macro, faster than iterating with dmnsn_array_get().Tavian Barnes2010-05-087-53/+48
|
* Handle degenerate cases in ray/box intersections.Tavian Barnes2010-05-082-1/+19
|
* Fix argument to malloc().Tavian Barnes2010-05-071-1/+1
|
* Don't store unbounded objects (planes, etc.) in the PR-tree.Tavian Barnes2010-05-072-24/+94
| | | | | Keep them in a dmnsn_array* instead. This makes the tree better and saves us some search time.
* New dmnsn_array_from_list() function.Tavian Barnes2010-05-072-7/+24
|
* Use C99 for loop initializers.Tavian Barnes2010-05-0512-99/+78
|
* Optimize ray-AABB intersection tests a bit.Tavian Barnes2010-05-051-51/+29
|
* Make dmnsn_new_prtree() handle empty scenes.Tavian Barnes2010-05-051-0/+6
|
* Replace BVSTs with priority R-trees.Tavian Barnes2010-05-056-446/+606
|