[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/gfx demo/sqfillet.py libfillet/Fillet.cxx l...
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] gzz/gfx demo/sqfillet.py libfillet/Fillet.cxx l... |
Date: |
Tue, 22 Oct 2002 13:03:45 -0400 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Tuomas J. Lukka <address@hidden> 02/10/22 13:03:45
Modified files:
gfx/demo : sqfillet.py
gfx/libfillet : Fillet.cxx Fillet.hxx
Log message:
Fix a little
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/sqfillet.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libfillet/Fillet.cxx.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libfillet/Fillet.hxx.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
Patches:
Index: gzz/gfx/demo/sqfillet.py
diff -u gzz/gfx/demo/sqfillet.py:1.1 gzz/gfx/demo/sqfillet.py:1.2
--- gzz/gfx/demo/sqfillet.py:1.1 Tue Oct 22 12:28:22 2002
+++ gzz/gfx/demo/sqfillet.py Tue Oct 22 13:03:45 2002
@@ -1,4 +1,4 @@
-AbstractUpdateManager.defaultAnimationTime = 9000
+AbstractUpdateManager.defaultAnimationTime = 150000
from java.lang import Math
class SqfScene:
@@ -32,14 +32,22 @@
vs.map.put(getDListNocoords("""
Color 0 0 0
- LineWidth 2
+ LineWidth 1
"""))
vs.map.put(GLRen.createSqFilletConnection(40), cs1,
cs2)
+ vs.map.put(getDListNocoords("""
+ Color 1 0 0
+ """))
+
vs.map.put(GLRen.createSqFilletConnection(40), cs1,
cs3)
+
+ vs.map.put(getDListNocoords("""
+ Color 0 1 0
+ """))
vs.map.put(GLRen.createSqFilletConnection(40), cs2,
cs3)
Index: gzz/gfx/libfillet/Fillet.cxx
diff -u gzz/gfx/libfillet/Fillet.cxx:1.1 gzz/gfx/libfillet/Fillet.cxx:1.2
--- gzz/gfx/libfillet/Fillet.cxx:1.1 Tue Oct 22 12:28:22 2002
+++ gzz/gfx/libfillet/Fillet.cxx Tue Oct 22 13:03:45 2002
@@ -1,6 +1,13 @@
#include "Fillet.hxx"
namespace Fillet {
DBGVAR(dbg, "Fillet.general");
+ DBGVAR(dbg_origs, "Fillet.origs");
+
+ inline bool between(float start, float end, float it,
+ float fuzz = 1) {
+ return (fuzz * fabs(start-end) >= fabs(it-end)) &&
+ (fuzz * fabs(start-end) >= fabs(it-start));
+ }
bool _Cutter::operator()(const ZPt &a, const ZPt &b) {
DBG(dbg) << "Cut "<<a<<" "<<b<<"\n";
@@ -12,8 +19,15 @@
Pt p = (Pt)in;
DBG(dbg) << "Cutter points: "<<p<<" "<<(p-center)<<"\n";
if((p-center).dot(fromCenter) < 0) return false;
- if(!between(a.x, b.x, p.x)) return false;
- if(!between(a.y, b.y, p.y)) return false;
+
+ Vec b2(b-a);
+ Vec p2(p-a);
+ float d = b2.dot(p2);
+ float e = b2.dot(b2);
+ if(d < 0 || d > e) return false;
+
+ if(!between(a.x, b.x, p.x) &
+ !between(a.y, b.y, p.y)) return false;
this->cut = ZPt(p.x, p.y, a.z); // XXX
DBG(dbg) << "CUT!!! "<<cut<<"\n";
return true;
Index: gzz/gfx/libfillet/Fillet.hxx
diff -u gzz/gfx/libfillet/Fillet.hxx:1.3 gzz/gfx/libfillet/Fillet.hxx:1.4
--- gzz/gfx/libfillet/Fillet.hxx:1.3 Tue Oct 22 12:28:22 2002
+++ gzz/gfx/libfillet/Fillet.hxx Tue Oct 22 13:03:45 2002
@@ -12,6 +12,7 @@
using std::vector;
PREDBGVAR(dbg);
+ PREDBGVAR(dbg_origs);
/** Transform (currently only linear) an outline.
*/
@@ -70,11 +71,6 @@
return true;
}
- inline bool between(float start, float end, float it) {
- return (fabs(start-end) >= fabs(it-end)) &&
- (fabs(start-end) >= fabs(it-start));
- }
-
struct _Cutter {
HL iline;
Pt center;
@@ -112,6 +108,7 @@
bool prevshifted, curshifted;;
ZPt prevpt = d(*prev, prevshifted);
*o++ = prevpt;
+ if(dbg_origs) *o++ = *prev;
while( (++cur) != e) {
ZPt curpt = d(*cur, curshifted);
if(curshifted || prevshifted) {
@@ -119,10 +116,13 @@
const int n = 30;
bool fooshifted;
for(int i=1; i<n; i++) {
- *o++ = d(lerp(*prev, *cur, (float)i / n), fooshifted);
+ ZPt p = lerp(*prev, *cur, (float)i / n);
+ *o++ = d(p, fooshifted);
+ if(dbg_origs) *o++ = p;
}
}
*o++ = curpt;
+ if(dbg_origs) *o++ = *cur;
prev = cur;
prevpt = curpt;
prevshifted = curshifted;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] gzz/gfx demo/sqfillet.py libfillet/Fillet.cxx l...,
Tuomas J. Lukka <=