PDA

View Full Version : How to show different objects on different windows from the same scene


Joran
08-25-2006, 01:41 AM
Hello,

I have two windows. On on each window I want to show different objects on the viz.SCREEN, but the rest of the scene must be the same. What is the best way to do that?

Greetings, Joran.

farshizzo
08-25-2006, 09:19 AM
There are two ways to go about this.

1) Each window has its own orthographic HUD. The window HUD is slightly different than the SCREEN because the coordinates are in actual pixel units, not normalized 0 to 1. Here is a sample script that adds a different text object to each windows HUD:import viz
viz.go()

#Set main window size to half
viz.MainWindow.setSize(0.5,1)

#Add a new window to other half
window = viz.addWindow()
window.setPosition(0.5,1)
window.setSize(0.5,1)

#Add a model
viz.add('gallery.ive')

#Add text to the main windows orthographic HUD
text1 = viz.add(viz.TEXT3D,'Text 1',parent=viz.ORTHO,scene=viz.MainWindow)
text1.fontSize(36)

#Add text to the second windows orthographic HUD
text2 = viz.add(viz.TEXT3D,'Text 2',parent=viz.ORTHO,scene=window)
text2.fontSize(36)

2) Use 2 different scenes that share the same data. Example:import viz
viz.go()

#Set main window size to half
viz.MainWindow.setSize(0.5,1)

#Add a new window to other half
window = viz.addWindow()
window.setPosition(0.5,1)
window.setSize(0.5,1)
view = viz.addView()
view.scene(2)
window.viewpoint(view)

#Add the root of your entire scene
root = viz.add(viz.GROUP)

#Duplicate this root onto scene 2
root.duplicate(scene=2)

#Add all subsequent world objects to this root
gallery = root.add('gallery.ive')

#Add text to scene 1 screen
text1 = viz.add(viz.TEXT3D,'Text 1',parent=viz.SCREEN,scene=1)

#Add text to scene 2 screen
text2 = viz.add(viz.TEXT3D,'Text 2',parent=viz.SCREEN,scene=2)

deborah
07-09-2014, 06:19 PM
Hi farshizzo,

I was able to copy your code to produce two different scenes that share the data, but cannot not use viz.add for anything other than text. For example, if I try:

#Add ball to scene 2 screen
ball = viz.add('white_ball.wrl',parent=viz.SCREEN,scene=2 )

the ball does not appear in the window. How can I add different types of nodes?

Jeff
07-14-2014, 03:07 PM
Try scaling the ball by a large value such as 1000. You can also add it to the ortho layer:

ball = viz.add('white_ball.wrl',parent=viz.ORTHO, scene=2)
ball.setPosition([300,300,1])
ball.setScale([100]*3)