67 Commits

Author SHA1 Message Date
Josh Holtrop
9b8f3290ad switch build system to SCons 2011-02-10 11:47:49 -05:00
Josh Holtrop
91ea5a20e0 added ShapeRef typedef, added Scene::processGeneralItems()
git-svn-id: svn://anubis/fart/branches/scene-file-scripting@330 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-10-04 20:47:39 +00:00
Josh Holtrop
9e4191fb61 added AABB class, calculating AABB in Extrude objects, added Extrude intersect() optimization to throw out rays not hitting the AABB
git-svn-id: svn://anubis/fart/trunk@306 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-09-28 16:37:27 +00:00
Josh Holtrop
437fa8b07a added Box intersect() optimization... ~2% faster
git-svn-id: svn://anubis/fart/trunk@305 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-09-28 15:52:52 +00:00
Josh Holtrop
138c90c2c3 optimized intersect() test for Subtract and Intersect boolean objects to not attempt intersecting with object B when object A had no intersections.... had about a 26% speed improvement for DW test scene
git-svn-id: svn://anubis/fart/trunk@304 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-09-28 14:22:25 +00:00
Josh Holtrop
b0dfa2ee1f bool sub-objects using relative coordinates, shape definitions using relative coordinates, this allows transform blocks in each, and shape references to combine absolute transform with the relative transform
git-svn-id: svn://anubis/fart/trunk@287 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-07-09 19:37:05 +00:00
Josh Holtrop
b4a2c8ef8e allowing transform blocks inside boolean shapes, but using a shape reference to a boolean shape does not propagate transform properly
git-svn-id: svn://anubis/fart/trunk@286 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-07-09 18:33:26 +00:00
Josh Holtrop
c1f39da3e2 added shape definition processing and shape cloning capabilities
git-svn-id: svn://anubis/fart/trunk@284 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-07-09 17:11:14 +00:00
Josh Holtrop
d2b37a1687 updated extrudes scene, fixed Extrude objects to return backfaces so that boolean objects work properly
git-svn-id: svn://anubis/fart/trunk@280 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-07-08 19:01:00 +00:00
Josh Holtrop
53ebaeec3e end caps on extrudes working!
git-svn-id: svn://anubis/fart/trunk@279 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-07-08 18:33:39 +00:00
Josh Holtrop
da47ae6fd3 fixed rendering of Extrude edges... caps still not working
git-svn-id: svn://anubis/fart/trunk@278 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-07-08 17:09:51 +00:00
Josh Holtrop
cb4c84ee66 Extrude properly sorts returned intersections
git-svn-id: svn://anubis/fart/trunk@275 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-07-08 15:36:22 +00:00
Josh Holtrop
9bed134733 sorting Extrude intersection results, still buggy intersect() though
git-svn-id: svn://anubis/fart/trunk@274 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-07-02 18:38:11 +00:00
Josh Holtrop
7bac2fb076 added Polygon::add(), Polygon::containsPoint(); initial attempt at rendering Extrude objects
git-svn-id: svn://anubis/fart/trunk@272 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-07-02 16:14:46 +00:00
Josh Holtrop
4c5444f053 creating polygons for extrude objects, ngon takes radius parameter
git-svn-id: svn://anubis/fart/trunk@270 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-07-01 20:35:20 +00:00
Josh Holtrop
7d844667c3 added Extrude and Polygon classes, still in progress
git-svn-id: svn://anubis/fart/trunk@269 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2010-07-01 20:04:44 +00:00
Josh Holtrop
5590c533ce Fixed boolean objects to determine if rays start inside or outside the boolean; changed constructors to accept a list of shapes instead of just two shapes; changed parser to accept any number of top-level shapes inside of a boolean shape block; changed scenes/die.fart to reflect this change (a drastic simplification)
git-svn-id: svn://anubis/fart/trunk@215 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-15 19:51:21 +00:00
Josh Holtrop
91e490b65a added shapes/shapes.h, shapes/BoolShape, made Intersect, Union, and Subtract derive from BoolShape, made BoolShape::setMaterial() call setMaterial() on sub-shapes so that materials applied to boolean objects will be applied to all sub-objects
git-svn-id: svn://anubis/fart/trunk@212 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-12 02:59:35 +00:00
Josh Holtrop
72a5023539 updated Makefiles to not print the "*.dep: No such file or directory" warnings
git-svn-id: svn://anubis/fart/trunk@204 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-10 01:54:23 +00:00
Josh Holtrop
60b29d658d modified shapes and Scene to return surface normal in the intersect object
git-svn-id: svn://anubis/fart/branches/2009-03-09_intersect_returning_normals@200 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-09 23:17:31 +00:00
Josh Holtrop
9972ebdb41 fixed nasty bug in shapes/Cyl where intersection results were being allowed if they were negative
git-svn-id: svn://anubis/fart/trunk@192 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-08 16:03:52 +00:00
Josh Holtrop
14b6735c1c minor formatting
git-svn-id: svn://anubis/fart/trunk@191 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-08 15:29:50 +00:00
Josh Holtrop
1ad08d9998 cleaning up shapes/Cyl a bit
git-svn-id: svn://anubis/fart/trunk@190 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-07 19:17:47 +00:00
Josh Holtrop
e233056880 added Color::operator*=(), added jitter computation to reflectance and transparency recursion, recursing now but there is still a jitter or recursion issue
git-svn-id: svn://anubis/fart/trunk@182 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-03 04:30:46 +00:00
Josh Holtrop
84f6b04cd7 removed static const Material::white (had a problem with C++ since the order that the static const constructors were being called in was not correct according to the order that the code depended on them), made Shape constructor use a common default material instead of recreating one every time
git-svn-id: svn://anubis/fart/trunk@174 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-02 00:17:56 +00:00
Josh Holtrop
9ef826df43 fixed bug in shapes/Plane which would return negative results, fixed bug in main/Scene which would not check for shape to be non-null after calling getRayClosestHit()
git-svn-id: svn://anubis/fart/trunk@161 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-28 17:07:30 +00:00
Josh Holtrop
5035c80d94 Subtract working, but reflected normals being returned... and where did my plane and cyl go?
git-svn-id: svn://anubis/fart/trunk@159 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-28 00:06:12 +00:00
Josh Holtrop
ef25fe4a5b added Subtract, including Union and Subtract in Shape.h
git-svn-id: svn://anubis/fart/trunk@158 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-27 22:43:49 +00:00
Josh Holtrop
5af3f0deca i think i have union working, need to test after transparency is working
git-svn-id: svn://anubis/fart/trunk@157 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-27 22:29:27 +00:00
Josh Holtrop
27cea5e702 added Union shape based on Intersect
git-svn-id: svn://anubis/fart/trunk@156 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-27 18:34:08 +00:00
Josh Holtrop
16f38f1f27 added sample Intersect object to sample scene, added Color::magenta constant
git-svn-id: svn://anubis/fart/trunk@155 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-24 03:35:20 +00:00
Josh Holtrop
f7eb4cd4b9 finished implementing shapes/Intersect::intersect()
git-svn-id: svn://anubis/fart/trunk@154 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-24 03:22:15 +00:00
Josh Holtrop
bcbec65a8f converted shapes/Intersect::intersect() to using BoolIntersectionList
git-svn-id: svn://anubis/fart/trunk@152 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-24 03:04:26 +00:00
Josh Holtrop
2e6c62a032 working on Intersect::intersect()
git-svn-id: svn://anubis/fart/trunk@151 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-24 02:17:22 +00:00
Josh Holtrop
7d64dd745d got Shape::IntersectionList::merge() to sort the result with IntersectionComparator successfully
git-svn-id: svn://anubis/fart/trunk@150 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-24 00:38:09 +00:00
Josh Holtrop
25d6432dbd trying to get a custom comparator to sort my IntersectionList after a merge()
git-svn-id: svn://anubis/fart/trunk@149 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-23 22:26:46 +00:00
Josh Holtrop
56278a8337 changed IntersectionList into a class so i could add merge()
git-svn-id: svn://anubis/fart/trunk@148 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-23 21:39:56 +00:00
Josh Holtrop
ab2832a660 fixed compile issues with switch to new Shape::IntersectionList
git-svn-id: svn://anubis/fart/branches/2009-02-23_Shape_IntersectList_Update@145 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-23 20:26:45 +00:00
Josh Holtrop
0c7f85db96 updating IntersectList to new Shape::IntersectionList format
git-svn-id: svn://anubis/fart/branches/2009-02-23_Shape_IntersectList_Update@144 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-23 20:24:30 +00:00
Josh Holtrop
e23d5cdca4 added shapes/Intersect, need to rework IntersectList
git-svn-id: svn://anubis/fart/trunk@142 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-23 05:51:51 +00:00
Josh Holtrop
cda03ad45a moved main/Material to util/Material
git-svn-id: svn://anubis/fart/trunk@136 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-19 18:45:52 +00:00
Josh Holtrop
7f9547c010 fixed bug in shapes/Cyl intersection routine for top cap distance
git-svn-id: svn://anubis/fart/trunk@135 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-19 18:34:32 +00:00
Josh Holtrop
2b1603cf26 updated shapes/Cyl::getNormalAt(), added Cyl.h to shapes/Shape.h include list
git-svn-id: svn://anubis/fart/trunk@133 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-19 18:15:49 +00:00
Josh Holtrop
39e77678ee updated Cyl intersection routine
git-svn-id: svn://anubis/fart/trunk@132 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-19 18:03:23 +00:00
Josh Holtrop
d8648b0770 working on shapes/Cyl
git-svn-id: svn://anubis/fart/trunk@131 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-19 04:35:51 +00:00
Josh Holtrop
561098001a added shapes/Cyl, needs finishing
git-svn-id: svn://anubis/fart/trunk@130 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-18 23:06:45 +00:00
Josh Holtrop
4b0f506522 added Color::yellow, finished shapes/Box, added a couple boxes to sample scene
git-svn-id: svn://anubis/fart/trunk@121 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-17 05:36:48 +00:00
Josh Holtrop
22519b5a0c fixed bug in shapes/Plane, added shapes/Box
git-svn-id: svn://anubis/fart/trunk@119 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-17 05:20:38 +00:00
Josh Holtrop
7f9b8b913a added Shape::~Shape() to work around compiler warnings
git-svn-id: svn://anubis/fart/trunk@101 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-11 17:11:30 +00:00
Josh Holtrop
0fc1e468fe removed test directory, converted Shape's material handle to a refptr<Material> instead of a Material *, made refptr<T>::operator*() and operator->() const members
git-svn-id: svn://anubis/fart/trunk@96 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-10 01:09:07 +00:00