[comp.windows.x] Wanted: Algorithm for damage repair in 2.5D space.

erik@abblund.se (Erik Sparre) (08/29/90)

I'm looking for damage repair algorithms for 2D graphics. I want to maintain
a database/datastructure of 2D graphical objects (lines, polygons, circles).
Some of these may be visible on the screen depending on the viewing
transformation. They should have some sort of priority (i.e. ordered back to
front).

A change in the position, color or style of a graphical object should be 
intelligently repaired by the algorithm. The goal is to minimize flicker
and graphics processing/rendering.

I've seen one article called "Graphics Object Management in The X Window 
System" (Computer Graphics Forum, Vol 9 #2, 1990), by Davison et.al, dealing 
with this issue, but their implementation is only partial and the actual 
algorithm is not included.

Has anyone heard of such an algorithm or software product ?
Where can I get more details about Davison's algorithm ?

Thanks

Erik Sparre
ABB Corporate Research  Dept. KLL | Phone +46 46 168527
Lab for Man-Machine Communication | Telex        33709
IDEON Research Park               | Fax   +46 46 145620
S-223 70 LUND, SWEDEN             | Email erik@abblund.se

-- 
Erik Sparre
ABB Corporate Research  Dept. KLL | Phone +46 46 168527
Lab for Man-Machine Communication | Telex        33709
IDEON Research Park               | Fax   +46 46 145620

frank@mnetor.UUCP (Frank Kolnick) (08/31/90)

In article <1990Aug29.132544.20549@abblund.se> erik@abblund.se (Erik Sparre) writes:
)I'm looking for damage repair algorithms for 2D graphics. I want to maintain
)a database/datastructure of 2D graphical objects (lines, polygons, circles).
)Some of these may be visible on the screen depending on the viewing
)transformation. They should have some sort of priority (i.e. ordered back to
)front).
)
)A change in the position, color or style of a graphical object should be 
)intelligently repaired by the algorithm. The goal is to minimize flicker
)and graphics processing/rendering.
)...

The QNX Windows implementation of Open Look (which is not an X-based
implementation, btw) does exactly that. It stores graphical 'objects'
in the server and so can handle most event processing (mouse clicks,
typed text, range-checking, etc.), as well as redraws due to changes in
the objects, resizing or exposing a window, etc., locally, i.e., without
involving the application task. (This is especially important in QNX,
which is inherently networked, to minimize net traffic.) Many 'gadgets'
(sliders, dials, scrolling lists, etc.) are also implemented as objects, and 
more complex objects can be constructed from the 'primitive' ones.

Anyway, I'm trying to point out that what you're asking for is much more
than an 'algorithm'. You have to design an appropriate data-base, 
resolve input operations on objects in the data-base, worry about clipping
and intersection of objects, etc., etc. I'd be happy to discuss any
aspect of QNX Windows (perhaps via e-mail). 

-- 
Frank Kolnick,
Basis Computer Systems Inc.
UUCP: {allegra, linus}!utzoo!mnetor!frank