vtkKWMimxBBMenuGroup.h

Go to the documentation of this file.
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

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1