vtkKWMimxCreateFEMeshFromBBGroup.h
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
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef __vtkKWMimxCreateFEMeshFromBBGroup_h
00040 #define __vtkKWMimxCreateFEMeshFromBBGroup_h
00041
00042 #include "vtkKWMimxGroupBase.h"
00043 #include "vtkKWMimxFEMeshMenuGroup.h"
00044 #include "vtkKWMimxMainWindow.h"
00045 #include "vtkKWMimxSurfaceMenuGroup.h"
00046 #include "vtkBuildingBlockWin32Header.h"
00047
00048
00049 #define HEX_BB_SOLID_MESH 1
00050 #define HEX_EXTRUDE_SOLID_MESH 2
00051 #define TET_BB_SOLID_MESH 3
00052 #define TET_EXTRUDE_SOLID_MESH 4
00053 #define QUAD_BB_SURFACE_MESH 5
00054 #define QUAD_EXTRACT_SURFACE_MESH 6
00055 #define TRI_BB_SURFACE_MESH 7
00056 #define TRI_EXTRACT_SURFACE_MESH 8
00057
00058 class vtkIntArray;
00059
00060 class vtkKWCheckButtonWithLabel;
00061 class vtkKWComboBoxWithLabel;
00062 class vtkKWEntryWithLabel;
00063 class vtkKWMenuButton;
00064 class vtkKWMenuButtonWithLabel;
00065 class vtkKWPushButton;
00066 class vtkKWRadioButton;
00067
00068 class vtkKWMimxDefineElSetGroup;
00069 class vtkKWMimxNodeElementNumbersGroup;
00070 class vtkMimxMeshActor;
00071
00072 class VTK_BUILDINGBLOCK_EXPORT vtkKWMimxCreateFEMeshFromBBGroup : public vtkKWMimxGroupBase
00073 {
00074 public:
00075
00076 static vtkKWMimxCreateFEMeshFromBBGroup* New();
00077 vtkTypeRevisionMacro(vtkKWMimxCreateFEMeshFromBBGroup,vtkKWMimxGroupBase);
00078 void PrintSelf(ostream& os, vtkIndent indent);
00079 virtual void Update();
00080 virtual void UpdateEnableState();
00081
00082 void CreateFEMeshFromBBDoneCallback();
00083
00084
00085
00086 int CreateFEMeshFromBBApplyCallback();
00087
00088
00089
00090 void CreateFEMeshFromBBCancelCallback();
00091
00092
00093
00094
00095 void SmoothFEMeshCallback(int state);
00096
00097
00098
00099
00100 void UpdateObjectLists();
00101
00102
00103
00104 void VolumetricMeshCallback();
00105
00106
00107
00108 void SurfaceMeshCallback();
00109
00110
00111
00112 void VolumetricMeshBBCallback();
00113
00114
00115
00116 void VolumetricMeshExtrudeCallback();
00117
00118
00119
00120 void InterpolationModeCallback();
00121
00122
00123
00124 void SurfaceMeshBBCallback();
00125
00126
00127
00128 void SurfaceMeshExtractCallback();
00129
00130
00131
00132 void DefineRegionCallback();
00133
00134
00135
00136
00137 int GetMeshingMode( );
00138
00139
00140
00141
00142
00143 void InitializeMeshFieldData(vtkUnstructuredGrid *mesh, const char *nodeSetName,
00144 const char *elementSetName, int nodeNumber, int elementNumber);
00145
00146
00147
00148 int CreateMeshFromBuildingBlock(vtkPolyData *polyDaya, vtkUnstructuredGrid *buildingBlock,
00149 bool smoothMesh, int numSmooth, const char *nodeSetName, int nodeNumber,
00150 const char *elementSetName, int elementNumber, int numRecalc,
00151 bool generateSurfaceMesh, bool generateTriMesh, const char *FoundationName);
00152
00153
00154
00155 int ExtrudeHexSolidMesh(vtkMimxMeshActor *MeshActor, const char *NodeSetName,
00156 const char *ElSetName, int StartNodeNum, int StartElemNum,
00157 int NumberOfDiv, double ExtrusionLength, const char *FoundationName);
00158
00159
00160
00161 int ExtractSurfaceMesh(vtkMimxMeshActor *MeshActor, const char *NodeSetName,
00162 const char *ElSetName, int StartNodeNum, int StartElemNum, bool generateTriMesh, const char *FoundationName);
00163 protected:
00164 vtkKWMimxCreateFEMeshFromBBGroup();
00165 ~vtkKWMimxCreateFEMeshFromBBGroup();
00166 virtual void CreateWidget();
00167
00168 vtkKWFrame *ModeFrame;
00169 vtkKWRadioButton *VolumetricMeshButton;
00170 vtkKWRadioButton *SurfaceMeshButton;
00171 vtkKWRadioButton *HexMeshButton;
00172 vtkKWRadioButton *TetMeshButton;
00173 vtkKWRadioButton *QuadMeshButton;
00174 vtkKWRadioButton *TriMeshButton;
00175 vtkKWMenuButton *TypeMenuButton;
00176 vtkKWMenuButtonWithLabel *InterpolationMenuButton;
00177
00178 vtkKWFrameWithLabel *ComponentFrame;
00179 vtkKWComboBoxWithLabel *SurfaceListComboBox;
00180 vtkKWComboBoxWithLabel *BBListComboBox;
00181 vtkKWComboBoxWithLabel *MeshListComboBox;
00182 vtkIntArray *OriginalPosition;
00183 vtkKWFrame *SmoothFrame;
00184 vtkKWFrame *InterpFrame;
00185 vtkKWEntryWithLabel *SmoothingIterationsEntry;
00186 vtkKWEntryWithLabel *ElementSetNameEntry;
00187 vtkKWEntryWithLabel *RecalculationIterationsEntry;
00188 vtkKWMimxNodeElementNumbersGroup *NodeElementNumbersGroup;
00189 vtkKWFrameWithLabel *MeshImprovementFrame;
00190 vtkKWCheckButtonWithLabel *SmoothButton;
00191 vtkKWFrame *SelectFrame;
00192 vtkKWRadioButton *SelectSurfaceButton;
00193 vtkKWRadioButton *SelectFaceButton;
00194 vtkKWRadioButton *SelectElementButton;
00195 vtkKWPushButton *SelectButton;
00196 vtkKWMimxDefineElSetGroup *DefineElementSetDialog;
00197
00198 private:
00199 vtkKWMimxCreateFEMeshFromBBGroup(const vtkKWMimxCreateFEMeshFromBBGroup&);
00200 void operator=(const vtkKWMimxCreateFEMeshFromBBGroup&);
00201
00202 int ExtractCount;
00203 int BBCount;
00204 int ExtrudeCount;
00205 };
00206
00207 #endif
00208