VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkContextDevice2D.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 00025 #ifndef __vtkContextDevice2D_h 00026 #define __vtkContextDevice2D_h 00027 00028 #include "vtkObject.h" 00029 00030 class vtkWindow; 00031 class vtkViewport; 00032 class vtkStdString; 00033 class vtkTextProperty; 00034 class vtkPoints2D; 00035 class vtkImageData; 00036 class vtkMatrix3x3; 00037 class vtkAbstractContextBufferId; 00038 00039 class VTK_CHARTS_EXPORT vtkContextDevice2D : public vtkObject 00040 { 00041 public: 00042 vtkTypeMacro(vtkContextDevice2D, vtkObject); 00043 virtual void PrintSelf(ostream &os, vtkIndent indent); 00044 00047 virtual void DrawPoly(float *points, int n) = 0; 00048 00051 virtual void DrawPoints(float *points, int n) = 0; 00052 00056 virtual void DrawPointSprites(vtkImageData *sprite, float *points, int n) = 0; 00057 00059 virtual void DrawQuad(float *, int) { ; } 00060 00062 00068 virtual void DrawEllipseWedge(float x, float y, float outRx, float outRy, 00069 float inRx, float inRy, float startAngle, 00070 float stopAngle)=0; 00072 00074 00077 virtual void DrawEllipticArc(float x, float y, float rX, float rY, 00078 float startAngle, float stopAngle)=0; 00080 00081 //BTX 00083 00084 virtual void DrawString(float *point, vtkTextProperty *tprop, 00085 const vtkStdString &string) = 0; 00087 00089 00094 virtual void ComputeStringBounds(const vtkStdString &string, 00095 vtkTextProperty *tprop, 00096 float bounds[4]) = 0; 00098 //ETX 00099 00102 virtual void DrawImage(float *, int , vtkImageData *) {;} 00103 00105 virtual void SetColor4(unsigned char *color) = 0; 00106 00108 virtual void SetColor(unsigned char *color) = 0; 00109 00111 virtual void SetPointSize(float size) = 0; 00112 00114 virtual void SetLineWidth(float width) = 0; 00115 00117 virtual void SetLineType(int type) = 0; 00118 00120 virtual int GetWidth() { return this->Geometry[0]; } 00121 00123 virtual int GetHeight() { return this->Geometry[1]; } 00124 00126 virtual void SetMatrix(vtkMatrix3x3 *m) = 0; 00127 00129 virtual void MultiplyMatrix(vtkMatrix3x3 *m) = 0; 00130 00132 virtual void PushMatrix() = 0; 00133 00135 virtual void PopMatrix() = 0; 00136 00139 virtual void SetClipping(int *x) = 0; 00140 00142 virtual void DisableClipping() = 0; 00143 00145 virtual void Begin(vtkViewport*) { } 00146 00148 virtual void End() { } 00149 00152 virtual bool GetBufferIdMode() const; 00153 00157 virtual void BufferIdModeBegin(vtkAbstractContextBufferId *bufferId); 00158 00163 virtual void BufferIdModeEnd(); 00164 00165 //BTX 00166 protected: 00167 vtkContextDevice2D(); 00168 virtual ~vtkContextDevice2D(); 00169 00171 int Geometry[2]; 00172 00173 vtkAbstractContextBufferId *BufferId; 00174 00175 private: 00176 vtkContextDevice2D(const vtkContextDevice2D &); // Not implemented. 00177 void operator=(const vtkContextDevice2D &); // Not implemented. 00178 00179 //ETX 00180 }; 00181 00182 #endif //__vtkContextDevice2D_h