Branch data Line data Source code
1 : : //- Class: ToolDataUser
2 : : //- Owner: Scott Mitchell
3 : : //- Description: This is the tool data interface that every class that uses a
4 : : //- tool data needs to specify. E.g. CubitNode and CubitFace
5 : : //- are derived from this class.
6 : : //- Checked By:
7 : : //- Version: $Id:
8 : :
9 : : #ifndef TOOL_DATA_USER_HPP
10 : : #define TOOL_DATA_USER_HPP
11 : :
12 : : #include "CubitDefines.h"
13 : : #include "CGMUtilConfigure.h"
14 : :
15 : : class ToolData;
16 : :
17 : : typedef int (*IdentityFn)(const ToolData* td);
18 : : template <class X> class DLIList;
19 : :
20 : : class CUBIT_UTIL_EXPORT ToolDataUser
21 : : {
22 : :
23 : : private:
24 : : ToolDataUser( const ToolDataUser& );
25 : : void operator=( const ToolDataUser&);
26 : :
27 : : ToolData *toolData;
28 : : //- generic pointer to extra data needed by a particular VolSmoothTool.
29 : : //- see the _TD functions below for how to access this
30 : :
31 : 92244 : void tool_data(ToolData *set_data) {toolData = set_data;}
32 : 425686 : ToolData* tool_data() const {return toolData;}
33 : : //- all external access/setting should be done with the _TD functions.
34 : :
35 : : public:
36 : :
37 : 154583 : ToolDataUser () { toolData = NULL; }
38 : :
39 : : virtual ~ToolDataUser();
40 : : //- automatically deletes all the chained ToolDatas
41 : :
42 : : virtual CubitBoolean delete_TD(IdentityFn specified_type);
43 : : //- delete the specific type of tool data from the chain.
44 : : //- return true if something was actually found and deleted.
45 : :
46 : : virtual CubitBoolean delete_TD(ToolData *td);
47 : : //- delete the specific tool data from the chain.
48 : : //- return true if something was actually found and deleted.
49 : :
50 : : virtual ToolData *remove_TD(IdentityFn specified_type);
51 : : //- remove the specific type of tool data from the chain, and
52 : : //- return it.
53 : :
54 : : virtual ToolData *remove_TD(ToolData *td);
55 : : //- remove the specific tool data from the chain, and
56 : : //- return it.
57 : :
58 : : virtual void add_TD(ToolData *new_td);
59 : : //- add the new_td to the beginning of the tool_data chain
60 : :
61 : : virtual ToolData *get_TD(IdentityFn specified_type);
62 : : virtual ToolData const *get_TD(IdentityFn specified_type) const;
63 : : virtual void get_all_TDs(IdentityFn specified_type,
64 : : DLIList <ToolData *> *all_tds) const;
65 : :
66 : : virtual void get_all_TDs(DLIList <ToolData *> *all_tds) const;
67 : : //- get the specific type of ToolData in the chain.
68 : : //- returns null if not found.
69 : :
70 : : };
71 : :
72 : :
73 : : #endif // TOOL_DATA_USER_HPP
74 : :
75 : :
76 : :
77 : :
78 : :
|