debian/tmp/usr/include/KWWidgets/vtkKWMaterialPropertyWidget.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 #ifndef __vtkKWMaterialPropertyWidget_h
00018 #define __vtkKWMaterialPropertyWidget_h
00019
00020 #include "vtkKWCompositeWidget.h"
00021
00022 class vtkKWFrame;
00023 class vtkKWLabel;
00024 class vtkKWFrameWithLabel;
00025 class vtkKWLabelWithLabel;
00026 class vtkKWPushButtonSetWithLabel;
00027 class vtkKWPopupButtonWithLabel;
00028 class vtkKWPushButton;
00029 class vtkKWScaleWithEntry;
00030 class vtkKWMaterialPropertyWidgetInternals;
00031
00032 class KWWidgets_EXPORT vtkKWMaterialPropertyWidget : public vtkKWCompositeWidget
00033 {
00034 public:
00035 vtkTypeRevisionMacro(vtkKWMaterialPropertyWidget, vtkKWCompositeWidget);
00036 void PrintSelf(ostream& os, vtkIndent indent);
00037
00038
00039
00040
00041
00042 vtkSetMacro(PopupMode, int);
00043 vtkGetMacro(PopupMode, int);
00044 vtkBooleanMacro(PopupMode, int);
00045 vtkGetObjectMacro(PopupButton, vtkKWPopupButtonWithLabel);
00046
00047
00048
00049 virtual void Update();
00050
00051
00052
00053 virtual void UpdatePreview();
00054
00055
00056
00057 virtual void SetPreviewSize(int);
00058 virtual void SetPresetSize(int);
00059 virtual void SetPopupPreviewSize(int);
00060 vtkGetMacro(PreviewSize, int);
00061 vtkGetMacro(PresetSize, int);
00062 vtkGetMacro(PopupPreviewSize, int);
00063
00064
00065
00066 virtual void SetGridOpacity(double);
00067 vtkGetMacro(GridOpacity, double);
00068
00069
00070
00071 vtkGetVector3Macro(MaterialColor, double);
00072 void SetMaterialColor(double r, double g, double b);
00073 void SetMaterialColor(double color[3])
00074 { this->SetMaterialColor(color[0], color[1], color[2]); }
00075
00076
00077
00078
00079
00080 virtual void SetLightingParametersVisibility(int);
00081 vtkBooleanMacro(LightingParametersVisibility, int);
00082 vtkGetMacro(LightingParametersVisibility, int);
00083
00084
00085
00086
00087
00088
00089 vtkSetMacro(PropertyChangedEvent, int);
00090 vtkGetMacro(PropertyChangedEvent, int);
00091 vtkSetMacro(PropertyChangingEvent, int);
00092 vtkGetMacro(PropertyChangingEvent, int);
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115 virtual void SetPropertyChangedCommand(
00116 vtkObject *object, const char *method);
00117 virtual void SetPropertyChangingCommand(
00118 vtkObject *object, const char *method);
00119
00120
00121
00122
00123
00124
00125
00126
00127 virtual void UpdateEnableState();
00128
00129
00130
00131 virtual void PropertyChangingCallback(double value);
00132 virtual void PropertyChangedCallback(double value);
00133 virtual void PresetMaterialCallback(int preset_idx);
00134
00135 protected:
00136 vtkKWMaterialPropertyWidget();
00137 ~vtkKWMaterialPropertyWidget();
00138
00139
00140
00141 virtual void CreateWidget();
00142
00143 int PopupMode;
00144 int PreviewSize;
00145 int PresetSize;
00146 int PopupPreviewSize;
00147 double GridOpacity;
00148 int LightingParametersVisibility;
00149
00150 double MaterialColor[3];
00151
00152
00153
00154 int PropertyChangedEvent;
00155 int PropertyChangingEvent;
00156
00157
00158
00159 char *PropertyChangedCommand;
00160 char *PropertyChangingCommand;
00161
00162 virtual void InvokePropertyChangedCommand();
00163 virtual void InvokePropertyChangingCommand();
00164
00165
00166
00167
00168 class Preset
00169 {
00170 public:
00171 double Ambient;
00172 double Diffuse;
00173 double Specular;
00174 double SpecularPower;
00175 char *HelpString;
00176
00177 Preset() { this->HelpString = 0; };
00178 };
00179
00180
00181
00182 vtkKWMaterialPropertyWidgetInternals *Internals;
00183 friend class vtkKWMaterialPropertyWidgetInternals;
00184
00185
00186
00187
00188 vtkKWPopupButtonWithLabel *PopupButton;
00189 vtkKWFrameWithLabel *MaterialPropertiesFrame;
00190 vtkKWFrame *ControlFrame;
00191 vtkKWFrame *LightingFrame;
00192 vtkKWScaleWithEntry *AmbientScale;
00193 vtkKWScaleWithEntry *DiffuseScale;
00194 vtkKWScaleWithEntry *SpecularScale;
00195 vtkKWScaleWithEntry *SpecularPowerScale;
00196 vtkKWFrame *PresetsFrame;
00197 vtkKWLabelWithLabel *PreviewLabel;
00198 vtkKWPushButtonSetWithLabel *PresetPushButtonSet;
00199
00200
00201
00202 virtual void Pack();
00203
00204
00205
00206 virtual void CreateImage(unsigned char *data,
00207 double ambient,
00208 double diffuse,
00209 double specular,
00210 double specular_power,
00211 int size);
00212
00213
00214
00215 virtual void SendStateEvent(int event);
00216
00217
00218
00219 virtual void AddDefaultPresets();
00220
00221
00222
00223 virtual void CreatePresets();
00224
00225
00226
00227 virtual void UpdatePopupPreview();
00228
00229
00230
00231
00232 virtual int UpdatePropertyFromInterface() = 0;
00233 virtual int UpdatePropertyFromPreset(const Preset *preset) = 0;
00234
00235
00236
00237 virtual int UpdateScalesFromPreset(const Preset *preset);
00238 virtual void UpdateScales(double ambient,
00239 double diffuse,
00240 double specular,
00241 double specular_power);
00242
00243
00244
00245 virtual int AreControlsEnabled() { return 1; };
00246
00247 private:
00248 vtkKWMaterialPropertyWidget(const vtkKWMaterialPropertyWidget&);
00249 void operator=(const vtkKWMaterialPropertyWidget&);
00250 };
00251
00252 #endif