00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00049 #ifndef __vtkView_h
00050 #define __vtkView_h
00051
00052 #include "vtkObject.h"
00053
00054 class vtkAlgorithmOutput;
00055 class vtkCommand;
00056 class vtkDataObject;
00057 class vtkDataRepresentation;
00058 class vtkSelection;
00059 class vtkViewTheme;
00060
00061 class VTK_VIEWS_EXPORT vtkView : public vtkObject
00062 {
00063 public:
00064 static vtkView *New();
00065 vtkTypeMacro(vtkView, vtkObject);
00066 void PrintSelf(ostream& os, vtkIndent indent);
00067
00069 void AddRepresentation(vtkDataRepresentation* rep);
00070
00072 void SetRepresentation(vtkDataRepresentation* rep);
00073
00079 vtkDataRepresentation* AddRepresentationFromInputConnection(vtkAlgorithmOutput* conn);
00080
00086 vtkDataRepresentation* SetRepresentationFromInputConnection(vtkAlgorithmOutput* conn);
00087
00093 vtkDataRepresentation* AddRepresentationFromInput(vtkDataObject* input);
00094
00099 vtkDataRepresentation* SetRepresentationFromInput(vtkDataObject* input);
00100
00102 void RemoveRepresentation(vtkDataRepresentation* rep);
00103
00105 void RemoveRepresentation(vtkAlgorithmOutput* rep);
00106
00108 void RemoveAllRepresentations();
00109
00112 int GetNumberOfRepresentations();
00113
00115 vtkDataRepresentation* GetRepresentation(int index = 0);
00116
00118 bool IsRepresentationPresent(vtkDataRepresentation* rep);
00119
00121 virtual void Update();
00122
00124 virtual void ApplyViewTheme(vtkViewTheme* vtkNotUsed(theme)) { }
00125
00126
00130 vtkCommand* GetObserver();
00131
00133
00135 class ViewProgressEventCallData
00136 {
00137 const char* Message;
00138 double Progress;
00140
00141 public:
00142 ViewProgressEventCallData(const char* msg, double progress)
00143 {
00144 this->Message = msg;
00145 this->Progress = progress;
00146 }
00147 ~ViewProgressEventCallData()
00148 {
00149 this->Message = 0;
00150 }
00151
00153
00154 const char* GetProgressMessage() const
00155 { return this->Message; }
00157
00159
00160 double GetProgress() const
00161 { return this->Progress; }
00162 };
00163
00165
00173 void RegisterProgress(vtkObject* algorithm, const char* message=NULL);
00174
00176 void UnRegisterProgress(vtkObject* algorithm);
00177
00178
00179 protected:
00180 vtkView();
00181 ~vtkView();
00182
00184
00187 virtual void ProcessEvents(vtkObject* caller, unsigned long eventId,
00188 void* callData);
00190
00192
00195 virtual void AddInputConnection(
00196 vtkAlgorithmOutput* vtkNotUsed(conn),
00197 vtkAlgorithmOutput* vtkNotUsed(selectionConn)) { }
00199
00201
00204 virtual void RemoveInputConnection(
00205 vtkAlgorithmOutput* vtkNotUsed(conn),
00206 vtkAlgorithmOutput* vtkNotUsed(selectionConn)) { }
00208
00214 virtual vtkDataRepresentation* CreateDefaultRepresentation(vtkAlgorithmOutput* conn);
00215
00217
00220 virtual void AddRepresentationInternal(vtkDataRepresentation* vtkNotUsed(rep)) {}
00221 virtual void RemoveRepresentationInternal(vtkDataRepresentation* vtkNotUsed(rep)) {}
00223
00225
00227 vtkSetMacro(ReuseSingleRepresentation, bool);
00228 vtkGetMacro(ReuseSingleRepresentation, bool);
00229 vtkBooleanMacro(ReuseSingleRepresentation, bool);
00230 bool ReuseSingleRepresentation;
00232
00233 private:
00234 vtkView(const vtkView&);
00235 void operator=(const vtkView&);
00236
00237 class vtkImplementation;
00238 vtkImplementation* Implementation;
00239
00240 class Command;
00241 friend class Command;
00242 Command* Observer;
00243
00244 class vtkInternal;
00245 vtkInternal* Internal;
00246
00247 };
00248
00249 #endif