fenfire-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fenfire-dev] PEG single_focus_manager


From: Matti Katila
Subject: [Fenfire-dev] PEG single_focus_manager
Date: Wed, 17 Sep 2003 16:16:19 +0300 (EEST)

==========================================================================
PEG single_focus_manager--mudyc: Single Buoy Manager - One Focus and Buoys
==========================================================================

:Authors:  Matti J. Katila
:Date-Created: 2003-09-05
:Last-Modified: $Date: 2003/09/17 13:08:54 $
:Revision: $Revision: 1.5 $
:Status:   Current
:Stakeholders: mudyc, tjl, benja
:Scope:    Major
:Type:     Interface


The buoy oriented interface is in real use and must be stabilized.
Here is the proposed interface.


Issues
======

..

Changes
=======

We define the following interface.

::

    /** An interface for managing the buoy links, focus main node and 
     * the construction of base coordinate systems related to buoy view.
     * Basicly the manager constructs activated coordinate systems for 
focus, main node,
     * and for every buoy links. The information of buoys, i.e. buoy 
anchor, node type etc.,
     * are needed afterwards when user clicks any of the buoys to perform 
an action.
     */
    public interface BuoyManager extends BuoyLinkListener {

        /** Represantion of anchor object rendered with some node type.
         * Buoy implementation should be memory efficient
         * and this implies that it's not clear that reference of buoy, 
         * which you asked from BuoyManager, is same after new draw is 
done.
         */
        public interface Buoy {

            /** Get the node type of this buoy.
             */
            BuoyViewNodeType getNodeType();

            /** Get the link identification which is 
             * used in interpolations. The identification must be unique 
             * to get proper interpolation.
             */
            Object getLinkId();


            /** Get the anchor inside of this buoy. 
             * The anchor is the object which was the reason to render 
this buoy.
             */
            Object getBuoyAnchor();


            /** Get the coordinate system of this buoy.
             * The cs is given and activated by BuoyManager and the node 
type
             * of this Buoy renders into it.
             */
            int getBuoyCS();

            /** Get the direction of this buoy. If direction > 0 
             * buoy is on the rigth side, else the buoy is on the left 
side.
             */
            int getDirection();
        }


        /** Moves the focus to given buoy with interpolation from old buoy 
to new focus.
         * If the Buoy is not from this BuoyManager an error is thrown.
         * The old focus view port should be interpolated to new buoy.
         */
        void moveFocusTo(Buoy buoy);

        /** Draw the focus main node. While rendering BuoyViewMainNode 
         * BuoyManager get buoys with LinkListener's call back 
         * interface which it implements. The buoys must not be rendered
         * while call back linking but after every link, because 
         * main node might render into stenciled buffer.
         * @param into The coordinate system where the focus is drawn.
         */
        void draw(VobScene vs, int into);

        /** Returns the focused main node.
         */
        BuoyViewMainNode getMainNode();

        /** Return the buoy found by coordinate system.
         * To found the buoy which is clicked, ask activated
         * coordinate system from VobScene. If coordinate system
         * is not constructed in this BuoyManager, null is returned.
         */
        Buoy getBuoy(int cs);

    }







reply via email to

[Prev in Thread] Current Thread [Next in Thread]