1 // VISU OBJECT : interactive object for VISU entities implementation
3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
29 #ifndef VISU_ACTOR_FACTORY_H
30 #define VISU_ACTOR_FACTORY_H
32 #include <boost/signals/trackable.hpp>
36 //----------------------------------------------------------------------------
39 //! This class defines an abstaract interface to manage actors
41 Actors are created by corresponding presentations and published in the defined view.
42 Each actor can be published only into one view but one presentation can have many actors.
43 Due to the complexity of the actor presentation interaction the new interface defines common
44 and simply way to manage them properly.
46 This interface inherits from boost::bsignals::trackable in order to provide automatic
47 diconnection from defined signals if the object is destroyed.
49 struct TActorFactory: public virtual boost::bsignals::trackable
51 //! Just to make this class virtual
56 //! To update the actor
59 UpdateActor(VISU_Actor* theActor) = 0;
61 //! To unregister the actor
64 RemoveActor(VISU_Actor* theActor) = 0;
68 #endif //VISU_ACTOR_FACTORY_H