[Paraview] problem configuring the output of a filter
Natalie Happenhofer
nataliehapp at hotmail.com
Fri Sep 19 12:37:44 EDT 2008
OK, as far as I understand the problem is that my inPtr and outPtr -arrays are on the stack and I nead it on the heap.
ahm.. how do I malloc or new the memory in this case? I thought that my call to SetArray does automatically allocate the necessary memory for my new_scalars array..
thx,
NH
> Date: Fri, 19 Sep 2008 08:59:19 -0400
> From: burlen.loring at kitware.com
> To: nataliehapp at hotmail.com
> CC: paraview at paraview.org
> Subject: Re: [Paraview] problem configuring the output of a filter
>
> Natalie Happenhofer wrote:
> > Hi!
> > I have problems configuring the output of my filter, the filter is a
> > subclass of vtkDataSetToStructuredGrid and setting the output looks as
> > following:
> >
> > //setting the new point data
> > vtkSmartPointer<vtkFloatArray> new_scalars =
> > vtkSmartPointer<vtkFloatArray>::New();
> >
> > double inPtr[numOfTuples + 1]; //pointer for casting the values
> > actually to double, so I can perform arithmetic operations with them
> > float outPtr[numOfTuples + 1];
> > //calculating ..
> >
> > new_scalars -> SetArray(outPtr,numOfTuples,1);
>
> You are passing a stack based array here, when your function returns
> inPtr and outPtr no longer are valid. If you are going to use SetArray
> you'll have to malloc or new the memory you need.
>
> >
> >
> >
> > output -> SetDimensions(dims);
> > output -> SetPoints(pts); //Now the points are set
> > output -> GetPointData() -> SetScalars(new_scalars);
> > output -> Squeeze();
> >
> >
> > dims are the dimensions of the input, which is a RectilinearGrid or a
> > StructuredGrid, new_scalars is a vtkFloatArray. I believe that the
> > "output->GetPointData() ->SetScalars(new_scalars)"-line is causing the
> > problem, because I get the following error messages:
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > vtkFieldData::GetActualMemorySize
> > at C:/ParaviewSource/ParaView3/VTK/Filtering/vtkFieldData.cxx:577
> > size +=this->Data[i]->GetActualMemorySize();
> >
> > Backtracing, functions in vtkPVDataInformation and vtkSelfConnections
> > are called,
> > so I guess, this does not actually happen in my source code but in the
> > rendering pipeline. As I did not change anything in the rendering
> > pipeline, there must be an allocation or a call in my code with
> > incorrect arguments, but I do not really know where to look for the
> > error.
> > Does anyone have an idea?
> >
> > Thx,
> > NH
> >
> >
> > ------------------------------------------------------------------------
> > Express yourself instantly with MSN Messenger! MSN Messenger
> > <http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/>
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > ParaView mailing list
> > ParaView at paraview.org
> > http://www.paraview.org/mailman/listinfo/paraview
> >
>
>
> --
> Burlen Loring
> Kitware, Inc.
> R&D Engineer
> 28 Corporate Drive
> Clifton Park, NY 12065-8662
> Phone: 518-371-3971 x137
>
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20080919/5d329772/attachment.htm>
More information about the ParaView
mailing list