From 9491825ddff7a294d1f49061bae7044e426aeb2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Fri, 6 Nov 2015 05:38:49 +0100 Subject: Imported Upstream version 1.8.3 --- rspl/c1.c | 0 rspl/c1df.c | 0 rspl/cw1.c | 0 rspl/cw3.c | 0 rspl/gam.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ rspl/gam.h | 0 rspl/mlbs.c | 0 rspl/mlbs.h | 0 rspl/opt.c | 0 rspl/rev.c | 0 rspl/rev.h | 0 rspl/revbench.c | 0 rspl/rspl.c | 0 rspl/rspl.h | 0 rspl/rspl1.c | 0 rspl/rspl1.h | 0 rspl/rspl_imp.h | 0 rspl/scat.c | 0 rspl/scat2.c | 0 rspl/sm1.c | 0 rspl/sm2.c | 0 rspl/sm3.c | 0 rspl/smtmpp.c | 0 rspl/smtnd.c | 0 rspl/spline.c | 0 rspl/stest.c | 0 rspl/t2d.c | 0 rspl/t2ddf.c | 0 rspl/t3d.c | 0 rspl/t3ddf.c | 0 rspl/tnd.c | 0 rspl/trnd.c | 0 32 files changed, 46 insertions(+) mode change 100644 => 100755 rspl/c1.c mode change 100644 => 100755 rspl/c1df.c mode change 100644 => 100755 rspl/cw1.c mode change 100644 => 100755 rspl/cw3.c mode change 100644 => 100755 rspl/gam.c mode change 100644 => 100755 rspl/gam.h mode change 100644 => 100755 rspl/mlbs.c mode change 100644 => 100755 rspl/mlbs.h mode change 100644 => 100755 rspl/opt.c mode change 100644 => 100755 rspl/rev.c mode change 100644 => 100755 rspl/rev.h mode change 100644 => 100755 rspl/revbench.c mode change 100644 => 100755 rspl/rspl.c mode change 100644 => 100755 rspl/rspl.h mode change 100644 => 100755 rspl/rspl1.c mode change 100644 => 100755 rspl/rspl1.h mode change 100644 => 100755 rspl/rspl_imp.h mode change 100644 => 100755 rspl/scat.c mode change 100644 => 100755 rspl/scat2.c mode change 100644 => 100755 rspl/sm1.c mode change 100644 => 100755 rspl/sm2.c mode change 100644 => 100755 rspl/sm3.c mode change 100644 => 100755 rspl/smtmpp.c mode change 100644 => 100755 rspl/smtnd.c mode change 100644 => 100755 rspl/spline.c mode change 100644 => 100755 rspl/stest.c mode change 100644 => 100755 rspl/t2d.c mode change 100644 => 100755 rspl/t2ddf.c mode change 100644 => 100755 rspl/t3d.c mode change 100644 => 100755 rspl/t3ddf.c mode change 100644 => 100755 rspl/tnd.c mode change 100644 => 100755 rspl/trnd.c (limited to 'rspl') diff --git a/rspl/c1.c b/rspl/c1.c old mode 100644 new mode 100755 diff --git a/rspl/c1df.c b/rspl/c1df.c old mode 100644 new mode 100755 diff --git a/rspl/cw1.c b/rspl/cw1.c old mode 100644 new mode 100755 diff --git a/rspl/cw3.c b/rspl/cw3.c old mode 100644 new mode 100755 diff --git a/rspl/gam.c b/rspl/gam.c old mode 100644 new mode 100755 index e46780f..0765e05 --- a/rspl/gam.c +++ b/rspl/gam.c @@ -18,6 +18,52 @@ * Latest simplex/linear equation version. */ +/* + + This probably needs re-writing, since (I think) it doesn't take gamut + self intersection into account. Outline would be: + + Have a spactial cache structure that contains list of potentialy + intersecting triangles for any point. Create this incrementally. + Each triangle can be replaced by a list of fragment triangles + sharing the same plane. + + i.e. + + triangle planes + triangles + edges + vertexes + + Initialization: + + Locate extreme vertex + Locate triangle that uses that vertex that is most elevated + in that direction as initial surface. + Intersect that triangle with all other triangles nearby, and + retain the fragment that has that vertex. + List of open edges is initial triangle edges. + Track outward and inward faces of all triangles in open surface. + + Basic loop: + + While edge list is non-empty { + Locate adjacent triangle that is not part of surface that + is most accutely angled to outside face. + + Intersect that triangle with all other triangles using cache structure, + hanging on to all resulting fragments that are part of that edge. + + Add those fragments to the open surface. + + } + + Each intersection adds new nodes, and splits a triangle into + about 8 smaller triangles. Trick is to avoid slivers and + numerical issues with triangles. +*/ + + /* TTBD: Add ouutput curve lookup callback support. diff --git a/rspl/gam.h b/rspl/gam.h old mode 100644 new mode 100755 diff --git a/rspl/mlbs.c b/rspl/mlbs.c old mode 100644 new mode 100755 diff --git a/rspl/mlbs.h b/rspl/mlbs.h old mode 100644 new mode 100755 diff --git a/rspl/opt.c b/rspl/opt.c old mode 100644 new mode 100755 diff --git a/rspl/rev.c b/rspl/rev.c old mode 100644 new mode 100755 diff --git a/rspl/rev.h b/rspl/rev.h old mode 100644 new mode 100755 diff --git a/rspl/revbench.c b/rspl/revbench.c old mode 100644 new mode 100755 diff --git a/rspl/rspl.c b/rspl/rspl.c old mode 100644 new mode 100755 diff --git a/rspl/rspl.h b/rspl/rspl.h old mode 100644 new mode 100755 diff --git a/rspl/rspl1.c b/rspl/rspl1.c old mode 100644 new mode 100755 diff --git a/rspl/rspl1.h b/rspl/rspl1.h old mode 100644 new mode 100755 diff --git a/rspl/rspl_imp.h b/rspl/rspl_imp.h old mode 100644 new mode 100755 diff --git a/rspl/scat.c b/rspl/scat.c old mode 100644 new mode 100755 diff --git a/rspl/scat2.c b/rspl/scat2.c old mode 100644 new mode 100755 diff --git a/rspl/sm1.c b/rspl/sm1.c old mode 100644 new mode 100755 diff --git a/rspl/sm2.c b/rspl/sm2.c old mode 100644 new mode 100755 diff --git a/rspl/sm3.c b/rspl/sm3.c old mode 100644 new mode 100755 diff --git a/rspl/smtmpp.c b/rspl/smtmpp.c old mode 100644 new mode 100755 diff --git a/rspl/smtnd.c b/rspl/smtnd.c old mode 100644 new mode 100755 diff --git a/rspl/spline.c b/rspl/spline.c old mode 100644 new mode 100755 diff --git a/rspl/stest.c b/rspl/stest.c old mode 100644 new mode 100755 diff --git a/rspl/t2d.c b/rspl/t2d.c old mode 100644 new mode 100755 diff --git a/rspl/t2ddf.c b/rspl/t2ddf.c old mode 100644 new mode 100755 diff --git a/rspl/t3d.c b/rspl/t3d.c old mode 100644 new mode 100755 diff --git a/rspl/t3ddf.c b/rspl/t3ddf.c old mode 100644 new mode 100755 diff --git a/rspl/tnd.c b/rspl/tnd.c old mode 100644 new mode 100755 diff --git a/rspl/trnd.c b/rspl/trnd.c old mode 100644 new mode 100755 -- cgit v1.2.3