From: Anthony Geay Date: Fri, 7 Apr 2023 08:36:56 +0000 (+0200) Subject: Factorisation X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=4bc55e32178113ebb34993c09f0c637403eaa605;p=modules%2Fgeom.git Factorisation --- diff --git a/src/GEOMGUI/GEOM_Displayer.cxx b/src/GEOMGUI/GEOM_Displayer.cxx index 01cb2c482..7f73e81a2 100644 --- a/src/GEOMGUI/GEOM_Displayer.cxx +++ b/src/GEOMGUI/GEOM_Displayer.cxx @@ -1774,116 +1774,11 @@ void GEOM_Displayer::Update( SALOME_PV3DPrs* prs ) // // processing for usual geometry presentation // - SHOW(myShape); - MSGEL("...-> update SALOME_PV3DPrs"); - { GEOM_Actor *actor = GEOM_Actor::New(); updateActorProperties( actor, true ); - actor->GetMapper()->Update(); - vtkDataObject *ds = actor->GetMapper()->GetInput();//GetOutputDataObject(0); - vtkPolyData *ds2 = vtkPolyData::SafeDownCast(ds); - MSGEL("!!!!!!!!!!!!!!!!!!!!!!!!"); - MSGEL(ds2->GetNumberOfCells()); - // - pqServer *serv(pqApplicationCore::instance()->getServerManagerModel()->findServer(pqServerResource("builtin:"))); - pqObjectBuilder *builder(pqApplicationCore::instance()->getObjectBuilder()); - pqPipelineSource *mySourceProducer(builder->createSource("sources","PVTrivialProducer",serv)); - vtkSMProxy *producerBase = mySourceProducer->getProxy(); - vtkSMSourceProxy *producer(vtkSMSourceProxy::SafeDownCast(producerBase)); - vtkObjectBase *clientSideObject(producer->GetClientSideObject()); - vtkPVTrivialProducer *clientSideObjectCast = vtkPVTrivialProducer::SafeDownCast(clientSideObject); - clientSideObjectCast->SetOutput(ds2); - mySourceProducer->updatePipeline(); - // - pv3dPrs->SetSourceProducer( mySourceProducer ); -#if 0 - // check that study is active - SalomeApp_Study* study = getStudy(); - if ( !study ) return; - - // set interactive object - - Handle( SALOME_InteractiveObject ) anIO; - - if ( !myIO.IsNull() ) { - actor->setIO( myIO ); - anIO = myIO; - } - else if ( !myName.empty() ) { - // workaround to allow selection of temporary objects - static int tempId = 0; - anIO = new SALOME_InteractiveObject( QString( "TEMP_VTK_%1" ).arg( tempId++ ).toUtf8().data(), "GEOM", myName.c_str() ); - actor->setIO( anIO ); - } - - // presentation study entry (empty for temporary objects like preview) - QString entry = !anIO.IsNull() ? QString( anIO->getEntry() ) : QString(); - // flag: temporary object - bool isTemporary = entry.isEmpty() || entry.startsWith( "TEMP_" ); - // currently active view window's ID (-1 if no active view) - int aMgrId = !anIO.IsNull() ? getViewManagerId( myViewFrame ) : -1; - - // get presentation properties - PropMap propMap = getObjectProperties( entry, myViewFrame ); - QColor c; - actor->SetShape( myShape, qMax( propMap.value( GEOM::propertyName( GEOM::Deflection ) ).toDouble(), GEOM::minDeflection() ), myType == GEOM_VECTOR ); -#endif - } -#if 0 - // For now, display the bbox instead of the shape itself - Standard_Real XMin = -1, YMin = -1, ZMin = -1, XMax = 1, YMax = 1, ZMax = 1; - if (!myShape.IsNull()) - { - Bnd_Box aBndBox; - BRepBndLib::Add(myShape, aBndBox); - aBndBox.Get(XMin, YMin, ZMin, XMax, YMax, ZMax); - MSGEL("BBox= X:[" << XMin << "," << XMax << "] Y:[" << YMin << "," << YMax << "] Z: [" << ZMin << "," << ZMax << "]"); - } - - // if presentation is empty we try to create new one - if ( pv3dPrs->IsNull() ) - { - // Create a pipeline source with vtkPolyData output from a TopoDS_Shape - pqObjectBuilder* builder = pqApplicationCore::instance()->getObjectBuilder(); - pqServer* activeServer = pqActiveObjects::instance().activeServer(); - -#define USE_CUBE_SOURCE -#ifdef USE_CUBE_SOURCE - pqPipelineSource* source = builder->createSource("sources", "CubeSource", activeServer); -#else - pqPipelineSource* source = builder->createSource("sources", "GeometryGenerator", activeServer); -#endif - if (!source) { - MSGEL("ERR: VTK source not found"); - return; - } - else { - // Set dimensions of bbox - vtkSMProxy* proxy = source->getProxy(); -#ifdef USE_CUBE_SOURCE - vtkSMPropertyHelper(proxy, "XLength").Set(XMax-XMin); - vtkSMPropertyHelper(proxy, "YLength").Set(YMax-YMin); - vtkSMPropertyHelper(proxy, "ZLength").Set(ZMax-ZMin); -#else - // Standard_SStream ss; - // BRepTools::Write(myShape, ss); - // std::string str = ss.str(); - // vtkSMPropertyHelper(proxy, "BRepStream").Set(str.c_str()); - - vtkSMPropertyHelper(proxy, "EdgeSubdivision").Set(2); - vtkSMPropertyHelper(proxy, "NumberOfSolids").Set(1); -#endif - - proxy->UpdateVTKObjects(); - } - + pv3dPrs->FillUsingActor( actor ); } - else { - // presentation is being updated - } - // NYI -#endif } }