[Ves] How to color polydata with Scalars in VES

Aashish Chaudhary aashish.chaudhary at kitware.com
Wed Feb 26 13:30:44 EST 2014


Hi Bo,

Do this in your code

polydata->GetPointData()->SetScalars(colors);

What Casey said is right but that would be needed if you want to color
faces. In your code, you have to set colors on the points because that's
where we look for it.

- Aashish



On Tue, Feb 25, 2014 at 1:11 PM, Aashish Chaudhary <
aashish.chaudhary at kitware.com> wrote:

> Let me have a look at it. Will report back to you soon.
>
> - Aashish
>
>
>
> On Tue, Feb 25, 2014 at 10:26 AM, Bo Yu <yubo1983 at gmail.com> wrote:
>
>> Thank you, Aashish, I tried to set name of a vtkDataArray, but that
>> didn't make change,I still only see model with no color (or white color).
>> if you have time could you please check my code below?
>> I just create a simple triangle and try to paint it to red use
>> colorByScale.
>> However, It seems I can not change the color mode of "rep" in the last
>> three lines. It always have the value as "Solid color"....
>> Sorry, I just start to learn ves, and thank you so much for your reply
>> and patient.
>>
>> Sincerely yours,
>>
>> Bo Yu
>> /////////////////////
>> /////testing
>>     // Setup points
>>     vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
>>     vtkSmartPointer<vtkCellArray> vertices =
>> vtkSmartPointer<vtkCellArray>::New();
>>     points->InsertNextPoint(0.0, 0.0, 0.0);
>>     points->InsertNextPoint(1.0, 0.0, 0.0);
>>     points->InsertNextPoint(0.0, 1.0, 0.0);
>>
>>     // Setup colors
>>     unsigned char red[3] = {1, 0, 0};
>>     vtkSmartPointer<vtkUnsignedCharArray> colors =
>> vtkSmartPointer<vtkUnsignedCharArray>::New();
>>     colors->SetNumberOfComponents(3);
>>     colors->SetName("Colors");
>>     colors->InsertNextTupleValue(red);
>>
>>     vtkDataArray *colorArray = vtkDataArray::SafeDownCast(colors);
>>     colorArray->SetName("ColorsArray");  ////set color array name
>>
>>     vtkSmartPointer<vtkCellArray> triangles
>> =vtkSmartPointer<vtkCellArray>::New();
>>     vtkSmartPointer<vtkTriangle> triangle =
>> vtkSmartPointer<vtkTriangle>::New();
>>     triangle->GetPointIds()->SetId(0, 0);
>>     triangle->GetPointIds()->SetId(1, 1);
>>     triangle->GetPointIds()->SetId(2, 2);
>>     triangles->InsertNextCell(triangle);
>>
>>     vtkSmartPointer<vtkPolyData> polydata =
>> vtkSmartPointer<vtkPolyData>::New();
>>
>>     polydata->SetPoints(points);
>>     polydata->SetPolys(triangles);
>>     polydata->GetCellData()->SetScalars(colors);
>>     ////////////
>>
>>     vesKiwiPolyDataRepresentation::Ptr rep =
>> std::tr1::dynamic_pointer_cast<vesKiwiPolyDataRepresentation>(self->mKiwiApp->dataRepresentations()[0]);
>>     rep->setPolyData(polydata);//(currentPolydata->getPolydata(),
>> newColorLookupTable);
>>     rep->colorByScalars("ColorsArray");  //colorArray->GetName()//(1.0,
>> 0.0, 0.0, 1.0);
>> ////////////////////////////////////////////
>>
>>
>> -   -!  I forgot to cc to mail list.
>>
>>
>> On Tue, Feb 25, 2014 at 11:37 PM, Aashish Chaudhary <
>> aashish.chaudhary at kitware.com> wrote:
>>
>>> Bo,
>>>
>>> If I remember it correctly, you can name your scalar array "foo" and
>>> then pass that array name to the Kiwi (have a look at the documentation for
>>> the exact signature)
>>>
>>> vtkDataArray* da = ....;
>>> da->SetArrayName("foo");
>>>
>>>
>>>
>>> On Tue, Feb 25, 2014 at 9:34 AM, Bo Yu <yubo1983 at gmail.com> wrote:
>>>
>>>> Hi, I am so sorry to interrupt again.
>>>> This time I want to paint the polydata with different colors in each
>>>> region. I found there is a method called
>>>> void vesKiwiPolyDataRepresentation::colorByScalars(const std::string&
>>>> arrayName)
>>>> , which seem similar to the one I used before to set color of a
>>>> polydata in VTK.
>>>> polydata->GetCellData()->SetScalars(vtkDataArray *da).
>>>>
>>>> But why the input is a string called arrayName? If you know, Could you
>>>> tell me how to use this method or give me some simple examples?
>>>>
>>>> Thanks in advance.
>>>>
>>>> Bo Yu
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> | Aashish Chaudhary
>>> | R&D Engineer
>>> | Kitware Inc.
>>> | www.kitware.com
>>>
>>
>>
>
>
> --
> | Aashish Chaudhary
> | R&D Engineer
> | Kitware Inc.
> | www.kitware.com
>



-- 
| Aashish Chaudhary
| R&D Engineer
| Kitware Inc.
| www.kitware.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ves/attachments/20140226/68191570/attachment-0003.html>


More information about the Ves mailing list