Hello, dear Paraview developers!
Could you please give me an example on how to use  proxies from C++ to manipulate vtk objects?
I was not able to find a credible and simple example
Best regards,
Mike
Hello, dear Paraview developers!
Could you please give me an example on how to use  proxies from C++ to manipulate vtk objects?
I was not able to find a credible and simple example
Best regards,
Mike
Proxies are generally created using pqObjectBuilder::createProxy
Could you clarify please, what should one specify for the parameters of createProxy?
An example would help a lot
creating a sphere source proxy:
pqServer* server = pqActiveObject::instance().activeServer();
pqObjectBuilder::createProxy("sources", "SphereSource", server, "Sphere1");
              pqServer* server = pqActiveObjects::instance().activeServer();
  pqObjectBuilder builder = pqObjectBuilder(nullptr);
  vtkSMProxy * sphere_proxy = builder.createProxy("sources", "SphereSource", server, "Sphere1");
  vtkSMProperty* radius = sphere_proxy->GetProperty("Radius");
  //How to set the value?
  //How to actually create the sphere?
  sphere_proxy->UpdateVTKObjects();
Mathieu, I still don’t get how to make use of it, could you help me please
 pqServer* server = pqActiveObjects::instance().activeServer();
 const auto* builder = pqApplicationCore::instance()->getObjectBuilder();
 vtkSMProxy * sphere_proxy = builder.createProxy("sources", "SphereSource", server, "Sphere1");
 vtkSMPropertyHelper(sphere_proxy, "radius").Set(20);
 pqPVApplicationCore::applyPipeline();
Do not hesitate to look at paraview source code for that or to consider joining a ParaView advanced course.
I use an older version of paraview and I dont have applyPipeline, so I have tried
  pqServer* server = pqActiveObjects::instance().activeServer();
  pqObjectBuilder*  builder = pqApplicationCore::instance()->getObjectBuilder();
  vtkSMProxy* sphere_proxy = builder->createProxy("sources", "SphereSource", server, "Sphere1");
  vtkSMPropertyHelper(sphere_proxy, "radius").Set(20);  
  //pqPVApplicationCore::applyPipeline();
  sphere_proxy->UpdateVTKObjects();
But it has not worked, what could be wrong?
what did not work ?
In any case, here is how to “Apply” with older version of ParaView:
 pqServer* server = pqActiveObjects::instance().activeServer();
 const auto* builder = pqApplicationCore::instance()->getObjectBuilder();
 pqPipelineSource* source = builder.createSource("sources", "SphereSource", server);
 proxy = source->getProxy();
 vtkSMPropertyHelper(proxy, "radius").Set(20);
 proxy->UpdateVTKObjects();
 source->updatePipeline();
 source->setModifiedState(pqProxy::UNMODIFIED);
            Mathieu, it creates a menu, with an Apply button to click
Could this be achieved without creating any menus?
Do you mean that it create a source that is visible in the pipeline ?
Yes, this is what it does. You do not want that ?
I would like to skip the user interface and have a sphere created with C++ code only, without any user interface actions
 source->setModifiedState(pqProxy::UNMODIFIED); should take care of that.
With this line of code I have the picture on the screenshot above