cgma
|
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