[vtkusers] problem with texture mapping
Dominik Szczerba
domi at vision.ee.ethz.ch
Tue Jan 10 05:32:30 EST 2006
dont you have to typecast onto vtkDataSet?
--dsz
Ankur Deshmukh wrote:
> Hey ,
>
> I have a jpg texture and a medical dataset provided by the vtk examples.
> I want to map this texture on to the dataset. Can anyone please help me.
>
> Here is a piece of code I am working with and below it are the erros I
> am getting:
>
> vtkContourFilter *skinExtractor = vtkContourFilter::New();
> skinExtractor->SetInput(imageData);
> skinExtractor->SetValue(0, 500);
> vtkPolyDataNormals *skinNormals = vtkPolyDataNormals::New();
> skinNormals->SetInput(skinExtractor->GetOutput());
> skinNormals->SetFeatureAngle(60.0);
> vtkStripper *skinStripper = vtkStripper::New();
> skinStripper->SetInput(skinNormals->GetOutput());
> vtkPolyDataMapper *skinMapper = vtkPolyDataMapper::New();
> skinMapper->SetInput(skinStripper->GetOutput());
> skinMapper->ScalarVisibilityOff();
> vtkActor *skin = vtkActor::New();
> skin->SetMapper(skinMapper);
> skin->GetProperty()->SetDiffuseColor(1, .49, .25);
> skin->GetProperty()->SetSpecular(.3);
> skin->GetProperty()->SetSpecularPower(20);
> skin->GetProperty()->SetOpacity(1.0);
>
> /// An isosurface, or contour value of 1150 is known to correspond to the/
> /// skin of the patient. Once generated, a vtkPolyDataNormals filter is/
> /// is used to create normals for smooth surface shading during /
> /// rendering./
> /// The triangle stripper is used to create triangle strips from the/
> /// isosurface; these render much faster on may systems./
> vtkContourFilter *boneExtractor = vtkContourFilter::New();
> boneExtractor->SetInput(imageData);
> boneExtractor->SetValue(0, 1150);
> vtkPolyDataNormals *boneNormals = vtkPolyDataNormals::New();
> boneNormals->SetInput(boneExtractor->GetOutput());
> boneNormals->SetFeatureAngle(60.0);
> vtkStripper *boneStripper = vtkStripper::New();
> boneStripper->SetInput(boneNormals->GetOutput());
> vtkPolyDataMapper *boneMapper = vtkPolyDataMapper::New();
> boneMapper->SetInput(boneStripper->GetOutput());
> boneMapper->ScalarVisibilityOff();
> vtkActor *bone = vtkActor::New();
> bone->SetMapper(boneMapper);
> bone->GetProperty()->SetDiffuseColor(1, 1, .9412);
>
> /// An outline provides context around the data./
> ////
> vtkOutlineFilter *outlineData = vtkOutlineFilter::New();
> outlineData->SetInput(imageData);
> vtkPolyDataMapper *mapOutline = vtkPolyDataMapper::New();
> mapOutline->SetInput(outlineData->GetOutput());
> vtkActor *outline = vtkActor::New();
> outline->SetMapper(mapOutline);
> outline->GetProperty()->SetColor(0,0,0);
>
> vtkTextureMapToPlane *texturePlane = vtkTextureMapToPlane::New();
> texturePlane->SetInput(skinNormals->GetOutput());
>
> vtkTransformTextureCoords *transformTexture =
> vtkTransformTextureCoords::New();
> transformTexture->SetInput(texturePlane->GetOutput());
>
> vtkPolyDataMapper *textureDataMapper = vtkPolyDataMapper::New();
> textureDataMapper->SetInput(texturePlane->GetOutput());
>
> vtkImageReader2Factory *createReader = vtkImageReader2Factory::New();
> vtkImageReader2 *textureReader = vtkImageReader2::New();
> textureReader = createReader->CreateImageReader2(argv[4]);
> textureReader->SetFileName(argv[4]);
>
> vtkTexture *texture = vtkTexture::New();
> texture->SetInput(textureReader->GetOutput());
> texture->InterpolateOn();
>
> vtkActor *textureActor = vtkActor::New();
> textureActor->SetMapper(textureDataMapper);
> textureActor->SetTexture(texture);
>
> ERRORS:
>
> rawtoxmlformat.cpp: In function ‘int main(int, char**)’:
> rawtoxmlformat.cpp:142: error: no matching function for call to
> ‘vtkTextureMapToPlane::SetInput(vtkPolyData*)’
> /usr/local/include/vtk/vtkDataSetToDataSetFilter.h:59: note: candidates
> are: void vtkDataSetToDataSetFilter::SetInput(vtkDataSet*)
> rawtoxmlformat.cpp:148: error: no matching function for call to
> ‘vtkPolyDataMapper::SetInput(vtkDataSet*)’
> /usr/local/include/vtk/vtkPolyDataMapper.h:51: note: candidates are:
> void vtkPolyDataMapper::SetInput(vtkPolyData*)
> gmake: *** [rawtoxmlformat.o] Error 1
> *** Exited with status: 2 ***
>
> _______________________________________________
> This is the private VTK discussion list. Please keep messages on-topic.
> Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
--
Dominik Szczerba, Dr.
ETZ C110 CO-ME/BIWI CH-8092 Zurich
http://www.vision.ee.ethz.ch/~domi
More information about the vtkusers
mailing list