| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 
 | /*=========================================================================
Program:   VMTK
Module:    $RCSfile: vtkvmtkCenterlineGeometry.h,v $
Language:  C++
Date:      $Date: 2006/07/17 09:52:56 $
Version:   $Revision: 1.3 $
  Copyright (c) Luca Antiga, David Steinman. All rights reserved.
  See LICENCE file for details.
  Portions of this code are covered under the VTK copyright.
  See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm 
  for details.
     This software is distributed WITHOUT ANY WARRANTY; without even 
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
     PURPOSE.  See the above copyright notices for more information.
=========================================================================*/
  // .NAME vtkvmtkCenterlineGeometry - ...
  // .SECTION Description
  // ...
#ifndef __vtkvmtkCenterlineGeometry_h
#define __vtkvmtkCenterlineGeometry_h
#include "vtkPolyDataAlgorithm.h"
//#include "vtkvmtkComputationalGeometryWin32Header.h"
#include "vtkvmtkWin32Header.h"
class vtkDoubleArray;
class VTK_VMTK_COMPUTATIONAL_GEOMETRY_EXPORT vtkvmtkCenterlineGeometry : public vtkPolyDataAlgorithm
{
  public: 
  vtkTypeRevisionMacro(vtkvmtkCenterlineGeometry,vtkPolyDataAlgorithm);
  void PrintSelf(ostream& os, vtkIndent indent); 
  static vtkvmtkCenterlineGeometry* New();
  vtkSetStringMacro(LengthArrayName);
  vtkGetStringMacro(LengthArrayName);
  vtkSetStringMacro(CurvatureArrayName);
  vtkGetStringMacro(CurvatureArrayName);
  vtkSetStringMacro(TorsionArrayName);
  vtkGetStringMacro(TorsionArrayName);
  vtkSetStringMacro(TortuosityArrayName);
  vtkGetStringMacro(TortuosityArrayName);
  vtkSetStringMacro(FrenetTangentArrayName);
  vtkGetStringMacro(FrenetTangentArrayName);
  vtkSetStringMacro(FrenetNormalArrayName);
  vtkGetStringMacro(FrenetNormalArrayName);
  vtkSetStringMacro(FrenetBinormalArrayName);
  vtkGetStringMacro(FrenetBinormalArrayName);
  vtkSetMacro(SmoothingFactor,double);
  vtkGetMacro(SmoothingFactor,double);
  vtkSetMacro(NumberOfSmoothingIterations,int);
  vtkGetMacro(NumberOfSmoothingIterations,int);
  vtkSetMacro(LineSmoothing,int);
  vtkGetMacro(LineSmoothing,int);
  vtkBooleanMacro(LineSmoothing,int);
  vtkSetMacro(OutputSmoothedLines,int);
  vtkGetMacro(OutputSmoothedLines,int);
  vtkBooleanMacro(OutputSmoothedLines,int);
  static double ComputeLineCurvature(vtkPoints* linePoints, vtkDoubleArray* curvatureArray);
  static double ComputeLineTorsion(vtkPoints* linePoints, vtkDoubleArray* torsionArray);
  static void ComputeLineFrenetReferenceSystem(vtkPoints* linePoints, vtkDoubleArray* lineTangentArray, vtkDoubleArray* lineNormalArray, vtkDoubleArray* lineBinormalArray);
  protected:
  vtkvmtkCenterlineGeometry();
  ~vtkvmtkCenterlineGeometry();  
  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
  char* LengthArrayName;
  char* CurvatureArrayName;
  char* TorsionArrayName;
  char* TortuosityArrayName;
  char* FrenetTangentArrayName;
  char* FrenetNormalArrayName;
  char* FrenetBinormalArrayName;
  int LineSmoothing;
  int OutputSmoothedLines;
  double SmoothingFactor;
  int NumberOfSmoothingIterations;
  private:
  vtkvmtkCenterlineGeometry(const vtkvmtkCenterlineGeometry&);  // Not implemented.
  void operator=(const vtkvmtkCenterlineGeometry&);  // Not implemented.
};
#endif
 |