Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __H3DViewerTreeViewDialog__
00022 #define __H3DViewerTreeViewDialog__
00023
00024 #include <H3D/Node.h>
00025 #include <map>
00026 #include <list>
00032 #include "H3DViewer.h"
00033
00034 #define DEFAULT_VALUES
00035
00036 using namespace H3D;
00038 class H3DViewerTreeViewDialog : public TreeViewDialog
00039 {
00040 public:
00042 H3DViewerTreeViewDialog( wxWindow* parent );
00043
00046 virtual void OnClose( wxCloseEvent& event );
00047
00048
00049
00050 virtual void OnNodeSelected( wxTreeEvent& event );
00051
00052
00053 virtual void OnCellEdit( wxGridEvent& event );
00054
00056 virtual void OnTreeRightClick( wxTreeEvent& event );
00057
00059 virtual void OnTreeViewCollapseAll( wxCommandEvent& event );
00060
00062 virtual void OnTreeViewExpandAll( wxCommandEvent& event );
00063
00065 virtual void OnTreeViewCollapseChildren( wxCommandEvent& event );
00066
00068 virtual void OnTreeViewNodeWatch( wxCommandEvent& event );
00069
00071 virtual void OnTreeViewSaveX3D( wxCommandEvent& event );
00072
00074 virtual void OnTreeViewSaveSTL( wxCommandEvent& event );
00075
00076
00077 void OnIdle( wxIdleEvent& event );
00078
00079
00080 void displayFieldsFromNode( Node * );
00081
00082
00083
00084
00085 void showEntireSceneAsTree( bool expand_new = true );
00086
00087
00088
00089 void clearTreeView();
00090
00091 protected:
00092
00093
00094 void updateRowFromFieldDB( int row,
00095 Node *n,
00096 FieldDBElement *db,
00097 bool new_node );
00098
00099
00100 void expandTree( const wxTreeItemId &id );
00101
00102
00103 void collapseTree( const wxTreeItemId &id );
00104
00105
00106
00107 void deleteTree( const wxTreeItemId &id );
00108
00109
00110 bool shown_last_loop;
00111
00112
00113
00114 void addNodeToTree( wxTreeItemId tree_id, H3D::Node *n, bool expand = true );
00115
00116
00117
00118
00119
00120 void updateNodeTree( wxTreeItemId tree_id,
00121 list< H3D::Node *> nodes,
00122 bool expand_new = true );
00123
00124
00125 TimeStamp last_tree_update;
00126
00127 typedef std::map< wxTreeItemIdValue, H3D::AutoRef< H3D::Node > > TreeIdMap;
00128
00129
00130 TreeIdMap node_map;
00131
00132
00133 wxTreeItemId bindable_tree_id;
00134
00135
00136 TimeStamp last_fields_update;
00137 #ifdef DEFAULT_VALUES
00138 auto_ptr< Node > default_values_node;
00139 #endif
00140
00141 AutoRef< Node > displayed_node;
00142
00143
00144
00145
00146
00147 AutoRef< Node > selected_node;
00148 };
00149
00150 #endif // __H3DViewerTreeViewDialog__