WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   getVisible unexpected behaviour (https://forum.worldviz.com/showthread.php?t=4013)

sleiN13 11-30-2011 07:48 AM

getVisible unexpected behaviour
 
I wanted to use the visibility of a object to execute (or not) certain code in a vizAction to my surprise all object returned getVisible() is True while I knew that the certain parent object where invisible. A simple test confirmed that child object don't return the correct visibility value

Code:

groupA = viz.addGroup()
groupB = viz.addGroup(parent = groupA)

groupA.visible(viz.OFF)
print groupB.getVisible()

>>> True

Is this a bug or by design and in case of the second reason is there a function that will give the result I need?

farshizzo 12-13-2011 12:17 PM

This is by design. The node.getVisible() command returns the visible flag of the node. It does not take into account the visible flag of any parents.

You can use the node.getParents() command to determine the visibility state taking into account all parent nodes. Example:
Code:

import viz
import vizact
viz.go()

group1 = viz.addGroup()
group2 = viz.addGroup(parent=group1)
ball = viz.addChild('beachball.osgb',parent=group2,pos=(0,1.8,2))

label = viz.addText('',parent=viz.ORTHO,fontSize=50,pos=(10,10,0))

def isNodeActuallyVisible(node):
        if not node.getVisible():
                return False
        parents = node.getParents()
        if parents:
                return any(isNodeActuallyVisible(p) for p in parents)
        return True

def UpdateLabel():
        if isNodeActuallyVisible(ball):
                label.message('visible')
        else:
                label.message('not visible')
vizact.ontimer(0,UpdateLabel)

vizact.onkeydown('1',group1.visible,viz.TOGGLE)
vizact.onkeydown('2',group2.visible,viz.TOGGLE)
vizact.onkeydown('3',ball.visible,viz.TOGGLE)



All times are GMT -7. The time now is 08:05 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC