VTK
dox/Rendering/Context2D/vtkContextDevice3D.h
Go to the documentation of this file.
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 
00047 
00048   virtual void DrawPoly(const float *verts, int n,
00049                         const unsigned char *colors = 0, int nc = 0) = 0;
00051 
00053 
00054   virtual void DrawPoints(const float *verts, int n,
00055                           const unsigned char *colors = 0, int nc = 0) = 0;
00057 
00059 
00060   virtual void DrawTriangleMesh(const float *mesh, int n,
00061                                 const unsigned char *colors, int nc) = 0;
00063 
00068   virtual void ApplyPen(vtkPen *pen) = 0;
00069 
00074   virtual void ApplyBrush(vtkBrush *brush) = 0;
00075 
00077   virtual void SetMatrix(vtkMatrix4x4 *m) = 0;
00078 
00080   virtual void GetMatrix(vtkMatrix4x4 *m) = 0;
00081 
00083   virtual void MultiplyMatrix(vtkMatrix4x4 *m) = 0;
00084 
00086   virtual void PushMatrix() = 0;
00087 
00089   virtual void PopMatrix() = 0;
00090 
00093   virtual void SetClipping(const vtkRecti &rect) = 0;
00094 
00097   virtual void DisableClipping() { this->EnableClipping(false); }
00098 
00100   virtual void EnableClipping(bool enable) = 0;
00101 
00103 
00104   virtual void EnableClippingPlane(int i, double *planeEquation) = 0;
00105   virtual void DisableClippingPlane(int i) = 0;
00107 
00108 protected:
00109   vtkContextDevice3D();
00110   ~vtkContextDevice3D();
00111 
00112 private:
00113   vtkContextDevice3D(const vtkContextDevice3D &); // Not implemented.
00114   void operator=(const vtkContextDevice3D &);   // Not implemented.
00115 };
00116 
00117 #endif