VTK
dox/Widgets/vtkBezierContourLineInterpolator.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkBezierContourLineInterpolator.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 =========================================================================*/
00026 #ifndef __vtkBezierContourLineInterpolator_h
00027 #define __vtkBezierContourLineInterpolator_h
00028 
00029 #include "vtkContourLineInterpolator.h"
00030 
00031 class VTK_WIDGETS_EXPORT vtkBezierContourLineInterpolator 
00032                           : public vtkContourLineInterpolator
00033 {
00034 public:
00035   
00037   static vtkBezierContourLineInterpolator *New();
00038   
00040 
00041   vtkTypeMacro(vtkBezierContourLineInterpolator,vtkContourLineInterpolator);
00042   void PrintSelf(ostream& os, vtkIndent indent);
00044 
00045   virtual int InterpolateLine( vtkRenderer *ren, 
00046                                vtkContourRepresentation *rep,
00047                                int idx1, int idx2 );
00048   
00050 
00055   vtkSetClampMacro(MaximumCurveError, double, 0.0, VTK_DOUBLE_MAX);
00056   vtkGetMacro(MaximumCurveError, double);
00058 
00060 
00062   vtkSetClampMacro(MaximumCurveLineSegments, int, 1, 1000);
00063   vtkGetMacro(MaximumCurveLineSegments, int);
00065   
00067 
00075   virtual void GetSpan( int nodeIndex, vtkIntArray *nodeIndices, 
00076                         vtkContourRepresentation *rep );
00078     
00079 protected:
00080   vtkBezierContourLineInterpolator();
00081   ~vtkBezierContourLineInterpolator();
00082  
00083   void ComputeMidpoint( double p1[3], double p2[3], double mid[3] )
00084     {
00085       mid[0] = (p1[0] + p2[0])/2;
00086       mid[1] = (p1[1] + p2[1])/2;
00087       mid[2] = (p1[2] + p2[2])/2;
00088     }
00089   
00090   double MaximumCurveError;
00091   int    MaximumCurveLineSegments;
00092 
00093 private:
00094   vtkBezierContourLineInterpolator(const vtkBezierContourLineInterpolator&);  //Not implemented
00095   void operator=(const vtkBezierContourLineInterpolator&);  //Not implemented
00096 };
00097 
00098 #endif