[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] libvob include/vob/geom/Fillets2.hxx include/vo...
From: |
Janne V. Kujala |
Subject: |
[Gzz-commits] libvob include/vob/geom/Fillets2.hxx include/vo... |
Date: |
Sat, 14 Jun 2003 03:53:05 -0400 |
CVSROOT: /cvsroot/libvob
Module name: libvob
Branch:
Changes by: Janne V. Kujala <address@hidden> 03/06/14 03:53:05
Modified files:
include/vob/geom: Fillets2.hxx
include/vob/vobs: Fillet.hxx
vob/demo/multifil: multifil.py randgraph.py
Log message:
make fillet thickness 3D-rotation invariant
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/include/vob/geom/Fillets2.hxx.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/include/vob/vobs/Fillet.hxx.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/vob/demo/multifil/multifil.py.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/vob/demo/multifil/randgraph.py.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
Patches:
Index: libvob/include/vob/geom/Fillets2.hxx
diff -u libvob/include/vob/geom/Fillets2.hxx:1.14
libvob/include/vob/geom/Fillets2.hxx:1.15
--- libvob/include/vob/geom/Fillets2.hxx:1.14 Fri Jun 13 09:38:12 2003
+++ libvob/include/vob/geom/Fillets2.hxx Sat Jun 14 03:53:04 2003
@@ -233,7 +233,8 @@
double err;
double maxerr = tol * node.r;
- while (1) {
+ int iter = 100;
+ while (iter--) {
f = 0.5 * (f0 + f1);
p = point(f) - node.ctr;
err = dir2.dot(p);
@@ -246,6 +247,11 @@
p1 = p;
f1 = f;
}
+ }
+ if (iter == 0) {
+ cout << "EllipseFillet::point reached max iter" << std::endl;
+ success = false;
+ return ZVec();
}
success = true;
Index: libvob/include/vob/vobs/Fillet.hxx
diff -u libvob/include/vob/vobs/Fillet.hxx:1.14
libvob/include/vob/vobs/Fillet.hxx:1.15
--- libvob/include/vob/vobs/Fillet.hxx:1.14 Fri Jun 13 08:13:36 2003
+++ libvob/include/vob/vobs/Fillet.hxx Sat Jun 14 03:53:04 2003
@@ -169,14 +169,14 @@
void v(ZVec p) const {
if(flags & 4) {
- glColor3f(1, p.z / 100, p.z / 100);
+ glColor3f(1, p.z / 800, p.z / 800);
}
glVertex(p);
}
void vl(ZVec p) const {
if(flags & 4) {
- glColor3f(0,p.z / 100, p.z / 100);
+ glColor3f(0,p.z / 800, p.z / 800);
}
glVertex(p);
}
@@ -285,8 +285,8 @@
float csize = crad(t0);
- Conn conn1(thick_t, angle_t, t0, t1, d1);
- Conn conn2(thick_t, angle_t, t0, t2, d2);
+ Conn conn1(thick_t, angle_t, t0, t1, 0.5 * (p1 - ctr).length());
+ Conn conn2(thick_t, angle_t, t0, t2, 0.5 * (p2 - ctr).length());
float th1 = conn1.th;
float th2 = conn2.th;
Index: libvob/vob/demo/multifil/multifil.py
diff -u libvob/vob/demo/multifil/multifil.py:1.14
libvob/vob/demo/multifil/multifil.py:1.15
--- libvob/vob/demo/multifil/multifil.py:1.14 Thu Jun 12 09:29:57 2003
+++ libvob/vob/demo/multifil/multifil.py Sat Jun 14 03:53:04 2003
@@ -39,14 +39,14 @@
SlideLin("x", 200, 20, "x", "Left", "Right"),
SlideLin("y", 300, 20, "y", "Up", "Down"),
SlideLin("angle", math.pi/4, .05, "meet angle", "+", "-"),
- SlideLin("thick", .1, .01, "thickness", "T", "t"),
+ SlideLin("thick", 1, .1, "thickness", "T", "t"),
Toggle("drawEdge", 1, "Draw edge", "e"),
Toggle("drawInside", 1, "Draw inside", "i"),
Toggle("depthColor", 0, "Color from depth", "d"),
Toggle("lines", 0, "Toggle showing lines", "l"),
Toggle("ellipses", 1, "Toggle ellipses", "s"),
Toggle("stretched", 1, "Toggle stretched", "v"),
- Toggle("curvature", 1, "Show curvature", "c"),
+ Toggle("curvature", 0, "Show curvature", "c"),
SlideLin("size", 50, 5, "Node size", "K", "k"),
SlideLin("dice", 20, 1, "Dice factor", "P", "p"),
)
@@ -69,7 +69,7 @@
#thick = vs.orthoCS(0, "Thi", 0, self.thick, 0, 0, 0);
#thick = vs.orthoCS(0, "Thi", 0, 100*(self.thick / (math.hypot(self.x
- 500, self.y - 500)+50)), 0, 0, 0);
- thick = vs.coords.rational1D22(0, self.thick, 0, 0, 0, 1, 0);
+ thick = vs.coords.rational1D22(0, self.thick, 0, 0, 1, 1, 0);
angle = vs.coords.rational1D22(0, self.angle, 0, 0, 1, 0, 0);
vs.matcher.add(thick, "Thi")
vs.matcher.add(angle, "Ang")
@@ -89,10 +89,10 @@
2)
a = vs.orthoBoxCS(0, "A", 0, 100, 100, 1, 1, self.size, self.size);
- b = vs.orthoBoxCS(0, "B", 25, self.x, self.y, 1, 1, self.size,
self.size);
- c = vs.orthoBoxCS(0, "C", 50, 200, 500, 1, 1, self.size, self.size);
- d = vs.orthoBoxCS(0, "D", 75, 100, 300, 1, 1, self.size, self.size);
- e = vs.orthoBoxCS(0, "E", 100, 500, 500, 1, 1, self.size, self.size);
+ b = vs.orthoBoxCS(0, "B", 200, self.x, self.y, 1, 1, self.size,
self.size);
+ c = vs.orthoBoxCS(0, "C", 400, 200, 500, 1, 1, self.size, self.size);
+ d = vs.orthoBoxCS(0, "D", 600, 100, 300, 1, 1, self.size, self.size);
+ e = vs.orthoBoxCS(0, "E", 800, 500, 500, 1, 1, self.size, self.size);
def pc(conns):
# vs.put(conns, [a, b, c, d])
Index: libvob/vob/demo/multifil/randgraph.py
diff -u libvob/vob/demo/multifil/randgraph.py:1.13
libvob/vob/demo/multifil/randgraph.py:1.14
--- libvob/vob/demo/multifil/randgraph.py:1.13 Fri Jun 13 08:27:10 2003
+++ libvob/vob/demo/multifil/randgraph.py Sat Jun 14 03:53:04 2003
@@ -39,7 +39,7 @@
SlideLin("x", 200, 20, "x", "Left", "Right"),
SlideLin("y", 300, 20, "y", "Up", "Down"),
SlideLin("angle", math.pi/4, .05, "meet angle", "+", "-"),
- SlideLin("thick", .1, .01, "thickness", "T", "t"),
+ SlideLin("thick", 1, .1, "thickness", "T", "t"),
Toggle("drawEdge", 1, "Draw edge", "e"),
Toggle("drawInside", 1, "Draw inside", "i"),
Toggle("depthColor", 0, "Color from depth", "d"),
@@ -90,14 +90,18 @@
box = 800
- cs = vs.scaleCS(0, "cs", 1, 1, .15)
- cs = vs.translateCS(cs, "Trans", 0.5 * box, 0.5 * box, 0.5 * box);
+ cs = vs.scaleCS(0, "cs", 1, 1, 1)
+ size = vs.getSize()
+ cs = vs.translateCS(cs, "Trans",
+ 0.5 * size.width,
+ 0.5 * size.height,
+ 0.5 * box);
cs = vs.coords.rotateXYZ(cs, 0, 1, 0, self.ang);
vs.matcher.add(cs, "Rot")
- thick = vs.coords.rational1D22(0, self.thick, 0, 0, 0, 1, 0);
+ thick = vs.coords.rational1D22(0, self.thick, 0, 0, 1, 1, 0);
angle = vs.coords.rational1D22(0, self.angle, 0, 0, 1, 0, 0);
vs.matcher.add(thick, "Thi")
vs.matcher.add(angle, "Ang")
@@ -105,9 +109,10 @@
nodes = [ {
"cs" : vs.orthoBoxCS(cs, "node%s" % i,
- (rng.random() -.5) * box,
- (rng.random() -.5) * box,
- (rng.random() -.5) * box, 1, 1, self.size,
self.size),
+ (rng.random() - .5) * box,
+ (rng.random() - .5) * box - self.size,
+ (rng.random() - .5) * box - self.size,
+ 1, 1, self.size, self.size),
"conns" : [ ],
} for i in range(0,self.N) ]