vtkKWMimxViewPropertiesGroup.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003 Program:   MIMX Meshing Toolkit
00004 Module:    $RCSfile: vtkKWMimxViewPropertiesGroup.h,v $
00005 Language:  C++
00006 Date:      $Date: 2008/10/17 03:37:40 $
00007 Version:   $Revision: 1.11.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 vtkKWMimxViewPropertiesGroup - GUI containing display properties
00024 // of the actor selected.
00025 // .SECTION Description
00026 // The GUI is a pop-up window containing the display properties of the object
00027 // selected. The properties displayed and can be changed are 1) Actor color,
00028 // 2) Outline color, 3) Element set display , 4) Opacity 
00029 
00030 #ifndef __vtkKWMimxViewPropertiesGroup_h
00031 #define __vtkKWMimxViewPropertiesGroup_h
00032 
00033 #include "vtkKWTopLevel.h"
00034 #include "vtkKWMultiColumnListWithScrollbars.h"
00035 #include "vtkKWMimxMainWindow.h"
00036 #include "vtkLocalLinkedListWrapper.h"
00037 #include "vtkLinkedListWrapperTree.h"
00038 #include "vtkBuildingBlockWin32Header.h"
00039 
00040 
00041 class vtkKWChangeColorButton;
00042 class vtkKWCheckButtonWithLabel;
00043 class vtkKWFrameWithLabel;
00044 class vtkKWMenuButtonWithLabel;
00045 class vtkKWFrameWithScrollbar;
00046 class vtkKWLabel;
00047 class vtkKWPushButton;
00048 class vtkKWRange;
00049 class vtkKWSpinBoxWithLabel;
00050 
00051 class VTK_BUILDINGBLOCK_EXPORT vtkKWMimxViewPropertiesGroup : public vtkKWTopLevel
00052 {
00053 public:
00054   static vtkKWMimxViewPropertiesGroup* New();
00055   vtkTypeRevisionMacro(vtkKWMimxViewPropertiesGroup,vtkKWTopLevel);
00056   void PrintSelf(ostream& os, vtkIndent indent);
00057   virtual void Update();
00058   virtual void UpdateEnableState();
00059 
00060   // Description:
00061   // Set all the accesses to the program.
00062   vtkSetObjectMacro(MimxMainWindow, vtkKWMimxMainWindow);
00063   vtkGetObjectMacro(MimxMainWindow, vtkKWMimxMainWindow);
00064   vtkSetObjectMacro(DoUndoTree, vtkLinkedListWrapperTree);
00065   vtkSetObjectMacro(MultiColumnList, vtkKWMultiColumnListWithScrollbars);
00066   vtkGetObjectMacro(MainFrame, vtkKWFrameWithLabel);
00067 
00068   // Description:
00069   // Set actor color
00070   virtual void SetActorColor(double color[3]);
00071 
00072   // Description:
00073   // Set the color of wireframe in wireframe+surface display mode
00074   virtual void SetOutlineColor(double color[3]);
00075 
00076   virtual void SetElementSetColor(double color[3]);
00077 
00078   // Description:
00079   // Callback to change the representation between surface, surface+wireframe
00080   // and wireframe.
00081   void RepresentationCallback(int type);
00082 
00083   // Description:
00084   // To shrink or expand the element size
00085   void SetElementSizeFromScaleCallback(double scale);
00086 
00087   // Description:
00088   // Change the line width for wireframe or surface+wireframe representation.
00089   void LineWidthCallback(double width);
00090 
00091   void OpacityCallback(double width);
00092 
00093   vtkSetObjectMacro(ObjectList, vtkLocalLinkedListWrapper);
00094 
00095   // Description:
00096   // Set the default view properties
00097   void SetViewProperties();
00098   vtkGetMacro(ElementsHighlighted,int);
00099 
00100   // Description:
00101   // Switch between Mesh and element set mode.
00102   void DisplayModeCallback(int mode);
00103 
00104   // Description:
00105   // Element set visibility when in element set display mode.
00106   void ElementSetVisibilityCallback(int index, int flag);
00107 
00108   // Description:
00109   // To display element set display property
00110   void ElementSetDisplayPropertyCallback( );
00111 
00112   void SetMeshDisplayPropertyCallback();
00113 
00114   // Description:
00115   // Populate the multicolumnlist with the element set labels
00116   void SetElementSetList();
00117 
00118   // Description:
00119   // Item/Object name selected
00120   void SetItemName(const char *item);
00121 
00122   // Description:
00123   // Item/Object id selected
00124   void SetItemId(const char *id);
00125 
00126   // Description:
00127   // Get the item row number. The row number will be from the multicolumnlist
00128   // from which the current window was launched.
00129   int GetItemRow( );
00130   vtkSetMacro(SelectionRow, int);
00131   
00132 protected:
00133         vtkKWMimxViewPropertiesGroup();
00134         ~vtkKWMimxViewPropertiesGroup();
00135         virtual void CreateWidget();
00136   vtkKWMultiColumnListWithScrollbars *MultiColumnList;
00137   vtkKWMimxMainWindow *MimxMainWindow;
00138   vtkLocalLinkedListWrapper *ObjectList;
00139    vtkKWFrameWithLabel *MainFrame;
00140   vtkKWFrameWithLabel *PropertyFrame;
00141   vtkKWFrameWithLabel *ColorFrame;
00142   vtkKWFrameWithLabel *StyleFrame;
00143   vtkKWFrameWithLabel *NodeDataFrame;
00144   vtkKWFrameWithLabel *ElementDataFrame;
00145   vtkKWChangeColorButton *ActorColorButton;
00146   vtkKWChangeColorButton *ElementDataColorButton;
00147   vtkKWMenuButtonWithLabel *DisplayStyleMenuButton;
00148   vtkKWMenuButtonWithLabel *NodeDataMenuButton;
00149   vtkKWMenuButtonWithLabel *ElementDataMenuButton;
00150   vtkKWMenuButtonWithLabel *DisplayLabels;
00151   vtkKWSpinBoxWithLabel *LinewidthThumbwheel;
00152   vtkKWSpinBoxWithLabel *OpacityThumbwheel;
00153   vtkLinkedListWrapperTree *DoUndoTree;
00154   vtkKWFrameWithLabel *ElementSizeFrame;
00155   vtkKWSpinBoxWithLabel *ElementSizeScale;
00156   vtkKWCheckButtonWithLabel *OverrideColorButton;
00157   vtkKWRange *ElementColorRange;
00158   int ElementsHighlighted;
00159   vtkKWPushButton *CloseButton;
00160   vtkKWCheckButtonWithLabel *OutlineButton;
00161   vtkKWChangeColorButton *OutlineColorButton;
00162   vtkKWMenuButtonWithLabel *ColorMenuButton;
00163   vtkKWMenuButtonWithLabel *DisplayModeButton;
00164   vtkKWMultiColumnListWithScrollbars *ElementSetList;
00165   vtkKWLabel *ObjectNameLabel;
00166   
00167   int SelectionRow;
00168   bool inializedElementSetList;
00169   char ItemName[256];
00170   char ItemId[64];
00171   //int DataType;
00172 private:
00173   vtkKWMimxViewPropertiesGroup(const vtkKWMimxViewPropertiesGroup&); // Not implemented
00174   void operator=(const vtkKWMimxViewPropertiesGroup&); // Not implemented
00175  };
00176 
00177 #endif
00178 

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1