[vtkusers] Color by vector
Amy Squillacote
ahs at cfdrc.com
Fri Feb 22 09:19:09 EST 2008
Hi Steven,
It looks like you have point data, not cell data, so
SetScalarModeToUseCellData won't work. In your mapper, use the
SelectColorArray method, specifying the name of your dataVectors as the
input parameter. Then in your lookup table (mapper->GetLookupTable()),
you can specify whether to map a single component of your vectors to
color (SetVectorModeToComponent()) or use the magnitude to derive color
(SetVectorModeToMagnitude()). You can select which vector component to
use with the SetVectorComponent() method of the lookup table.
- Amy
Steven Kenny wrote:
> 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
> _______________________________________________
> This is the private VTK discussion list.Please keep messages on-topic.
> Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>
--
Amy Squillacote Phone: (256) 726-4839
Computer Scientist Fax: (256) 726-4806
CDF Research Corporation Web: http://www.cfdrc.com
215 Wynn Drive, Suite 501
Huntsville, AL 35805
More information about the vtkusers
mailing list