Contouring behavior now allows computing normals for unstructured grids.

Change-Id: I04120cb233eb6b5002ae5f390c0e2f1e9ef519e5
Deprecating modifying an ivar that don't do anything.

Change-Id: I2e31749ed241d272843f1d200fdf9b428d8c1bdb
Add categorical data to vtkLookupTable.

Change-Id: I123e0eb3833a8c5dd5d1c399e70ecffe8ba7ec5c
Color mapping using only annotated values.

This patch implements an "indexed" color mode for `vtkLookupTable`.
When `IndexedLookup` is true, the scalar range and log/linear settings are disabled;
`MapScalars` and `MapValue` require an exact match to an annotated value
in order to return a valid color.
All other values are mapped to `NanColor`.

Change-Id: I9805ab6b4398db479c0ae6b0d239886850c2e187
Test categorical color lookup and Brewer colors.

Change-Id: I920bf7f495b25fdb7cde1743db7965ce73885698
Clarify documentation before changes.

Before we add user-specified annotation, make it clear
that the pre-existing text annotations were all tick marks.

Change-Id: I5ec62932e2768255a8149f725561efe39cbf1baf
Make annotation API more consistent.

+ Make `GetIndex()` work consistently whether `IndexedLookup`
  is true or false.
+ Make `GetIndex()` and `MapValue()` properly handle NaN values
  when `IndexedLookup` is false.
+ Return a `vtkIdType` for the number of annotated values.
  (The previous `vtkVariant` was a cut-and-paste error.)

Change-Id: I4586ab117200cca73b021ce0d01782a7da958b45
Color swatches for categorical scalar bar.

When a `vtkLookupTable` with `IndexedLookup` set to true
is passed to `vtkScalarBarActor`, the scalar bar is not drawn.
Instead, a set of distinct color swatches is rendered -- one
for each annotated value stored in the lookup table.
The labels stored with each annotation are not yet rendered.

Change-Id: I3849e5bf99a58ae8884f4061336545781f7b3c65
Initial annotation labels.

Labels are now allocated and displayed, but
their positions are only computed for vertical layouts and
overlap is not prevented. Leader lines are not rendered yet.

Change-Id: I64ce46cac754dd5dd9b736605c60ec2fe7e79456
Better layout of text in vertical case.

Now annotation text won't overlap.
This requires an uncommitted change to vtkMathTextActor
to properly compute bounding rectangles before the first render.

Change-Id: I40eb512e4406fb83eae5933264fa72fe6498eda0
Label horizontal swatches properly.

Now both horizontal and vertical orientations are annotated
properly in `IndexedLookup` mode.

Change-Id: I4d2bcfecdd2b1bc8f72192a7f5706ac7167d4a67
Leader lines implemented.

The only untested functionality is how the `TextPosition`
setting interacts with label and leader placement.

Change-Id: Ie93e8fe6fb260a990e3da55f03e7c451d8bdb897
Leader lines tested.

Fixes for empty annotation strings and for both
TextPosition values (PrecedeScalarBar and SucceedScalarBar).

Change-Id: I4cff86d1e38c222b8dfa7b2aeb1a2a26afef8842
Move most annotation stuff to `vtkScalarsToColors`.

... which is where it belongs. The only parts remaining
in `vtkLookupTable` are the changes to `MapValue` and
`MapScalarsThroughTable2` which are table-specific.

Change-Id: I47da9d3fb7478d37a560f7019f917952103df9e2
Rendering fixes for vtkMathTextActor.

Now `vtkMathTextActor` inherits from `vtkTextActor`
from the `vtkRenderingFreeType` kit. It uses the `vtkTextActor`
to render as a fallback when a `vtkMathTextUtilities`
instance is not available.

Also, the bounding box is computed properly even before
a render (by assuming a display resolution in order
to decide on a texture image size).

Change-Id: I7f9e41f7714cc4e6e0efb42091dc313e0336fa9d
Test IndexedLookup mode of the scalar bar widget.

This test is a modified version of `TestScalarBarWidget`
that tests the categorical colormap functionality.

Change-Id: I44c98f97e6e49af354789fdba02f34adb5f1b171
Handle annotation insertion w/ empty color table.

Change-Id: If57a5a939ca56b1e0c1aa6934d17137ac9cc14cc
Fixes from Yumin and Gerrit CDash warnings.

Change-Id: Icb5a062c4adaded172e09fed798df7a3e94b464a
Fix `vtkScalarsToColors::DeepCopy`.

Change-Id: If7d25004d069ed17a8178d0331eb63fb1edadba9
Make the QVTKRenderWindowInteractor more widely compatible.

Fix compatibility issues with recent commit 5316dff1.  It used the new
"import as" syntax that isn't supported on python 2.5 and earlier.
It also used a new signal/slot mechanism that is only available in
PyQt 4.5 and later, even though the old signal/slot mechanism was
still being used elsewhere in the file (mixing old and new ways
of doing the same thing in a single file makes the code hard to read).

The test TestQVTKRenderWindowInteractor.py did not draw anything,
because it didn't connect the renderer to the render window, nor
did it initialize the interactor.  It also used two-space indentation
in some places and four-space indentation in others.

Change-Id: Ie41798554cce2d1ffe5705ec198d191d9e18cb08