Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : CAActuateSet.hpp
3 : : //
4 : : // Purpose : Maintain the list of entities for which attributes are
5 : : // being actuated such that any entities destroyed
6 : : // during actuation (e.g. merging) get removed from the
7 : : // list.
8 : : //
9 : : // Special Notes :
10 : : //
11 : : // Creator : Jason Kraftcheck
12 : : //
13 : : // Creation Date : 05/28/02
14 : : //-------------------------------------------------------------------------
15 : :
16 : : #ifndef CA_ACTUATE_SET_HPP
17 : : #define CA_ACTUATE_SET_HPP
18 : :
19 : : #include "DLIList.hpp"
20 : : #include "CubitObserver.hpp"
21 : : #include "DagType.hpp"
22 : : #include "CGMGeomConfigure.h"
23 : :
24 : : class RefEntity;
25 : :
26 : : class CUBIT_GEOM_EXPORT CAActuateSet : public CubitObserver
27 : : {
28 : : public:
29 : :
30 : : CAActuateSet( DLIList<RefEntity*>& actuate_list );
31 : : //- Constructor
32 : : //- Passed list of entities such that attributes will
33 : : //- be actuated for the passed entities and all child
34 : : //- entities.
35 : :
36 : : ~CAActuateSet();
37 : : //- Destructor
38 : :
39 : : void set_current_dimension( int dimension );
40 : : //- Populate the "current list" with all entities
41 : : //- of the specified dimension (4 = body, 3 = volume, etc.)
42 : : //- "current list" is populated with all entities of
43 : : //- the specified dimension from the actuate_list passed
44 : : //- to the constuctor, and children of entities in the
45 : : //- actuate_list with the passed dimension.
46 : :
47 : : inline RefEntity* remove_next();
48 : : //- Pop one entity from the "current list". Returns NULL
49 : : //- when there are no more entities.
50 : :
51 : : virtual void notify_observer( const CubitEvent* observer_event);
52 : : //- Update for destroyed entities.
53 : :
54 : : private:
55 : :
56 : : void append_to_current( DLIList<RefEntity*>& query_results );
57 : : //- Append passed entities to currentList
58 : :
59 : : static DagType get_type_id( int dimension );
60 : :
61 : : DLIList<RefEntity*> typeList[5];
62 : : //- Lists containing the entities passed to the constructor,
63 : : //- grouped and indexed by dimension (body = 4).
64 : :
65 : : DLIList<RefEntity*> currentList;
66 : : //- The list of entities of the same dimension D, including
67 : : //- the entities from the typeList of dimension D and children
68 : : //- of dimension D for all entities in the typeLists above
69 : : //- with dimension > D.
70 : :
71 : : int currentDimension;
72 : : //- The dimension of entities in currentList.
73 : : };
74 : :
75 : : //-------------------------------------------------------------------------
76 : : // Purpose : Pop one entity from the current list.
77 : : //
78 : : // Special Notes :
79 : : //
80 : : // Creator : Jason Kraftcheck
81 : : //
82 : : // Creation Date : 05/28/02
83 : : //-------------------------------------------------------------------------
84 : 132057 : inline RefEntity* CAActuateSet::remove_next()
85 : : {
86 [ + + ]: 132057 : return currentList.size() ? currentList.pop() : 0;
87 : : }
88 : :
89 : : #endif
90 : :
|