スカラ値による濃淡ではなく、RGB値によるフルカラー表示を行う際は、RGB各値を3成分のUnsigned Char型ベクトル値として定義する必要がある。CSVなどのテーブル形式データからTable To Pointsフィルタで点群化した色付き点群は、通常RGB値がそれぞれInt型スカラ値として独立しているため、以下のコードによりRGB値を変換・結合することでフルカラー表示を実現する。
Programmable Filter適用後、Object Inspector上のPropertiesタブにて‘Map Scalars’のチェックを外す。
動作確認バージョン
ParaView 4.2.0
Output Data Set Type
vtkPolyData
Script
pdi = self.GetInput() pdo = self.GetOutput() c = vtk.vtkUnsignedCharArray() c.SetName('Colors') c.SetNumberOfComponents(3) c.SetNumberOfTuples(pdi.GetNumberOfPoints()) r = pdi.GetPointData().GetArray(0) g = pdi.GetPointData().GetArray(1) b = pdi.GetPointData().GetArray(2) for i in range(pdi.GetNumberOfPoints()): c.SetTuple3(i, r.GetValue(i), g.GetValue(i), b.GetValue(i)) pdo.GetPointData().AddArray(c)
コメントを残す