Hi Peter and everybody,
Got it. I know exactly what you mean. Thank you for your reply.
Also thanks to Peter Vanroose for his help.
We will try two solutions. The first one is as you said, make a few required duplications and completely separate the 2D and 3D hierarchy. This is probably the easiest one.
The other is, make a base class vtol_topology_object, but do NOT inherit it from vsol_spatial_object. Instead, use a pointer to point to the vsol_spatial_object as a data member. This solution still needs some duplication in the member functions (mimic from the spatial object class). It would required deep understanding of the whole vtol library, and I don't know this will work without more trouble or not.
I would say, fist try solution I (make necessary code duplication to separate 2D/3D). My colleague and I will make sure it fully compiles and works. Then we will write a summary of changes to the community and commit the code.
----- Original Message -----
From: Tu, Peter (Research)
To: 'Ming-Ching Chang' ; vxl-maintainers@lists.sourceforge.net
Sent: Monday, October 04, 2004 9:06 AM
Subject: RE: [Vxl-maintainers] Question about vtol in 3D

I wrote much of the initial vtol libraries. As you say much of the original design was to avoid duplication of code
with multiple dimensions. One down side of this decision is that this resulted in an increase in the amount of
inheritance which has runtime issues - not to mention the ambiguity involved with spatial object classes.
At this point I would agree that two different hierarchies for 2D and 3D would makes sense - even though this
means code duplication.