[IGSTK-Developers] Some SM/Spatial Object questions

Kevin Gary kgary at asu.edu
Wed Feb 23 19:41:26 EST 2005


All,

I've finally found the time to get around to my long-overdue
code reviews (Julien, thanks for patching CVS...). As I was
reviewing the code, I think I had a brain hiccup concerning
spatial objects (SOs) versus viewer representation objects (VRs).
Let me try to explain and then ask a few questions.

I thought a "scene" was an aggregator of a collection of
spatial objects. The spatial objects were the abstract
representation of the objects in the operating room. As I
read the code and then revisit the diagram on the Wiki at
http://public.kitware.com/IGSTKWIKI/index.php/Mouse_Tracking_Sphere-Implementation
I see that I was in error - the scene aggregates the visual
representation objects, which in turn "observe" the spatial
objects. Though this was contrary to my thinking, it seems
workable - but I have a few questions:

- If there is a view representation per view, as indicated by
   the Wiki page, then wouldn't there be multiple scenes to
   maintain? And what would be the distinction between a
   scene and a view? Both aggregate (hold references to)
   collections of view representation objects.
- I expected also to find state machines in the IGSTK spatial
   objects, but instead find them in the view representation
   objects. What is the benefit of a state machine in these
   objects? Could there be problematic scenarios where a
   SM action fails which leads to a situation where the
   view representation is not synched with the spatial object?
   For example, if the spatial object undergoes a change and
   notifies the view representation objects observing it using
   InvokeEvent, and then the VR object reacts via the SM,
   but the SM action fails...a VR object could then be out of
   synch with other VR objects or the SO it observes? Also,
   I am not sure why SOs are assumed to be passive - why are
   they not stateful (have a SM)?
- I suspect a possible answer to the previous question is to
   say that Timestamps will be used to ensure validity of a
   scene. But I have a question on the use of timestamps here.
   Are the Timestamps to be checked in the VR objects or the
   the SOs? Right now the SOs fire the event (call InvokeEvent)
   immediately to notify all VR objects. I am presuming when they
   do so they will pass a Timestamp to the VR object, meaning a VR
   object will be responsible for validating the Timestamp as part
   of the participation in a scene. While this is also workable,
   it would seem there will be a lot of redundant checking of
   timestamps across VR objects that map back to the same SO.
- I could not find an aggregator for SOs, something that corresponds
   to a scene for VRs. In the diagram there is a "Group-SO"?

I assume that once again I drank the Kool-Aid too fast and
hopefully somebody can cure my resulting brain hiccups.

Thanks,
K2

-- 
===
Kevin A. Gary, Ph.D.
Assistant Professor
DCST, ASU East
(480)727-1373
http://kgary2.east.asu.edu
kgary at asu.edu

====
This message and any attachments are confidential. Unauthorized use
or disclosure of this message is strictly prohibited, and this message
must be destroyed immediately if received by an unauthorized recipient.
====



More information about the IGSTK-Developers mailing list