// 创建点云数据
float sacle =1;
const long num_points = 1000000;
std::vector<gp_Pnt> points;
for(int i=0;i<100;i++){
for(int j=0;j<100;j++){
for(int k=0;k<100;k++){
points.push_back(gp_Pnt(i*sacle, j*sacle, k*sacle));
}
}
}
// 创建Graphic3d_ArrayOfPoints对象
Handle(Graphic3d_ArrayOfPoints) array_of_points = new Graphic3d_ArrayOfPoints(num_points);
for (long i = 0; i < num_points; i++) {
const gp_Pnt& p = points[i];
array_of_points->AddVertex(p.X(), p.Y(), p.Z());
}
Handle(AIS_PointCloud) ais_pointcloud = new AIS_PointCloud();
ais_pointcloud->SetDisplayMode(Aspect_TOM_POINT);
ais_pointcloud->SetColor(Quantity_Color(255/255,1/255,1/255,Quantity_TypeOfColor::Quantity_TOC_RGB));
ais_pointcloud->SetPoints(array_of_points);
Graphic3d_MaterialAspect material(Graphic3d_NOM_GOLD);
ais_pointcloud->SetMaterial(material);
myContext->Display(ais_pointcloud, true);
updateView();
QTimer* timer=new QTimer(this);
connect(timer,&QTimer::timeout, this, [=](){
gp_Trsf aTrsf_Translation;
//aTrsf_Translation.SetTranslation(gp_XYZ({-0.5,0,0}));
aTrsf_Translation.SetRotation(gp_Ax1({0,0,0},{0,0,1}),0.01);
BRepBuilderAPI_Transform trans(bShape->Shape(),aTrsf_Translation,false);
bShape->SetShape(trans.Shape());
// aShape->SetShape(cut_thread->cshape);
// myContext->Redisplay(aShape,true);
myContext->Redisplay(bShape,true);
updateView();
});
timer->start(10);