[vtkusers] Color by vector

Steven Kenny S.D.Kenny at lboro.ac.uk
Fri Feb 22 03:24:17 EST 2008


I am try to display some data so that the color that gets associated  
with a point is done so on the basis of a vector. It seems that I  
should be able to do this using the properties that vtkPolyDataMapper  
inherits from vtkMapper, but I don't seem to be able to get this to  
work. The code that I have reads like (lots of code has been cutout  
so as to give a gist of what is being done):

   dataSet = vtkStructuredGrid::New();
   static_cast<vtkStructuredGrid*>(dataSet)->SetDimensions(dataDims);
   dataSet->SetPoints(dataPoints);
   dataSet->GetPointData()->SetScalars(dataValues);
   dataSet->GetPointData()->SetVectors(dataVectors);

   orthoPlane = vtkPlane::New();
   orthoSlice = vtkCutter::New();
   orthoMapper = vtkPolyDataMapper::New();
   orthoActor = vtkActor::New();

   orthoPlane->SetOrigin(orthoPlaneCentre);
   orthoPlane->SetNormal(orthoPlaneNormals);

   orthoSlice->SetInput(data->getData());
   orthoSlice->SetCutFunction(orthoPlane);

   orthoMapper->SetInput(orthoSlice->GetOutput());
   orthoMapper->SetScalarRange(dataRange);
   orthoMapper->SetLookupTable(colourTable);

   orthoActor->SetMapper(orthoMapper);

where dataPoints contains a set of xyz points on a regular mesh,  
dataValues a set of scalars and dataVectors a 3 component tuple for  
each point. What I would like to do is color on the basis of the  
dataVector tuple, it seems that I should be able to do this using  
SetScalarModeToUseCellData but I can't get that to work. Does anyone  
have any hints o how to do this or any example code at all?

Thanks,

Steven



More information about the vtkusers mailing list