[vtkusers] Wireframe embed on the Surface
Hamp Donald
hampdonald at yahoo.com
Sun Mar 21 12:30:03 EST 2004
Hi
I want to display the surface plot of a sphere and
I want to embed the wireframe (different color) of the
same sphere on it.
I have used two actors using the same geometry.
Please find my program below. When I am commenting the
line
ren1->AddActor(sphere1);
I am getting the wireframe plot (as it should be). But
it gives the surface plot of the sphere when I
uncommented the line ren1->AddActor(sphere1); During
the surface plot, it uses the wireframe color.
If I display wireframe in a different location, it
gives the surface plot of both the spheres with
different color.
I am doing some mistake. Respond Please.
Best Regards
Subhas
int main(int argc, char *argv[])
{
// The following lines create a sphere represented
by polygons.
//
vtkSphereSource *sphereS = vtkSphereSource::New();
sphereS->SetThetaResolution(10);
sphereS->SetPhiResolution(10);
sphereS->SetRadius(1.0);
// The mapper is responsible for pushing the
geometry into the graphics
// library. It may also do color mapping, if scalars
or other attributes
// are defined.
//
vtkPolyDataMapper *sphereMapper =
vtkPolyDataMapper::New();
sphereMapper->SetInput(sphereS->GetOutput());
//sphereMapper->SetInput(triangularMesh);
// The actor is a grouping mechanism: besides the
geometry (mapper), it
vtkActor *sphere1 = vtkActor::New();
sphere1->SetMapper(sphereMapper);
sphere1->GetProperty()->SetColor(1,1,1);
sphere1->GetProperty()->SetAmbient(1.0);
sphere1->GetProperty()->SetDiffuse(0);
sphere1->GetProperty()->SetSpecular(0);
//sphere->GetProperty()->SetRepresentationToWireframe();
//sphere->GetProperty()->SetLineWidth(1.5);
//sphere->GetProperty()->SetSpecularPower(5.0);
vtkActor *sphere2 = vtkActor::New();
sphere2->SetMapper(sphereMapper);
sphere2->GetProperty()->SetColor(1,0,0);
sphere2->GetProperty()->SetAmbient(1.0);
sphere2->GetProperty()->SetDiffuse(0);
sphere2->GetProperty()->SetSpecular(0);
sphere2->GetProperty()->SetRepresentationToWireframe();
//sphere2->SetPosition(0, 2, 0);
// Create the graphics structure. The renderer
renders into the
// render window. The render window interactor
captures mouse events
// and will perform appropriate camera or actor
manipulation
// depending on the nature of the events.
//
vtkRenderer *ren1 = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(ren1);
vtkRenderWindowInteractor *iren =
vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
// Add the actors to the renderer, set the
background and size.
//
ren1->AddActor(sphere1);
ren1->AddActor(sphere2);
ren1->SetBackground(0.1, 0.2, 0.4);
renWin->SetSize(400, 200);
// Set up the lighting.
//
vtkLight *light = vtkLight::New();
light->SetFocalPoint(1.875,0.6125,0);
light->SetPosition(0.875,1.6125,1);
ren1->AddLight(light);
// We want to eliminate perspective effects on the
apparent lighting.
// Parallel camera projection will be used. To zoom
in parallel projection
// mode, the ParallelScale is set.
//
ren1->GetActiveCamera()->SetFocalPoint(0,0,0);
ren1->GetActiveCamera()->SetPosition(0,0,1);
ren1->GetActiveCamera()->SetViewUp(0,1,0);
ren1->GetActiveCamera()->ParallelProjectionOn();
ren1->ResetCamera();
ren1->GetActiveCamera()->SetParallelScale(1.5);
// This starts the event loop and invokes an initial
render.
//
iren->Initialize();
iren->Start();
// Exiting from here, we have to delete all the
instances that
// have been created.
//
sphere1->Delete();
sphere2->Delete();
sphereMapper->Delete();
//sphere1->Delete();
ren1->Delete();
renWin->Delete();
iren->Delete();
return 0;
}
__________________________________
Do you Yahoo!?
Yahoo! Finance Tax Center - File online. File on time.
http://taxes.yahoo.com/filing.html
More information about the vtkusers
mailing list