[vtkusers] Looping help for iterations????Anyone

Lisa S. Avila lisa.avila at kitware.com
Tue Apr 10 16:42:14 EDT 2001


Hello Shiva,

Are you adding your actors to the renderer inside your loop? You need to do 
this in order to add all the actors.

Lisa


At 02:48 PM 4/10/2001, Shiva Bissoon wrote:
>Hi all,
>I have run into a problem with iterating and I was hoping someone would 
>help me debug my program.
>This program creates a simple cube with some particles in it.It is tedious 
>and time consuming if I want to add 100 particles to place 100 actors,so, 
>I tried having a loop so that I can loop through and add the actors but it 
>doesn't seem to work.
>I have shown how three particles would be added...using 
>addactor2..addactor3..etc.
>if someone can assist me I would be most grateful.
>
>Shiva
>
>
>#created on April 10th 2001, by Shiva Bissoon
>#try and create an iteration for the particles.
>
>
>catch {load vtktcl}
>
>source vtkInt.tcl
>source colors.tcl
>
>#create a window and renderer
>vtkRenderer ren1
>vtkRenderWindow renWin
>    renWin AddRenderer ren1
>vtkRenderWindowInteractor iren
>    iren SetRenderWindow renWin
>
>#to add a simple cube first
>                 #create a cube
>                         vtkCubeSource cuber
>                         cuber SetXLength 3
>                         cuber SetYLength 3
>                         cuber SetZLength 3
>
>                 #create the mapper
>                         vtkPolyDataMapper mapper
>                         mapper SetInput [cuber GetOutput]
>
>                 #create the actor
>                         vtkActor cube
>                         cube SetMapper mapper
>                         #[cube GetProperty] SetColor 0.8900 0.0900 0.0500
>                         [cube GetProperty] SetOpacity 0.3
>
>
>#creates some particles
>
>                 #define a Quadric definition
>                         vtkQuadric quadric
>                         quadric SetCoefficients .5 1 .2 0 .1 0 0 .2 0 0
>
>                 #define a sample function
>                         vtkSampleFunction sample
>                         sample SetSampleDimensions 50 50 50
>                         sample SetImplicitFunction quadric
>                         #sample SetModelBounds 0 1 0 1 2 0
>                         sample Update
>                         sample Print
>
>                 #Create one elliptical surface F(x,y,z) = constant 
> between range specified
>                         vtkContourFilter contours
>                         contours SetInput [sample GetOutput]
>                         #contours GenerateValues 1 1.2 1.2
>
>                 #create the mapper
>                         vtkPolyDataMapper contMapper
>                         contMapper SetInput [contours GetOutput]
>                         contMapper ScalarVisibilityOff
>
>                         #vtkLODActor contourActor1
>                         #contourActor1 SetMapper contMapper
>                         #[contourActor1 GetProperty] SetColor 1.0000 
> 0.5490 0.0000
>                         #contMapper SetScalarRange 0.0 1.2
>
>         ##create the actor--add iteration here!!!
>
>#here is the test iteration
>                 vtkMath math
>
>                 for {set i 1} {$i < 4} {incr i} {
>
>                    set $x [math Random -2 2]
>                    set $y [math Random -1 1]
>                    set $z [math Random -1 1]
>
>                         vtkActor contActor$i
>                         contActor$i SetMapper contMapper
>                         contActor$i SetOrigin 1 10 0
>                         contActor$i SetPosition $x $y $z
>                         #contActor SetPosition 0.3 .5  .5
>                         [contActor GetProperty] SetColor 1 0 0
>                         # contActor RotateX 10
>                 }
>#it doesn't work.
>
>                 #add another actor
>                         vtkActor contActor2
>                         contActor2 SetMapper contMapper
>                         contActor2 SetOrigin 1 10 0
>                         contActor2 SetPosition 0 .2  -.5
>                         [contActor2 GetProperty] SetColor 0.2510 0.8784 
> 0.8157
>                         #turquoise
>                         contActor RotateX 2
>                         contActor RotateY 5
>
>                 #add a third actor
>                         vtkActor contActor3
>                         contActor3 SetMapper contMapper
>                         contActor3 SetOrigin 1 10 0
>                         contActor3 SetPosition -.2 .25  .1
>                         [contActor3 GetProperty] SetColor 1 0 1
>                         contActor RotateY 1
>
>
>
>
># add the actors and backgrd
>
>  renWin SetSize 500 500
>  #ren1 SetBackground 1.0000 0.8941 0.7098
>  ren1 SetBackground 1 1 1
>  ren1 AddActor contActor$i
>  #ren1 AddActor outlineActor
>  ren1 AddActor contActor2
>  ren1 AddActor contActor3
>
>
>
>#add the actor to the render window
>ren1 AddActor cube
>
>[ren1 GetActiveCamera] Azimuth 20
>[ren1 GetActiveCamera] Elevation 10
>[ren1 GetActiveCamera] Dolly 1.1
>ren1 ResetCameraClippingRange
>
>
># enable user interface interactor
>iren SetUserMethod {wm deiconify .vtkInteract}
>iren Initialize
>renWin Render
>
>
>ren1 SetBackground 1.0000 0.9804 0.9804
>renWin SetSize 300 300
>
># prevent the tk window from showing up then start the event loop
>wm withdraw .
>
>
>
>_________________________________________________________________________
>Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
>
>
>_______________________________________________
>This is the private VTK discussion list. Please keep messages on-topic. 
>Check the FAQ at: <http://public.kitware.com/cgi-bin/vtkfaq>
>Follow this link to subscribe/unsubscribe:
>http://public.kitware.com/mailman/listinfo/vtkusers





More information about the vtkusers mailing list