<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
Well, I´m posting my source code here, maybe anyone finds the problem:<br><br>vtkHorizontalAverage.h:<br>#ifndef __vtkHorizontalAverage_h<br>#define __vtkHorizontalAverage_h<br><br>#include "vtkStructuredGridToStructuredGridFilter.h"<br><br>class VTK_EXPORT vtkHorizontalAverage: public vtkStructuredGridToStructuredGridFilter<br>{<br>public: <br> static vtkHorizontalAverage *New(){return new vtkHorizontalAverage;}<br> vtkTypeMacro(vtkHorizontalAverage,vtkStructuredGridToStructuredGridFilter);<br> vtkSetMacro(Normalize,int);<br> vtkGetMacro(Normalize,int);<br> vtkBooleanMacro(Normalize, int);<br><br>protected: vtkHorizontalAverage();<br> ~vtkHorizontalAverage(){};<br> <br> int Normalize;<br><br> virtual void Execute();<br>};<br>#endif<br><br><br>vtkHorizontalAverage.cxx:<br>#include "vtkHorizontalAverage.h"<br>#include "vtkStructuredGrid.h"<br>#include "vtkPointData.h"<br>#include "vtkObjectFactory.h"<br><br>vtkHorizontalAverage::vtkHorizontalAverage()<br>{<br> this->Normalize = 0;<br>}<br><br>void vtkHorizontalAverage::Execute()<br>{vtkStructuredGrid *input = this->GetInput(); //"this" bezieht sich auf den Filter, auf ein vtkHorizontalAverage - Objekt, das die Methoden von vtkStructuredGridToStructuredGrid geerbt hat<br> vtkStructuredGrid *output = this->GetOutput();<br><br> vtkPointData *iPtr = input->GetPointData();<br> vtkPointData *oPtr = output->GetPointData();<br><br> double *inPtr = input->GetPoint(0);<br> double *outPtr = output->GetPoint(0);<br><br> int i,j,k,dims[3]; <br> input->GetDimensions(dims);<br><br> double *horizontal = new double[dims[0]];<br> double *horizontal_sigma = new double[dims[0]];<br> int index;<br> // compute the horizontal average<br> for (i=0; i<dims[0]; i++) { <br> horizontal[i] = 0.0;<br> for (j=0; j<dims[1]; j++) {<br> for (k=0; k<dims[2]; k++) {<br> index = k*(dims[1]*dims[0]) + j*dims[0] + i;<br> horizontal[i] += inPtr[index];<br> }<br> }<br> horizontal[i] = horizontal[i]/(dims[1]*dims[2]);<br> }<br><br> //subtract horizontal average<br> for (i=0; i<dims[0]; i++) { <br> for (j=0; j<dims[1]; j++) {<br> for (k=0; k<dims[2]; k++) {<br> index = k*(dims[1]*dims[0]) + j*dims[0] + i;<br> outPtr[index] = inPtr[index] - horizontal[i];<br> }<br> }<br> }<br><br> if (this->GetNormalize()) {<br> // compute sigma<br> for (i=0; i<dims[0]; i++) { <br> horizontal_sigma[i] = 0.0;<br> for (j=0; j<dims[1]; j++) {<br> for (k=0; k<dims[2]; k++) {<br> index = k*(dims[1]*dims[0]) + j*dims[0] + i;<br> horizontal_sigma[i] += (inPtr[index])*(inPtr[index]);<br> }<br> }<br> horizontal_sigma[i] /= (dims[1]*dims[2]-1);<br> horizontal_sigma[i] = sqrt(horizontal_sigma[i]); <br> }<br> <br> // now normalize<br> for (i=0; i<dims[0]; i++) { <br> for (j=0; j<dims[1]; j++) {<br> for (k=0; k<dims[2]; k++) {<br> index = k*(dims[1]*dims[0]) + j*dims[0] + i;<br> outPtr[index] /= horizontal_sigma[i];<br> }<br> }<br> }<br> }<br><br> delete [] horizontal;<br> delete [] horizontal_sigma;<br> iPtr->Delete();<br> oPtr->Delete();<br> delete [] inPtr;<br> delete [] outPtr;<br>}<br><br>I´m getting rather desperate..<br>thx,<br>NH<br><br /><hr />Express yourself instantly with MSN Messenger! <a href='http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/' target='_new'>MSN Messenger</a></body>
</html>