I have a custom filter that sets an RGB value for each cell in a surface mesh, where each cell is a triangle. When the filter runs in paraview I "see" the new arrays show up when I click on the "Information" tab but the "Color By" drop down only has the "Solid Color" available.

Here is the relevant parts of the code:

vtkCellData* cd = input->GetCellData();
  vtkDataArray* normals = cd->GetNormals();
if (NULL == normals || (normals && normals->GetNumberOfTuples() <= 0 ) )
  {
    std::cout << "NORMALS were not present" << std::endl;
    normals = NULL;
  }

  if (NULL == normals)
  {
    vtkPolyDataNormals* polyNormals = vtkPolyDataNormals::New();
    polyNormals->SetInput(input);
    polyNormals->SplittingOff();
    polyNormals->ConsistencyOn ();
    polyNormals->AutoOrientNormalsOn();
    polyNormals->ComputePointNormalsOff();
    polyNormals->ComputeCellNormalsOn();
    polyNormals->FlipNormalsOff();
    polyNormals->NonManifoldTraversalOff();
    polyNormals->Update();
    output->ShallowCopy(polyNormals->GetOutput());
  }

  cd = output->GetCellData();
  normals = cd->GetNormals();

  vtkUnsignedCharArray* rgb = vtkUnsignedCharArray::New();
  rgb->SetName(INTERFACE_COLORING);
  rgb->SetNumberOfComponents(3);

vtkDataArray* eulerArray = input->GetFieldData()- >GetArray(OIMColoring::EulerAngles().c_str());
  if (NULL == eulerArray)
  {
vtkErrorMacro( << "Euler Angles Field Data Missing from Data set. This filter requires the euler angles to work");
    return 0;
  }

  double* eulers = eulerArray->GetTuple3(0);
  double* refDirection; //[3] = {45.0, 45.0, 0.0};
  unsigned char bytes[3] =  { 65, 0, 255 };
  for (vtkIdType i = 0; i < normals->GetNumberOfTuples(); ++i)
  {
    refDirection = normals->GetTuple3(i);
    OIMColoring::GenerateIPFColor<double>(eulers, refDirection, bytes);
// std::cout << (int)(bytes[0]) << " " << (int)(bytes[1]) << " " << (int)(bytes[2]) << std::endl;
    rgb->InsertNextTupleValue(bytes);
  }

  output->GetCellData()->SetScalars(rgb);
  output->GetCellData()->SetActiveScalars(INTERFACE_COLORING);

Helpful insights are very welcome.
___________________________________________________________
Mike Jackson                      www.bluequartz.net
Principal Software Engineer       mike.jack...@bluequartz.net
BlueQuartz Software               Dayton, Ohio


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to