Branch data Line data Source code
1 : :
2 : : #include "CGMHistory.hpp"
3 : : #include "TopologyBridge.hpp"
4 : : #include "CubitMessage.hpp"
5 : : #include "RefEntity.hpp"
6 : :
7 : : const char* event_names[] =
8 : : {
9 : : "TOP_LEVEL_ENTITY_CREATED",
10 : : "TOP_LEVEL_ENTITY_DELETED",
11 : : "ENTITY_CREATED",
12 : : "ENTITY_DELETED",
13 : : "TOPOLOGY_CHANGED",
14 : : "GEOMETRY_CHANGED",
15 : : "GEOMETRY_TRANSFORMED",
16 : : "ENTITY_ID_CHANGED",
17 : : "ENTITY_NAME_CHANGED",
18 : : "ENTITY_COLOR_CHANGED",
19 : : "SUBDIVISION",
20 : : "ABSORPTION",
21 : : "SUBDIVISION_ABSORPTION",
22 : : "MERGE",
23 : : "COPY",
24 : : "CUT"
25 : : };
26 : :
27 [ + - ]: 1748 : CGMHistory::CGMHistory()
28 : : {
29 : 874 : mTracking = false;
30 : : //mTracking = true;
31 : 874 : }
32 : :
33 [ + - ]: 542 : CGMHistory::~CGMHistory()
34 : : {
35 : 271 : }
36 : :
37 : 283224 : CGMHistory::Event::Event(CGMHistory::EventType type, RefEntity* refentity)
38 : : {
39 : 141612 : eventType = type;
40 [ + - ]: 141612 : entities.push_back(refentity);
41 : 141612 : }
42 : :
43 : 0 : CGMHistory::Event::Event(CGMHistory::EventType type, const std::vector<RefEntity*>& refentity_list)
44 : : {
45 : 0 : eventType = type;
46 [ # # ]: 0 : entities = refentity_list;
47 : 0 : }
48 : :
49 : 283224 : CGMHistory::Event::~Event()
50 : : {
51 : 141612 : }
52 : :
53 : 0 : CGMHistory::EventType CGMHistory::Event::get_event_type() const
54 : : {
55 : 0 : return eventType;
56 : : }
57 : :
58 : 0 : const std::vector<RefEntity*>& CGMHistory::Event::get_entities() const
59 : : {
60 : 0 : return entities;
61 : : }
62 : :
63 : 0 : void CGMHistory::start_tracking()
64 : : {
65 : 0 : mTracking = true;
66 : 0 : }
67 : :
68 : 0 : void CGMHistory::end_tracking()
69 : : {
70 : 0 : mTracking = false;
71 : 0 : }
72 : :
73 : 0 : bool CGMHistory::is_tracking() const
74 : : {
75 : 0 : return mTracking;
76 : : }
77 : :
78 : 0 : int CGMHistory::get_number_of_events() const
79 : : {
80 : 0 : return eventList.size();
81 : : }
82 : :
83 : 0 : const CGMHistory::Event* CGMHistory::get_event( int index ) const
84 : : {
85 [ # # ][ # # ]: 0 : if (index >= 0 && (size_t)index < eventList.size())
[ # # ]
86 : 0 : return &eventList[index];
87 : 0 : return NULL;
88 : : }
89 : :
90 : 141612 : void CGMHistory::add_event( const CGMHistory::Event &event )
91 : : {
92 [ - + ]: 141612 : if(mTracking)
93 : 0 : eventList.push_back(event);
94 : 141612 : }
95 : :
96 : 0 : void CGMHistory::add_port_event( const CGMHistory::PortEvent &event )
97 : : {
98 [ # # ]: 0 : if(mTracking)
99 : 0 : portEventList.push_back(event);
100 : 0 : }
101 : :
102 : 0 : void CGMHistory::compress()
103 : : {
104 : : // TODO
105 : 0 : }
106 : :
107 : 0 : void CGMHistory::clear()
108 : : {
109 : 0 : eventList.clear();
110 : 0 : portEventList.clear();
111 : 0 : }
112 : :
113 : 0 : void CGMHistory::print_port_events()
114 : : {
115 : :
116 [ # # ]: 0 : std::vector<PortEvent>::iterator iter = portEventList.begin();
117 [ # # ][ # # ]: 0 : for(; iter != portEventList.end(); iter++ )
[ # # ][ # # ]
118 : : {
119 [ # # ][ # # ]: 0 : PortEvent port_event = *iter;
120 [ # # ][ # # ]: 0 : PRINT_INFO("Event type = %s RefEntities ", event_names[ port_event.eventType ]);
[ # # ][ # # ]
121 : :
122 : : size_t i;
123 [ # # ][ # # ]: 0 : for ( i = 0; i < port_event.RefEnts.size(); i++ )
124 : : {
125 [ # # ]: 0 : RefEntity *ref_ent = port_event.RefEnts[i];
126 [ # # ][ # # ]: 0 : PRINT_INFO(" %s %d ", ref_ent->class_name(), ref_ent->id() );
[ # # ][ # # ]
[ # # ][ # # ]
127 : : }
128 [ # # ][ # # ]: 0 : PRINT_INFO(" ---> ");
[ # # ][ # # ]
129 [ # # ][ # # ]: 0 : for ( i = 0; i < port_event.TopologyBridges.size(); i++ )
130 : : {
131 [ # # ]: 0 : TopologyBridge *tb = port_event.TopologyBridges[i];
132 [ # # ][ # # ]: 0 : PRINT_INFO(" %p", (void*)tb );
[ # # ][ # # ]
133 : : }
134 [ # # ][ # # ]: 0 : PRINT_INFO("\n");
[ # # ][ # # ]
135 [ # # ]: 0 : }
136 : 0 : }
137 : :
138 [ # # ]: 0 : CGMHistory::PortEvent::PortEvent(CGMHistory::EventType type )
139 : : {
140 : 0 : eventType = type;
141 : : // if( eventType != GEOMETRY_TRANSFORMED )
142 : : // TopologyBridges = new std::vector<TopologyBridge*>;
143 : : // else
144 : : // TopologyBridges = NULL;
145 : 0 : }
146 : :
147 [ # # ]: 0 : CGMHistory::PortEvent::~PortEvent()
148 : : {
149 : : // if( TopologyBridges )
150 : : // delete TopologyBridges;
151 : 0 : }
152 : :
153 : 0 : CGMHistory::EventType CGMHistory::PortEvent::get_event_type() const
154 : : {
155 : 0 : return eventType;
156 [ + - ][ + - ]: 6540 : }
157 : :
|