Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : BridgeManager.hpp
3 : : //
4 : : // Purpose : Manages the TopologyBridges being used by
5 : : // a single TopologyEntity. Encapsulates the
6 : : // merging/unmerging of TopologyBridges into/from
7 : : // a TopologyEntity.
8 : : //
9 : : // Creator : Darryl Melander
10 : : //
11 : : // Creation Date : 02/20/99
12 : : //
13 : : // Owner : Darryl Melander
14 : : //-------------------------------------------------------------------------
15 : : #ifndef BRIDGE_MANAGER_HPP
16 : : #define BRIDGE_MANAGER_HPP
17 : :
18 : : #include "CubitDefines.h"
19 : : #include "DLIList.hpp"
20 : : #include "TBOwner.hpp"
21 : : #include "TopologyBridge.hpp"
22 : :
23 : : #include <vector>
24 : :
25 : : class TopologyEntity;
26 : : class GeometryQueryEngine;
27 : :
28 : : class CUBIT_GEOM_EXPORT BridgeManager : public TBOwner
29 : : {
30 : : public:
31 : : // Constructor/Destructor
32 : : BridgeManager();
33 : : virtual ~BridgeManager();
34 : :
35 : : void set_entity(TopologyEntity* ent);
36 : :
37 : : // Bridge Management Functions
38 : : virtual CubitStatus add_bridge(TopologyBridge* bridge);
39 : : CubitStatus add_bridge_as_representation(TopologyBridge* bridge);
40 : : virtual CubitStatus remove_bridge(TopologyBridge* bridge );
41 : : virtual CubitStatus bridge_destroyed( TopologyBridge* bridge );
42 : : CubitStatus remove_all_bridges();
43 : : CubitStatus merge (BridgeManager* dead_manager,
44 : : CubitSense relative_sense );
45 : : virtual CubitStatus swap_bridge( TopologyBridge* old_tb,
46 : : TopologyBridge* new_tb,
47 : : bool reversed );
48 : :
49 : : // Bridge Query Functions
50 : : virtual CubitBoolean contains_bridge(TopologyBridge* bridge) const;
51 : : int get_bridge_list(DLIList<TopologyBridge*>& bridge_list) const;
52 : 646715 : TopologyBridge* topology_bridge() const
53 : : {
54 [ + + ]: 646715 : if(!mergeList.empty())
55 [ + - ]: 550314 : return *(mergeList.begin());
56 : : else
57 : 646715 : return 0;
58 : : }
59 : :
60 : : //Bridge Query Functions, querying for bridges owned by
61 : : //a particular GeometryQueryEngine.
62 : : int get_bridge_list(DLIList<TopologyBridge*>& bridge_list,
63 : : GeometryQueryEngine* gme_ptr ) const;
64 : : TopologyBridge* topology_bridge( GeometryQueryEngine* gme_ptr ) const;
65 : : int number_of_bridges() const;
66 : :
67 : : // TE Query Function (Can't change TE after creation)
68 : 264591 : TopologyEntity* topology_entity() const
69 : 264591 : {return topologyEntity;}
70 : :
71 : : void reverse_bridge_senses();
72 : : // Switch the relative sense of all TopologyBridges.
73 : : // If update_first is true, change the principal bridge
74 : : // to be one that has a forward relative sense, if there
75 : : // is one.
76 : :
77 : : virtual void notify_reversed( TopologyBridge* bridge );
78 : :
79 : : private:
80 : :
81 : : TopologyEntity* topologyEntity;
82 : : std::vector<TopologyBridge*> mergeList;
83 : : };
84 : :
85 : : #endif
86 : :
|