/** * Clears the dirty flag set at this spatial for the supplied dirty type. * * @param dirtyType * dirty type to clear flag for */ public void clearDirty(final DirtyType dirtyType) { clearDirty(this, dirtyType); }
/** * Clears the dirty flag set at this spatial for the supplied dirty type. * * @param dirtyType * dirty type to clear flag for */ public void clearDirty(final DirtyType dirtyType) { clearDirty(this, dirtyType); }
/** * Updates the worldTransform. * * @param recurse * usually false when updating the tree. Set to true when you just want to update the world transforms * for a branch without updating geometric state. */ public void updateWorldTransform(final boolean recurse) { if (_parent != null) { _parent._worldTransform.multiply(_localTransform, _worldTransform); } else { _worldTransform.set(_localTransform); } clearDirty(DirtyType.Transform); }
/** * Updates the world material. * * @param recurse * usually false when updating the tree. Set to true when you just want to update the world materials for * a branch without updating the full geometric state. */ public void updateWorldRenderMaterial(final boolean recurse) { if (_parent != null) { _parent._worldTransform.multiply(_localTransform, _worldTransform); } else { _worldTransform.set(_localTransform); } clearDirty(DirtyType.Transform); }
/** * Updates the worldTransform. * * @param recurse * usually false when updating the tree. Set to true when you just want to update the world transforms * for a branch without updating the full geometric state. */ public void updateWorldTransform(final boolean recurse) { if (_parent != null) { _parent._worldTransform.multiply(_localTransform, _worldTransform); } else { _worldTransform.set(_localTransform); } clearDirty(DirtyType.Transform); }
/** * <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(); } } } }