[vtkusers] problem while executing a pipeline
thomas
thomas at cs.uno.edu
Tue May 20 17:38:51 EDT 2003
I have a big problem while executing a vtk pipieline... I have done my own class and i try to execute it. The problem is that before the Write i have the correct number of points in the output but after i have no more points and no image. i don't understand why there is an error.... I have done some tests that let's me think that the error come from the fact i am using the output....
If you want more precisions don't hesitate, contact me. Below are my files
vtkImageInterpolate.h
#ifndef __VTK_IMAGE_INTERPOLATE_H
#define __VTK_IMAGE_INTERPOLATE_H
#include "vtkPointSet.h"
#include "vtkImageSource.h"
class VTK_EXPORT vtkImageInterpolate : public vtkImageSource {
public:
static vtkImageInterpolate *New();
vtkTypeMacro(vtkImageInterpolate, vtkImageSource);
void PrintSelf(ostream& os, vtkIndent indent);
vtkSetMacro(NumberOfXPoints,int);
vtkGetMacro(NumberOfXPoints,int);
vtkSetMacro(NumberOfYPoints,int);
vtkGetMacro(NumberOfYPoints,int);
vtkSetMacro(DeltaX,int);
vtkGetMacro(DeltaX,int);
vtkSetMacro(DeltaY,int);
vtkGetMacro(DeltaY,int);
vtkSetMacro(OriginX,float);
vtkGetMacro(OriginX,float);
vtkSetMacro(OriginY,float);
vtkGetMacro(OriginY,float);
void SetInput(vtkPointSet *in);
vtkPointSet *GetInput();
void Execute();
protected:
vtkImageInterpolate();
virtual ~vtkImageInterpolate();
int NumberOfXPoints;
int NumberOfYPoints;
int DeltaX;
int DeltaY;
float OriginX;
float OriginY;
private:
vtkImageInterpolate(const vtkImageInterpolate&);
operator=(const vtkImageInterpolate &);
};
#endif
end of
void vtkImageInterpolate::Execute() {
this->GetOutput()->SetDimensions(this->NumberOfXPoints - 2, this->NumberOfYPoints - 2, 1);
this->GetOutput()->SetOrigin(pt[1][1].xp, pt[1][1].yp, 0);
this->GetOutput()->SetSpacing(this->DeltaX, this->DeltaY, 0);
this->GetOutput()->SetScalarTypeToUnsignedChar();
for (i = 1; i <= this->NumberOfXPoints - 2; i++) {
for (j = 1; j <= this->NumberOfYPoints - 2; j++) {
unsigned char* pixel = (unsigned char*) this->GetOutput()->GetScalarPointer(i-1,j-1,0);
*pixel = (unsigned char) pt[i][j].zp;
}
}
}
and here is my tcl script
package require vtklocal
proc read_xyz {data filename delim} {
vtkPoints points
set FILE [open $filename "r"]
while {![eof $FILE]} {
gets $FILE line
set toks [split $line $delim]
#puts $toks
if {[llength $toks] >= 3} {
#puts $toks
points InsertNextPoint [lindex $toks 0] [lindex $toks 1] [lindex $toks 2]
}
}
$data SetPoints points
}
puts "is anyone out there?"
vtkPolyData d
read_xyz d "C:/Documents and Settings/thomas/My Documents/thomas/tfe/points.csv" ","
puts [d GetNumberOfPoints]
d Print
vtkImageInterpolate interper
interper SetNumberOfXPoints 1000
interper SetNumberOfYPoints 1000
interper SetOriginX 3703530
interper SetOriginY 486907
interper SetDeltaX 3140
interper SetDeltaY 4259
interper SetInput d
interper Execute
[interper GetOutput] Print
vtkTIFFWriter w
w SetInput [interper GetOutput]
w SetFileName "plaq.tiff"
puts [[interper GetOutput] GetNumberOfPoints]
w Write
puts [[interper GetOutput] GetNumberOfPoints]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20030520/d10bc5f8/attachment.htm>
More information about the vtkusers
mailing list