[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