00001 /*========================================================================= 00002 00003 Program: MIMX Meshing Toolkit 00004 Module: $RCSfile: vtkKWMimxFEMeshMenuGroup.h,v $ 00005 Language: C++ 00006 Date: $Date: 2008/10/26 18:51:24 $ 00007 Version: $Revision: 1.24.4.2 $ 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 vtkKWMimxFEMeshMenuGroup - It is the base class for all menu options 00024 // for FE mesh. 00025 // .SECTION Description 00026 // Menu options that the class supports are Assign/Edit Mesh Seeds, Create, Load, 00027 // Renumber Nodes/Elements, Export, Delete and Save. If a menu option is chosen, 00028 // corresponding GUI is launched. 00029 // 00030 // .SECTION See Also 00031 // vtkKWMimxCreateFEMeshFromBBGroup, vtkKWMimxDeleteObjectGroup, vtkKWMimxEditBBMeshSeedGroup, 00032 // vtkKWMimxEditElementSetNumbersGroup, vtkKWMimxExportAbaqusFEMeshGroup, vtkKWMimxSaveVTKFEMeshGroup 00033 00034 #ifndef __vtkKWMimxFEMeshMenuGroup_h 00035 #define __vtkKWMimxFEMeshMenuGroup_h 00036 00037 #include "vtkKWMimxMainMenuGroup.h" 00038 #include "vtkKWMimxMainWindow.h" 00039 #include "vtkBuildingBlockWin32Header.h" 00040 00041 00042 class vtkUnstructuredGrid; 00043 class vtkKWMimxCreateFEMeshFromBBGroup; 00044 class vtkKWMimxDeleteObjectGroup; 00045 class vtkKWMimxEditBBMeshSeedGroup; 00046 class vtkKWMimxEditElementSetNumbersGroup; 00047 class vtkKWMimxExportAbaqusFEMeshGroup; 00048 class vtkKWMimxSaveVTKFEMeshGroup; 00049 class vtkLinkedListWrapper; 00050 00051 class VTK_BUILDINGBLOCK_EXPORT vtkKWMimxFEMeshMenuGroup : public vtkKWMimxMainMenuGroup 00052 { 00053 public: 00054 static vtkKWMimxFEMeshMenuGroup* New(); 00055 vtkTypeRevisionMacro(vtkKWMimxFEMeshMenuGroup,vtkKWMimxMainMenuGroup); 00056 void PrintSelf(ostream& os, vtkIndent indent); 00057 virtual void Update(); 00058 virtual void UpdateEnableState(); 00059 00060 // Description: 00061 // launch GUI for creating FE mesh 00062 void CreateFEMeshFromBBCallback(); 00063 00064 // Description: 00065 // launch GUI for deleting FE mesh 00066 void DeleteFEMeshCallback(); 00067 00068 // Description: 00069 // launch GUI for loading FE mesh (VTK format) 00070 void LoadVTKFEMeshCallback(); 00071 00072 // Description: 00073 // Save FE mesh in VTK file format 00074 void SaveVTKFEMeshCallback(); 00075 00076 // Description: 00077 // Launch GUI for node and element renumber 00078 void EditElementNumbersCallback(); 00079 00080 // Description: 00081 // Launch GUI for exporting the selected FE mesh in abaqus 00082 // file format (.inp) 00083 void ExportAbaqusFEMeshCallback(); 00084 00085 // Description: 00086 // Launch GUI used in modifying the mesh seeds 00087 void EditBBMeshSeedCallback(); 00088 00089 // Description: 00090 // Setting lists of all the objects for accessing 00091 vtkSetObjectMacro(SurfaceList, vtkLinkedListWrapper); 00092 vtkSetObjectMacro(FEMeshList, vtkLinkedListWrapper); 00093 vtkSetObjectMacro(ImageList, vtkLinkedListWrapper); 00094 vtkSetObjectMacro(BBoxList, vtkLinkedListWrapper); 00095 00096 protected: 00097 vtkKWMimxFEMeshMenuGroup(); 00098 ~vtkKWMimxFEMeshMenuGroup(); 00099 virtual void CreateWidget(); 00100 00101 vtkKWMimxCreateFEMeshFromBBGroup *FEMeshFromBB; 00102 vtkKWMimxSaveVTKFEMeshGroup *SaveVTKFEMeshGroup; 00103 vtkKWMimxDeleteObjectGroup *DeleteObjectGroup; 00104 vtkKWMimxEditElementSetNumbersGroup *EditElementSetNumbersGroup; 00105 vtkKWMimxExportAbaqusFEMeshGroup *ExportAbaqusFEMeshGroup; 00106 vtkKWMimxEditBBMeshSeedGroup *EditBBMeshSeedGroup; 00107 00108 void UpdateObjectLists(); 00109 00110 private: 00111 vtkKWMimxFEMeshMenuGroup(const vtkKWMimxFEMeshMenuGroup&); // Not implemented 00112 void operator=(const vtkKWMimxFEMeshMenuGroup&); // Not implemented 00113 }; 00114 00115 #endif
1.6.1