flag question

Started by
0 comments, last by GameDev.net 18 years, 8 months ago

	enum NodeFlags
	{
		/** Node is enabled. */
		NODE_ENABLED				= 1,
		/** Node is renderable. */
		NODE_RENDERABLE				= 2,
		/** Node world transform is dirty. */
		NODE_WORLDTMDIRTY			= 4,
		/** Node was rendered in last frame. */
		NODE_RENDEREDINLASTFRAME	= 8,
		/** Default flags for node. */
		NODE_DEFAULTS				= -1
	};

void Node::setEnabled( bool enabled )
{
	m_flag &= ~NODE_ENABLED;
	if ( enabled )
		m_flag |= NODE_ENABLED;
}

to set the NODE_ENABLED,only m_flag |= NODE_ENABLED; where does m_flag &= ~NODE_ENABLED come to play?
Advertisement
void Node::setEnabled( bool enabled )
{
m_flag &= ~NODE_ENABLED;
if ( enabled )
m_flag |= NODE_ENABLED;
}



m_flag &= ~NODE_ENABLED;
This line's effect is to clear the NODE_ENABLED bit while leaving the rest of the bits in m_flag the same.

then if enabled is true, the NODE_ENABLED bit is set.

the function is equivalent to:

if ( enabled )
m_flag |= NODE_ENABLED;
else
m_flag &= ~NODE_ENABLED;

This topic is closed to new replies.

Advertisement