entity set implementation for iMesh and iGeom

Carl Ollivier-Gooch cfog at mech.ubc.ca
Thu Nov 5 09:25:02 CST 2009


Ottmar Klaas wrote:
> Hi,
> 
> while looking at implementing entity sets, we ran into a few questions, 
> and I was wondering if someone could help us sort this out. According to 
> the documentation of iMesh/iGeom entity sets can be ordered or 
> unordered. Based on what we could find in the documentation, the only 
> differentiator between the two sets is that "Unordered entity sets can 
> contain a given entity or set only once", opening up a variety of 
> possible implementations for ordered sets. However, the naming of 
> parameters (e.g. int isList) to differentiate between ordered and 
> unordered sets seems to imply that ordered sets are to be implemented 
> based on a list data structure. We were wondering if you can give us 
> more information regarding the requirements for the entity set 
> implementation. Is your intention to prescribe the implementation 
> (classical list data structure for ordered sets, and a set data 
> structure for unordered sets)? If not, could you define the requirements 
> for the entity set implementations, e.g. how fast is random access 
> supposed to be (e.g. O(n) or faster), are ordered sets order preserving 
> in the sense that the order in which I add entities to an ordered set is 
> the order in which the iterator will return the entities, etc.?

While STL lists and sets are possibilities for implementation, you can 
do them some other way if you prefer.

There is no performance spec (in particular, iMesh sets don't support 
random access, so definitely no spec there).

The distinguishing feature is the one you asked about:  an iterator has 
to return the entities in the order added.  Also, boolean ops on two 
ordered sets have prescribed behavior (boolean ops on one ordered and 
one unordered set behave as if both were unordered).  I seem to recall 
that removing an entity that appears multiple times in an ordered set 
removes the -last- copy, but that might be wrong...

Cheers,
Carl

-- 
------------------------------------------------------------------------
Dr. Carl Ollivier-Gooch, P.Eng.                   Voice: +1-604-822-1854
Associate Professor                                 Fax: +1-604-822-2403
Department of Mechanical Engineering             email: cfog at mech.ubc.ca
University of British Columbia              http://www.mech.ubc.ca/~cfog
Vancouver, BC  V6T 1Z4                  http://tetra.mech.ubc.ca/ANSLab/
------------------------------------------------------------------------


More information about the tstt-interface mailing list