ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libgender/oct.C
(Generate patch)

Comparing libgender/oct.C (file contents):
Revision 1.4 by root, Sun Oct 3 05:10:45 2004 UTC vs.
Revision 1.7 by root, Mon Oct 4 02:06:57 2004 UTC

41 a2.z = o1.z + ea; 41 a2.z = o1.z + ea;
42 42
43 sector b2; 43 sector b2;
44 sector eb; 44 sector eb;
45 45
46 b2.x = o2.x + (soffs)bbox.a.x; 46 b2.x = o2.x + bbox.a.x;
47 b2.y = o2.y + (soffs)bbox.a.y; 47 b2.y = o2.y + bbox.a.y;
48 b2.z = o2.z + (soffs)bbox.a.z; 48 b2.z = o2.z + bbox.a.z;
49 49
50 eb.x = (soffs)(bbox.b.x - bbox.a.x) / 2; 50 eb.x = (bbox.b.x - bbox.a.x) / 2;
51 eb.y = (soffs)(bbox.b.y - bbox.a.y) / 2; 51 eb.y = (bbox.b.y - bbox.a.y) / 2;
52 eb.z = (soffs)(bbox.b.z - bbox.a.z) / 2; 52 eb.z = (bbox.b.z - bbox.a.z) / 2;
53 53
54 b2.x += eb.x; 54 b2.x += eb.x;
55 b2.y += eb.y; 55 b2.y += eb.y;
56 b2.z += eb.z; 56 b2.z += eb.z;
57 57
58 return abs (a2.x - b2.x) <= ea + eb.x 58 return abs (a2.x - b2.x) <= ea + eb.x
59 && abs (a2.y - b2.y) <= ea + eb.y 59 && abs (a2.y - b2.y) <= ea + eb.y
60 && abs (a2.z - b2.z) <= ea + eb.z; 60 && abs (a2.z - b2.z) <= ea + eb.z;
61} 61}
62 62
63void octant::add (const sector &sec, entity_base *e) 63void octant::add (entity_base *e)
64{ 64{
65 printf ("OCTANT %d,%d,%d+%d\n", orig.x, orig.y, orig.z, extent); 65 printf ("OCTANT %d,%d,%d+%d\n", orig.x, orig.y, orig.z, extent);
66 66
67 box bbox = translate (e->bbox, e->orig, orig);
68
69#if 0
70 uoffs size = max (abs (bbox.b.x - bbox.a.x),
71 abs (bbox.b.y - bbox.a.y),
72 abs (bbox.b.z - bbox.a.z));
73#endif
74
67 if (overlap (orig, extent, sec, e->bbox)) 75 if (overlap (orig, extent, e->orig, e->bbox))
68 { 76 {
69 printf ("overlap, add\n"); 77 printf ("overlap, add\n");
70 push_back (e); 78 push_back (e);
71 e->o.push_back (this); 79 e->o.push_back (this);
80
81#if 0
82 uoffs extent2 = extent / 2;
83 for (int si = 8; i--; )
84 {
85 e->orig sub = orig;
86 sub.offset (si, extent2);
87 if (overlap (sub, extent2, e->orig, e->bbox))
88 {
89 }
90#endif
72 } 91 }
73 else 92 else
74 printf ("no overlap\n"); 93 printf ("no overlap\n");
75} 94}
76 95
79} 98}
80 99
81void octant::draw (draw_context &ctx) 100void octant::draw (draw_context &ctx)
82{ 101{
83 for (iterator i = end (); i-- != begin (); ) 102 for (iterator i = end (); i-- != begin (); )
84 (*i)->try_draw (ctx); 103 (*i)->display (ctx);
85} 104}
86 105

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines