ROAM datastructure

Started by
2 comments, last by qed 23 years, 5 months ago
I''m trying to implement frame-coherent ROAM. In the original paper (paragraph 5.2 Merge Queue) there is the sentence "Remove from Qm any diamonds whose children were split". It seems to me that this means you need a pointer in the triangle bintree datastructure to its parent, because when you split a triangle you must check if its parent is in the merge queue. So my question is: do you need a parent pointer in the triangle bintree structure or is there another way to find the diamonds whose children were split?
Advertisement
typedef struct tri {
struct tri *left;
struct tri *right;
struct tri *base;
struct tri *parent;
int level;
} TRI;

Something like that maybe. It's been a while since I messed around with ROAM and the ROAM paper.



Edited by - bishop_pass on November 1, 2000 9:53:27 AM
_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
So you are saying that a parent pointer is necessary in frame-coherent ROAM? In split only ROAM is seems unnecessary to me.
qed,

From my experience frame-coherent ROAM needs a parent pointer.
You need to be able to incrementally cut back on tris (merge) so the pointer is necessary to get to a parent.

Kallen

This topic is closed to new replies.

Advertisement