From: ouv Date: Wed, 30 Jan 2013 11:09:49 +0000 (+0000) Subject: Porting to VTK 6. X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=89a4e3c9e432c1304f3cbaad52c55d5d9e68e01d;p=modules%2Fgeom.git Porting to VTK 6. First compilable version of GEOM and SMESH modules. --- diff --git a/src/OBJECT/GEOM_Actor.cxx b/src/OBJECT/GEOM_Actor.cxx index 5865ba5d2..6c92ed63d 100644 --- a/src/OBJECT/GEOM_Actor.cxx +++ b/src/OBJECT/GEOM_Actor.cxx @@ -119,7 +119,7 @@ GEOM_Actor::GEOM_Actor(): MESSAGE (this<< " GEOM_Actor::GEOM_Actor"); #endif - myPolyDataMapper->SetInput(myAppendFilter->GetOutput()); + myPolyDataMapper->SetInputConnection(myAppendFilter->GetOutputPort()); vtkProperty* aProperty; myHighlightProp->SetAmbient(0.5); @@ -132,45 +132,45 @@ GEOM_Actor::GEOM_Actor(): myHighlightProp->SetPointSize(SALOME_POINT_SIZE); myHighlightActor->SetProperty(myHighlightProp.GetPointer()); - this->myHighlightActor->SetInput(myAppendFilter->GetOutput(),false); + this->myHighlightActor->SetInput(myAppendFilter->GetOutputPort(),false); myPreHighlightProp->SetColor(0,1,1); myPreHighlightProp->SetPointSize(SALOME_POINT_SIZE+2); myPreHighlightProp->SetLineWidth(SALOME_LINE_WIDTH+1); myPreHighlightProp->SetRepresentationToWireframe(); - myAppendFilter->AddInput(myVertexSource->GetOutput()); - myVertexActor->SetInput(myVertexSource->GetOutput(),false); + myAppendFilter->AddInputConnection(myVertexSource->GetOutputPort()); + myVertexActor->SetInput(myVertexSource->GetOutputPort(),false); aProperty = myVertexActor->GetProperty(); aProperty->SetRepresentation(VTK_POINTS); aProperty->SetPointSize(3); aProperty->SetColor(1, 1, 0); - myAppendFilter->AddInput(myIsolatedEdgeSource->GetOutput()); - myIsolatedEdgeActor->SetInput(myIsolatedEdgeSource->GetOutput(),false); + myAppendFilter->AddInputConnection(myIsolatedEdgeSource->GetOutputPort()); + myIsolatedEdgeActor->SetInput(myIsolatedEdgeSource->GetOutputPort(),false); aProperty = myIsolatedEdgeActor->GetProperty(); aProperty->SetRepresentation(VTK_WIREFRAME); aProperty->SetColor(1, 0, 0); - myAppendFilter->AddInput(myOneFaceEdgeSource->GetOutput()); - myOneFaceEdgeActor->SetInput(myOneFaceEdgeSource->GetOutput(),false); + myAppendFilter->AddInputConnection(myOneFaceEdgeSource->GetOutputPort()); + myOneFaceEdgeActor->SetInput(myOneFaceEdgeSource->GetOutputPort(),false); aProperty = myOneFaceEdgeActor->GetProperty(); aProperty->SetRepresentation(VTK_WIREFRAME); aProperty->SetColor(0, 1, 0); - myAppendFilter->AddInput(mySharedEdgeSource->GetOutput()); - mySharedEdgeActor->SetInput(mySharedEdgeSource->GetOutput(),false); + myAppendFilter->AddInputConnection(mySharedEdgeSource->GetOutputPort()); + mySharedEdgeActor->SetInput(mySharedEdgeSource->GetOutputPort(),false); aProperty = mySharedEdgeActor->GetProperty(); aProperty->SetRepresentation(VTK_WIREFRAME); aProperty->SetColor(1, 1, 0); - myAppendFilter->AddInput(myWireframeFaceSource->GetOutput()); - myWireframeFaceActor->SetInput(myWireframeFaceSource->GetOutput(),false); + myAppendFilter->AddInputConnection(myWireframeFaceSource->GetOutputPort()); + myWireframeFaceActor->SetInput(myWireframeFaceSource->GetOutputPort(),false); aProperty = myWireframeFaceActor->GetProperty(); aProperty->SetRepresentation(VTK_WIREFRAME); aProperty->SetColor(0.5, 0.5, 0.5); - myShadingFaceActor->SetInput(myShadingFaceSource->GetOutput(),true); + myShadingFaceActor->SetInput(myShadingFaceSource->GetOutputPort(),true); myShadingFaceProp->SetRepresentation(VTKViewer::Representation::Surface); myShadingFaceProp->SetInterpolationToGouraud(); @@ -218,7 +218,7 @@ New() void Write(vtkPolyData* theDataSet, const char* theFileName){ vtkPolyDataWriter* aWriter = vtkPolyDataWriter::New(); MESSAGE ("Write - "<GetNumberOfPoints()<<"; "<GetNumberOfCells()); - aWriter->SetInput(theDataSet); + aWriter->SetInputData(theDataSet); aWriter->SetFileName(theFileName); //aWriter->Write(); aWriter->Delete(); diff --git a/src/OBJECT/GEOM_DeviceActor.cxx b/src/OBJECT/GEOM_DeviceActor.cxx index 9a25e86e5..cd43d4d2e 100755 --- a/src/OBJECT/GEOM_DeviceActor.cxx +++ b/src/OBJECT/GEOM_DeviceActor.cxx @@ -38,8 +38,8 @@ GEOM_DeviceActor::GEOM_DeviceActor(): myPolyDataNormals(vtkPolyDataNormals::New(),true), myActor(VTKViewer_Actor::New(),true) { - myStripper->SetInput(myPolyDataNormals->GetOutput()); - myPolyDataMapper->SetInput(myStripper->GetOutput()); + myStripper->SetInputConnection(myPolyDataNormals->GetOutputPort()); + myPolyDataMapper->SetInputConnection(myStripper->GetOutputPort()); myActor->SetMapper(myPolyDataMapper.Get()); myActor->PickableOff(); @@ -51,12 +51,12 @@ GEOM_DeviceActor::~GEOM_DeviceActor() void GEOM_DeviceActor:: -SetInput(vtkPolyData* thePolyData, bool theUseStripper) +SetInput(vtkAlgorithmOutput* thePolyData, bool theUseStripper) { if(theUseStripper) - myPolyDataNormals->SetInput(thePolyData); + myPolyDataNormals->SetInputConnection(thePolyData); else - myPolyDataMapper->SetInput(thePolyData); + myPolyDataMapper->SetInputConnection(thePolyData); } void @@ -72,20 +72,20 @@ GetProperty() { return myActor->GetProperty(); } - -void -GEOM_DeviceActor:: -SetBackfaceProperty(vtkProperty* theProperty) -{ - myActor->SetBackfaceProperty(theProperty); -} - -vtkProperty* -GEOM_DeviceActor:: -GetBackfaceProperty() -{ - return myActor->GetBackfaceProperty(); -} + +void +GEOM_DeviceActor:: +SetBackfaceProperty(vtkProperty* theProperty) +{ + myActor->SetBackfaceProperty(theProperty); +} + +vtkProperty* +GEOM_DeviceActor:: +GetBackfaceProperty() +{ + return myActor->GetBackfaceProperty(); +} void GEOM_DeviceActor:: diff --git a/src/OBJECT/GEOM_DeviceActor.h b/src/OBJECT/GEOM_DeviceActor.h index 67edada94..c7baebeee 100755 --- a/src/OBJECT/GEOM_DeviceActor.h +++ b/src/OBJECT/GEOM_DeviceActor.h @@ -43,6 +43,7 @@ class vtkRenderer; #include +class vtkAlgorithmOutput; class VTK_EXPORT GEOM_DeviceActor: public vtkObject { @@ -52,14 +53,14 @@ public: void SetProperty(vtkProperty* theProperty); vtkProperty* GetProperty(); - - void SetBackfaceProperty(vtkProperty* theProperty); + + void SetBackfaceProperty(vtkProperty* theProperty); vtkProperty* GetBackfaceProperty(); void SetVisibility(int theVisibility); int GetVisibility(); - void SetInput(vtkPolyData* thePolyData, bool theUseStripper); + void SetInput(vtkAlgorithmOutput* thePolyData, bool theUseStripper); void AddToRender(vtkRenderer* theRenderer); void RemoveFromRender(vtkRenderer* theRenderer); diff --git a/src/OBJECT/GEOM_OCCReader.cxx b/src/OBJECT/GEOM_OCCReader.cxx index d9f1331a9..0318da567 100644 --- a/src/OBJECT/GEOM_OCCReader.cxx +++ b/src/OBJECT/GEOM_OCCReader.cxx @@ -33,6 +33,8 @@ #include #include +#include +#include // OpenCASCADE Includes #include @@ -114,14 +116,18 @@ GEOM_OCCReader::~GEOM_OCCReader() //======================================================================= -// Function : Execute +// Function : RequestData // Purpose : //======================================================================= +int GEOM_OCCReader::RequestData(vtkInformation *vtkNotUsed(request), + vtkInformationVector **inputVector, + vtkInformationVector *outputVector) +{ + vtkInformation *outInfo = outputVector->GetInformationObject(0); + vtkPolyData *output = vtkPolyData::SafeDownCast( + outInfo->Get(vtkDataObject::DATA_OBJECT())); -void GEOM_OCCReader::Execute() { - - vtkPolyData* output = this->GetOutput(); vtkPoints* Pts = NULL; vtkCellArray* Cells = NULL; TopLoc_Location aLoc; @@ -143,7 +149,7 @@ void GEOM_OCCReader::Execute() { if(aPoly.IsNull()) { Pts->Delete(); Cells->Delete(); - return; + return 0; } nbpts = aPoly->NbNodes(); @@ -155,7 +161,7 @@ void GEOM_OCCReader::Execute() { else { Cells->Delete(); Pts->Delete(); - return; + return 0; } } @@ -177,7 +183,7 @@ void GEOM_OCCReader::Execute() { } Pts->Delete(); Cells->Delete(); - + return 1; } //======================================================================= diff --git a/src/OBJECT/GEOM_OCCReader.h b/src/OBJECT/GEOM_OCCReader.h index c69b67d35..350bb0113 100644 --- a/src/OBJECT/GEOM_OCCReader.h +++ b/src/OBJECT/GEOM_OCCReader.h @@ -35,7 +35,7 @@ #include "GEOM_OBJECT_defs.hxx" -#include +#include class vtkPoints; class vtkCellArray; @@ -46,7 +46,7 @@ class vtkCellArray; #include #include -class GEOM_OBJECT_EXPORT GEOM_OCCReader : public vtkPolyDataSource { +class GEOM_OBJECT_EXPORT GEOM_OCCReader : public vtkAlgorithm { // methods @@ -67,7 +67,8 @@ class GEOM_OBJECT_EXPORT GEOM_OCCReader : public vtkPolyDataSource { GEOM_OCCReader(); ~GEOM_OCCReader(); - void Execute(); + + virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); void ComputeShading(vtkPoints* Pts,vtkCellArray* Cells); void ComputeWireframe(vtkPoints* Pts,vtkCellArray* Cells); diff --git a/src/OBJECT/GEOM_VTKTrihedron.cxx b/src/OBJECT/GEOM_VTKTrihedron.cxx index 5c5259745..e984c7d54 100644 --- a/src/OBJECT/GEOM_VTKTrihedron.cxx +++ b/src/OBJECT/GEOM_VTKTrihedron.cxx @@ -254,11 +254,11 @@ void GEOM_VTKTrihedron::SetSize( vtkFloatingPointType theSize ) aSrcZ->SetPoint2( aEndZ.X(), aEndZ.Y(), aEndZ.Z() ); vtkAppendPolyData* aRes = vtkAppendPolyData::New(); - aRes->AddInput( aSrcX->GetOutput() ); - aRes->AddInput( aSrcY->GetOutput() ); - aRes->AddInput( aSrcZ->GetOutput() ); + aRes->AddInputConnection( aSrcX->GetOutputPort() ); + aRes->AddInputConnection( aSrcY->GetOutputPort() ); + aRes->AddInputConnection( aSrcZ->GetOutputPort() ); - myMapper->SetInput( aRes->GetOutput() ); + myMapper->SetInputConnection( aRes->GetOutputPort() ); SALOME_Actor::SetMapper( myMapper ); aSrcX->Delete(); diff --git a/src/OCC2VTK/GEOM_EdgeSource.cxx b/src/OCC2VTK/GEOM_EdgeSource.cxx index d7d3a4174..66dafa008 100755 --- a/src/OCC2VTK/GEOM_EdgeSource.cxx +++ b/src/OCC2VTK/GEOM_EdgeSource.cxx @@ -34,6 +34,8 @@ #include #include +#include +#include vtkStandardNewMacro(GEOM_EdgeSource); @@ -53,11 +55,14 @@ void GEOM_EdgeSource::AddEdge (const TopoDS_Edge& theEdge, myIsVector = theIsVector; } -void -GEOM_EdgeSource:: -Execute() +int GEOM_EdgeSource::RequestData(vtkInformation *vtkNotUsed(request), + vtkInformationVector **inputVector, + vtkInformationVector *outputVector) { - vtkPolyData* aPolyData = GetOutput(); + vtkInformation *outInfo = outputVector->GetInformationObject(0); + vtkPolyData *aPolyData = vtkPolyData::SafeDownCast( + outInfo->Get(vtkDataObject::DATA_OBJECT())); + aPolyData->Allocate(); vtkPoints* aPts = vtkPoints::New(); aPolyData->SetPoints(aPts); @@ -71,6 +76,7 @@ Execute() anEdge.Orientation( TopAbs_FORWARD ); OCC2VTK(anEdge,aPolyData,aPts,myIsVector||myIsVectorMode); } + return 1; } void GEOM_EdgeSource::OCC2VTK (const TopoDS_Edge& theEdge, diff --git a/src/OCC2VTK/GEOM_EdgeSource.h b/src/OCC2VTK/GEOM_EdgeSource.h index 282c4c906..89d04f56d 100755 --- a/src/OCC2VTK/GEOM_EdgeSource.h +++ b/src/OCC2VTK/GEOM_EdgeSource.h @@ -28,12 +28,14 @@ typedef NCollection_Set TEdgeSet; #include -#include +#include -class OCC2VTK_EXPORT GEOM_EdgeSource: public vtkPolyDataSource +class vtkPolyData; + +class OCC2VTK_EXPORT GEOM_EdgeSource: public vtkAlgorithm { public: - vtkTypeMacro(GEOM_EdgeSource,vtkPolyDataSource); + vtkTypeMacro(GEOM_EdgeSource,vtkAlgorithm); static GEOM_EdgeSource* New(); void AddEdge (const TopoDS_Edge& theEdge, @@ -59,7 +61,7 @@ protected: // representing a vector, can have only one edge. bool myIsVector, myIsVectorMode; - void Execute(); + virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); GEOM_EdgeSource(); ~GEOM_EdgeSource(); diff --git a/src/OCC2VTK/GEOM_FaceSource.h b/src/OCC2VTK/GEOM_FaceSource.h index 557c0605d..e0226cc94 100755 --- a/src/OCC2VTK/GEOM_FaceSource.h +++ b/src/OCC2VTK/GEOM_FaceSource.h @@ -29,12 +29,14 @@ typedef NCollection_Set TFaceSet; #include -#include +#include -class OCC2VTK_EXPORT GEOM_FaceSource: public vtkPolyDataSource +class vtkPolyData; + +class OCC2VTK_EXPORT GEOM_FaceSource: public vtkAlgorithm { public: - vtkTypeMacro(GEOM_FaceSource,vtkPolyDataSource); + vtkTypeMacro(GEOM_FaceSource,vtkAlgorithm); void AddFace(const TopoDS_Face& theFace); void Clear(){ myFaceSet.Clear();} diff --git a/src/OCC2VTK/GEOM_ShadingFace.cxx b/src/OCC2VTK/GEOM_ShadingFace.cxx index ad2ae5b18..aae437dc8 100755 --- a/src/OCC2VTK/GEOM_ShadingFace.cxx +++ b/src/OCC2VTK/GEOM_ShadingFace.cxx @@ -26,10 +26,12 @@ #include #include +#include +#include #include #include - + vtkStandardNewMacro(GEOM_ShadingFace); @@ -41,11 +43,14 @@ GEOM_ShadingFace::~GEOM_ShadingFace() { } -void -GEOM_ShadingFace:: -Execute() +int GEOM_ShadingFace::RequestData(vtkInformation *vtkNotUsed(request), + vtkInformationVector **inputVector, + vtkInformationVector *outputVector) { - vtkPolyData* aPolyData = GetOutput(); + vtkInformation *outInfo = outputVector->GetInformationObject(0); + vtkPolyData *aPolyData = vtkPolyData::SafeDownCast( + outInfo->Get(vtkDataObject::DATA_OBJECT())); + aPolyData->Allocate(); vtkPoints* aPts = vtkPoints::New(); aPolyData->SetPoints(aPts); @@ -56,6 +61,7 @@ Execute() const TopoDS_Face& aFace = anIter.Value(); OCC2VTK(aFace,aPolyData,aPts); } + return 1; } void diff --git a/src/OCC2VTK/GEOM_ShadingFace.h b/src/OCC2VTK/GEOM_ShadingFace.h index 64ae2d0ba..ee59b530d 100755 --- a/src/OCC2VTK/GEOM_ShadingFace.h +++ b/src/OCC2VTK/GEOM_ShadingFace.h @@ -35,7 +35,7 @@ public: vtkPoints* thePts); protected: - void Execute(); + virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); GEOM_ShadingFace(); ~GEOM_ShadingFace(); diff --git a/src/OCC2VTK/GEOM_VertexSource.cxx b/src/OCC2VTK/GEOM_VertexSource.cxx index daf61b192..4509dc12a 100755 --- a/src/OCC2VTK/GEOM_VertexSource.cxx +++ b/src/OCC2VTK/GEOM_VertexSource.cxx @@ -25,6 +25,8 @@ #include #include #include +#include +#include #include #include @@ -46,11 +48,14 @@ AddVertex(const TopoDS_Vertex& theVertex) myVertexSet.Add(theVertex); } -void -GEOM_VertexSource:: -Execute() +int GEOM_VertexSource::RequestData(vtkInformation *vtkNotUsed(request), + vtkInformationVector **inputVector, + vtkInformationVector *outputVector) { - vtkPolyData* aPolyData = GetOutput(); + vtkInformation *outInfo = outputVector->GetInformationObject(0); + vtkPolyData *aPolyData = vtkPolyData::SafeDownCast( + outInfo->Get(vtkDataObject::DATA_OBJECT())); + aPolyData->Allocate(); vtkPoints* aPts = vtkPoints::New(); aPolyData->SetPoints(aPts); @@ -61,6 +66,7 @@ Execute() const TopoDS_Vertex& aVertex = anIter.Value(); OCC2VTK(aVertex,aPolyData,aPts); } + return 1; } void diff --git a/src/OCC2VTK/GEOM_VertexSource.h b/src/OCC2VTK/GEOM_VertexSource.h index 9241b2d3a..47bf37152 100755 --- a/src/OCC2VTK/GEOM_VertexSource.h +++ b/src/OCC2VTK/GEOM_VertexSource.h @@ -28,12 +28,14 @@ typedef NCollection_Set TVertexSet; #include -#include +#include -class OCC2VTK_EXPORT GEOM_VertexSource: public vtkPolyDataSource +class vtkPolyData; + +class OCC2VTK_EXPORT GEOM_VertexSource: public vtkAlgorithm { public: - vtkTypeMacro(GEOM_VertexSource,vtkPolyDataSource); + vtkTypeMacro(GEOM_VertexSource,vtkAlgorithm); static GEOM_VertexSource* New(); void AddVertex(const TopoDS_Vertex& theVertex); @@ -47,7 +49,8 @@ public: protected: TVertexSet myVertexSet; - void Execute(); + virtual int ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *); + virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); GEOM_VertexSource(); ~GEOM_VertexSource(); diff --git a/src/OCC2VTK/GEOM_WireframeFace.cxx b/src/OCC2VTK/GEOM_WireframeFace.cxx index 49e2911ae..dceab70b5 100755 --- a/src/OCC2VTK/GEOM_WireframeFace.cxx +++ b/src/OCC2VTK/GEOM_WireframeFace.cxx @@ -26,6 +26,8 @@ #include #include +#include +#include #include #include @@ -61,11 +63,14 @@ GEOM_WireframeFace::~GEOM_WireframeFace() { } -void -GEOM_WireframeFace:: -Execute() +int GEOM_WireframeFace::RequestData(vtkInformation *vtkNotUsed(request), + vtkInformationVector **inputVector, + vtkInformationVector *outputVector) { - vtkPolyData* aPolyData = GetOutput(); + vtkInformation *outInfo = outputVector->GetInformationObject(0); + vtkPolyData *aPolyData = vtkPolyData::SafeDownCast( + outInfo->Get(vtkDataObject::DATA_OBJECT())); + aPolyData->Allocate(); vtkPoints* aPts = vtkPoints::New(); aPolyData->SetPoints(aPts); @@ -76,6 +81,7 @@ Execute() const TopoDS_Face& aFace = anIter.Value(); OCC2VTK(aFace,aPolyData,aPts,NbIso,Discret); } + return 1; } void GEOM_WireframeFace::SetNbIso(const int theNb[2]) diff --git a/src/OCC2VTK/GEOM_WireframeFace.h b/src/OCC2VTK/GEOM_WireframeFace.h index bd931a8ed..2b2814329 100755 --- a/src/OCC2VTK/GEOM_WireframeFace.h +++ b/src/OCC2VTK/GEOM_WireframeFace.h @@ -26,7 +26,7 @@ #include #include -#include +class vtkPolyData; class OCC2VTK_EXPORT GEOM_WireframeFace: public GEOM_FaceSource { @@ -85,7 +85,7 @@ protected: vtkPolyData* thePolyData, vtkPoints* thePts); - void Execute(); + virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); GEOM_WireframeFace(); ~GEOM_WireframeFace(); diff --git a/src/VTKExport/VTKExport.cxx b/src/VTKExport/VTKExport.cxx index d7ab92002..8312c2869 100644 --- a/src/VTKExport/VTKExport.cxx +++ b/src/VTKExport/VTKExport.cxx @@ -81,12 +81,12 @@ extern "C" GEOM_ShadingFace* myShadingFaceSource = GEOM_ShadingFace::New(); vtkAppendPolyData* myAppendFilter = vtkAppendPolyData::New(); - myAppendFilter->AddInput( myVertexSource->GetOutput() ); - myAppendFilter->AddInput( myIsolatedEdgeSource->GetOutput() ); - myAppendFilter->AddInput( myOneFaceEdgeSource->GetOutput() ); - myAppendFilter->AddInput( mySharedEdgeSource->GetOutput() ); - //myAppendFilter->AddInput( myWireframeFaceSource->GetOutput() ); // iso-lines are unnecessary - myAppendFilter->AddInput( myShadingFaceSource->GetOutput() ); + myAppendFilter->AddInputConnection( myVertexSource->GetOutputPort() ); + myAppendFilter->AddInputConnection( myIsolatedEdgeSource->GetOutputPort() ); + myAppendFilter->AddInputConnection( myOneFaceEdgeSource->GetOutputPort() ); + myAppendFilter->AddInputConnection( mySharedEdgeSource->GetOutputPort() ); + //myAppendFilter->AddInputConnection( myWireframeFaceSource->GetOutputPort() ); // iso-lines are unnecessary + myAppendFilter->AddInputConnection( myShadingFaceSource->GetOutputPort() ); float aDeflection = 0.001; bool anIsVector = false; @@ -131,7 +131,7 @@ extern "C" Kernel_Utils::Localizer loc; vtkPolyDataWriter* aWriter = vtkPolyDataWriter::New(); - aWriter->SetInput( myAppendFilter->GetOutput() ); + aWriter->SetInputConnection( myAppendFilter->GetOutputPort() ); aWriter->SetFileName( theFileName.ToCString() ); aWriter->Write(); aWriter->Delete();