X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkSphereList.cxx;h=b8519fbfa32f9122536846c7ec9884d0cffc2fd9;hb=edb8e9b8948e7216e06b3ef5228b16f18417ca52;hp=24624139132c46c63f31b4217fa60e039438aec5;hpb=3b9ae551acae07891da406ab6fd0f0ce392dc923;p=bbtk.git diff --git a/packages/vtk/src/bbvtkSphereList.cxx b/packages/vtk/src/bbvtkSphereList.cxx index 2462413..b8519fb 100644 --- a/packages/vtk/src/bbvtkSphereList.cxx +++ b/packages/vtk/src/bbvtkSphereList.cxx @@ -41,18 +41,16 @@ BBTK_BLACK_BOX_IMPLEMENTATION(SphereList,bbtk::AtomicBlackBox); double SphereList::GetRadio(int i) { double radio; - if (bbGetInputlstRadio().size()==0) - { - radio = 1.0; - } else if (bbGetInputlstRadio().size() < i ) + if ( bbGetInputlstRadio().size()==0 ) + { + radio = 1.0; + } else if ( iSetPosition( px,py,pz ); - sphereActor[i] -> GetProperty() -> SetOpacity( bbGetInputOpacity() ); - vtkspheresourceLst[i] -> SetRadius( GetRadio(i) ); - } // for i - } else { - - - iMin=0; - iMax=bbGetInputlstPointX().size(); -// printf("EED SphereList::Process iMax=%d \n", iMax); -// for (int i = 0; i < iMax; i++) -// { -// std::cout << "CM SphereList::Process i=" << i << " bbGetInputlstPointX()[i]=" << bbGetInputlstPointX()[i] << std::endl; -// std::cout << "CM SphereList::Process i=" << i << " bbGetInputlstPointY()[i]=" << bbGetInputlstPointY()[i] << std::endl; -// std::cout << "CM SphereList::Process i=" << i << " bbGetInputlstPointZ()[i]=" << bbGetInputlstPointZ()[i] << std::endl; -// } // for i - - // If the vector Y or respectively the vector Z has a different size from the vector X, the position value py or respectively pz is set to 0. - for ( int i=iMin ; isizeLstX) + { + diff=sizeLstActors-sizeLstX; + for (i=0;iRemoveActor( sphereActor[0] ); + vtkspheresourceLst[0]->Delete(); + sphereActor[0]->Delete(); + vtkspheresourceLst.erase( vtkspheresourceLst.begin() ); + sphereActor.erase( sphereActor.begin() ); + } // for + } // if size + + if (sizeLstActors SetThetaResolution(20); + newSphere -> SetPhiResolution(20); + newSphere -> SetRadius( 1 ); + vtkPolyDataMapper * newMapper = vtkPolyDataMapper::New(); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + newMapper -> SetInput( newSphere -> GetOutput() ); +#else + newSphere -> Update(); + newMapper -> SetInputData( newSphere -> GetOutput() ); +#endif + + vtkActor * newActor = vtkActor::New(); + sphereActor.push_back(newActor); + newActor -> SetMapper(newMapper); + newActor -> SetOrigin(0, 0, 0); + if ( bbGetInputTransform()!=NULL ) + { + newActor->SetUserTransform( bbGetInputTransform() ); + } + bbGetInputRenderer()->AddActor( newActor ); + } // for + } // if size + + // Refresh data + for (i = 0; i < sphereActor.size() ; i++) + { + double px = 0.0; + double py = 0.0; + double pz = 0.0; + double cr = 0.0; + double cg = 0.0; + double cb = 0.0; + GetPoint(i, px,py,pz); + GetColor(i, cr,cg,cb); + sphereActor[i] ->SetPosition( px,py,pz ); + sphereActor[i] -> GetProperty() -> SetOpacity( bbGetInputOpacity() ); + sphereActor[i] -> GetProperty() -> SetColor( cr,cg,cb ); + vtkspheresourceLst[i] -> SetRadius( GetRadio(i) ); + vtkspheresourceLst[i] -> Update(); + } // for i + + if (sphereActor.size() != 0) + { + // Sets the output. + bbSetOutputActorList(sphereActor); + } + + } else { + printf("EED Warning! SphereList::Process Lst XYZ are not of the same size.\n"); + }// if sizeLst + } else { + printf("EED Warning! SphereList::Process Render not assigned.\n"); + }// if Renderer - GetPoint(i, px,py,pz); +//==================================================================== +*/ + if (bbGetInputRenderer()!=NULL) + { + int sizeLstX = bbGetInputlstPointX().size(); + int sizeLstY = bbGetInputlstPointY().size(); + int sizeLstZ = bbGetInputlstPointZ().size(); + int sizeLstActors = sphereActor.size(); + if ((sizeLstX==sizeLstY) &&(sizeLstX==sizeLstZ)) + { + int i; + double px,py,pz; + double cr,cg,cb; + for ( i=0 ; iRemoveActor( sphereActor[i] ); + vtkspheresourceLst[i]->Delete(); + vtkpolydatamaperLst[i]->Delete(); + sphereActor[i]->Delete(); + } // for + vtkspheresourceLst.clear(); + vtkpolydatamaperLst.clear(); + sphereActor.clear(); - - // Sphere - vtkSphereSource * newSphere = vtkSphereSource::New(); - vtkspheresourceLst.push_back(newSphere); - - newSphere -> SetThetaResolution(20); - newSphere -> SetPhiResolution(20); - newSphere -> SetRadius( GetRadio(i) ); - - vtkPolyDataMapper * newMapper = vtkPolyDataMapper::New(); - newMapper -> SetInput( newSphere -> GetOutput() ); - - vtkActor * newActor = vtkActor::New(); - sphereActor.push_back(newActor); - newActor -> SetMapper(newMapper); - newActor -> SetOrigin(0, 0, 0); - unsigned int j = 3*i +2; - if (j < bbGetInputColour().size() ) - { - newActor -> GetProperty() -> SetColor( bbGetInputColour()[3*i] , bbGetInputColour()[3*i + 1] , bbGetInputColour()[3*i + 2] ); - last_valid_color_index = 3*i; - } - else - newActor -> GetProperty() -> SetColor( bbGetInputColour()[last_valid_color_index] , bbGetInputColour()[last_valid_color_index + 1] , bbGetInputColour()[last_valid_color_index + 2] ); - - newActor -> GetProperty() -> SetOpacity( bbGetInputOpacity() ); - newActor -> SetPosition( px,py,pz ); - - if ( bbGetInputTransform()!=NULL ) + for (i=0;iSetUserTransform( bbGetInputTransform() ); - } - - - if (bbGetInputRenderer()!=NULL) - { - bbGetInputRenderer() -> AddActor( newActor ); - } - - } // for - - if (sphereActor.size() != 0) - { - // Sets the output. - bbSetOutputActorList(sphereActor); - } - - } // if (bbGetInputRenderer()!=NULL) - - } // if (sphereActor.size() != 0) + // Sphere + vtkSphereSource * newSphere = vtkSphereSource::New(); + vtkspheresourceLst.push_back(newSphere); + newSphere -> SetThetaResolution(20); + newSphere -> SetPhiResolution(20); + newSphere -> SetRadius( 1 ); + vtkPolyDataMapper * newMapper = vtkPolyDataMapper::New(); + vtkpolydatamaperLst.push_back(newMapper); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + newMapper -> SetInput( newSphere -> GetOutput() ); +#else + newSphere -> Update(); + newMapper -> SetInputData( newSphere -> GetOutput() ); +#endif + + vtkActor * newActor = vtkActor::New(); + sphereActor.push_back(newActor); + newActor -> SetMapper(newMapper); + newActor -> SetOrigin(0, 0, 0); + if ( bbGetInputTransform()!=NULL ) + { + newActor->SetUserTransform( bbGetInputTransform() ); + } + bbGetInputRenderer()->AddActor( newActor ); + } // for + + + // Refresh data + for (i = 0; i < sphereActor.size() ; i++) + { + GetPoint(i, px,py,pz); + GetColor(i, cr,cg,cb); + sphereActor[i] ->SetPosition( px,py,pz ); + sphereActor[i] -> GetProperty() -> SetOpacity( bbGetInputOpacity() ); + sphereActor[i] -> GetProperty() -> SetColor( cr,cg,cb ); + vtkspheresourceLst[i] -> SetRadius( GetRadio(i) ); + vtkspheresourceLst[i] -> Update(); + } // for i + + if (sphereActor.size() != 0) + { + // Sets the output. + bbSetOutputActorList(sphereActor); + } + + } // sizeLstX sizeLstY sizeLstZ + } // if Renderer } + void SphereList::bbUserSetDefaultValues() {