/** * <code>updateGeometricState</code> updates all the geometry information for the node. * * @param time * The time in seconds between the last two consecutive frames (time per frame). See * {@link ReadOnlyTimer#getTimePerFrame()} * @param initiator * true if this node started the update process. */ public void updateGeometricState(final double time, final boolean initiator) { updateControllers(time); if (_dirtyMark.isEmpty()) { updateChildren(time); } else { if (isDirty(DirtyType.Transform)) { updateWorldTransform(false); } if (isDirty(DirtyType.RenderState)) { updateWorldRenderStates(false); clearDirty(DirtyType.RenderState); } updateChildren(time); if (isDirty(DirtyType.Bounding)) { updateWorldBound(false); if (initiator) { propagateBoundToRoot(); } } } }
/** * <code>updateGeometricState</code> updates all the geometry information for the node. * * @param time * The time in seconds between the last two consecutive frames (time per frame). See * {@link ReadOnlyTimer#getTimePerFrame()} * @param initiator * true if this node started the update process. */ public void updateGeometricState(final double time, final boolean initiator) { updateControllers(time); if (_dirtyMark.isEmpty()) { updateChildren(time); } else { if (isDirty(DirtyType.Transform)) { updateWorldTransform(false); } if (isDirty(DirtyType.RenderState)) { updateWorldRenderStates(false); clearDirty(DirtyType.RenderState); } updateChildren(time); if (isDirty(DirtyType.Bounding)) { updateWorldBound(false); if (initiator) { propagateBoundToRoot(); } } } }
if (child != null) { if (recurse) { child.updateWorldBound(true);
if (child != null) { if (recurse) { child.updateWorldBound(true);