00001 /*========================================================================= 00002 00003 Program: MIMX Meshing Toolkit 00004 Module: $RCSfile: vtkKWMimxBBMenuGroup.h,v $ 00005 Language: C++ 00006 Date: $Date: 2008/10/17 03:37:39 $ 00007 Version: $Revision: 1.6.4.1 $ 00008 00009 Musculoskeletal Imaging, Modelling and Experimentation (MIMX) 00010 Center for Computer Aided Design 00011 The University of Iowa 00012 Iowa City, IA 52242 00013 http://www.ccad.uiowa.edu/mimx/ 00014 00015 Copyright (c) The University of Iowa. All rights reserved. 00016 See MIMXCopyright.txt or http://www.ccad.uiowa.edu/mimx/Copyright.htm for details. 00017 00018 This software is distributed WITHOUT ANY WARRANTY; without even 00019 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00020 PURPOSE. See the above copyright notices for more information. 00021 00022 =========================================================================*/ 00023 // .NAME vtkKWMimxBBMenuGroup - Class contains all GUI declarations for 00024 // building block operations. 00025 // .SECTION Description 00026 // The class GUI contains a menu button with all the operations entry associated 00027 // with a building block. The entries are 1) Create, 2) Load, 3) Build/Edit, 00028 // 4) Delete and 5) Save. The entries except 'Load' invoke a GUI associated with 00029 // the entry. 00030 // 00031 // .SECTION See Also 00032 // vtkKWMimxCreateBBFromBoundsGroup, vtkKWMimxEditBBGroup, vtkKWMimxDeleteObjectGroup, 00033 // vtkKWMimxSaveVTKBBGroup 00034 00035 #ifndef __vtkKWMimxBBMenuGroup_h 00036 #define __vtkKWMimxBBMenuGroup_h 00037 00038 #include "vtkKWMimxMainMenuGroup.h" 00039 00040 #include "vtkKWMimxMainWindow.h" 00041 #include "vtkKWMimxSurfaceMenuGroup.h" 00042 #include "vtkBuildingBlockWin32Header.h" 00043 00044 class vtkUnstructuredGrid; 00045 class vtkKWLoadSaveDialog; 00046 class vtkMimxUnstructuredGridActor; 00047 class vtkKWMimxCreateBBFromBoundsGroup; 00048 class vtkKWMimxDeleteObjectGroup; 00049 class vtkKWMimxEditBBGroup; 00050 class vtkKWMimxEditBBMeshSeedGroup; 00051 class vtkKWMimxSaveVTKBBGroup; 00052 00053 class VTK_BUILDINGBLOCK_EXPORT vtkKWMimxBBMenuGroup : public vtkKWMimxMainMenuGroup 00054 { 00055 public: 00056 00057 static vtkKWMimxBBMenuGroup* New(); 00058 vtkTypeRevisionMacro(vtkKWMimxBBMenuGroup,vtkKWMimxMainMenuGroup); 00059 void PrintSelf(ostream& os, vtkIndent indent); 00060 00061 // Description: 00062 // Called when the GUI is created or redrawn 00063 virtual void Update(); 00064 virtual void UpdateEnableState(); 00065 00066 // Description: 00067 // Call back for deleting building blocks 00068 void DeleteBBCallback(); 00069 00070 // Description: 00071 // Load VTK format building block definition file 00072 void LoadVTKBBCallback(); 00073 00074 // Description: 00075 // To create a building block either from bounds or from rubber band pick 00076 void CreateBBFromBoundsCallback(); 00077 00078 // Description: 00079 // Edit a given building block 00080 void EditBBCallback(); 00081 00082 // Description: 00083 // Save the chosen building block 00084 //void SaveBBCallback(); 00085 00086 // Description: 00087 // Procedures to store the chosen building block in VTK file format 00088 void SaveVTKBBCallback(); 00089 00090 // Description: 00091 // Set the building block linked list. This is used to populate the combobox 00092 // with building block object names. 00093 vtkSetObjectMacro(BBoxList, vtkLinkedListWrapper); 00094 00095 // Description: 00096 // Set the surface linked list 00097 vtkSetObjectMacro(SurfaceList, vtkLinkedListWrapper); 00098 00099 // Description: 00100 // Set the FE mesh linked list 00101 vtkSetObjectMacro(FEMeshList, vtkLinkedListWrapper); 00102 00103 // Description: 00104 // Set the Image linked list 00105 vtkSetObjectMacro(ImageList, vtkLinkedListWrapper); 00106 00107 protected: 00108 vtkKWMimxBBMenuGroup(); 00109 ~vtkKWMimxBBMenuGroup(); 00110 00111 vtkKWMimxCreateBBFromBoundsGroup *CreateBBFromBounds; 00112 vtkKWMimxEditBBGroup *EditBB; 00113 vtkKWMimxSaveVTKBBGroup *SaveVTKBBGroup; 00114 vtkKWMimxEditBBMeshSeedGroup *EditBBMeshSeedGroup; 00115 vtkKWLoadSaveDialog *FileBrowserDialog; 00116 vtkKWMimxDeleteObjectGroup *DeleteObjectGroup; 00117 virtual void CreateWidget(); 00118 00119 // Description: 00120 // Update the combobox entries 00121 void UpdateObjectLists(); 00122 00123 // Description: 00124 // Check the type of cells in the building block read in. 00125 // As of now only hexahedra are allowed. 00126 int CheckCellTypesInUgrid(vtkUnstructuredGrid *); 00127 00128 private: 00129 vtkKWMimxBBMenuGroup(const vtkKWMimxBBMenuGroup&); // Not implemented 00130 void operator=(const vtkKWMimxBBMenuGroup&); // Not implemented 00131 }; 00132 00133 #endif
1.6.1