package require vtk package require vtkinteraction package require vtktesting # Create the RenderWindow, Renderer and both Actors # vtkRenderer ren1 vtkRenderWindow renWin renWin AddRenderer ren1 vtkRenderWindowInteractor iren iren SetRenderWindow renWin vtkTriangularTexture aTriangularTexture aTriangularTexture SetTexturePattern 2 aTriangularTexture SetScaleFactor 1.3 aTriangularTexture SetXSize 64 aTriangularTexture SetYSize 64 vtkSphereSource aSphere aSphere SetThetaResolution 20 aSphere SetPhiResolution 20 vtkTriangularTCoords tCoords tCoords SetInputConnection [aSphere GetOutputPort] vtkPolyDataMapper triangleMapper triangleMapper SetInputConnection [tCoords GetOutputPort] vtkTexture aTexture aTexture SetInputConnection [aTriangularTexture GetOutputPort] aTexture InterpolateOn vtkActor texturedActor texturedActor SetMapper triangleMapper texturedActor SetTexture aTexture [texturedActor GetProperty] BackfaceCullingOn eval [texturedActor GetProperty] SetDiffuseColor $banana eval [texturedActor GetProperty] SetSpecular .4 eval [texturedActor GetProperty] SetSpecularPower 40 vtkCubeSource aCube aCube SetXLength .5 aCube SetYLength .5 vtkPolyDataMapper aCubeMapper aCubeMapper SetInputConnection [aCube GetOutputPort] vtkActor cubeActor cubeActor SetMapper aCubeMapper eval [cubeActor GetProperty] SetDiffuseColor $tomato eval ren1 SetBackground $slate_grey ren1 AddActor cubeActor ren1 AddActor texturedActor ren1 ResetCamera [ren1 GetActiveCamera] Zoom 1.5 # render the image # iren AddObserver UserEvent {wm deiconify .vtkInteract} iren Initialize # prevent the tk window from showing up then start the event loop wm withdraw .