Hi Utkarsh, Yes that works but I actually want to do more complicated things than just plot the data values, so first am doing something simple to make sure I have the plotting setup for the filter correct.
Cheers, Christine On Mon, Oct 5, 2009 at 9:34 PM, Utkarsh Ayachit <[email protected]> wrote: > Since you simply want to plot the data_values from your rectilinear > grid, try applying the "Plot Data" filter instead. Does that work? > > Utkarsh > > On Mon, Oct 5, 2009 at 3:30 PM, Christine Corbett Moran > <[email protected]> wrote: >> Hi, >> >> I want to begin adding some non-trivial 2d plotting capabilities to my >> ParaView plugin; in that interest I've implemented a filter which is >> derived from vtkRectilinearGridAlgorithm. For now, I am trying only a >> simple example, where my X coordinates are the particle ids, my Y and >> Z coordinates are dummy arrays with one element, and my data is the id >> to the power 2. When I act my filter, the XY plot view and a new 3D >> view appear. However the XY plot is empty, as is the 3D view. I can >> get something to appear in the 3D view by adding a glyph to the >> pipeline (and the result makes sense), but nothing I do seems to get >> it the XY plot view to actually plot. >> >> I have included the RequestData portion of my filter at the end of the >> message as well as the information tab of the object inspector of the >> filter. Everything looks normal to me (except I am not sure why the >> number of cells is less than the number of points?). Can anyone see >> the problem? Is there something more I need to do? I've already done a >> lot of searching of the archives, playing around with the parameters, >> and reading the vtk documentation but haven't found the bug or the >> missing call. >> >> The information tab of the object inspector displays: >> Type: Rectilinear Grid >> Number of Cells: 1000 >> Number of Points: 1001 >> Data Arrays: >> Name | Data Type | Data Ranges >> data values | int | [0,1e+06] >> Extents >> X Extent: 0 to 1000 (dimension: 1001) >> Y Extent: 0 to 0 (dimension: 1) >> Z Extent: 0 to 0 (dimension: 1) >> Bounds >> X range: 0 to 1e+03 >> Y range: 0 to 0 >> Z range 0 to 0 >> >> And my request data method is: >> //---------------------------------------------------------------------------- >> int vtkMassFunctionFilter::RequestData(vtkInformation*, >> vtkInformationVector** inputVector, >> vtkInformationVector* outputVector) >> { >> // Get input and output data. >> vtkPointSet* input = vtkPointSet::GetData(inputVector[0]); >> vtkRectilinearGrid* output = vtkRectilinearGrid::GetData(outputVector); >> // Setting the dimensions of this to be equal to our number of points, >> // in X, and equal to 1 in the Y and Z directions, >> // as these are dummy arrays. >> output->SetDimensions(input->GetPoints()->GetNumberOfPoints(),1,1); >> output->SetWholeExtent(0,input->GetPoints()->GetNumberOfPoints(),\ >> 0,0,\ >> 0,0); >> // Allocate the arrays for the X,Y, and Z coordinates, and inserts a >> // single value for the dummy arrays, as well as allocate the array >> // for the scalar data >> vtkSmartPointer<vtkDoubleArray> >> XArray=vtkSmartPointer<vtkDoubleArray>::New(); >> XArray->SetNumberOfComponents(1); >> XArray->SetNumberOfTuples(input->GetPoints()->GetNumberOfPoints()); >> vtkSmartPointer<vtkDoubleArray> >> DummyYArray=vtkSmartPointer<vtkDoubleArray>::New(); >> DummyYArray->SetNumberOfComponents(1); >> DummyYArray->SetNumberOfTuples(1); >> DummyYArray->InsertValue(0,0); >> vtkSmartPointer<vtkDoubleArray> >> DummyZArray=vtkSmartPointer<vtkDoubleArray>::New(); >> DummyZArray->SetNumberOfComponents(1); >> DummyZArray->SetNumberOfTuples(1); >> DummyZArray->InsertValue(0,0); >> vtkSmartPointer<vtkIntArray> dataValues=vtkSmartPointer<vtkIntArray>::New(); >> dataValues->SetNumberOfComponents(1); >> dataValues->SetNumberOfTuples(input->GetPoints()->GetNumberOfPoints()); >> dataValues->SetName("data values"); >> for(int nextPointId = 0;\ >> nextPointId < input->GetPoints()->GetNumberOfPoints();\ >> ++nextPointId) >> { >> XArray->InsertValue(nextPointId,nextPointId); >> dataValues->InsertValue(nextPointId,pow(nextPointId,2)); >> } >> // Updating the output >> output->SetXCoordinates(XArray); >> output->SetYCoordinates(DummyYArray); >> output->SetZCoordinates(DummyZArray); >> output->GetPointData()->SetScalars(dataValues); >> return 1; >> } >> _______________________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Please keep messages on-topic and check the ParaView Wiki at: >> http://paraview.org/Wiki/ParaView >> >> Follow this link to subscribe/unsubscribe: >> http://www.paraview.org/mailman/listinfo/paraview >> > _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
