@@ -0,0 +1,1079 @@
+from vtk import vtkArrowSource, vtkGlyph3D, vtkPolyData%0Afrom vtk import vtkRenderer, vtkRenderWindowInteractor, vtkPolyDataMapper, vtkActor, vtkRenderWindow%0A%0A%0Afrom .base import FilterBase%0A%0Aclass DisplayNormals(FilterBase):%0A%0A    def __init__(self):%0A        super(DisplayNormals, self).__init__()%0A%0A    def set_input(self, input_data):%0A        if isinstance(input_data, vtkPolyData):%0A            super(DisplayNormals, self).set_input(input_data)%0A            return True%0A        else:%0A            return False%0A%0A    def update(self):%0A        # Source for the glyph filter%0A        arrow = vtkArrowSource()%0A        arrow.SetTipResolution(8)%0A        arrow.SetTipLength(0.3)%0A        arrow.SetTipRadius(0.1)%0A%0A        glyph = vtkGlyph3D()%0A        glyph.SetSourceConnection(arrow.GetOutputPort())%0A        glyph.SetInput(self.input_)%0A        glyph.SetVectorModeToUseNormal()%0A        glyph.SetScaleFactor(0.1)%0A        #glyph.SetColorModeToColorByVector()%0A        #glyph.SetScaleModeToScaleByVector()%0A        glyph.OrientOn()%0A        glyph.Update()%0A%0A        self.output_ = glyph.GetOutput()%0A%0A%0A%0A

Add Filter that display normal vector (it needs the pre-computed normal vectors)