Hi, I am Siva and I am working on the Facial Reconstruction. I have written the code for constructing the face from using the marching cube algorithm from the polygonal data set. After constructing the face I have to cut the face exactly into half and remove the other half. I have to produce the reflection of the face what you have now and join the two half to get the newly reconstructed face. My code is here and it just produces the reflection of the whole face and I am not able to produce what I want. If somebody would help me it would be very helpful. vtkRenderer *vtkren=vtkRenderer::New(); vtkRenderWindow *renwin=vtkRenderWindow::New(); renwin->AddRenderer(vtkren); vtkRenderWindowInteractor *iren=vtkRenderWindowInteractor::New(); iren->SetRenderWindow(renwin); //read the volume vtkVolume16Reader *v16=vtkVolume16Reader::New(); v16->SetDataDimensions(64,64); v16->SetFilePrefix("e:/users/siva/siva1/vc++/project/cafs2/data3/vtkdata/headsq/quarter"); v16->SetImageRange(1,93); v16->SetDataSpacing(3.2,3.2,1.5); //extract the skin vtkMarchingCubes *skinExtractor=vtkMarchingCubes::New(); skinExtractor->SetInput(v16->GetOutput()); skinExtractor->SetValue(0,650); vtkPlane *plane=vtkPlane::New(); plane->SetNormal(1,0,0); vtkClipPolyData *skinClipper=vtkClipPolyData::New(); skinClipper->SetInput(skinExtractor->GetOutput()); skinClipper->SetClipFunction(plane); vtkTransform *reflect=vtkTransform::New(); reflect->Scale(-1.0,1.0,1.0); vtkTransformPolyDataFilter *skinReflect=vtkTransformPolyDataFilter::New(); skinReflect->SetTransform(reflect); skinReflect->SetInput(skinClipper->GetOutput()); vtkPolyDataNormals *skinNormals=vtkPolyDataNormals::New(); skinNormals->SetInput(skinReflect->GetOutput()); skinNormals->FlipNormalsOn(); vtkPolyDataMapper *skinMapper=vtkPolyDataMapper::New(); skinMapper->SetInput(skinNormals->GetOutput()); skinMapper->ScalarVisibilityOff(); vtkActor *skin=vtkActor::New(); skin->SetMapper(skinMapper); skin->GetProperty()->SetDiffuseColor(0.9,0.49,0.25); //get an outline vtkOutlineFilter *outlineData=vtkOutlineFilter::New(); outlineData->SetInput(v16->GetOutput()); vtkPolyDataMapper *mapOutline=vtkPolyDataMapper::New(); mapOutline->SetInput(outlineData->GetOutput()); vtkActor *outline=vtkActor::New(); outline->SetMapper(mapOutline); outline->GetProperty()->SetColor(0,0,0); //create a camera with the correct view up vtkCamera *aCamera=vtkCamera::New(); aCamera->SetViewUp(0,0,-1); aCamera->SetPosition(0,1,0); aCamera->SetFocalPoint(0,0,0); aCamera->ComputeViewPlaneNormal(); //tell the renderer out camera and actors //vtkren->AddActor(outline); vtkren->AddActor(skin); vtkren->SetActiveCamera(aCamera); vtkren->ResetCamera(); vtkren->SetBackground(1,1,1); //interact with data renwin->Render(); iren->Start(); //Delete to free memory v16->Delete(); skinExtractor->Delete(); skinMapper->Delete(); outlineData->Delete(); mapOutline->Delete(); skin->Delete(); aCamera->Delete(); vtkren->Delete(); iren->Delete(); renwin->Delete(); Graduate Research Assistant #310,300 South Cooper Street Arlington TX 76013. Ph- 817-860-2638 (Home) 817-272-5719 (Office) Find the best deals on the web at AltaVista Shopping! http://www.shopping.altavista.com