VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkContextDevice3D.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 00027 #ifndef vtkContextDevice3D_h 00028 #define vtkContextDevice3D_h 00029 00030 #include "vtkRenderingContext2DModule.h" // For export macro 00031 #include "vtkObject.h" 00032 #include "vtkVector.h" // For the vector coordinates. 00033 #include "vtkRect.h" // For the rectangles.. 00034 00035 class vtkMatrix4x4; 00036 class vtkViewport; 00037 class vtkPen; 00038 class vtkBrush; 00039 00040 class VTKRENDERINGCONTEXT2D_EXPORT vtkContextDevice3D : public vtkObject 00041 { 00042 public: 00043 vtkTypeMacro(vtkContextDevice3D, vtkObject); 00044 virtual void PrintSelf(ostream &os, vtkIndent indent); 00045 00046 static vtkContextDevice3D * New(); 00047 00049 00050 virtual void DrawPoly(const float *verts, int n, 00051 const unsigned char *colors = 0, int nc = 0) = 0; 00053 00055 00056 virtual void DrawPoints(const float *verts, int n, 00057 const unsigned char *colors = 0, int nc = 0) = 0; 00059 00061 00062 virtual void DrawTriangleMesh(const float *mesh, int n, 00063 const unsigned char *colors, int nc) = 0; 00065 00070 virtual void ApplyPen(vtkPen *pen) = 0; 00071 00076 virtual void ApplyBrush(vtkBrush *brush) = 0; 00077 00079 virtual void SetMatrix(vtkMatrix4x4 *m) = 0; 00080 00082 virtual void GetMatrix(vtkMatrix4x4 *m) = 0; 00083 00085 virtual void MultiplyMatrix(vtkMatrix4x4 *m) = 0; 00086 00088 virtual void PushMatrix() = 0; 00089 00091 virtual void PopMatrix() = 0; 00092 00095 virtual void SetClipping(const vtkRecti &rect) = 0; 00096 00099 virtual void DisableClipping() { this->EnableClipping(false); } 00100 00102 virtual void EnableClipping(bool enable) = 0; 00103 00105 00106 virtual void EnableClippingPlane(int i, double *planeEquation) = 0; 00107 virtual void DisableClippingPlane(int i) = 0; 00109 00110 protected: 00111 vtkContextDevice3D(); 00112 ~vtkContextDevice3D(); 00113 00114 private: 00115 vtkContextDevice3D(const vtkContextDevice3D &); // Not implemented. 00116 void operator=(const vtkContextDevice3D &); // Not implemented. 00117 }; 00118 00119 #endif