summaryrefslogtreecommitdiffstats
path: root/libdimension/csg.c
Commit message (Collapse)AuthorAgeFilesLines
* Use // comments when possible.Tavian Barnes2014-06-071-30/+30
|
* objects: Refactor how bounding and initialization work.Tavian Barnes2014-06-071-24/+20
|
* objects: Use a vtable to shrink object structs.Tavian Barnes2014-06-061-15/+32
|
* object: Kill pool parameter to dmnsn_init_object().Tavian Barnes2014-06-061-1/+1
|
* csg: Avoid copying the child array for unions.Tavian Barnes2014-06-041-5/+2
|
* object: Don't give every object a child array.Tavian Barnes2014-06-041-0/+4
|
* object: Use pool.Tavian Barnes2014-05-311-18/+16
|
* Coding style fixes.Tavian Barnes2014-05-261-14/+16
|
* object: Get rid of void *ptr field.Tavian Barnes2014-05-261-22/+31
| | | | | | Instead, allow dmnsn_object to be embedded in a larger struct. This gives a consistent 1% speed boost.
* Allow other BVH implementations to be used.Tavian Barnes2012-12-171-9/+9
| | | | | dmnsn_bvh is now a generic API, which could potentially support octrees, etc, in addition to PR-trees.
* Update copyright years.Tavian Barnes2011-08-311-1/+1
|
* Rename dimension-impl.h to dimension-internal.hTavian Barnes2011-08-251-1/+1
|
* Vast libdimension API and internals improvements.Tavian Barnes2011-06-131-95/+29
| | | | | Couldn't really do these while I was trying to be POV-Ray compatible, 'cause they would've broken compatibility.
* Add a refcount to objects.Tavian Barnes2011-05-161-0/+8
|
* Consolidate reference counting code.Tavian Barnes2011-05-161-2/+0
|
* Cache previous intersections in dmnsn_prtree_intersection().Tavian Barnes2011-04-201-1/+1
| | | | | Due to geometric locality of rays, this provides a very large speedup for most scenes.
* Don't use awkward (*fptr)() syntax.Tavian Barnes2011-04-031-16/+16
|
* Update email address.Tavian Barnes2011-03-081-1/+1
|
* Rename dmnsn_*_init() to dmnsn_initialize_*().Tavian Barnes2010-11-221-15/+15
|
* Document libdimension with Doxygen.Tavian Barnes2010-11-141-11/+44
|
* Factor out transformation code from object callbacks.Tavian Barnes2010-11-061-12/+12
|
* Add dmnsn_free() to match dmnsn_malloc().Tavian Barnes2010-09-261-1/+1
|
* Rename dimension_impl.h to dimension-impl.h.Tavian Barnes2010-07-141-1/+1
|
* Bulk-load CSG unions.Tavian Barnes2010-06-141-3/+6
| | | | The old way made O(n) PR-trees for no particular reason.
* New bounding box special constructors.Tavian Barnes2010-06-061-1/+1
|
* New dmnsn_prtree_inside() function, rename dmnsn_prtree_search().Tavian Barnes2010-06-061-6/+3
|
* Add children to dmnsn_objects, which enables splitting unions.Tavian Barnes2010-06-051-60/+34
| | | | Also, use PR-trees for unions internally.
* Rename `precompute' to `init'.Tavian Barnes2010-06-041-16/+16
|
* Use precompute callback for CSG objects.Tavian Barnes2010-06-041-76/+123
|
* Fix some includes.Tavian Barnes2010-04-271-0/+1
|
* Rename dmnsn_matrix_*_mul() to dmnsn_transform_*().Tavian Barnes2010-04-171-6/+6
|
* Add transformations to textures and pigments.Tavian Barnes2010-04-151-80/+51
| | | | | Also, object intersection callbacks are now responsible for handling their own transformations.
* Remove a bunch of errno.h includes.Tavian Barnes2010-04-131-1/+0
|
* Get rid of some duplication in csg.c, and fix missed add of dmnsn_epsilon.Tavian Barnes2010-04-111-163/+23
|
* Don't use dynamic memory for dmnsn_intersection's.Tavian Barnes2010-04-071-156/+166
| | | | Drops us from ~400,000 allocs to ~1000. Oops ><.
* Calculate CSG bounding boxes more accurately.Tavian Barnes2010-04-071-9/+3
|
* New dmnsn_malloc() function, and friends.Tavian Barnes2010-04-071-164/+84
| | | | | | I'm tired of checking for malloc failures everywhere, considering it never happens. So just bail out whenever it does. A lot of stuff is guaranteed to succeed if it returns now.
* Implement CSG differences in libdimension.Tavian Barnes2010-04-061-1/+139
|
* Re-cast rays properly in intersections and merges.Tavian Barnes2010-04-061-9/+38
|
* Add CSG merges to libdimension.Tavian Barnes2010-04-061-0/+125
|
* Add CSG intersections to libdimension.Tavian Barnes2010-04-061-0/+125
|
* Add CSG unions to libdimension.Tavian Barnes2010-04-061-0/+143