Proposal for Requiring Save/Restore of Sets and Tags

Jason Kraftcheck kraftche at cae.wisc.edu
Thu Oct 21 17:06:01 CDT 2010


On 10/21/2010 12:35 PM, Mark Miller wrote:
> So, I think we're agreed that cycles in the set inclusion structure are
> out, right? I mean, I am not seeing any strong opposition there.

Well, I still think that enforcing such a restriction will be too expensive.
 I'd rather deal with handling cycles correctly in queries and IO than
traverse an entire graph for every link creation.

> And, I
> have to say that I strongly agree with Carl's observation that the only
> 'legitimate' case of cycles in set inclusion structure is for some,
> possibility arbitrary long, chain of sets which are all equal to each
> other. What value can allow that possibly serve? What use case requires
> that and which NOT allowing cycles in set inclusion cause undue hardship
> for? 
> 
> So, the real issue is with cycles int the Prnt/Chld structure, right?
> 
> Jason, you mention below "...naming the [Prn/Chld] functions in such a
> way as to be least confusing for the majority of uses..."
> 
> I have to say that the whole concept of Prnt/Chld functions in the
> interface was a major confusion to me when I first started learning it.
> My source of confusion was that I thought the set inclusion structure
> already imposed which sets were 'parents' of other sets by virtue of
> their containment relationships. So, as far as naming these functions
> go, I think Prnt/Chld is actually MORE confusing that something like
> 
> void addSetGraphDirectedLink(iMesh_instance inst,
>     iBase_EntitySetHandle tail_set,
>     iBase_EntitySetHandle head_set
>     int *err);
> 
> void addSetGraphUndirectedLink(iMesh_instance inst,
>     iBase_EntitySetHandle one_set,
>     iBase_EntitySetHandle another_set,
>     int *err);
> 

We don't really need the latter.  One could construct an undirected graph by
creating pairs of directed links.  We'd probably implement it that way
underneath anyway.  It's a little bit more work for the application, but
unless it is a widely used feature, I'm not worried about that.

> And, I'd really, like to put tag data on graph links too.
> 

I've also considered that in the past, but it would rather large
implementation change late in the game.

- jason


More information about the tstt-interface mailing list