<div dir="ltr"><div>Hi Jian,</div><div>Glad to be of help.</div>I have also done a more comprehensive example that also uses color transfer functions in addition to a lookup table of predefined colors, it also writes and reads vtp files, see: <span style="font-family:arial,sans-serif;font-size:13px"> </span><a href="http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/AssignColorsFromLUT" target="_blank" style="font-family:arial,sans-serif;font-size:13px">http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/AssignColorsFromLUT</a><div>
<br></div><div>Regards</div><div> Andrew<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 26, 2014 at 2:31 AM, Jian Cheng <span dir="ltr"><<a href="mailto:jian.cheng.1983@gmail.com" target="_blank">jian.cheng.1983@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div>Hi Andrew,<br>
<br>
Thank you very much for your help!<br>
That is what I am looking for. <br>
I will use this way for my codes. <br>
Thank you!<br>
<br>
best,<br>
Jian Cheng<div><div><br>
<br>
On 06/23/2014 02:02 AM, Andrew Maclean wrote:<br>
</div></div></div><div><div>
<blockquote type="cite">
<div dir="ltr">
<div>Hi Jan,</div>
I may not be reading the question correctly but you can map the
colours from the vtkLookupTable as follows in the attached
code.
<div>Essentially you use an unsigned char array and calculate
the colour for each cell by interpolating using the
vtkLookupTable, then you set the array as a scalar in your
polydata. VTK will then treat it as the cell colour.</div>
<div>This will allow you to save the colours of your cells.</div>
<div><br>
</div>
<div>Attached is a zip file with the code based on your code and
a CMakeLists.txt file.</div>
<div><br>
</div>
<div>Regards</div>
<div> Andrew<br>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
---------- Forwarded message ----------<br>
From: Bill Lorensen <<a href="mailto:bill.lorensen@gmail.com" target="_blank">bill.lorensen@gmail.com</a>><br>
To: Jian Cheng <<a href="mailto:jian.cheng.1983@gmail.com" target="_blank">jian.cheng.1983@gmail.com</a>><br>
Cc: VTK Users <<a href="mailto:vtkusers@vtk.org" target="_blank">vtkusers@vtk.org</a>><br>
Date: Fri, 20 Jun 2014 14:45:29 -0400<br>
Subject: Re: [vtkusers] write vtkPolyData with colors
from vtkPolyDataMapper<br>
The lut is only used for rendering. The cell data
contains scalar<br>
values that are mapped through the lut to provide r,g,b
for display.<br>
If youo want to save r,g,b colors in the file, you must
create r,g,b<br>
cell data.<br>
<br>
See for example:<br>
<a href="http://vtk.org/Wiki/VTK/Examples/Cxx/PolyData/ColorCellsWithRGB" target="_blank">http://vtk.org/Wiki/VTK/Examples/Cxx/PolyData/ColorCellsWithRGB</a><br>
<br>
<br>
On Tue, Jun 17, 2014 at 6:28 PM, Jian Cheng <<a href="mailto:jian.cheng.1983@gmail.com" target="_blank">jian.cheng.1983@gmail.com</a>>
wrote:<br>
> Hi,<br>
><br>
> I would like to write a vtkPolydata into .vtk file
with the colors from<br>
> vtkPolyDataMapper.<br>
> However the written .vtk file has incorrect color
which is different<br>
> from the rendered color.<br>
> Please see the following small code.<br>
> Your help will be appreciated.<br>
><br>
> best,<br>
> Jian Cheng<br>
><br>
> #include <vtkSmartPointer.h><br>
> #include <vtkPolyDataMapper.h><br>
> #include <vtkActor.h><br>
> #include <vtkRenderWindow.h><br>
> #include <vtkRenderer.h><br>
> #include <vtkRenderWindowInteractor.h><br>
><br>
> #include <vtkLookupTable.h><br>
> #include <vtkFloatArray.h><br>
> #include <vtkCellData.h><br>
> #include <vtkPolyData.h><br>
> #include <vtkPlaneSource.h><br>
><br>
> #include <vtkPolyDataWriter.h><br>
> #include <vtkSmartPointer.h><br>
><br>
> int main(int , char *[])<br>
> {<br>
> // Provide some geometry<br>
> int resolution = 3;<br>
> vtkSmartPointer<vtkPlaneSource> aPlane =<br>
> vtkSmartPointer<vtkPlaneSource>::New();<br>
> aPlane->SetXResolution(resolution);<br>
> aPlane->SetYResolution(resolution);<br>
><br>
> // Create cell data<br>
> vtkSmartPointer<vtkFloatArray> cellData =<br>
> vtkSmartPointer<vtkFloatArray>::New();<br>
> for (int i = 0; i < resolution * resolution;
i++)<br>
> {<br>
> cellData->InsertNextValue(i + 1);<br>
> }<br>
><br>
> // Create a lookup table to map cell data to
colors<br>
> vtkSmartPointer<vtkLookupTable> lut =<br>
> vtkSmartPointer<vtkLookupTable>::New();<br>
> int tableSize = std::max(resolution*resolution +
1, 10);<br>
> lut->SetNumberOfTableValues(tableSize);<br>
> lut->Build();<br>
><br>
> // Fill in a few known colors, the rest will be
generated if needed<br>
> lut->SetTableValue(0 , 0 , 0 , 0,
1); //Black<br>
> lut->SetTableValue(1, 0.8900, 0.8100, 0.3400,
1); // Banana<br>
> lut->SetTableValue(2, 1.0000, 0.3882, 0.2784,
1); // Tomato<br>
> lut->SetTableValue(3, 0.9608, 0.8706, 0.7020,
1); // Wheat<br>
> lut->SetTableValue(4, 0.9020, 0.9020, 0.9804,
1); // Lavender<br>
> lut->SetTableValue(5, 1.0000, 0.4900, 0.2500,
1); // Flesh<br>
> lut->SetTableValue(6, 0.5300, 0.1500, 0.3400,
1); // Raspberry<br>
> lut->SetTableValue(7, 0.9804, 0.5020, 0.4471,
1); // Salmon<br>
> lut->SetTableValue(8, 0.7400, 0.9900, 0.7900,
1); // Mint<br>
> lut->SetTableValue(9, 0.2000, 0.6300, 0.7900,
1); // Peacock<br>
><br>
> aPlane->Update(); // Force an update so we can
set cell data<br>
>
aPlane->GetOutput()->GetCellData()->SetScalars(cellData);<br>
><br>
> // Setup actor and mapper<br>
> vtkSmartPointer<vtkPolyDataMapper> mapper =<br>
>
vtkSmartPointer<vtkPolyDataMapper>::New();<br>
>
mapper->SetInputConnection(aPlane->GetOutputPort());<br>
> mapper->SetScalarRange(0, tableSize - 1);<br>
> mapper->SetLookupTable(lut);<br>
><br>
> mapper->Update();<br>
><br>
> vtkSmartPointer<vtkPolyDataWriter> writer =<br>
> vtkSmartPointer<vtkPolyDataWriter>::New();<br>
> writer->SetFileName( "aa.vtk" );<br>
> writer->SetInputData( mapper->GetInput() );<br>
> writer->Write();<br>
><br>
><br>
> vtkSmartPointer<vtkActor> actor =<br>
> vtkSmartPointer<vtkActor>::New();<br>
> actor->SetMapper(mapper);<br>
><br>
> // Setup render window, renderer, and interactor<br>
> vtkSmartPointer<vtkRenderer> renderer =<br>
> vtkSmartPointer<vtkRenderer>::New();<br>
> vtkSmartPointer<vtkRenderWindow>
renderWindow =<br>
> vtkSmartPointer<vtkRenderWindow>::New();<br>
> renderWindow->AddRenderer(renderer);<br>
> vtkSmartPointer<vtkRenderWindowInteractor>
renderWindowInteractor =<br>
>
vtkSmartPointer<vtkRenderWindowInteractor>::New();<br>
>
renderWindowInteractor->SetRenderWindow(renderWindow);<br>
> renderer->AddActor(actor);<br>
> renderer->SetBackground(.1,.2,.3);<br>
> renderWindow->Render();<br>
> renderWindowInteractor->Start();<br>
><br>
> return EXIT_SUCCESS;<br>
> }<br>
><br>
> _______________________________________________<br>
> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
><br>
> Please keep messages on-topic and check the VTK FAQ
at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://public.kitware.com/mailman/listinfo/vtkusers" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
<br>
<br>
<br>
--<br>
Unpaid intern in BillsBasement at noware dot com<br>
<br>
<br>
_______________________________________________<br>
vtkusers mailing list<br>
<a href="mailto:vtkusers@vtk.org" target="_blank">vtkusers@vtk.org</a><br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
___________________________________________<br>
Andrew J. P. Maclean<br>
<br>
___________________________________________
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a>
Follow this link to subscribe/unsubscribe:
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a>
</pre>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>___________________________________________<br>Andrew J. P. Maclean<br><br>___________________________________________
</div></div></div>