52 visionx::PointContentType originalType,
55 originalCloud(originalCloud), originalType(originalType)
58 SoMaterial* materialInfo =
new SoMaterial();
59 std::vector<SbColor> colorData;
60 colorData.reserve(originalCloud->points.size());
62 SoCoordinate3* coordinates =
new SoCoordinate3();
63 std::vector<SbVec3f> pointData;
64 pointData.reserve(originalCloud->points.size());
65 for (
const PointT& p : originalCloud->points)
69 SbColor colorContainer;
74 const pcl::RGB color = pcl::GlasbeyLUT::at(p.label % pcl::GlasbeyLUT::size());
82 colorContainer.setValue(colorArray);
83 colorData.push_back(colorContainer);
85 SbVec3f pointContainer;
86 pointContainer[0] = p.x;
87 pointContainer[1] = p.y;
88 pointContainer[2] = p.z;
90 pointData.push_back(pointContainer);
94 materialInfo->diffuseColor.setValues(0, colorData.size(), colorData.data());
95 this->addChild(materialInfo);
98 SoMaterialBinding* binding =
new SoMaterialBinding();
99 binding->value = SoMaterialBinding::PER_PART;
100 this->addChild(binding);
102 coordinates->point.setValues(0, pointData.size(), pointData.data());
103 this->addChild(coordinates);
106 SoDrawStyle* sopointSize =
new SoDrawStyle();
107 sopointSize->pointSize = pointSize;
108 this->addChild(sopointSize);
111 SoPointSet* pointSet =
new SoPointSet();
112 this->addChild(pointSet);