what line of code is the access violation occurring at?


 _________________________________________________
| Mike Jackson - Principal Software Engineer      |
| BlueQuartz Software                             |
| [EMAIL PROTECTED]                     |
| www.bluequartz.net                              |
---------------------------------------------------

On Sep 16, 2008, at 1:08 PM, Natalie Happenhofer wrote:

Hi!
I´m still encountering problems with my filter, it does compile and link neatly with paraview, but at runtime an error occurs which causes paraview to shut down. I´m pretty sure that the problem is how I define the output, that this is not done correctly. Lastly, I commented just the algorithm out to test the in- and output, and it looks like this:

void vtkHorizontalAverage::Execute()
{vtkDataSet *input = this -> GetInput();
 vtkStructuredGrid *output = this -> GetOutput();

 int DataSetType;
 DataSetType = input -> GetDataObjectType();

if(DataSetType != VTK_RECTILINEAR_GRID) { vtkErrorMacro("unsupported DataSet format");}



 int dims[3],i,j,k;
 // pointer for casting
vtkSmartPointer<vtkRectilinearGrid> rect_input = vtkSmartPointer<vtkRectilinearGrid>::New();
 //vtkStructuredGrid *structgrid_input = vtkStructuredGrid::New();


 vtkPointData *scaldat = input -> GetPointData();
 vtkDataArray *new_scaldat;

vtkSmartPointer<vtkFloatArray> scalars = vtkSmartPointer<vtkFloatArray>::New(); vtkSmartPointer<vtkFloatArray> new_scalars = vtkSmartPointer<vtkFloatArray>::New();

scalars = vtkFloatArray::SafeDownCast(scaldat); //this is now the input as vtkFloatArray
 scaldat -> Delete();
 int numbOfComp = scalars -> GetNumberOfComponents();
if(numbOfComp ==1) vtkErrorMacro("Number of Components of Input Array bigger than 1!"); //!!!!
 int numOfTuples = scalars -> GetNumberOfTuples();


 new_scalars -> SetNumberOfComponents(1);
 new_scalars -> SetNumberOfTuples(numOfTuples);


 rect_input = vtkRectilinearGrid::SafeDownCast(input);

if(!rect_input) {vtkErrorMacro("SafeDownCast to Rectilinear Grid failed");}

else {  rect_input -> GetDimensions(dims);

   //get the points:
   /*vtkDataArray *XCoord = vtkDataArray::New();
   vtkDataArray *YCoord = vtkDataArray::New();
   vtkDataArray *ZCoord = vtkDataArray::New();*/

   vtkDataArray *XCoord = rect_input -> GetXCoordinates();
   vtkDataArray *YCoord = rect_input -> GetYCoordinates();
   vtkDataArray *ZCoord = rect_input -> GetZCoordinates();

output -> SetDimensions(dims);
vtkSmartPointer<vtkPoints> pts = vtkSmartPointer<vtkPoints>::New();
    pts -> SetNumberOfPoints(numOfTuples);


    for(int i=0;i<=dims[2];i++)
    { for(int j=0;j<=dims[1];j++)
        {for(int k=0;k<=dims[0];k++)
{pts -> InsertNextPoint(XCoord -> GetTuple1(k),YCoord -> GetTuple1(j), ZCoord -> GetTuple1(i));
            }//for (int k
        }//for(int j
    }//for (int i

    XCoord -> Delete();
    YCoord -> Delete();
    ZCoord -> Delete();

    output -> SetPoints(pts); //Now the points are set
//output -> GetPointData()-> CopyAllocate(new_scalars, 0,new_scalars -> GetNumberOfTuples());
    output -> GetPointData() -> PassData(input -> GetPointData());
    new_scalars -> Delete();


Here I get as an input a data set, cast it down to rectilinear grid and compute the points for the structured grid. As I said, Paraview shuts down (Access violation my debugger says) when I execute it.

Any help would be appreciated!
thx,
NH

Express yourself instantly with MSN Messenger! MSN Messenger _______________________________________________
ParaView mailing list
[email protected]
http://www.paraview.org/mailman/listinfo/paraview

_______________________________________________
ParaView mailing list
[email protected]
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to