cgma
TBOwner.hpp
Go to the documentation of this file.
00001 //-------------------------------------------------------------------------
00002 // Filename      : TBOwner.hpp
00003 //
00004 // Purpose       : Interface for an object that owns a TopologyBridge
00005 //
00006 // Special Notes : Interface implemented by BridgeManager and virtual classes.
00007 //
00008 // Creator       : Jason Kraftcheck
00009 //
00010 // Creation Date : 11/28/01
00011 //-------------------------------------------------------------------------
00012 #ifndef TB_OWNER_HPP
00013 #define TB_OWNER_HPP
00014 
00015 #ifndef CUBITOBJECT_HPP
00016 #  include "CubitDefines.h"
00017 #endif
00018 
00019 #include "TopologyBridge.hpp"
00020 
00021 class CUBIT_GEOM_EXPORT TBOwner
00022 {
00023 
00024   public:
00025   
00026     virtual ~TBOwner();
00027     virtual CubitStatus remove_bridge( TopologyBridge* bridge ) = 0;
00028     
00029     virtual CubitStatus bridge_destroyed( TopologyBridge* bridge )
00030       { return remove_bridge( bridge ); }
00031     
00032     virtual CubitStatus swap_bridge( TopologyBridge* old_tb, 
00033                                      TopologyBridge* new_tb,
00034                                      bool reversed ) = 0;
00035                                      
00036     virtual CubitBoolean contains_bridge( TopologyBridge* bridge ) const
00037       { return (CubitBoolean)(bridge->owner() == this); }
00038     
00039     virtual void notify_reversed( TopologyBridge* ) = 0;
00040 
00041     virtual void notify_joined( TopologyBridge* /* dead_bridge      */,
00042                                 TopologyBridge* /* combined_bridge  */) {}
00043     
00044     virtual void notify_split ( TopologyBridge* /* new_bridge       */,
00045                                 TopologyBridge* /* split_from       */) {}
00046     
00047     virtual void notify_merged( TopologyBridge*   dead_bridge         ,
00048                                 TopologyBridge* /* coincident_bridge*/) 
00049       { remove_bridge( dead_bridge ); }
00050     
00051     virtual void notify_copied( TopologyBridge* /* new_bridge       */,
00052                                 TopologyBridge* /* split_from       */) {}
00053     virtual void notify_topology_modified( TopologyBridge* ) {}
00054 
00055     
00056   protected:
00057 };
00058 
00059 #endif
00060 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines