Entity sets - containment and parent-child

Mark Beall mbeall at simmetrix.com
Mon Nov 16 14:28:04 CST 2009


On Nov 16, 2009, at 2:54 PM, Tim Tautges wrote:

> A
>> couple of questions:
>> - createAssociation implies that there can only be a single  
>> relation between two interfaces. Offhand I can't think of a example  
>> of where there might be more than one, but it seems it might be  
>> possible.
>
> I think so too.  This is one of the reasons I think it's useful to  
> have distinct "relation" objects.  The fact that the interface  
> doesn't seem to support a variety of uses is more a factor of nobody  
> really using it besides me.
>
> In the longer run, I see there being other pairwise relations too,  
> e.g. a field with a tag.

However, in the case where there is more than one relation possible,  
there would also need to be a way to "describe" what relation you are  
asking for. At this point it would seem that if I'm asking for a mesh- 
model relation, then I'm, by definition, asking for classification.

Also, I think there is a need to define what would be in the  
classification relation. By "define" here, I either mean that it's  
documented what this particular relation will be or there is a way for  
the user to request that certain information be there.

For example, let's consider a model face and the mesh classified on  
it. I can see reasonable implementations that would only give the list  
of mesh faces classified on the model face, in our implementation I  
can also give you the mesh edges and vertices. If an application needs  
the vertices classified on a model face it's going to work with one  
implementation and not with the other (unless the developer is very  
careful to code for every possible case - and I think it's kind of a  
waste for every developer to have to do that).

>> - why does createAssociation take in whether the relation is an  
>> entity or a set rather than that being returned? It makes sense if  
>> the relation is empty, doesn't really make sense if the relation is  
>> something like our classification that already exists (or  
>> classification in general since there really should only be one way  
>> to describe that).
>
> In most cases you can support either, and which one you want depends  
> on the usage.  I think this would be far more useful though if there  
> were a function to change the type of relation dynamically.   
> Requesting an entity-set type be changed to an entity-both type, and  
> back again, for smoothing, is the easiest use case for this, but  
> adaptive refinement is another good example.

I don't think I understand why you would want to change the relation.  
If I have classification as an entity-set relation, why would I want  
it differently. I will say that I'm assuming that  
iRel_getEntEntAssociation always allows you to efficiently query the  
relation in either direction (this is implied due to the existence of  
the "switch_order" argument).

mark



More information about the tstt-interface mailing list