00001 /*========================================================================= 00002 00003 Program: MIMX Meshing Toolkit 00004 Module: $RCSfile: vtkKWMimxCreateExtrudeFEMeshGroup.h,v $ 00005 Language: C++ 00006 Date: $Date: 2008/06/19 17:53:41 $ 00007 Version: $Revision: 1.11 $ 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 vtkKWMimxCreateExtrudeFEMeshGroup - a tabbed notebook of UI pages 00024 // .SECTION Description 00025 // The class is derived from vtkKWCompositeWidget. It contains 5 pages 1) Image 00026 // 2) Surface 3) Building Block 4) F E Mesh 5) Mesh quality. Each page inturn 00027 // contains a list of options specific to a page. 00028 00029 #ifndef __vtkKWMimxCreateExtrudeFEMeshGroup_h 00030 #define __vtkKWMimxCreateExtrudeFEMeshGroup_h 00031 00032 #include "vtkKWMimxGroupBase.h" 00033 #include "vtkKWMimxFEMeshMenuGroup.h" 00034 #include "vtkKWMimxMainWindow.h" 00035 #include "vtkBuildingBlockWin32Header.h" 00036 00037 00038 class vtkKWMenuButtonWithLabel; 00039 class vtkKWCheckButtonWithLabel; 00040 class vtkKWEntryWithLabel; 00041 class vtkKWFrameWithLabel; 00042 class vtkKWPushButton; 00043 class vtkKWRadioButtonSet; 00044 00045 class vtkLinkedListWrapper; 00046 class vtkIntArray; 00047 class vtkKWComboBoxWithLabel; 00048 class vtkKWRenderWidget; 00049 class vtkActor; 00050 class vtkMimxSelectCellsWidgetFEMesh; 00051 class vtkMimxMeshActor; 00052 00053 class vtkKWMimxNodeElementNumbersGroup; 00054 class vtkKWMimxDefineElSetGroup; 00055 00056 class VTK_BUILDINGBLOCK_EXPORT vtkKWMimxCreateExtrudeFEMeshGroup : public vtkKWMimxGroupBase 00057 { 00058 public: 00059 static vtkKWMimxCreateExtrudeFEMeshGroup* New(); 00060 vtkTypeRevisionMacro(vtkKWMimxCreateExtrudeFEMeshGroup,vtkKWCompositeWidget); 00061 void PrintSelf(ostream& os, vtkIndent indent); 00062 virtual void Update(); 00063 virtual void UpdateEnableState(); 00064 vtkGetObjectMacro(MimxMainWindow, vtkKWMimxMainWindow); 00065 vtkSetObjectMacro(MimxMainWindow, vtkKWMimxMainWindow); 00066 00067 void CreateExtrudeFEMeshDoneCallback(); 00068 void CreateExtrudeFEMeshCancelCallback(); 00069 int CreateExtrudeFEMeshApplyCallback(); 00070 00071 void UpdateObjectLists(); 00072 void ShowNormalsCallback(int State); 00073 void SelectionChangedCallback(const char*); 00074 int SelectElementsThroughCallback(); 00075 int SelectElementsSurfaceCallback(); 00076 void VTKInteractionCallback(); 00077 vtkMimxMeshActor* GetSelectedObject(); 00078 void DefineElementSetCallback(); 00079 protected: 00080 vtkKWMimxCreateExtrudeFEMeshGroup(); 00081 ~vtkKWMimxCreateExtrudeFEMeshGroup(); 00082 virtual void CreateWidget(); 00083 vtkKWComboBoxWithLabel *ObjectListComboBox; 00084 vtkKWMimxMainWindow *MimxMainWindow; 00085 vtkKWEntryWithLabel *ExtrusionLength; 00086 vtkKWEntryWithLabel *NumberOfDivisions; 00087 vtkKWCheckButtonWithLabel *ShowNormalsCheckButton; 00088 vtkActor *NormalsActor; 00089 vtkKWMimxNodeElementNumbersGroup *NodeElementNumbersGroup; 00090 vtkKWRadioButtonSet *SelectSubsetRadiobuttonSet; 00091 vtkMimxSelectCellsWidgetFEMesh *SelectCellsWidget; 00092 vtkKWPushButton *DefineElSetButton; 00093 int MaxEleNum; 00094 int MaxNodeNum; 00095 vtkKWMimxDefineElSetGroup *DefineElementSetDialog; 00096 private: 00097 vtkKWMimxCreateExtrudeFEMeshGroup(const vtkKWMimxCreateExtrudeFEMeshGroup&); // Not implemented 00098 void operator=(const vtkKWMimxCreateExtrudeFEMeshGroup&); // Not implemented 00099 }; 00100 00101 #endif 00102
1.6.1