How can I color the point by vtkPolyData

Hi, my ply file like this

ply
format ascii 1.0
element vertex 1722844
property float x
property float y
property float z
property uchar red
property uchar green
property uchar blue
element face 0
property list uchar int vertex_indices
end_header
-348.008 -316.75 1434.08 40 64 34
-148.82 -302.887 1409.34 49 80 56
-144.013 -299.44 1393.3 47 78 60
-98.4511 -229.519 1067.96 48 75 59

I use vtkPolyData and vtkPLYReader to read file and show

vtkSmartPointer<vtkPolyData> polyData= vtkSmartPointer<vtkPolyData>::New();
auto reader = vtkSmartPointer<vtkPLYReader>::New();
reader->SetFileName ("my.ply");
polyData = reader->GetOutput();

  // Visualization
  vtkSmartPointer<vtkPolyDataMapper> mapper =
    vtkSmartPointer<vtkPolyDataMapper>::New();
  mapper->SetInputData(polyData);

  vtkSmartPointer<vtkActor> actor =
    vtkSmartPointer<vtkActor>::New();
  actor->SetMapper(mapper);
  actor->GetProperty()->SetPointSize(1);

  vtkSmartPointer<vtkRenderer> renderer =
    vtkSmartPointer<vtkRenderer>::New();
  vtkSmartPointer<vtkRenderWindow> renderWindow =
    vtkSmartPointer<vtkRenderWindow>::New();
  renderWindow->AddRenderer(renderer);
  vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
    vtkSmartPointer<vtkRenderWindowInteractor>::New();
  renderWindowInteractor->SetRenderWindow(renderWindow);

  renderer->AddActor(actor);
  renderer->SetBackground(namedColors->GetColor3d("Burlywood").GetData());
  renderWindow->Render();
  renderWindowInteractor->Start();

I knew I can set

polyData->GetPointData()->SetScalars(colors) 

to colored points. But how can I get each points’ rgb values by polyData?

Add this line: mapper->SetColorModeToDirectScalars()